好久没露面发博文了 m(o・ω・o)m ,我是 RewrZ ,一个无名的小人物, IT 爱好者,长期浸淫于 ACG 领域、二次元世界无法自拔的中二病患者,用过的网名实在太多了,也写过很多博客文章,网站和域名也换过很多,但都没有人知道,根本不值一提。

我利用业余时间开发的最终改写开源项目—— RewrZ Project 终于迎来版本升级啦!虽然还只是一个测试版本,但也是这项目开启以及第一个版本发布的三年以来的第一次升级。

可能有些人会觉得我很懒,这么久才更新。

虽然事实上我的确很懒就是啦!但其实我一直都有在利用业余空闲时间在本地进行开发(偷偷坦白一下确实有一段时间偷懒,花时间自学研究别的东西去了),代码都上传到另外一个免费的代码托管服务( Bitbucket )。

因为 Bitbucket 可以免费建私有库,我可以为所欲为随便上传,而不用为了保持项目整洁或者说删除一些不适合公开的东西——我才不会告诉你我一直在本地用色色的图片做文章测试呢!

切换模板引擎是个坑

在这段开发期间,时间更多的是浪费在切换主题模板引擎为 jinja2 上面,我就是谗她的身子,哎不对,是谗它的性能,听说屌爆,是 Django 默认模板引擎性能的 10 倍以上,而且功能强大,可以在模板上直接运算。

结果切换模板引擎的时候才发现很多东西都要改动,默认模板有些很好用的标签竟然在 jinja2 上无法使用,或者需要修改适配,还有些结果为 None 的语法在默认模板上不会报错,可直接使用省去不少麻烦,在 jinja2 上却会报错,需要想方设法规避等等,最后忍无可忍又切换回默认引擎模板。

但 jinja2 的适配模板也还保留着,相关代码也没有删除,有待后续再考虑了。

更换前端框架是个坑

1.0 版本使用的是一个开源的 HTML 主题进行二次修改的,当时为的是能够快速开发上线,何况自己对于前端确实是完全不懂,只停留在会一点点简单的二次修改。

但我心里一直还是想着,当然要做一个能够中二病全开,专属于 RewrZ Project 的主题啦!于是我搜了很多免费开源的前端框架,国内网友推荐的来来去去的都是那几个玩意,自我评估一下都觉得不太适合我用,最后发现一个叫 Materializecss 的开源前端框架,就踩进了这个大坑里面。

大坑主要来自于两个方面:

  1. 这个框架不成熟,万年都没更新到 1.0 版本,等我用 0.x 的版本终于捣鼓出像样一点的模板之后,它终于升级 1.x 了,然后它竟然不向下兼容,我跟着升级 CSS/JS 后才发现模板完全错位,还有很多原有的 JS 效果全部失效……大哥,你才 1.0 版本,竟然就跟 0.x 的版本相差这么多?完全不兼容?逗我玩呢?你完全改也得 2.x 版本之后再瞎搞吧!?
  2. 有不少 Bug 和不完善的地方, CSS 我尚且能够自行写一些来规避某些显示问题,但 JS 的 Bug 我实在无能为力修正,这个不是自学几天 JS 就能够达到的技术水准,例如点击放大图片效果就是有错位 Bug 的。

但既然是自己的选择,跪着也要用下去,于是就继续用下去了……

如果最后实在是有无法原谅的问题,也只能等 3.x 版本后再物色更换前端框架了。

RewrZ Project 2.0 Beta

等前端主题改动得起码有个样子了,最近才想着是否先更新一个测试版,好让人知道这项目还活者, RewrZ 也还在……更换了主题之后我才发现,原来有一个漂亮的外观才能激起人的博客更新意愿的嘛。

snipaste_20200503_231432

详情可直接看 https://rewrz.com/archive/about/ 或者 https://code.rewrz.com

垃圾评论攻防战

2.0 Beta 评论表单增加了一个验证码功能,就是因为我偶然打开网站的时候,发现被刷了大量的垃圾评论,全是英文的,虽然我当时挺生气的,但比起生气,我更加懒,懒得去删除。于是垃圾信息是越积越多,忘了是多少万了,所以这次更新我就特意加了验证码功能,想以此减少垃圾信息。

原来的那些垃圾评论,我也懒得删了,没被刷垃圾评论之前,我留有备份,直接删数据库就完事了。

但令我意想不到的是,测试版本上线没多久,垃圾评论又来了,后台查看日志全是法国、乌克兰、荷兰的 IP 地址,而且这些 IP 地址还是连着的,同一个 IP 段的……我这是进了老外水军窝,还是被机关给盯上了。

由于我用的是 CF 提供的 CDN 服务,我又进了 CDN 后台查看防火墙,发现大量的法国 IP 触发质询的机制,但我搜了一下我服务器日志上的 IP 地址,并不在 CF 的防火墙日志里面。这有可能是 CF 记录的是客户真实 IP 而我服务器记录下的只是客户的代理 IP ?亦或是这些 IP 背后已经绕过了 CDN 直接通过我的网站 IP 渠道进入?是国外的欧元党(欧美人工都比较高,不会是五毛党)还是机器人已经会自动识别填写验证码了?这些我都不得而知了。

真的是太过分了,我一个小小的开源项目,访问量也极少的网站,竟也会受到这种待遇?从未有过的,我立即着手开发本来是计划在以后才开发的新功能,当天开发完成并部署上线——垃圾评论过滤。

现在,我已经看不到有垃圾评论被 POST 上来了,看后台打印的 log 是作为 Spam 过滤掉了,全是我之前提到的那些发垃圾信息的 IP 地址。至于正常的评论是否也会被过滤掉就不知道了,本地测试过是正常运作,但线上环境没有测试。

snipaste_20200504_101759

从日志上看,这些发垃圾评论的 IP 地址甚至还有 一些新的相似的 IP 段地址加入,还在不断地发起评论的 POST 请求。

下次的源代码更新

下次公开的源代码更新估计又是要一段时间之后了,除了部分还未开发完整的功能外,我目前已经发现了一些问题,以及萌生出一些新的想法,但在没有做出较多的改变的时候,我是不想增加一个功能就发布更新一次的了,我讨厌频繁升级。