Micolog的Akismet 评论过滤插件 v0.3
Akismet是一个优秀的防Spam垃圾留言的优秀插件,绝大多数wordpress blogger都在使用,有了akismet之后,基本上不用担心垃圾留言的烦恼了。 Micolog的Akismet 评论过滤插件 目前已 更新到0.3版本,已实现过滤,提交spam ,解除Spam等功能。 在 0.2 版本中,被过滤的评论是记录在 OptionSet 的 Akismet_Comments (key) 中,而在 0.3 中,被过滤的评论记录在了 Comment 中,但是其 entry 属性被 置为 None, 而 OptionSet 中的 Akismet_Comments_v0.3 (key)仅仅是 记录了评论 与 entry 的对应关系和扩展信息。 当升级到 0.3 版本后,被过滤的评论 将 可以在 /admin/comments 页面 显示,但是在删除时,会因为 其 entry 属性 为 None 而失败,这时,被过滤的评论 只能从 /admin/plugins/akismet 删除。 推荐 修改 /admin.py 中 class admin_comments 对应行 为 :
if cq and cv:
query=Comment.all().filter(cq+' =',cv).order('-date')
else:
query=Comment.all().filter('entry IN',Entry.all().fetch(99999)).order('-date')
comments,pager=Pager(query=query,items_per_page=15).fetch(page_index)
用以在评论管理中隐藏 被过滤的评论 插件管理: 在插件管理页面如果不填 api Key 的话,是分享了网络上已公开的某个key ,具体可以看源码! 不过 Akismet 官方不建议使用别人的key. 因为 Akismet 过滤功能的学习机制,别人的操作会影响到你。还原 被过滤的评论 将会向 Akismet 提交一个 submit-ham 请求,以后 相同(或类似)的评论将不会再被过滤。 在[删除一条评论并提交Spam]框内输入一个评论ID ,将会删除 一条正常的评论,并向 Akismet 提交一个 submit-spam 请求,此后,相同(或类似)的评论将被过滤。 ________________以下为2010年6月27日更新________________________
更新到0.3.1版本:
已将本插件更新至0.3.1版本,增加了(自动删除检测到的垃圾评论)选项,当插件勾选了此选项时,你将再也不会看到垃圾评论了。这或许不是一个好主意,但是当你的博客像我一样被加入到某个垃圾留言列表(这意味着你每天将会收到至少几封垃圾留言)中时,他或许会很有用。 0.2版本插件工作在pre_comment模式,而0.3版则工作在save_comment模式,原因是我始终认为留言(即使是垃圾留言)不作为留言保存,是很糟糕的。但是插件在save_comment模式工作,会有一些问题,比如:还是会发邮件通知博主;在最新留言中显示该垃圾留言。即使我可以通过修改micolog的源码来解决该问题,但我并没这么做,因为我想我做的只是一个插件,而那样做,会使程序变得更糟糕。所以我在0.3.1版本中 增加了(自动删除检测到的垃圾评论)选项,勾选此选项,插件将工作在pre_comment模式,但是,他再也不会保存任何关于垃圾留言的信息了。满足所有人的期望似乎是很困难的事情! ________________以下为2010年12月03日更新________________________
更新到0.3.2版本:
修正垃圾评论通过非正常方式删除(直接从数据库中删除等) /admin/plugins/akismet 页面无法展示的bug. ________________以下为2010年12月06日更新________________________
去除“最新评论”中的垃圾评论
请修改源文件“blog.py”中 BasePublicPage类initialize方法中 对应的行为:
'recent_comments':Comment.all().filter('entry IN',Entry.all().fetch(99999)).order('-date').fetch(5)
评论ID 即 comment.key().id() 的值,在 micolog 中,这个值在 评论管理 页面 是不显示出来的,通常的获取方式有:
1、点击本页右侧“最新评论”的文章标题,打开页面 http://sypxue.appspot.com/Micolog_Akismet_plugin.html#comment-37001 其中 #comment- 后面的数字就是 评论的ID。
2、方法1只能找到最新的几个评论,但是像 #comment-37001 这样的形式的锚点链接,对应的在网页上绝对有对应得锚点:<div id="comment-37001">评论ID怎么获得呢?</div>
3、从 gae 的控制台中查询 comment 的 id 字段
4、在 micolog 的 /views/admin/comments.html 页面 的 a target="_blank" href="{{blog.baseurl}}/{{comment.entry.link}} 后面加上 #comment-{{comment.key().id()}}
ok,谢谢
能不能发一份实例给我。。。
就我现在所发表的这条,其实就是在回复你的评论了,难道这还不够吗?
你好,我用第四种方法会出现这个:http://goo.gl/tifA因为太长就放在pastebin
哦,上面那个错了,应该是:{{comment.key.id}}