Мой скрипт прослушивает несколько чатов по указанным ключевым словам. И когда есть совпадение, он отправляет его в чат с отчетом. Но у меня есть ошибка с дублированием сообщений в отчете чата, когда мой скрипт работает на удаленном сервере. И я не могу воссоздать эту ошибку на локальной машине.

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 метод с тем же результатом.

Я буду рад за любой совет. Благодарю.

0
Pavel Lazukin 5 Ноя 2019 в 17:49
> когда мой скрипт запущен на удаленном сервере - Может быть, вы случайно дважды запускали код?
 – 
Lonami
5 Ноя 2019 в 17:52
Да, я об этом подумал, но такое дублирование происходит только в одном чате (у меня их два, один для тестов).
 – 
Pavel Lazukin
5 Ноя 2019 в 17:55
Лонами, ты был прав! Так стыдно! Я забыл выключить его на сервере разработки. Facepalm.
 – 
Pavel Lazukin
7 Ноя 2019 в 09:56

1 ответ

Забыл закрыть мое приложение на сервере dev :(

0
Pavel Lazukin 7 Ноя 2019 в 10:33