全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
楼主: 度百

《已搞定》求屌大mjj帮忙写个tg机器人✅✅

[复制链接]
发表于 2024-11-18 22:15:11 | 显示全部楼层
本帖最后由 耳阝鱼禾 于 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 &
复制代码

发表于 2024-11-18 22:39:56 | 显示全部楼层
落叶 发表于 2024-11-18 19:50
如果都是自己群的话 建个机器人都行 不是自己群的话 想要转发别的群 要不然自己手动 要不然申请API自己写 ...


不是自己的群只能申请api来搞吗
https://my.telegram.org/auth  这个是不是申请链接
发表于 7 天前 | 显示全部楼层
deyu 发表于 2024-11-18 22:39
不是自己的群只能申请api来搞吗
https://my.telegram.org/auth  这个是不是申请链接 ...

对 不是自己的群 只能申请api来转发 像上面有人发的那个代码 是通过机器人的 但是机器人除非两个群都是管理 不然机器人是没有读取权限的 转发不了的 不通过机器人的话 只能通过api
 楼主| 发表于 7 天前 | 显示全部楼层
落叶 发表于 2024-11-18 18:26
@sfdatou 来TG联系我 给你挂上测试 满意的话 再说

老哥我给你发消息了
 楼主| 发表于 7 天前 | 显示全部楼层
洪河的红水 发表于 2024-11-18 18:26
不是直接在群组关联频道之后,在频道发的信息会自动转发到群里吗

已经关联群组了,需要另外一个频道发布的也同步到群里
 楼主| 发表于 7 天前 | 显示全部楼层
z先生 发表于 2024-11-18 20:17
既然两边都能设置成管理员,那就都是自己的,把群组和频道关联一起不就行了 ...

两个频道同步到一个群,好像不能多个关联
发表于 7 天前 | 显示全部楼层
本帖最后由 Jianrry 于 2024-11-19 12:50 编辑

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

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

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

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

于是就让他发帖求助 hostloc 里的各位大佬了,也欢迎大家接单。
 楼主| 发表于 7 天前 | 显示全部楼层
耳阝鱼禾 发表于 2024-11-18 22:15
# 安装方式用宝塔或者1panel的话
# 将代码在网站目录下创建 bot.py 文件
# 例如宝塔路径 /www/wwwroot/t ...

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

执行时候

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

ai写的好用吗?
发表于 7 天前 | 显示全部楼层

写出来之后 作为参考 之后还是得自己修改才能用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-11-26 10:36 , Processed in 0.064856 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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