{"id":36598888,"url":"https://github.com/talentestors/nonebot-plugin-oi-helper","last_synced_at":"2026-01-20T08:00:56.845Z","repository":{"id":269444867,"uuid":"903770781","full_name":"talentestors/nonebot-plugin-oi-helper","owner":"talentestors","description":"A Nonebot2 plugin providing information related to OI/ACM.        一个提供 OI/ACM 相关信息的 nonebot2 插件","archived":false,"fork":false,"pushed_at":"2026-01-12T02:52:43.000Z","size":2353,"stargazers_count":2,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-12T16:35:57.600Z","etag":null,"topics":["nonebot2","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/talentestors.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-12-15T14:21:34.000Z","updated_at":"2026-01-12T02:51:17.000Z","dependencies_parsed_at":"2024-12-24T13:42:46.918Z","dependency_job_id":"4f37348e-3826-4f47-b14f-f8581ce1e7f0","html_url":"https://github.com/talentestors/nonebot-plugin-oi-helper","commit_stats":null,"previous_names":["talentestors/none-plugin-oi-helper","talentestors/nonebot-plugin-oi-helper"],"tags_count":29,"template":false,"template_full_name":"A-kirami/nonebot-plugin-template","purl":"pkg:github/talentestors/nonebot-plugin-oi-helper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/talentestors%2Fnonebot-plugin-oi-helper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/talentestors%2Fnonebot-plugin-oi-helper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/talentestors%2Fnonebot-plugin-oi-helper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/talentestors%2Fnonebot-plugin-oi-helper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/talentestors","download_url":"https://codeload.github.com/talentestors/nonebot-plugin-oi-helper/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/talentestors%2Fnonebot-plugin-oi-helper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28598874,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T02:08:49.799Z","status":"ssl_error","status_checked_at":"2026-01-20T02:08:44.148Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nonebot2","python"],"created_at":"2026-01-12T08:35:09.184Z","updated_at":"2026-01-20T08:00:56.829Z","avatar_url":"https://github.com/talentestors.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://v2.nonebot.dev/store\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/A-kirami/nonebot-plugin-template/resources/nbp_logo.png\" width=\"180\" height=\"180\" alt=\"NoneBotPluginLogo\"\u003e\u003c/a\u003e\n  \u003c/br\u003e\n  \u003cp\u003e\u003cimg src=\"https://raw.githubusercontent.com/talentestors/nonebot-plugin-oi-helper/main/docs/img/NoneBotPlugin.svg\" width=\"240\" alt=\"NoneBotPluginText\"\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv align=\"center\"\u003e\n\n# nonebot-plugin-OI-helper\n\n_✨ 一个提供 OI/ACM 相关信息的 nonebot2 插件 ✨_\n\n[![license](https://img.shields.io/github/license/talentestors/nonebot-plugin-oi-helper.svg)](https://www.gnu.org/licenses/lgpl-3.0.html)\n[![pypi](https://img.shields.io/pypi/v/nonebot-plugin-oi-helper.svg)](https://pypi.python.org/pypi/nonebot-plugin-oi-helper)\n![python](https://img.shields.io/badge/python-3.12+-blue.svg)\n![downloads](https://img.shields.io/pypi/dm/nonebot-plugin-oi-helper)\n[![Publish Release](https://github.com/talentestors/nonebot-plugin-oi-helper/actions/workflows/release-publish.yml/badge.svg)](https://github.com/talentestors/nonebot-plugin-oi-helper/actions/workflows/release-publish.yml)\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Ftalentestors%2Fnonebot-plugin-oi-helper.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Ftalentestors%2Fnonebot-plugin-oi-helper?ref=badge_shield)\n\n\u003c/div\u003e\n\n\u003e [!WARNING]\n\u003e\n\u003e v1 版本已重构，基于 HTTP/2\n\u003e\n\u003e aiohttp 替换为 httpx\n\n## 📖 介绍\n\n一个基于 \u003chttps://clist.by\u003e v4 接口，提供 OI/ACM 相关信息查询的 nonebot2 插件。\n\n扩展内容：\n\n- [x] 获取 **LeetCode 每日一题**\n- [ ] ...\n\n## 💿 安装\n\n\u003cdetails\u003e\n\u003csummary\u003e使用 nb-cli 安装\u003c/summary\u003e\n\n在 nonebot2 项目的根目录下打开命令行, 输入以下指令即可安装\n\n```bash\nnb plugin install nonebot-plugin-oi-helper\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e使用包管理器安装\u003c/summary\u003e\n\n在 nonebot2 项目的插件目录下, 打开命令行, 根据你使用的包管理器, 输入相应的安装命令\n\n\u003cdetails\u003e\n\u003csummary\u003epip\u003c/summary\u003e\n\n```bash\npip install nonebot-plugin-oi-helper\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003epdm\u003c/summary\u003e\n\n```bash\npdm add nonebot-plugin-oi-helper\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003epoetry\u003c/summary\u003e\n\n```bash\npoetry add nonebot-plugin-oi-helper\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003econda\u003c/summary\u003e\n\n```bash\nconda install nonebot-plugin-oi-helper\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003euv\u003c/summary\u003e\n\n\u003c/br\u003e\n\n[![uv](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json)](https://github.com/astral-sh/uv)\n\n\u003e Documents: \u003chttps://docs.astral.sh/uv/\u003e\n\n```bash\nuv add nonebot-plugin-oi-helper\n```\n\n\u003c/details\u003e\n\n打开 nonebot2 项目根目录下的 `pyproject.toml` 文件, 在 `[tool.nonebot]` 部分追加写入\n\n```bash\nplugins = [\"nonebot_plugin_oi_helper\"]\n```\n\n\u003c/details\u003e\n\n## ⚙️ 配置\n\n在 nonebot2 项目的 `.env` 文件中添加下表中的必填配置\n\n\u003e [!TIP]\n\u003e 需要使用 aiohttp 的驱动器\n\n|       配置项       | 必填  |                                            默认值                                             |      说明       |\n| :----------------: | :---: | :-------------------------------------------------------------------------------------------: | :-------------: |\n|  CLIST__USERNAME   |  是   |                                              无                                               | 你的clist用户名 |\n|  CLIST__USER_KEY   |  是   |                                              无                                               |    你的 key     |\n| CLIST_API__REQ_URL |  否   | \u003chttps://clist.by:443/api/v4/contest/?upcoming=true\u0026filtered=true\u0026order_by=start\u0026format=json\u003e |  自定义查询url  |\n\n例如在你的 `.env` 文件里：\n\n```ini\n# nonebot-plugin-oi-helper 配置\nCLIST__USERNAME=talentestors\nCLIST__USER_KEY=b4c1d76de149ef89cf0542b59a567f7c6b4af952\n# clist API 地址\n# CLIST_API__REQ_URL=\n```\n\n### 如何获取 clist 的 key？\n\n\u003cdetails\u003e\n\u003csummary\u003e点击展开\u003c/summary\u003e\n\n1. 进入 CLIST 官网：\u003chttps://clist.by/\u003e\n2. 如果你是新用户，你需要新建一个账户。\n3. 前往 \u003chttps://clist.by/api/v4/doc/\u003e 页面也可以从这里进去：\n    ![api](./docs/img/image.png)\n4. 点 _here_ 获取你的 API KEY\n    \u003e Accessing the API requires an API key, which is available to authenticated users _here_.\n\n    ![here](./docs/img/guide.png)\n\n\u003c/details\u003e\n\n### 关于 Filter\n\n\u003cdetails\u003e\n\u003csummary\u003e点击展开\u003c/summary\u003e\n\n默认的 clist 的 url 加入了，`filtered=true` 参数。\n\n这意味着你可以在你的账户里面直接配置规则，而不用设置复杂的 url 请求参数。\n\n\u003chttps://clist.by/settings/filters/\u003e\n\n点击 _create_ 去创建一个规则\n\n`Resources` 项，能筛选对应的平台。\n\n![filter](./docs/img/filter.png)\n\n\u003c/details\u003e\n\n## 🎉 使用\n\n[See docs](./docs/README.md)\n\n\n## License\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Ftalentestors%2Fnonebot-plugin-oi-helper.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Ftalentestors%2Fnonebot-plugin-oi-helper?ref=badge_large)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftalentestors%2Fnonebot-plugin-oi-helper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftalentestors%2Fnonebot-plugin-oi-helper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftalentestors%2Fnonebot-plugin-oi-helper/lists"}