主机论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 334|回复: 19

....求屌大mjj帮忙写个tg机器人✅✅

[复制链接]

27

主题

1445

回帖

3941

积分

论坛元老

Rank: 8Rank: 8

积分
3941
发表于 3 天前 | 显示全部楼层 |阅读模式
本帖最后由 度百 于 2024-11-18 18:20 编辑

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

有空的mjj老哥求帮助,费用不要太高啊
回复

使用道具 举报

4

主题

36

回帖

130

积分

注册会员

Rank: 2

积分
130
发表于 3 天前 | 显示全部楼层
前两天刚用ai写了一个
回复

使用道具 举报

27

主题

1445

回帖

3941

积分

论坛元老

Rank: 8Rank: 8

积分
3941
 楼主| 发表于 3 天前 | 显示全部楼层
落叶 发表于 2024-11-18 18:22
前两天刚用ai写了一个

回复

使用道具 举报

4

主题

162

回帖

464

积分

中级会员

Rank: 3Rank: 3

积分
464
发表于 3 天前 | 显示全部楼层
不是直接在群组关联频道之后,在频道发的信息会自动转发到群里吗
回复

使用道具 举报

4

主题

36

回帖

130

积分

注册会员

Rank: 2

积分
130
发表于 3 天前 | 显示全部楼层

@sfdatou 来TG联系我 给你挂上测试 满意的话 再说
回复

使用道具 举报

4

主题

36

回帖

130

积分

注册会员

Rank: 2

积分
130
发表于 3 天前 | 显示全部楼层
洪河的红水 发表于 2024-11-18 18:26
不是直接在群组关联频道之后,在频道发的信息会自动转发到群里吗

关联需要权限 他应该是想要转发其他人的消息 然后到自己群组 我就是这个需求 自己写了个 现在稳定运行着
回复

使用道具 举报

66

主题

316

回帖

1206

积分

金牌会员

Rank: 6Rank: 6

积分
1206
发表于 3 天前 | 显示全部楼层
落叶 发表于 2024-11-18 18:27
关联需要权限 他应该是想要转发其他人的消息 然后到自己群组 我就是这个需求 自己写了个 现在稳定运行着 ...

啊 我也想搞一个, 可惜不会写
回复

使用道具 举报

4

主题

36

回帖

130

积分

注册会员

Rank: 2

积分
130
发表于 3 天前 | 显示全部楼层
deyu 发表于 2024-11-18 18:57
啊 我也想搞一个, 可惜不会写

如果都是自己群的话 建个机器人都行 不是自己群的话 想要转发别的群 要不然自己手动 要不然申请API自己写代码
回复

使用道具 举报

12

主题

127

回帖

442

积分

中级会员

Rank: 3Rank: 3

积分
442
发表于 3 天前 | 显示全部楼层
既然两边都能设置成管理员,那就都是自己的,把群组和频道关联一起不就行了
回复

使用道具 举报

0

主题

1

回帖

4

积分

新手上路

Rank: 1

积分
4
发表于 3 天前 | 显示全部楼层
我可以借,有需要可以私信我 本帖最后由 耳阝鱼禾 于 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 &
复制代码

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|主机论坛

GMT+8, 2024-11-21 18:35 , Processed in 0.067909 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表