Tag - Anti-Spam

MiLog 可以用 python 写插件啦

MiLog 发布一年多了,昨天才第一次真正有动力实现插件系统——总觉得用一个异步的外部脚本做 anti-spam,不怎么得劲,还是写一个插件系统比较靠谱,本来插件系统也是 MiLog 的规划功能之一,更重要的是:

  1. 简单的非核心功能并不想用 Go 写进 MiLog 里,最好只保持一个轻量级的 Core;
  2. 最好可以用 Python 写插件,没别的原因,我喜欢 Python 就足够了;

于是乎,MiLog Plugins System 诞生了,目前只支持用 Python 编写插件,最简单的插件只需要两个函数(参考 speak-chinese-please):

  1. register() 用于 MiLog 加载插件时注册事件;
  2. <事件名>() 用于处理事件回调;

将编写好的插件放在任意目录下,并在 conf/app.conf 中增加一行,指向该目录就行:

plugindir = <path_to_plugin_directory>

哦对了,做完以上步骤后 MiLog 需要重启,注意通过日志观察插件是否注册成功。

Now, enjoy!

Speak Chinese Please

最近一段时间本 blog 被个别 spammer 盯上了,成功绕过验证码狂发垃圾广告,本来打算抽空做个简单的朴素贝叶斯做反垃圾,无奈本人实在太懒,迟迟没有动手,倒是收集了不少内容做样本……

考虑到这些 spam 内容无一例外都是英文,暂时先写个检测中文的脚本顶一阵吧,于是在几分钟前,speak-chinese-please 上线了——我太懒,简单脚本管用绝不写复杂的,顺便观察下 spammer 学习能力如何,10 年前玩 WordPress 的时候已经有机器人可以随机输入中文绕过该机制了,就看这次它会不会了。

分享一个 python 检测中文字符的函数吧,这也是 speak-chinese-please 的核心:

def any_chinese(s):
    return any(u'\u4e00' <= c <= u'\u9fff' for c in s.decode('utf-8'))

嗯,就一行,注意 any() 函数。