Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from telethon import TelegramClient, events
- api_id = ********** # +0000000000
- api_hash = '**************************************'
- client = TelegramClient("Test", api_id, api_hash)
- target_can = 13********** # айди канала куда идёт пересылка
- comparer = [0, 0, 0, 0, 0] # список который будет хранить данные о полученных файлах
- album_t0_send = [] # список из обьектов с медиафайлами
- list_to_del = [] # список сообщений на удаление
- @client.on(events.NewMessage(chats=[59*********])) # мониторим нужный нам чат
- async def normal_handler(event):
- if event.media != None: # проверяем есть ли медиафайл в сообщении
- start = await client.send_message(target_can, event.message) # пересылаем его в целевой чат
- comparer[0] = event.date # записываем дату и время сообщения
- comparer[1] = event.peer_id # записываем айди сообщения
- comparer[4] = event.media # записываем данные о медиафайле
- album_t0_send.append(event.media) # добавляем медиафайл в список для отправки
- list_to_del.append(start.id) # добавляем айди в список для отправки
- if (comparer[0] == comparer[2]) and (comparer[1] == comparer[3]): # проверяем сообщение на причастность к альбому
- print("Album detected")
- if start.id not in list_to_del: # проверяем есть ли айди пересланого сообщения в списке на удаление
- list_to_del.append(start.id) # если не то добавляем
- if event.media not in album_t0_send: # проверяем есть ли медифайл пересланого сообщения в списке на отправку
- album_t0_send.append(event.media) # если не то добавляем
- stop = await client._send_album(target_can, album_t0_send) # отправляем альбом
- for i in range(0, len(stop)): # проходим по всем айди отправленных сообщений
- list_to_del.append(stop[i].id) # и добавляем их с писок на удаление
- cleaner = list_to_del[:-len(album_t0_send) or None] # убираем из списка айди медиафайлов которые были отправленны в виде альбома
- await client.delete_messages(target_can, cleaner) # удаляем лишнее
- cleaner.clear() # чистим список
- album_t0_send.clear() # чистим список
- list_to_del.clear() # чистим список
- comparer[2] = comparer[0] # перезаписываем список с медиафайлами датой последнего полученого
- comparer[3] = comparer[1] # перезаписываем список с медиафайлами айди последнего полученого
- client.start() # запускаем клиент
- client.run_until_disconnected() # запускаем цикл
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement