本文大部分代码取自这里:利用github webhook自动更新hexo
起因
vtuber开播提醒
在去年给QQ机器人加了个检查各个vtuber直播开启提醒的功能,原理是不断对某个接口轮询(接口写法见用openresty(Lua)写一个获取YouTube直播状态的接口)。不过这个的效率很感人,而且感觉有些废资源(因为http接口返回时间有点点常。。。)
上个月的时候,给机器人加上了MQTT
功能。加上之后我就开始着手直播体系改造了,
以前的流程是这样的:
现在改成了这样:
对机器人那端来说变得很简单了,同时只有开播那一刻才会和机器人有数据交互,而之前是每次查询都返回完整的开播信息,比原来更省流量。
服务端使用python,通过cron来实现定时检查,发现开播后立刻发mqtt消息。
问题
这个问题就是,因为GitHub上的数据不是我维护的,监控列表是另一个人在维护,同时因为我懒得更新代码,所以急需一套自动更新代码的逻辑来及时更新监控列表。
配置webhook
由于GitHub自带了push后推webhook的功能,只需要打开就可以了:
配置openresty
在openresty合适的地方加上lua文件的配置:
然后新建文件加上功能:
注释的那句是因为手动clone下来初始化仓库,会发现openresty没权限。。。所以你可以用openresty来clone仓库,就不会遇到后期pull没权限的问题了。。
测试
手动push一下,看看有没有更新