3.0 KiB
3.0 KiB
Wiki Sync Tool
一个用于同步和跟踪 MediaWiki 网站变更的 Python 工具。该工具可以自动获取 wiki 页面的最新更改,生成易于阅读的 diff 文件,并保存页面的完整内容以供离线查阅。
功能特点
- 🔄 自动同步 MediaWiki 网站的最新更改
- 📝 生成带语法高亮的 HTML diff 文件,清晰展示变更内容
- 💾 保存页面完整内容供离线查阅
- ⏰ 支持增量同步,只获取上次同步后的新变更
- 🔍 支持按时间点或特定页面进行同步
- 📁 自动组织输出文件到时间戳目录
安装
- 确保你已经安装了 Python 3.6+
- 克隆此仓库:
git clone <repository-url> cd wiki-sync-tool - 安装依赖:
pip install requests python-dotenv
配置
创建一个 .env 文件并配置你的 MediaWiki API 地址:
WIKI_API_URL=https://your-wiki-site.com/api.php
或者复制提供的示例配置文件:
cp .env.example .env
然后编辑 .env 文件中的 WIKI_API_URL 值。
使用方法
基本全量同步
同步自上次运行以来的所有更改:
python sync.py --run
首次运行时,会同步过去 24 小时内的更改。
指定时间起点同步
从指定时间开始同步:
python sync.py --since 2025-11-28T00:00:00Z --run
同步特定页面
只同步特定页面的最新更改:
python sync.py --title "Main Page" --run
同步特定页面并更新时间戳
同步特定页面并在完成后更新全局时间戳:
python sync.py --title "Main Page" --update-timestamp --run
查看帮助
python sync.py --help
输出文件
每次运行都会在 wiki_sync_output 目录下创建一个以时间戳命名的子目录,包含生成的文件:
页面标题-时间戳-revid.diff.html- 页面变更的 HTML diff 文件页面标题-时间戳-revid.full.txt- 页面的完整内容
Diff 文件示例
Diff 文件展示了页面的变更内容,具有以下特性:
- 绿色背景表示新增内容
- 红色背景表示删除内容
- 左侧彩色竖线标识变更类型
- +/- 标记清晰显示变更位置
- 删除内容带有删除线效果
技术细节
Diff 标记说明
工具会对 MediaWiki 的原生 diff 输出进行处理:
- 将
<ins>和<del>标签转换为标准的<span>标签 - 将
data-marker属性转换为实际的 +/- 符号 - 应用自定义 CSS 样式增强视觉效果
目录组织
wiki_sync_output/
├── 20251203_152702/
│ ├── Main_Page-20251203_152645-12345.diff.html
│ ├── Main_Page-20251203_152645-12345.full.txt
│ ├── Another_Page-20251203_152650-12346.diff.html
│ └── Another_Page-20251203_152650-12346.full.txt
└── 20251203_153127/
└── ...
许可证
MIT License
贡献
欢迎提交 Issue 和 Pull Request。
