簡體   English   中英

Telethon 在轉發時重復消息

[英]Telethon duplicates messages when forwarding

我的腳本正在聽一些特定關鍵字的聊天。 當有匹配時,它會發送它與報告聊天。 但是當我的腳本在遠程服務器上運行時,我有一個在報告聊天中復制消息的錯誤。 而且我無法在本地機器上重新創建該錯誤。

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方法,結果相同。

任何建議我都會很高興。 謝謝。

忘記在開發服務器上關閉我的應用程序:(

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM