Skip to content

JanuaryEleX/tg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

快速开始

本脚本可在 Telegram 的收藏夹(已保存消息)、任意群组或频道之间按时间顺序转发消息,支持断点续传与限流控制,并可选择顺序或倒序转发。

1. 环境要求

  • Python 3.8+
  • 安装依赖:pip install telethon pysocks

2. 申请 Telegram API 信息

  1. 打开 https://my.telegram.org 使用你的账号登录。
  2. 进入 “API Development Tools”,创建应用后获得 api_idapi_hash

3. 准备配置(config.json)

将以下示例保存为项目根目录的 config.json 并按需修改:

{
  "api_id": 123456,
  "api_hash": "0123456789abcdef0123456789abcdef",
  "phone_number": "+86你的手机号",
  "source_peer": "me",
  "target_peer": "@target_group_or_channel",
  "forward_oldest_first": true,
  "resume_enabled": true,
  "session_file": "session_name",
  "send_interval_seconds": 1.0,
  "loop_delay_seconds": 0.2,
  "proxy": { "enabled": false, "protocol": "socks5", "address": "127.0.0.1", "port": 7890 }
}

小贴士:

  • source_peertarget_peer 支持 "me"(收藏夹)、群组/频道用户名、邀请链接或带符号的数值 ID(如 -100xxxx)。
  • forward_oldest_first 控制转发顺序(true:最旧→最新,false:最新→最旧)。如未配置,默认为顺序转发。
  • resume_enabled 控制是否启用断点续传,关闭后每次都会从配置的起点重新转发。
  • send_interval_seconds 可在频控场景下调大(建议 2~5 秒)。

4. 运行脚本

  • 基础运行:python forward_saved_to_group.py
  • 首次运行需按照提示完成手机号验证码与二次验证登录。
  • 程序会按选择的顺序从来源对话转发到目标对话,直至抵达末尾或达到限制条件。

5. 常用参数

  • 指定起始 ID:python forward_saved_to_group.py --start-from 5000
  • 限定条数:python forward_saved_to_group.py --limit 20(传入 0 表示转发全部)
  • 模拟运行:python forward_saved_to_group.py --dry-run
  • 自定义配置:python forward_saved_to_group.py --config config.prod.json

6. 状态与限流

  • state.json 会按来源对话分别记录 last_idwait_until,支持断点续传。
  • 命中 Telegram 频控时会自动等待;如需重置,可删除对应来源的状态条目。

7. 常见问题

  • 日志提示等待 N 秒:说明触发频控,等待结束后自动继续。
  • 目标对话未收到消息:确认配置正确且账号已加入目标并拥有发言权限。
  • 中文显示异常:Windows 终端可执行 chcp 65001 或设置 PYTHONIOENCODING=utf-8

8. 目录结构

  • forward_saved_to_group.py:核心脚本。
  • config.example.json:配置示例。
  • config.json:你的实际配置。
  • state.json:断点信息与限流等待时间。
  • gui_forwarder.py:图形界面启动器,便于快速配置与观察日志。

9. 图形界面(可选)

  • 运行 python gui_forwarder.py 打开桌面窗口。
  • GUI 支持在界面填写 API ID、API Hash、手机号、Session 名称及代理等参数,点击“保存配置”即可生成 JSON 配置文件。
  • “启用断点续传”开关可直接控制是否沿用 state.json 中的断点。
  • 来源/目标下拉框提供“收藏夹 / 已保存消息”与“自定义输入”两种模式;自定义时可填写用户名、链接或数值 ID,实现收藏夹 ↔ 群组 ↔ 频道的任意组合。
  • “转发顺序”下拉框可选择顺序转发(最旧→最新)或倒序转发(最新→最旧)。
  • “转发条数”支持输入 0 表示全部,或指定正整数实现限量发送。
  • 可填写起始消息 ID 并勾选“仅模拟运行”,点击“开始转发”即可执行。
  • “发送停止指令”会发出安全停止请求,任务会在当前批次处理完成后优雅退出。
  • 下方日志窗口实时滚动输出运行信息,便于排查问题。

如需更复杂的调度(多来源、多目标策略等),可在此基础上扩展或编排多个任务脚本。

10. 更新日志

  • 2025-09-22:GUI 支持填写并保存配置文件,新增顺序/倒序转发、断点续传开关与条数控制。
  • 2025-09-21:核心脚本支持收藏夹、群组、频道互转,引入 forward_oldest_first 与“0 条数等于全部”的处理逻辑。
  • 2025-09-20:发布首个版本,提供从收藏夹到群组的断点续传转发。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages