Писал код расыльщика на python, используя pyrogram, но код сообщение пересылалось не то
При выполнении этого кода, все работает правильно, сообщение действительно отправляется, но есть один нюанс
сообщение отправляется совершенно не то, которое нужно.
Смысл кода в том, что клиент читает последнее сообщение из сохраненных сообщений и отправляет это сообщение в чаты, которые указываются в начале скрипта, но как раз таки здесь есть тот самый нюанс, отправляет он не нужное сообщение а вот это вот ".async_to_sync_gen at 0x0000021AEDCE59E0>"
Кто сможет помочь, решить эту проблему?
from pyrogram import Client, errors
from sys import stderr
from loguru import logger
import time
api_id = 29748653 # Сюда вставляете свой api_id полученный с сайта https://my.telegram.org/
api_hash = "2f3f2518c6b06274fbd2224a35001cc2" # Сюда вставляете свой api_hash полученный с сайта https://my.telegram.org/
SESSION_NAME = input('Please, enter session name: ')
logger.remove()
logger.add(stderr,
format='<white>{time:HH:mm:ss}</white> | '
'<level>{level: <8}</level> | '
'<cyan>{line}</cyan> - '
'<white>{message}</white>')
proxy = {
"scheme": "socks5", # "socks4", "socks5" and "http" are supported
"hostname": "194.28.210.105",
"port": 9470,
"username": "LzfXMj",
"password": "tt2ZN4"
}
app = Client(SESSION_NAME, api_id=api_id, api_hash=api_hash, proxy=proxy)
interval = 10 # интервал между сообщениями в секундах
#try:
#message_text = app.get_chat_history("me") # получаем текст из последнего в истории сообщений
#except IndexError:
#print("No text messages found in chat history. Using default message.")
#message_text = "Hello, everyone!" # текст сообщения по умолчанию
chat_type = input("Choose chat source (1 - text file, 2 - joined chats): ")
if chat_type == "1":
chat_links_file = input("Enter path to chat links file: ")
with open(chat_links_file, "r") as f:
chat_links = f.readlines() # читаем ссылки на чаты из файла
elif chat_type == "2":
dialogs = app.get_dialogs()
chat_links = [f"{dialog.chat.username}" for dialog in dialogs if dialog.chat.type == "group" or dialog.chat.type == "supergroup"]
else:
print("Invalid input. Using default chat list.")
dialogs = app.get_dialogs()
chat_links = [f"{dialog.chat.username}" for dialog in dialogs if dialog.chat.type == "group" or dialog.chat.type == "supergroup"]
with app:
while True: # бесконечный цикл для повторения рассылки
for chat_link in chat_links:
try:
chat = app.get_chat(chat_link) # получаем информацию о чате по ссылке
app.send_message(chat_id=chat.id, text=app.get_chat_history("me", limit=1)) # отправляем сообщение в текущий чат
except errors.FloodWait as e:
print(f"Sleeping for {e.x} seconds...")
time.sleep(e.x)
except errors.ChatWriteForbidden:
print(f"Cannot send message to {chat_link}. Skipping...")
time.sleep(interval) # задержка перед следующей рассылкой
app.run()
Пробовал делать это, через пересылку сообщений из сохраненных сообщений, но тут уже в другом проблема... Мне пересылалось, какое-то абсолютно рандомное сообщение от Telegram, но никак не из избранных. Может, кто знает, как можно грамотно наладить пересылку, чтобы пересылалось последнее сообщение из сохраненных сообщений
#app.get_chat_history("me", limit=1) # получаем текст из последнего в истории сообщений
#app.forward_messages(chat_id=chat.id, from_chat_id="me", message_ids=1) # отправляем сообщение в текущий чат