【有趣的github项目】tgblog-在网页上显示 Telegram 频道
本文最后更新于 2024-07-30,
若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益, 请联系我 删除。
本站只有Telegram群组为唯一交流群组, 点击加入
文章内容有误?申请成为本站文章修订者或作者? 向站长提出申请
这个项目用于将电报(或任何兼容的)频道数据显示为交互式网页的前端。
项目地址:https://github.com/one-among-us/tg-blog
数据格式在models.ts中指定,可以使用TelegramBackup生成。
RSS机器人推送消息到指定频道:https://poiblog.com/archives/OuaXMD4C
Telegram备份
先备份telegram频道的数据
项目地址:https://github.com/one-among-us/TelegramBackup?tab=readme-ov-file
用法
安装
首先,安装 Python >= 3.11
。然后,运行 pip install tgc
然后,为了支持视频/动画/贴纸转换,您必须安装以下非 Python 依赖项:
- 安装 Node 19.2 和 yarn 1.22
yarn global add puppeteer-lottie-cli
ffmpeg
使用系统包管理器安装
模式一:转换电报导出
如果只需要一次性导出,则可以使用模式 1。为此,首先需要使用tdesktop导出一个频道。
要将导出文件转换为tg-blog支持的格式,您可以运行 tgce <export path>
模式二:使用 MTProto API 爬取频道
如果您有权限向频道添加机器人账户,或邀请自机器人账户,则可以使用 MTProto 爬虫进行自动增量导出更新。(请不要登录您自己的 Telegram 帐户进行抓取,因为很有可能被误归类为垃圾邮件并被禁止)
使用这种方式可以自动增量更新通道备份,信息会更完整,但设置起来比方式一更困难。
设置 API 密钥
- 获取
api_id
并api_hash
创建你的 Telegram 应用程序(官方指南)- 登录https://my.telegram.org/apps
- 填写表格以创建申请
- 或者,如果您为了方便而想要违反 Telegram 的 EULA,您可以将其留空以使用 Telegram 官方客户端的 API 哈希,风险自负。
- 选择登录的账户类型:
- 机器人账户:使用@BotFather机器人创建机器人。
- 自助机器人帐户:留空
bot_token
,它会提示您登录。您只应在您不是频道管理员时使用自助机器人(因为邀请机器人需要管理员权限)。
- 填写 token
~/.config/tgc/config.toml
如果没有文件,请先创建对应文件夹和文件
设置完密钥后,就可以进行频道设置了:
设置要抓取的渠道
- 邀请你的机器人加入频道,或使用你自己的机器人账户加入频道(必须)
- 将频道消息转发给@RawDataBot以获取频道 ID。(您将看到 JSON 响应,并可以从字段中找到 ID
forward_from_chat
) - 填写频道信息,
~/.config/tgc/config.toml
如下图所示
所有设置完成后,您就可以继续运行爬虫了。
运行爬虫
只需运行 tgc
命令即可。
附加配置
您可以为每个导出条目设置附加配置,如下所示:
参数 | 描述 | 类型 |
---|---|---|
size_limit_mb |
限制下载文件大小(跳过大文件) | 浮动 |
RSS 提要生成
如果您想生成RSS feed,您可以在导出条目下添加以下内容:
使用 GitHub Actions 自动更新
如果您想使用 GitHub Actions 自动备份/同步电报频道数据,您可以这样做。
- 创建您的
config.toml
- Fork https://github.com/hykilpikonna/blog-data
- 在 GitHub 的“设置”选项卡中,创建一个名为的Secret
TGC_CONFIG
,并将您的粘贴config.toml
那里。 - 请记住将 a 设置
size_limit_mb
为 100 以下,这样 git lfs 就不会因推送大文件而发出警告。
支持状态
功能支持
- 所有文本格式(包括剧透)
- @用户名,#标签
- 转发自、回复至(可点击)
- 地图!(位置共享)
- 民意调查(仅显示结果,无法投票)
- 联系方式
- 搜索、标签搜索
媒体支持
- 贴纸、动画贴纸 (webm 和 tgs)
- 自定义表情符号、动画自定义表情符号
- 视频、gif 动画
- 文件
- 音频、语音信息(包括音频播放器)
- 媒体团体
- 图像查看和平铺
- 媒体剧透(图片、视频、gif)
前端安装
在纯 HTML 中使用
你可以在纯 HTML 中使用它,无需现代 Web 构建工具:
在 Hexo 博客中使用
根据主题的 CSS,可能需要进行一些修改才能正常工作。例如,Icalm 主题需要进行这些修改。
但是,您可以按照以下格式将页面添加为 markdown:
在 Vite 中使用
您还可以使用 vite 等现代构建工具将其导入到您的项目中:
1.安装依赖项
2. 在 main.ts
3. 在您的 中 vite.config.ts
,您应配置重复数据删除 vue
4. 导入组件
组件
博客
您只需指定一个选项:posts-url
,它应该指向 posts.json
您的博客数据。
您可以 posts.json
使用TelegramBackup生成
选项
选项 | 描述 |
---|---|
posts-url |
指向您的博客数据 posts.json 文件的 HTTP 链接 |
图像查看器(内部)
如果您只想要图像查看器功能,您可以导入此模块。