Skip to main content

NoneBot2 插件:算法比赛与题目信息查询助手

Project description

🏆 算法比赛助手

✨ 基于 NoneBot2 的算法比赛查询与订阅助手 ✨

license pypi python nonebot2

📖 简介

基于 NoneBot2clist.by API 开发的智能算法比赛助手插件。

⚠️ 使用前提:需要申请 clist.by API 凭据才能正常使用

🎯 核心功能

  • 🔍 智能查询:今日/近期比赛、平台筛选、题目检索
  • 🔔 订阅提醒:个性化比赛提醒,支持群聊/私聊
  • 💾 持久化存储:订阅数据本地保存,重启不丢失
  • 🌐 多平台支持:涵盖 Codeforces、AtCoder、洛谷等主流平台

✨ 功能特性

🔍 基础查询功能

命令 功能 示例
近期比赛 / 近期 查询近期比赛 近期比赛
今日比赛 / 今日 查询今日比赛 今日比赛
比赛 [平台id] [天数] 条件检索比赛 比赛 163 10
题目 [比赛id] 查询比赛题目 题目 123456
clt / /官网 clist.by 官网链接 clt

💡 平台ID说明:163-洛谷,1-Codeforces,2-AtCoder 等,详见 clist.by

🔔 订阅提醒功能 ⭐

命令 功能 示例
订阅 -i [比赛id] 通过ID订阅比赛 订阅 -i 123456
订阅 -e [比赛名称] 通过名称订阅比赛 订阅 -e "Codeforces"
取消订阅 [比赛id] 取消指定订阅 取消订阅 123456
订阅列表 / 我的订阅 查看订阅列表 订阅列表
清空订阅 清空所有订阅 清空订阅

🌟 订阅特色

  • 智能匹配:支持比赛ID和名称模糊匹配
  • 精准提醒:比赛开始前自动提醒(默认30分钟前)
  • 🔗 一键直达:提醒消息包含比赛直链
  • 👥 多场景:群聊订阅群提醒,私聊订阅个人提醒

🎯 功能路线图

todo list

  • 取消订阅功能 - 支持取消特定比赛订阅
  • 订阅持久化存储 - 本地文件存储,重启不丢失
  • 便捷检索 - 支持中文名称模糊匹配
  • 多场景支持 - 群聊/私聊订阅分离
  • 智能提醒 - 自动定时提醒系统
  • 批量订阅管理 - 一键管理多个订阅
  • 自定义提醒时间 - 个性化提醒时间设置
  • 比赛统计分析 - 参与度、难度统计
  • 用户题单收藏 - 题目收藏和管理
  • 个性化推荐 - 基于历史订阅的智能推荐
  • 多语言支持 - 国际化界面
  • Web管理面板 - 可视化订阅管理

🚀 快速开始

🚨 开始前必读:本插件依赖 clist.by API,请先完成 API 凭据申请,否则无法正常使用!

📦 安装插件

🎯 方式一:使用 nb-cli(推荐)
nb plugin install nonebot-plugin-algo
📚 方式二:使用包管理器
# 使用 poetry(推荐)
poetry add nonebot-plugin-algo

# 使用 pip
pip install nonebot-plugin-algo

然后在 NoneBot 项目的 pyproject.toml 中启用插件:

[tool.nonebot]
plugins = ["nonebot_plugin_algo"]

⚙️ 配置设置

⚠️ 重要提示:本插件需要 clist.by API 凭据才能正常工作,请务必先申请!

🔧 必需配置

第一步:申请 API 凭据

  1. 访问 clist.by 注册账号
  2. 在个人设置中生成 API Key
  3. 将凭据添加到 .env 文件中

第二步:配置文件.env 文件中添加配置:

# clist.by API 凭据(必需)
clist_username=your_username    # 你的 clist.by 用户名
clist_api_key=your_api_key      # 你的 clist.by API Key

# 查询配置(可选)
algo_days=7                    # 查询近期天数,默认 7
algo_limit=20                  # 返回数量上限,默认 20
algo_remind_pre=30             # 提醒提前时间(分钟),默认 30
algo_order_by=start            # 排序字段,默认 start
📋 配置项详解
配置项 类型 默认值 说明
clist_username str "" clist.by 用户名(必需
clist_api_key str "" clist.by API Key(必需
algo_days int 7 查询近期比赛的天数
algo_limit int 20 返回结果数量上限
algo_remind_pre int 30 订阅提醒提前时间(分钟)
algo_order_by str "start" 查询结果排序字段

⚠️ 重要:没有 API 凭据将无法使用任何功能!请务必前往 clist.by API 文档 申请。

📖 使用示例

🔍 查询功能演示

# 基础查询
近期比赛          # 查询近期比赛
今日比赛          # 查询今日比赛
比赛 163 10       # 查询洛谷平台10天内的比赛
题目 123456       # 查询比赛ID为123456的题目
clt               # 获取clist.by官网链接

🔔 订阅功能演示

# 订阅操作
订阅 -i 123456                   # 通过比赛ID订阅
订阅 -e Codeforces               # 通过名称订阅
订阅列表                         # 查看订阅列表
取消订阅 123456                  # 取消指定订阅
清空订阅                         # 清空所有订阅

💡 使用技巧

🎯 订阅最佳实践
  1. 精确订阅:使用比赛ID订阅最准确
  2. 模糊搜索:比赛名称支持关键词匹配
  3. 及时管理:定期查看和清理过期订阅
  4. 场景选择:群聊订阅适合团队,私聊订阅适合个人

📄 开源协议

本项目基于 MIT License 开源协议。

🌟 如果这个项目对你有帮助,请给个 Star!

让我们一起让算法竞赛变得更简单!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nonebot_plugin_algo-0.1.18.tar.gz (12.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nonebot_plugin_algo-0.1.18-py3-none-any.whl (14.4 kB view details)

Uploaded Python 3

File details

Details for the file nonebot_plugin_algo-0.1.18.tar.gz.

File metadata

  • Download URL: nonebot_plugin_algo-0.1.18.tar.gz
  • Upload date:
  • Size: 12.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.11

File hashes

Hashes for nonebot_plugin_algo-0.1.18.tar.gz
Algorithm Hash digest
SHA256 9eeeca1086a35da797dc3959848d965bf945f94feae90d69014bb651077ad6e3
MD5 d513d29ec1fa6535ffd9ec0e0f8b4426
BLAKE2b-256 56147945da69170e533cebd5a4fc59a419c07c998e3a7b51340f69371c4363ba

See more details on using hashes here.

File details

Details for the file nonebot_plugin_algo-0.1.18-py3-none-any.whl.

File metadata

File hashes

Hashes for nonebot_plugin_algo-0.1.18-py3-none-any.whl
Algorithm Hash digest
SHA256 45c6b87446906fe97ad5a83ee7700746d67a8f1cb8afe81b92726fd990d3a6e8
MD5 2ffaf6ec4168ad03c881f30e001ffe22
BLAKE2b-256 512b7d4cb5e33df995e25c24f1f0174743959381031c8edc6930a2d212fb3b00

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page