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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nonebot_plugin_cp_broadcast-2.3.2.tar.gz.
File metadata
- Download URL: nonebot_plugin_cp_broadcast-2.3.2.tar.gz
- Upload date:
- Size: 16.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b9939743d81dbd8b76f998dbffebd7c1463ec743cadf9da131e7d7fa1ac2e2f0
|
|
| MD5 |
3d4c1f51796f1f14ce9be531176bdc16
|
|
| BLAKE2b-256 |
15760e6786e1683560315a7040b0fb5abe291145324c4872024c6cecb3879bc4
|
File details
Details for the file nonebot_plugin_cp_broadcast-2.3.2-py3-none-any.whl.
File metadata
- Download URL: nonebot_plugin_cp_broadcast-2.3.2-py3-none-any.whl
- Upload date:
- Size: 18.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
84f6348e084fa0f78dc6a4a1e3e06911d4ad10a406eeb0a18fac2b4b82783d6c
|
|
| MD5 |
1caff25c9ec6602e0c392f294d45eba3
|
|
| BLAKE2b-256 |
17154b2cd11662b3db9b273c595cfce6f56e9fde14fa1c0809493eaca0698fe2
|