兴趣真是最好的驱动力。来求教万能的象友们啦:
想做一个部署在kook频道的体育比赛日程机器人,在比赛日当天的某个时间点,自动在频道里面发一条消息:“今天hh:mm,对阵xx队”。
本人在kook上建了某支球队的球迷社群,0代码基础,不知道上述功能是否有什么实现的路径,还请求大家的指点!

@ZeldaNo1 不管什么实现路径,第一步都要问的是,这个比赛日程数据从哪里来?

关注

@icarus22 数据好说,是赛季初就会公开的球队赛程。我可以手动根据需要整理

@ZeldaNo1 那还好,我没了解过kook,只能说说大体思路,希望能帮到你 :blobcatcoffee:

最简单的情形是机器人只负责发送消息,状态检查、响应指令这些都不用机器人去做,那应该只需要用python的schedule库去调发消息的API就可以,API文档在 developer.kookapp.cn/doc/http/

还有一个比较偏门的方法,需要写js相关。大概是根据模板生成有cron trigger的cloudflare workers,好处是省去找地方挂bot的麻烦,坏处是比较复杂,一旦赛程横跨两个及以上月份,需要月月生成或者做另外的管理逻辑

@icarus22 月月生成倒没什么关系。。感觉挂bot对我来说更复杂,岂不是要弄云服务器啥的?

@ZeldaNo1 是的,或者家里有24小时开着的电脑/开发板/nas也可以折腾一下看看能不能挂着

除此之外还可会议看看云函数这类serverless服务,这个就类似前面说的“cron trigger的cloudflare workers”的方案了

@icarus22 一个月的比赛也就十几场,只需要机器人发十几次消息就够。这样也需要月月生成吗?

@ZeldaNo1 那个方案要用到crontab,一般来说crontab是一个最大支持到月的定时任务表达式。

因此,那个定时发送的消息格式会是

* * * * * <赛程xxx>

五个星号代表不同的时间单位,分别是:

分钟:从0到59
小时:从0到23
日:从1到31
月:从1到12
星期几:从0到7(0和7都表示星期日)

所以,最大支持到月,下一个月一开始,就要更新这个月的赛程转换成的crontab。

这个是我的脑洞 :psyduck: 感觉没什么人会这么些

@icarus22 非常感谢耐心的指导,综合来看,目前我还是手动发赛程最省心了。(毕竟只是个人不多的佛系陪伴型社区)。。未来可以考虑方案一,走云服务器,感觉也不是完全不行!

登录以加入对话
Monado

Monado 是一个以任天堂为主、面向全平台游戏的、非营利性的中文向社区。在这里,你可以畅所欲言一切和游戏有关的东西,包括但不限于游戏日常、心得、感想、同人等;当然,吐槽自己的生活也完全没有问题。请在遵守所在国家或者地区法律法规的前提下自由的使用。