Python Telethon在转发时复制消息
我的脚本正在收听一些特定关键字的聊天。当有匹配时,它会将其发送到与报告聊天。但是当我的脚本在远程服务器上运行时,我有一个在报告聊天中复制消息的错误。我不能在本地机器上重现这个错误Python Telethon在转发时复制消息,python,duplicates,telethon,Python,Duplicates,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 = [] @cli
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\u to
方法,得到了相同的结果
我很乐意接受任何建议。谢谢。忘了关闭我在开发服务器上的应用程序:(>当我的脚本在远程服务器上运行时-可能你不小心运行了两次代码?是的,我想到了这一点,但这种重复只发生在一次聊天中(我有两次,一次用于测试).Lonami,你说得对!太尴尬了!我忘了在dev server.Facepalm上关闭它。