2023年7月31日

近事小记 博客发的评论可以及时通知到我了

作者 TheWhiteDog9487

从上一个通告可以知道,我邮件服务器没了。
这样如果博客有新的评论,我不主动来看那根本就是不知道的。
但是,这个问题刚才被我给解决了。
到底是咋回事呢?继续向下看。


前两天布丁来我这写了个评论,当时运气好我刚好来看了一眼,发现了,所以有及时回。
但这不是个办法啊,能不能知道有评论全凭运气。
我说,这不好。

在今天,我打算研究一下微软的Azure Function
(其实主要是没事干了(~ ̄▽ ̄)~
反正我的Azure账户就是Github Students Developer Pack免费申请来的,一年一百刀的配额+大量的产品免费额度。
本着不用白不用、不用就是亏的原则,开始了一天的折腾。

话说我为什么会考虑Azure Function呢?
因为我曾经去看过,那玩意有定时触发器,正好我需要。

OK,扯回来。
先说下思路:
我的想法是,定时对我博客的API发请求,发现有新评论就立刻通知我。
API方面好解决,WordPress已经内置了,比如我的调用地址是https://www.thewhitedog9487.xyz/wp-json/wp/v2/comments
判断有没有新评论的方法多了去了。我的方案是先缓存一个最新评论的发布时间,就存在一个文件里嘛。然后每次运行的时候比对最新评论的发布时间,和文件里的是否一致。
一致,那就没有;
不一致,那就是有嘛(●’◡’●)
通知的话,因为我的Discord是常驻后台的,而且我最近在研究Discord的机器人。
所以,我的方案是,让Discord机器人给我发私信。

回到实践方面
编程语言选择Python,因为可用的几个语言里只有Python我比较熟悉,而且这个需求涉及到大量的网络通信、字符串处理和文件操作、并且对性能不咋敏感,Python很适合。

这中间的过程我就不细说了,反正折腾掉了我好几个小时。
而且按照通辽宇宙定律:不出意外,那是不可能的。

先是无法部署,VSCode插件报错“无法获取部署操作的目前状态”。你问日志呢,笑死哪有日志,压根就没有。
然后我去文档上看PowerShell怎么部署,用那个指令又遇到了HTTP 403。
经过一番折腾发现是我没开外部访问,开上就好了…吗?
下一个是SSL连接无法建立,退出V2rayN和Steamcommunity302后解决。
你以为这就完了吗?根本没有。
我本地测试是完全正常的,但是部署上去之后,我去看控制面板,函数里面是空的。
重新部署了几次,无效。
直接功能测试,完全没反应。
这种开发者呢,就是典型的实力不详,遇强则强,但对面太强。
跑路!

诶,真的跑路,那是不可能的。
不就是定时吗?我的服务器也能做到,直接挂我服务器上得了。
直接一通操作,那当然是轻松秒杀。
别急,还有坑。
我直接在终端使用python3 a.py是完全没问题的,但是加到了crontab之后又出现了故障。
表现就是流程还没走完我进程就没了
(感谢微软的文档教我用日志模块,不然这问题我折腾一天都解决不掉)
查了一下,有的说法是涉及文件操作的时候就是会有这种故障,解决方案是用一个Shell脚本代理一下,用脚本来运行真正的程序,cron运行脚本就可以了。
实际测试之后确实可行。


不用怀疑了,这次是真的结束了。
以后如果不出意外的话,再有新评论我会直接收到通知。
这程序我也打算开源,之后弄吧。
各位拜


大概一小时之后的更新:
说开就开(~ ̄▽ ̄)~
Github仓库在这,需要代码或者感兴趣的话可以去看一眼。
谢谢各位的支持ψ(`∇´)ψ

TheWhiteDog9487
2023年7月31日