是一个将 Telegram 群聊导出到静态网站的工具,可以像邮件列表存档一样保存聊天历史。
项目描述
tg-archive是一个将 Telegram 群聊导出到静态网站的工具,可以保留邮件列表存档等聊天历史记录。
预习
@fossunited Telegram群组存档。
这个怎么运作
tg-archive 使用Telethon Telegram API 客户端定期将消息从组同步到本地 SQLite 数据库(文件),仅下载自上次同步以来的新消息。然后它会生成一个静态存档网站,其中包含要在任何地方发布的消息。
特征
- 定期将电报组消息同步到本地数据库。
- 在本地下载用户头像。
- 下载和嵌入媒体(文件、文档、照片)。
- 呈现投票结果。
- 使用表情符号替代贴纸。
- 用于生成静态站点的单个文件 Jinja HTML 模板。
- 跨页面深度链接的年/月/日索引。
- 对带有跨页面父消息链接的回复进行“回复”。
- 最近消息的 RSS / Atom 提要。
安装
- 获取Telegram API 凭据。普通用户帐户 API,而不是 Bot API。
- 安装
pip3 install tg-archive(使用 Python 3.8.6 测试)。
用法
tg-archive --new --path=mysite(创建一个新站点。cd进入 mysite 并编辑config.yaml)。tg-archive --sync(将数据同步到data.sqlite)。注意:首次连接将提示您输入电话号码 + 发送到应用程序的 Telegram 身份验证码。成功验证后,将session.session创建一个文件。不要公开共享此会话文件,因为它包含您帐户的 API 授权。tg-archive --build(将静态站点构建到site目录中,可以发布)
定制
编辑目录中生成的template.html静态资产./static以自定义站点。
笔记
- 可以随时停止 (Ctrl+C) 同步,以便稍后恢复。
- 设置 cron 作业以定期同步消息并重新发布存档。
- 从大型群组连续下载大型媒体文件和长消息历史可能会遇到 Telegram API 的速率限制。观察调试输出。
在 MIT 许可下获得许可。