Codeforces、牛客、AtCoder平台比赛查询,ACMer 必备
Project description
📖 介绍
对于每一个 ACMer 来说,参加编程竞赛是必不可少的,这个插件实现了 Codeforces、牛客竞赛、AtCoder 这三个主流的编程竞赛平台的比赛查询和播报。
除了简单的指令外,它支持每天定时发送三种比赛的信息。
查询的结果会存到列表里,以减少网站爬取的次数。
· Codeforces: 极负盛名的俄罗斯算法竞赛练习网站。相关的比赛播报乃至用户监视提醒功能均由Codeforces官方提供的api实现。当然由于是国外网站,在国内访问可能会比较缓慢。
· 牛客竞赛: 国内比较出名的找工作乃至练习算法的竞赛平台。比赛信息的获取是通过对网页爬取分析得到的。目前没开发出牛客竞赛的用户监视功能。
· AtCoder: 日本出名的算法竞赛平台。比赛信息的获取是通过对网页爬取分析得到的。目前没开发出AtCoder的用户监视功能。
为什么取 cp-broadcast 这个英文名呢?因为竞赛性编程的英文是:Competitive Programming,直接拿来做名字感觉太长了,因此我把它写成了缩写,broadcast 是播报的意思,因此就用 cp-broadcast 来当名字了。
插件可能有很多不完善的地方,欢迎大家来提 issue 和 pull requests。
有任何问题可联系QQ:3411907440。
💿 安装
使用 nb-cli 安装
在 nonebot2 项目的根目录下打开命令行, 输入以下指令即可安装nb plugin install nonebot-plugin-cp-broadcast
使用包管理器安装
在 nonebot2 项目的插件目录下, 打开命令行, 根据你使用的包管理器, 输入相应的安装命令pip
pip install nonebot-plugin-cp-broadcast
pdm
pdm add nonebot-plugin-cp-broadcast
poetry
poetry add nonebot-plugin-cp-broadcast
conda
conda install nonebot-plugin-cp-broadcast
打开 nonebot2 项目根目录下的 pyproject.toml
文件, 在 [tool.nonebot]
部分追加写入
plugins = ["nonebot_plugin_cp_broadcast"]
⚙️ 配置
在 nonebot2 项目的.env
文件中添加下表中的必填配置
配置项 | 必填 | 默认值 | 说明 |
---|---|---|---|
cp_broadcast_path | 否 | get_data_dir("nonebot_plugin_cp_broadcast") | 数据存储路径定义,用户不定义则由localstore插件确定 |
cp_broadcast_list | 否 | [ ] | 开启早晨自动播报今日比赛的群聊,填 QQ 群号,注意以字符串形式填入 |
cp_broadcast_botname | 否 | "bot" | 填入你 bot 的名字,在 help 指令下会使用到你的 bot 的名字 |
cp_broadcast_time | 否 | {"hour":"7", "minute":"20"} | 每日在群聊播报比赛信息的时间,默认是早上 7 点 20,你可以在配置文件中按默认值格式修改成你想要的时间 |
cp_broadcast_updatetime | 否 | {"hour":"0", "minute":"0"} | 每天自动更新比赛数据的时间,默认是 0 点 0 分,你可以在配置文件中按默认值格式修改成你想要的时间 |
cp_broadcast_cf_list | 否 | [ ] | 开启 Codeforces 播报功能的群聊,cf监视的相关功能只在指定群聊里发送 |
cp_broadcast_cf_interval | 否 | 10 | 更新 Codeforces 监视信息的时间间隙,默认为 10 分钟(不建议设置太短,可能会对服务器造成比较大的压力。另外监视人数多的话间隙尽量加长一点) |
就像这样:
cp_broadcast_path="data/cp_broadcast"
cp_broadcast_list=["xxxxxxxx"]
cp_broadcast_botname="bot"
cp_broadcast_time={"hour":"7", "minute":"20"}
cp_broadcast_updatetime={"hour":"0", "minute":"0"}
cp_broadcast_cf_list=["xxxxxxxx"]
cp_broadcast_cf_interval=10
该插件依赖 nonebot_plugin_apscheduler 实现定时发送功能,如果你未安装此依赖的话,将无法触发与定时相关的功能。
🎉 使用
指令表
指令 | 权限 | 需要@ | 范围 | 说明 |
---|---|---|---|---|
cf |
群员 | 否 | 群聊 | 发送最近三场 Codeforces 比赛的信息 |
牛客 or nc |
群员 | 否 | 群聊 | 发送最近三场牛客比赛的信息 |
atc |
群员 | 否 | 群聊 | 发送最近两场 AtCoder 比赛的信息 |
today |
群员 | 否 | 群聊 | 发送今天的比赛信息 |
next |
群员 | 否 | 群聊 | 发送今天后的部分比赛信息 |
help |
群员 | 是 | 群聊 | 发送帮助信息 |
update |
群员 | 否 | 群聊 | 手动更新比赛信息 |
cf监视 |
群员 | 是 | 群聊 | 监视某人的 rating 变化 |
cf监视移除 |
群员 | 是 | 群聊 | 移除监视某人的 rating 变化 |
cf监视列表 |
群员 | 是 | 群聊 | 展示已经监视了哪些人 |
cf查询 |
群员 | 是 | 群聊 | 查询对应 id 的相关信息 |
cf排名 |
群员 | 是 | 群聊 | 查询当前监视列表的rating排名 |
cf监视备注 |
群员 | 是 | 群聊 | 给某个已经被监视的人备注一个名字,两字符串之间用空格隔开 |
效果图
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for nonebot_plugin_cp_broadcast-2.2.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | feaed8eded75907b90ec47430bca91169ef748c2bdbbe626d6159ad5339d1b3d |
|
MD5 | 41613a6efec2bdd07e8a94cd97263556 |
|
BLAKE2b-256 | da606863d6d9354e1b68a54e98689cf3050274f743af2204be910bc8a5bc1555 |
Hashes for nonebot_plugin_cp_broadcast-2.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c85d3d6678d5523505fd1bca7375328de8ad4817e4c0e0eec1d26514ca527d97 |
|
MD5 | eb2ab75eeb8f9ce64b8b47512cc949b4 |
|
BLAKE2b-256 | 6fa8a8e0cd5bf20fc0fd46ae1056b5cd2c4297418153bde3d6957acc1c6aadb7 |