python - Telethon 在转发时重复消息
问题描述
我的脚本正在听一些特定关键字的聊天。当有匹配时,它会发送它与报告聊天。但是当我的脚本在远程服务器上运行时,我有一个在报告聊天中复制消息的错误。而且我无法在本地机器上重新创建该错误。
client = TelegramClient('anon', api_id=API_ID, api_hash=API_HASH)
chats = []
for t in task_list:
chats.extend(t['chats_to_listen'])
message_ids = []
@client.on(events.NewMessage(chats=chats))
async def handle(event):
m_obj = event.message
m = event.message.to_dict()
print('=== if id in sents ids', m['id'] in message_ids)
if m['id'] in message_ids:
print('=== DUPLICATE', m)
else:
for task in task_list:
for key in task['keywords']:
if key in m['message']:
print('=== message', m['message'])
chat_match = set(task['chats_to_listen']) & set(m['to_id'].values())
if chat_match:
chat_for_report_name = task['chat_to_report']
# await m_obj.forward_to(chat_for_report_name)
await client.forward_messages(chat_for_report_name, m_obj, list(chat_match)[0])
print(f'=== MESSAGE {m["id"]} SENT!')
message_ids.append(m['id'])
# time.sleep(2)
break
else:
continue
break
print('=== IDS SENT', message_ids)
print('Running')
client.start()
client.run_until_disconnected()
print('Stopped')
我也试过forward_to
方法,结果一样。
任何建议我都会很高兴。谢谢。
解决方案
忘记在开发服务器上关闭我的应用程序:(