logo
0
0
WeChat Login
📝 docs: 重写 README 文档

LeetCode Daily

自动获取 LeetCode 每日一题(中文站 + 英文站),保存为结构化的本地 Markdown 文件

Python uv License

快速开始 · 使用方法 · 输出格式 · 项目结构 · 开发

特性

  • 同时支持 LeetCode 中文站(leetcode.cn)和英文站(leetcode.com)
  • 题目自动转换为 Markdown 格式,包含题目正文、提示、官方题解
  • 按年月自动归档,文件名包含日期、题号、slug 和站点标识
  • 支持 CI 定时任务,每天自动抓取并提交
  • 基于 httpx 异步并发请求,快速获取双站数据

快速开始

环境要求

  • Python >= 3.12
  • uv 包管理器

安装

git clone https://cnb.cool/wwvo/leetcode_daily.git cd leetcode_daily uv sync

运行

uv run leetcode-daily

使用方法

命令说明
uv run leetcode-daily获取中英文站每日一题(默认)
uv run leetcode-daily --cn仅获取中文站
uv run leetcode-daily --en仅获取英文站
uv run leetcode-daily -o ./my-data指定输出目录(默认 data
uv run leetcode-daily -v启用详细日志

输出格式

目录结构

data/ └── 202602/ ├── 2026-02-28_1680_concatenation-of-consecutive-binary-numbers_cn.md └── 2026-02-28_1680_concatenation-of-consecutive-binary-numbers_en.md

文件按 {YYYYMM} 年月分目录存放,文件名格式为 {日期}_{题号}_{slug}_{cn|en}.md

Markdown 文件内容

每个生成的 Markdown 文件包含:

  • 题目标题 — 题号 + 名称
  • 元数据表 — 日期、难度(🟢🟡🔴)、标签、来源站点、原题链接
  • 题目正文 — HTML 自动转换为 Markdown
  • 提示 (Hints) — 如有
  • 官方题解 (Solution) — 如有(付费题解会提供社区题解链接)

项目结构

src/leetcode_daily/ ├── __init__.py # 版本号定义 ├── api.py # LeetCode GraphQL API 封装(中文站 + 英文站) ├── main.py # CLI 入口,参数解析与异步调度 └── storage.py # Markdown 生成与本地文件存储 tests/ ├── test_api.py # API 模块单元测试 └── test_storage.py # 存储模块单元测试

开发

# 安装开发依赖 uv sync # 运行测试 uv run pytest tests/ -v

CI 自动化

项目通过 CNB 流水线 实现自动化:

  • Push / PR — 自动运行测试
  • 每日定时任务 — 每天 08:00(Asia/Shanghai)自动抓取每日一题并提交到仓库

依赖

用途
httpx异步 HTTP 客户端
markdownifyHTML 转 Markdown

License

Apache License 2.0