微信审核开源评论系统 isso 的评论

前面我们部署了开源评论系统 isso,开源评论系统 isso 全攻略 。做过博客、论坛的人都知道,垃圾评论满天飞,所以要对评论进行审核,然后再显示出来。这篇文章我们来实现如何使用微信来审核评论。

准备

首先我们需要用到 Server酱 。这个服务提供两个功能,第一个是用微信接收消息、报警;第二个功能是控制功能:TalkAdmin。这里我们要用的是第二个功能。

Server酱是什么

「Server酱」,英文名「ServerChan」,是一款「程序员」和「服务器」之间的通信软件。

说人话?就是从服务器推报警和日志到手机的工具。

开通并使用上它,只需要一分钟:

  • 登入:用GitHub账号登入网站,就能获得一个SCKEY(在「发送消息」页面)
  • 绑定:点击「微信推送」,扫码关注同时即可完成绑定
  • 发消息:往 http://sc.ftqq.com/SCKEY.send 发GET请求,就可以在微信里收到消息啦

TalkAdmin

TalkAdmin是从ServerChan0.8版本开始提供的新功能模块,用于提供基于语音和REST的命令调用。

Talkadmin支持上行命令和下行命令两种命令类型。

上行命令用于通过语音向某台服务器发送HTTP请求;下行命令提供一个WebHook地址,当你对这个地址发送请求时,Server酱会将请求内容通过微信发送给绑定的账号。和消息推送不同的是,下行命令支持额外的交互模板,这样你可以在看完消息后,进行管理操作。

配置TalkAdmin

新建一个TalkAdmin:

  • 命令名称:随便写。
  • 命令正则:留空。
  • 选择下行命令。
  • WebHook地址(参数回调):留空。

重点在于交互模版:

1
<a href="{{$TA_url_a}}" class="btn btn-primary font-white">通过 </a> &nbsp; | &nbsp; <a href="{{$TA_url_r}}" class="btn btn-danger font-white">拒绝</a> &nbsp; | &nbsp; <a href="{{$TA_url_c}}" class="btn btn-info font-white">查看</a>

交互界面自定义CSS:自己随意修改,留空也可以。

重点:保存之后,回到TalkAdmin页面,点击你刚才创建的命令,这里面有你的WebHook地址。。比如你得到的地址是:http://sc.ftqq.com/webhook/xxxxxxxx ,下面会用到。

配置 Isso

需要修改的文件是 isso/ext/notifications.py,需要把/webhook/xxxxxxxx改成你自己的WebHook地址。

注释掉 self.sendmail(thread["title"], body, thread, comment) 这行代码,并添加下列代码。注意 import

1
2
3
4
5
6
7
8
9
10
import httplib

uri = local("host") + "/id/" + str(comment["id"])
key = self.isso.sign(comment["id"])
author = comment["author"] or "匿名"
headers = { 'content-type': "application/x-www-form-urlencoded" }
conn = httplib.HTTPConnection("sc.ftqq.com")
conn.request("POST", "/webhook/xxxxxxxx?TA_action_on=1&TA_title=" + str(author) + "&TA_content=" + str(comment["text"]) + "&TA_url_a=" + str(uri) + "/activate/" + str(key) + "&TA_url_r=" + str(uri) + "/delete/" + str(key) + "&TA_url_c=" + str(local("origin")) + str(thread["uri"]) + "#isso-" + str(comment["id"]), headers=headers)
r1 = conn.getresponse()
logger.info("ftqq:" + str(r1.status) + " " + str(r1.reason))

由于之前我对通知这里也做了改动,改变了大量代码,细节可能有出入,哪里不明白欢迎留言请教。源码安装见上一篇:开源评论系统 Isso 全攻略

见证奇迹的时刻

发一条评论,然后微信收到提醒:

微信提醒

点开详情之后就可以审批啦!

微信审批