-
Notifications
You must be signed in to change notification settings - Fork 29
Home
Telegram Channel Bot 是一个支持多平台的 Telegram Channel/User/Group 推送机器人。
使用该 Bot 可以轻松将任意的 Twitter、Tumblr 等平台用户消息流聚合至 Telegram 频道/用户/群组中。
该 Bot 支持同时推送消息至多个频道/用户/群组(下称“聊天”),每个聊天都支持多个平台,每个平台支持多名关注用户。
直接进入 Release 页面 下载对应平台的可执行文件,解压缩后即可运行。Linux用户需要chmod +x tg_channel_bot
添加可执行位。
配置文件样例见config_example.json
,只需修改该文件即可。
Twitter 推送需要 申请 Twitter API 并获取 Token ,Tumblr 推送也需要 申请 Tumblr API 和 获取 Token(打开链接授权后Show Keys)
配置文件字段说明:
-
token
: Telegram Bot Token。使用你个人的Telegram账号向 @BotFather 发起聊天即可申请。 -
timeout
: HTTP请求超时时间(秒),设置较大值可以避免出现大体积视频无法推送的情况。建议设置为120
。 -
database
: 数据库文件保存位置,可以填写相对路径或绝对路径,建议设置为database.db
。 -
admins
: 超级管理员列表,拥有包括添加普通管理员的所有权限。请填写你自己的Telegram ID,如ihciah
。 -
fetcher_config
-
twitter
-
access_token
: 你申请到的 Twitter API 的 access_token -
access_token_secret
: 你申请到的 Twitter API 的 access_token_secret -
consumer_key
: 在 Keys and Access Tokens 页面中生成。 -
consumer_secret
: 在 Keys and Access Tokens 页面中生成。
-
-
tumblr
-
consumer_key
: 你申请到的 Tumblr OAuth Consumer Key -
consumer_secret
: 你申请到的 Tumblr OAuth Consumer Secret -
access_token
: 获取 Token -
access_token_secret
: 获取 Token Secret
-
-
配置文件修改完成后,可以改名为 config.json
,然后放在程序同目录中,直接运行程序即可。
或者你也通过 -c
参数控制配置文件路径,如 ./tg_channel_bot -c config.json
。
程序运行之后可以接受控制命令。
-
获取 Chat ID:在要获取ID的聊天中(私聊/群聊)发送
/id
。请注意,当 Bot 开启 Privacy Mode 时,需要在群组中额外 @bot 才能获得结果,即/id @your_bot
。该 Chat ID 可以替代下文的所有@channel_id
,对应地,Bot 推送的目的地会变更为 Chat ID 所对应的私聊或群聊。 -
在bot中添加 Channel:需超级管理员权限。指令为
addchannel @channel_id
,其中@channel_id
是以@
开头的你的 Channel 的ID(t.me/@channel_id)。在这一步之前,务必先将 Bot 添加为 Channel 管理员。当然@channel_id
并不局限于 Channel,你可以将@channel_id
替换为Chat ID
(数字,无@
符号)。 样例:
addchannel @test_channel
addchannel 1234567890
- 给指定 Channel 添加普通管理员: 需超级管理员权限。指令为
addadmin @channel_id username
,其中username
是待添加的管理员的用户名,开头无@
。普通管理员可以管理本Channel的关注列表。 样例:
addadmin @test_channel ihciah
- 添加关注: 普通/超级管理员。指令为
addfollow @channel_id site_name user_name
,其中site_name
是预设的网站名, 可选:twitter
,tumblr
;user_name
即对应网站的用户名。 样例:
addfollow @test_channel twitter cchaai
除这些指令外,还可以使用 delchannel
删除 channel,deladmin
删除普通管理员,delfollow
删除关注;listchannel
, listadmin
, listfollow
分别可以列出 channel,普通管理员和关注用户。
默认更新频率为 10 分钟。即每 10 分钟,对每个 channel,每个网站,每个关注用户做一次请求,所以总的请求次数为channel * site * user
,请注意 Twitter 和 Tumblr 的 API 请求限制,如 Tumblr 的限制为每小时1000次请求,每天5000次请求。
你可以使用指令 setinterval @channel_id site_name t
控制指定的 channel 指定的 site 的更新频率,t
为更新间隔秒数。样例:
setinterval @test_channel twitter 500
如果你漏掉了什么消息,可以直接重置最后更新时间。这样可以获取该时间以后的所有消息,对调试有一些帮助。指令:goback @channel_id site_name tback
,其中tback
为倒退秒数。样例:
goback @test_channel twitter 3600
缓存数据库默认7天有效,这期间重复图片/视频不会被发送。如果你讨厌的图片每隔7天出现一次,那么你可以将它(单个图片)直接转发给Bot,Bot会将其永久拉黑。
安装 supervisor
,并将修改后的 bot.conf
放在 /etc/supervisor/conf.d
中,然后 sudo supervisorctl reload
。
本项目禁止商业用途。如有困难请发 issue 或直接联系我。