一个适用于ACM群的多功能比赛提醒qq机器人
由于yiri-mirai已经停止更新,目前已知添加图片与删除图片功能不正常,需要手动更改yiri-mirai库源码,修改处如下所示
本项目是一个在群里可以通知打codeforces、牛客、AtCoder、LeetCode的qq机器人项目,基于 ACM_Contest_QQbot修改(膜拜INGg巨巨 )。
提供定时/手动更新本地数据功能,仅在更新时与cf、牛客、atc、LeetCode进行交互,加速用户使用机器人时的查询速度并降低了被反爬虫的概率。
ps: INGg巨巨写的
环境配置
./mcl -u
将yirimirai部署教程中的net.mamoe.mirai-api-http文件夹下的setting.yml里的端口号改成7275
使用Mirai登陆qq https://yiri-mirai.wybxc.cc/tutorials/01/configuration#4-%E7%99%BB%E5%BD%95-qq
挂起服务(如果是linux服务器,参照官网教程,如何挂起而不退出:https://yiri-mirai.wybxc.cc/tutorials/02/linux)
clone到本地或者服务器中(不要直接下载源码,如果网速慢请挂梯子)
修改main.py
中bot的qq号为你自己的qq号
bot = Mirai(
qq=*****, # 改成你的机器人的 QQ 号
adapter=WebSocketAdapter(
verify_key='yirimirai', host='localhost', port=7275
)
)
{
"all_rating": {}
}
{
"cf": {},
"\u725b\u5ba2": {},
"lc": {},
"atc": {},
"today": {}
}
{}
[]
pip3 install -r ./requirements.txt
# 应该是全了qwq,如果不全请根据报错来安装相应的包,如果方便请您告知我,我将更新安装命令
python3 main.py
# 或 python main.py
# 自己编译安装python3.8的 python3.8 main.py
强烈建议使用本项目的朋友 clone 项目到本地后,使用 cloudflare 分别做 codeforces 和 atcoder 的镜像站,然后将 cf_api.py
和 atc_api.py
中的用户 rating 查询函数的链接替换为你自己的镜像站链接。
该操作将在一定程度上起到反爬虫、加速访问 codeforces 和 atcoder 以及避免这两个网站在访问峰值时访问过慢导致查询失败的作用。
cloudflare 可以使用免费版,每天有 10 万次请求额度,需要注意的是,workers.dev 域名被污染,在国内已经无法访问,需要使用自己的域名作为 worker 的路由,如果没有域名或者买不起域名,可以使用 freenom 申请免费域名。
作者并不解答 cloudflare 制作镜像站以及 freenom 申请免费域名这两个操作中遇到的问题,如果需要使用该方案或者遇到问题请自行 google。