# 课源 **Repository Path**: deepin20/EduMirror ## Basic Information - **Project Name**: 课源 - **Description**: EduMirror · 课源是一款基于 PyQt/Tkinter 的图形化下载工具,专为从 `ChinaTextbook` 开源项目镜像站批量下载中小学及大学教材而设计。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-01 - **Last Updated**: 2026-09-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 📚 EduMirror · 课源 **教育镜像同步工具 — 一键获取教材之源** [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/) [![GitHub release](https://img.shields.io/github/v/release/TapXWorld/EduMirror)](https://github.com/TapXWorld/EduMirror/releases) --- ## 📖 项目简介 **EduMirror · 课源** 是一款基于 PyQt/Tkinter 的图形化下载工具,专为从 `ChinaTextbook` 开源项目镜像站批量下载中小学及大学教材而设计。它支持两种下载模式: - **HTTP 模式**(推荐):通过 `wget` 递归下载镜像站 `kinnerfisch.cn` 的教材资源,国内访问速度快,支持断点续传。 - **Git 模式**:通过 `git sparse-checkout` 从 GitHub 仓库拉取,适合开发者或需要精准控制目录的场景。 无论您是教师、学生,还是海外华人家长,EduMirror 都能帮助您轻松获取国内正规教材。 --- ## ✨ 主要功能 - 🖥️ **图形化界面** – 基于 Tkinter,开箱即用,无需命令行操作。 - 📦 **双下载模式**: - **HTTP 模式**(默认):使用 `wget` 递归下载,自动续传,适合国内网络。 - **Git 模式**:利用 Git 稀疏检出,按需下载指定学段/科目。 - 📂 **按需选择** – 可勾选 `小学`、`初中`、`高中` 或具体科目,避免下载全部教材。 - 📄 **自动合并 PDF** – 自动识别并合并拆分文件(如 `.pdf.1`, `.pdf.2`),还原完整教材。 - 🔐 **MD5 校验** – 生成每个 PDF 文件的 MD5 校验和,便于验证完整性(仅记录,不强制)。 - ⏯️ **断点续传** – HTTP 模式下支持 `-c` 参数,中断后重新启动可继续下载。 - 📊 **实时进度** – 进度条显示当前下载百分比,日志窗口输出详细过程。 - 🛑 **安全停止** – 可随时中断下载,已下载部分保留,下次继续。 - 💤 **自动关机** – 可选下载完成后自动关机(二次确认)。 --- ## 🖥️ 系统要求 - **操作系统**:Linux、macOS、Windows(需安装 Git Bash 或 WSL 以支持 wget) - **Python 版本**:3.8 或更高 - **依赖组件**: - `git`(Git 模式必需,HTTP 模式可选) - `wget`(HTTP 模式必需,Linux/macOS 通常预装,Windows 需单独安装) --- ## 📥 快速开始 ### 1. 克隆项目 ```bash git clone https://github.com/TapXWorld/EduMirror.git cd EduMirror ``` ### 2. 安装依赖 ```bash pip install -r requirements.txt ``` ### 3. 启动程序 - **Linux/macOS**: ```bash chmod +x run.sh ./run.sh ``` - **Windows**:双击 `run.bat` 或在命令行运行 `python main.py` ### 4. 使用界面 - 在 **“目标目录”** 选择教材存放位置(默认 `EduMirror_Textbooks`)。 - 在 **“镜像源”** 选择或输入镜像地址(HTTP 模式无需设置)。 - 在 **“内容筛选”** 勾选需要下载的学段/科目。 - 在 **“下载控制”** 选择 **模式**(推荐 `http`),点击 **“开始/继续”**。 - 观察日志和进度条,等待下载完成。 --- ## ⚙️ 配置说明 首次运行会自动生成 `config.yaml`,常用配置项如下: ```yaml target_directory: /path/to/your/books # 下载目录 mirror_url: https://gitclone.com/github.com/ # Git 模式镜像 selected_paths: # 勾选的学段 - 小学 - 初中 - 高中 download_mode: http # 下载模式: http 或 git auto_merge_pdf: true # 自动合并拆分 PDF enable_md5_check: true # 生成 MD5 校验和 auto_shutdown: false # 完成后关机 max_retries: 5 # Git 模式重试次数 ``` 您可以直接编辑此文件自定义设置,或通过界面修改(会自动保存)。 --- ## ❓ 常见问题 ### Q: 下载很慢或失败怎么办? - **HTTP 模式**:请检查网络,或更换镜像站(程序默认使用 `kinnerfisch.cn`,也可手动输入其他镜像地址)。 - **Git 模式**:国内镜像(如 `gitclone.com`)可能不可用,请尝试切换镜像源或使用直连(需科学上网)。 ### Q: 如何只下载某一本书? - 在界面树形结构中展开目录,取消不需要的科目勾选,仅保留需要的即可。 ### Q: 下载中途退出,下次能继续吗? - **HTTP 模式**:支持断点续传,重新启动后点击“开始”即可继续。 - **Git 模式**:也支持断点续传(Git fetch 会复用已下载对象)。 ### Q: wget 命令不存在? - Linux/macOS:`sudo apt install wget` 或 `brew install wget` - Windows:下载 [wget for Windows](https://eternallybored.org/misc/wget/) 并放入系统 PATH,或使用 Git Bash(自带 wget)。 ### Q: 合并 PDF 失败? - 检查是否所有拆分片段(`.pdf.1`, `.pdf.2` ...)都已完整下载。程序会自动合并,若失败会记录在日志中,可手动使用 `merge_pdfs.py` 工具处理。 --- ## 🤝 贡献与反馈 欢迎提交 Issue 或 Pull Request!如果您有好的建议或发现 Bug,请到 [GitHub Issues](https://github.com/TapXWorld/EduMirror/issues) 反馈。 --- ## 📄 开源协议 本项目采用 [MIT License](LICENSE),您可以自由使用、修改和分发。 --- ## 🙏 致谢 - 感谢 [ChinaTextbook](https://github.com/TapXWorld/ChinaTextbook) 项目提供的教材资源。 - 感谢所有为教育资源共享做出贡献的开发者。 --- **EduMirror · 课源** —— 让教育触手可及。