99 lines
1.8 KiB
Markdown
99 lines
1.8 KiB
Markdown
![]() |
# 🧰 luogu-cli – 洛谷命令行工具
|
|||
|
|
|||
|
一个用 Python 编写的命令行工具,用于从 [洛谷(Luogu)](https://www.luogu.com.cn) 下载题目描述、样例输入输出、题解等内容,方便本地学习与练习。
|
|||
|
|
|||
|
---
|
|||
|
|
|||
|
## 📦 功能特性
|
|||
|
|
|||
|
- ✅ `lgcli parse PID`:下载指定题目的题面、样例和题解
|
|||
|
- ✅ `lgcli view PID`:在终端中查看题目描述(支持 Markdown 渲染)
|
|||
|
- ✅ `lgcli solution PID`:列出所有题解或查看某一篇详细内容
|
|||
|
- ✅ 使用 `rich` 渲染终端 Markdown,支持彩色样式
|
|||
|
- ✅ 支持打包为单文件 `.exe`(通过 PyInstaller)
|
|||
|
|
|||
|
---
|
|||
|
|
|||
|
## 🧩 依赖库
|
|||
|
|
|||
|
确保你已安装以下 Python 包:
|
|||
|
|
|||
|
```bash
|
|||
|
pip install rich requests beautifulsoup4 python-dotenv
|
|||
|
```
|
|||
|
|
|||
|
---
|
|||
|
|
|||
|
## ⚙️ 配置 Cookie
|
|||
|
|
|||
|
你需要先登录洛谷官网,并获取以下 Cookie 值填入 `.env` 文件中:
|
|||
|
|
|||
|
```env
|
|||
|
CLIENT_ID=你的client_id
|
|||
|
UID=你的uid
|
|||
|
CF_CLEARANCE=你的cf_clearance
|
|||
|
C3VK=你的c3vk
|
|||
|
```
|
|||
|
|
|||
|
> 注意:这些值可以在浏览器开发者工具的“Application > Cookies”中找到。
|
|||
|
|
|||
|
---
|
|||
|
|
|||
|
## 🚀 使用方式
|
|||
|
|
|||
|
### 1. 下载题目信息
|
|||
|
|
|||
|
```bash
|
|||
|
python main.py parse P1145
|
|||
|
```
|
|||
|
|
|||
|
这会创建一个以题目编号命名的目录(如 `P1145/`),包含:
|
|||
|
- `P1145.md`:题面描述
|
|||
|
- `samples/`:样例输入输出
|
|||
|
- `solutions/`:题解 Markdown 文件
|
|||
|
|
|||
|
---
|
|||
|
|
|||
|
### 2. 查看题目描述
|
|||
|
|
|||
|
```bash
|
|||
|
python main.py view P1145
|
|||
|
```
|
|||
|
|
|||
|
使用 `rich` 在终端中渲染 Markdown 格式的题目内容。
|
|||
|
|
|||
|
---
|
|||
|
|
|||
|
### 3. 查看题解列表或具体内容
|
|||
|
|
|||
|
```bash
|
|||
|
python main.py solution P1145
|
|||
|
```
|
|||
|
|
|||
|
列出所有题解标题:
|
|||
|
|
|||
|
```
|
|||
|
可用题解:
|
|||
|
1. 题解1_xxxxx
|
|||
|
2. 题解2_yyyyyy
|
|||
|
```
|
|||
|
|
|||
|
查看具体题解内容:
|
|||
|
|
|||
|
```bash
|
|||
|
python main.py solution P1145 --id 题解1_xxxxx
|
|||
|
```
|
|||
|
|
|||
|
---
|
|||
|
|
|||
|
## 🚗 下一步发展
|
|||
|
|
|||
|
- 📝 提交代码
|
|||
|
- 🚩参加比赛
|
|||
|
- ...
|
|||
|
|
|||
|
---
|
|||
|
|
|||
|
## 📜 许可证
|
|||
|
|
|||
|
本项目采用 LGPL License。
|