Skip to main content

NoneBot2 插件:算法比赛助手. 支持各大oj比赛与题目查询,洛谷用户信息查询与绑定

Project description

🏆 算法比赛助手

✨ 基于 NoneBot2 的算法比赛查询与订阅助手,支持洛谷用户信息查询 ✨

license pypi python nonebot2

📖 简介

基于 NoneBot2clist.by API 开发的智能算法比赛助手插件,同时支持洛谷用户信息查询与绑定功能。

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

🎯 核心功能

  • 🔍 智能查询:今日/近期比赛、平台筛选、题目检索
  • 🔔 订阅提醒:个性化比赛提醒,支持群聊/私聊
  • 💾 持久化存储:订阅数据本地保存,重启不丢失
  • 🌐 多平台支持:涵盖 Codeforces、AtCoder、洛谷等主流平台
  • 🏆 洛谷服务:用户信息查询、绑定管理、精美卡片展示

✨ 功能特性

🔍 比赛查询功能

命令 功能 示例
近期比赛 / 近期 查询近期比赛 近期比赛
今日比赛 / 今日 查询今日比赛 今日比赛
比赛 [平台id] [天数] 条件检索比赛 比赛 163 10
题目 [比赛id] 查询比赛题目 题目 123456

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

🏆 洛谷服务功能

命令 功能 示例
绑定洛谷 [用户名/id] 绑定洛谷用户 绑定洛谷 123456
我的洛谷 查询自己洛谷信息 我的洛谷
洛谷信息 [用户名/id] 查询指定用户信息 洛谷信息 123456

🔔 订阅提醒功能 ⭐

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

🚀 快速开始

🚨 开始前必读:本插件依赖 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_usernameclist_api_key 必须正确配置
  • 洛谷Cookie:仅在需要查询隐私设置用户时配置,普通查询无需此项
  • 数据存储:插件会自动在本地创建数据目录存储订阅信息和洛谷卡片缓存

💡 提示:洛谷卡片缓存会在每天 2:00、10:00、18:00 自动清理

📖 使用示例

🔍 比赛查询功能演示

# 基础查询
近期比赛          # 查询近期比赛
今日比赛          # 查询今日比赛
比赛 163 10       # 查询洛谷平台10天内的比赛
题目 123456       # 查询比赛ID为123456的题目

🏆 洛谷服务功能演示

# 洛谷用户操作
绑定洛谷 123456              # 绑定洛谷用户ID
绑定洛谷 "用户名"            # 绑定洛谷用户名
我的洛谷                    # 查询自己的洛谷信息
洛谷信息 123456             # 查询指定用户信息
洛谷信息 "用户名"            # 查询指定用户名信息

🔔 订阅功能演示

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

🎯 功能路线图

todo list

  • 比赛查询系统 - 支持今日/近期比赛查询
  • 条件检索 - 按平台、时间筛选比赛
  • 题目查询 - 根据比赛ID查询题目信息
  • 订阅提醒系统 - 智能比赛订阅与定时提醒
  • 洛谷用户绑定 - 支持用户名和ID绑定
  • 洛谷信息查询 - 洛谷用户详细信息查询
  • cf信息查询 - cf用户详细信息查询
  • atc信息查询 - atc用户详细信息查询
  • 个性题单 - 用户自建个性题单
  • 题目链接解析 - 题目链接自动解析出题面,IO样例

📄 开源协议

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

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

有任何问题欢迎来提issue!

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

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.2.6.tar.gz (92.2 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.2.6-py3-none-any.whl (98.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: nonebot_plugin_algo-0.2.6.tar.gz
  • Upload date:
  • Size: 92.2 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.2.6.tar.gz
Algorithm Hash digest
SHA256 98ea2ab1ae4ad6185baec93c1d51018097a58738d4c9aed5fc0a18e44184a4a1
MD5 8015402472e8c81f7a6e80932f56e44a
BLAKE2b-256 2a70206ec2ef367d7a6f9afeb6bf283de9da9e656c3ecc28877b40504aaab43d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nonebot_plugin_algo-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 11426d478279e64108225cd82bf922ca1d1bb559c8e20db68c32d12674d219ac
MD5 24b48cc7e9d2420cd4672e18cb7249ba
BLAKE2b-256 a05615805467ae6f9c648fd0693b1bd705f40fb95d82605b24e30b9ff37c5c9a

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