简单 Telegram Python 机器人,可自动将消息从一个聊天转发到另一个聊天。
电报转发器
一个在 Python3 上运行的简单 Telegram Python 机器人,可自动将消息从一个聊天转发到另一个聊天。
从 V1 迁移
v2 使用不同的配置文件格式。请参阅 部分了解更多信息。如果配置文件的格式不正确,机器人将不会启动。
启动机器人
一旦您完成配置(见下文),只需运行:
python -m forwarder
或诗歌(推荐)
poetry run forwarder
设置机器人(启动机器人之前请阅读以下说明!):
Telegram Forwarder 仅支持 Python 3.9 及更高版本。
配置
机器人工作必须有两个文件,.env
以及chat_list.json
.
.env
模板环境可以在 中找到sample.env
。将其重命名为.env
并填写值:
-
BOT_TOKEN
– Telegram 机器人令牌。您可以从@BotFather获取它 -
OWNER_ID
– 由您的所有者 ID 组成的整数。 -
REMOVE_TAG
True
-如果要从转发的消息中删除标签(“从 xxxxx 转发”),请设置为。
chat_list.json
模板 chat_list 可以在 中找到chat_list.sample.json
。将其重命名为chat_list.json
.
该文件包含转发消息的聊天列表。机器人期望它是具有以下结构的对象数组:
[
{
"source": -10012345678,
"destination": [-10011111111, "-10022222222#123456"]
},
{
"source": "-10087654321#000000", // Topic/Forum group
"destination": ["-10033333333#654321"]
}
]
-
source
– 要转发消息的聊天的聊天 ID。它可以是一个组或一个频道。如果源聊天是主题组,则必须显式指定主题 ID。如果未指定主题 ID,机器人将忽略来自主题组的传入消息。
-
destination
– 用于转发消息的聊天 ID 数组。它可以是一个组或一个频道。Destination 支持主题聊天。您可以使用
#topicID
字符串转发到特定主题。例子:[-10011111111, "-10022222222#123456"]
。通过此配置,它将转发到 chat-10022222222
with topic123456
和 chat-10011111111
。
您可以添加任意数量的对象。机器人会将来自该source
字段中所有聊天的消息转发到该字段中的所有聊天destination
。允许重复,因为它已经由机器人处理。
Python 依赖项
通过移动到项目目录并运行来安装必要的 python 依赖项:
poetry install --only main
或用点
pip3 install -r requirements.txt
这将安装所有必需的 python 软件包。
在 Docker 容器中启动
要求
- 码头工人
- 码头工人组成
启动前请确保所有配置均已完成(.env
和chat_list.json
)!
然后,只需运行命令:
docker compose up -d
可以通过以下命令查看日志:
docker compose logs -f