全球主机交流论坛

标题: 《已搞定》求屌大mjj帮忙写个tg机器人✅✅ [打印本页]

作者: 度百    时间: 2024-11-18 18:18
标题: 《已搞定》求屌大mjj帮忙写个tg机器人✅✅
本帖最后由 度百 于 2024-11-25 10:57 编辑

我有个telegram机器人需求,就是实时转发某个频道消息到指定群组,转发内容需要支持频道的图片、视频、文本、文件等(平时多是文本),需要完全都转发过去。频道和群组都能设置机器人为管理员权限。

有空的mjj老哥求帮助,费用不要太高啊
作者: 落叶    时间: 2024-11-18 18:22
前两天刚用ai写了一个
作者: 度百    时间: 2024-11-18 18:23
落叶 发表于 2024-11-18 18:22
前两天刚用ai写了一个


作者: 洪河的红水    时间: 2024-11-18 18:26
不是直接在群组关联频道之后,在频道发的信息会自动转发到群里吗
作者: 落叶    时间: 2024-11-18 18:26
度百 发表于 2024-11-18 18:23

@sfdatou 来TG联系我 给你挂上测试 满意的话 再说
作者: 落叶    时间: 2024-11-18 18:27
洪河的红水 发表于 2024-11-18 18:26
不是直接在群组关联频道之后,在频道发的信息会自动转发到群里吗

关联需要权限 他应该是想要转发其他人的消息 然后到自己群组 我就是这个需求 自己写了个 现在稳定运行着
作者: deyu    时间: 2024-11-18 18:57
落叶 发表于 2024-11-18 18:27
关联需要权限 他应该是想要转发其他人的消息 然后到自己群组 我就是这个需求 自己写了个 现在稳定运行着 ...

啊 我也想搞一个, 可惜不会写
作者: 落叶    时间: 2024-11-18 19:50
deyu 发表于 2024-11-18 18:57
啊 我也想搞一个, 可惜不会写

如果都是自己群的话 建个机器人都行 不是自己群的话 想要转发别的群 要不然自己手动 要不然申请API自己写代码
作者: z先生    时间: 2024-11-18 20:17
既然两边都能设置成管理员,那就都是自己的,把群组和频道关联一起不就行了
作者: RPRX    时间: 2024-11-18 20:23
我可以借,有需要可以私信我
作者: 耳阝鱼禾    时间: 2024-11-18 22:15
本帖最后由 耳阝鱼禾 于 2024-11-18 22:18 编辑

  1. from telegram import Update
  2. from telegram.ext import Updater, MessageHandler, Filters, CallbackContext
  3. import logging
  4. import pickle
  5. import os
  6. from datetime import datetime, timedelta
  7. import pytz
  8. logging.basicConfig(level=logging.INFO)

  9. BOT_TOKEN = 'BOT KEY'                    #你的电报机器人KEY
  10. CHANNEL_ID = '频道ID'                      #你要监听的频道ID
  11. GROUP_ID = '群组ID'                           #将频道内容转发到这个群组的  群组ID

  12. PROCESSED_MESSAGES_FILE = 'processed_messages.pkl'
  13. def load_processed_messages():
  14.     if os.path.exists(PROCESSED_MESSAGES_FILE):
  15.         with open(PROCESSED_MESSAGES_FILE, 'rb') as f:
  16.             return pickle.load(f)
  17.     return set()
  18. def save_processed_message(message_id):
  19.     processed_messages.add(message_id)
  20.     with open(PROCESSED_MESSAGES_FILE, 'wb') as f:
  21.         pickle.dump(processed_messages, f)
  22.     os.chmod(PROCESSED_MESSAGES_FILE, 0o777)
  23. def reset_processed_messages():
  24.     global processed_messages
  25.     processed_messages = set()
  26.     save_processed_message(None)
  27. def is_today_message(message_date):
  28.     beijing_tz = pytz.timezone('Asia/Shanghai')
  29.     now_beijing = datetime.now(beijing_tz)
  30.     message_date_beijing = message_date.astimezone(beijing_tz)
  31.     return message_date_beijing.date() == now_beijing.date()
  32. processed_messages = load_processed_messages()
  33. def forward_message(update: Update, context: CallbackContext):
  34.     if update.channel_post and update.channel_post.chat.id == int(CHANNEL_ID):
  35.         message_id = update.channel_post.message_id
  36.         message_date = update.channel_post.date
  37.         if is_today_message(message_date) and message_id not in processed_messages:
  38.             context.bot.forward_message(chat_id=GROUP_ID, from_chat_id=CHANNEL_ID, message_id=message_id)
  39.             save_processed_message(message_id)
  40. def main():
  41.     updater = Updater(token=BOT_TOKEN, use_context=True)
  42.     dispatcher = updater.dispatcher
  43.     channel_handler = MessageHandler(Filters.chat(int(CHANNEL_ID)), forward_message)
  44.     dispatcher.add_handler(channel_handler)
  45.     updater.job_queue.run_daily(reset_processed_messages, time=datetime.time(0, 0, 0, tzinfo=pytz.timezone('Asia/Shanghai')))
  46.     updater.start_polling()
  47.     updater.idle()
  48. if __name__ == '__main__':
  49.     main()
复制代码



# 安装方式用宝塔或者1panel的话
# 将代码在网站目录下创建 bot.py 文件
# 例如宝塔路径 /www/wwwroot/telegram/bot.py

# SSH 连接服务器

#安装python3环境

  1. sudo apt update
复制代码
  1. sudo apt install python3-pip
复制代码


# CD到代码路径的目录

  1. cd /www/wwwroot/telegram/
复制代码


#在代码路径的目录下 安装依赖

  1. pip install python-telegram-bot pytz
复制代码
  1. pip3 install -r requirements.txt
复制代码


查询环境
  1. python3 --version
复制代码
  1. pip3 --version
复制代码


确保环境没问题后

开机自启,到宝塔 计划任务  创建任务  每小时执行一次

写入以下内容
  1. pkill -f bot.py
  2. cd /www/wwwroot/telegram
  3. nohup python3 bot.py &
复制代码


作者: deyu    时间: 2024-11-18 22:39
落叶 发表于 2024-11-18 19:50
如果都是自己群的话 建个机器人都行 不是自己群的话 想要转发别的群 要不然自己手动 要不然申请API自己写 ...


不是自己的群只能申请api来搞吗
https://my.telegram.org/auth  这个是不是申请链接
作者: 落叶    时间: 2024-11-19 09:26
deyu 发表于 2024-11-18 22:39
不是自己的群只能申请api来搞吗
https://my.telegram.org/auth  这个是不是申请链接 ...

对 不是自己的群 只能申请api来转发 像上面有人发的那个代码 是通过机器人的 但是机器人除非两个群都是管理 不然机器人是没有读取权限的 转发不了的 不通过机器人的话 只能通过api
作者: 度百    时间: 2024-11-19 11:05
落叶 发表于 2024-11-18 18:26
@sfdatou 来TG联系我 给你挂上测试 满意的话 再说

老哥我给你发消息了
作者: 度百    时间: 2024-11-19 11:06
洪河的红水 发表于 2024-11-18 18:26
不是直接在群组关联频道之后,在频道发的信息会自动转发到群里吗

已经关联群组了,需要另外一个频道发布的也同步到群里
作者: 度百    时间: 2024-11-19 11:08
z先生 发表于 2024-11-18 20:17
既然两边都能设置成管理员,那就都是自己的,把群组和频道关联一起不就行了 ...

两个频道同步到一个群,好像不能多个关联
作者: Jianrry    时间: 2024-11-19 12:48
本帖最后由 Jianrry 于 2024-11-19 12:50 编辑

正好路过,帮忙顶一下帖子,让更多人可以看到。

我和楼主合作过,楼主是我在 hostloc 认识的第一个客户,楼主付款很爽快。

之前楼主在 hostloc 发了一个 cdnfly 的付费贴,最后是我接的单子,合作很愉快。

昨天楼主也因为这个单子联系了我,我最近工作很忙,没空余时间接单。

于是就让他发帖求助 hostloc 里的各位大佬了,也欢迎大家接单。
作者: 度百    时间: 2024-11-19 12:53
耳阝鱼禾 发表于 2024-11-18 22:15
# 安装方式用宝塔或者1panel的话
# 将代码在网站目录下创建 bot.py 文件
# 例如宝塔路径 /www/wwwroot/t ...

老哥这个错误了
pip3 install -r requirements.txt

执行时候


作者: rqp    时间: 2024-11-19 13:00
落叶 发表于 2024-11-18 18:22
前两天刚用ai写了一个

ai写的好用吗?
作者: 落叶    时间: 2024-11-19 14:47
rqp 发表于 2024-11-19 13:00
ai写的好用吗?

写出来之后 作为参考 之后还是得自己修改才能用
作者: rqp    时间: 2024-11-19 14:49
本帖最后由 rqp 于 2024-11-20 09:57 编辑
落叶 发表于 2024-11-19 14:47
写出来之后 作为参考 之后还是得自己修改才能用


但至少大架构出来了
不用全部自己码
作者: 一捏是她    时间: 2024-11-19 14:50
不难.看楼里人多让了。,
作者: Jianrry    时间: 2024-11-19 15:08
度百 发表于 2024-11-19 12:53
老哥这个错误了
pip3 install -r requirements.txt


requirements.txt 记录 python 的依赖和版本,执行命令时缺少这个文件当然会报错。

上面的那位老哥没有提供 requirements.txt,你 at 他一下让他提供一下 requirements.txt 。

或者你从下面的代码里面,推导出需要安装的依赖和版本,自己手动安装一下就可以了。

  1. from telegram import Update
  2. from telegram.ext import Updater, MessageHandler, Filters, CallbackContext
  3. import logging
  4. import pickle
  5. import os
  6. from datetime import datetime, timedelta
  7. import pytz
复制代码

  1. pip3 install 依赖名 -y
复制代码

作者: hcc    时间: 2024-11-19 15:15
有管理员权限就简单了
作者: 度百    时间: 2024-11-19 16:19
Jianrry 发表于 2024-11-19 15:08
requirements.txt 记录 python 的依赖和版本,执行命令时缺少这个文件当然会报错。

上面的那位老哥没有 ...

不懂代码看的有点懵
作者: 度百    时间: 2024-11-19 16:20
hcc 发表于 2024-11-19 15:15
有管理员权限就简单了

频道和群的id都有
作者: 度百    时间: 2024-11-20 13:31
Jianrry 发表于 2024-11-19 15:08
requirements.txt 记录 python 的依赖和版本,执行命令时缺少这个文件当然会报错。

上面的那位老哥没有 ...

感谢老哥,启动成功了,但是没法转发
作者: jacob    时间: 2024-11-20 13:33
我认识一个人有
作者: 薛之谦    时间: 2024-11-20 13:33
太简单了
作者: 度百    时间: 2024-11-20 14:22
jacob 发表于 2024-11-20 13:33
我认识一个人有

大佬哪个
作者: 度百    时间: 2024-11-20 14:23
薛之谦 发表于 2024-11-20 13:33
太简单了

。。。。。流下了没有技术的泪水
作者: 度百    时间: 2024-11-20 16:23

作者: Jianrry    时间: 2024-11-20 17:14
这个单子看起来不难,几天时间都没有搞定吗?
作者: 度百    时间: 2024-11-20 17:22
Jianrry 发表于 2024-11-20 17:14
这个单子看起来不难,几天时间都没有搞定吗?

没搞定,中间那个老哥给的代码运行了,但是不会执行转发,不知道为啥




欢迎光临 全球主机交流论坛 (https://d.168530.xyz/) Powered by Discuz! X3.4