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上关闭它。