# -*- coding: utf-8 -*- from telethon.sync import TelegramClient,events import tempfile import logging import os logging.basicConfig(level=logging.WARNING) logging.getLogger('asyncio').setLevel(logging.ERROR) API_HASH = '' API_ID = 0 MAX_MEM = 1000 memory = {} client = TelegramClient('telegram_session', API_ID, API_HASH) async def on_delete_message(saved): user = saved["user"] event = saved["event"] message = event.message.message chat = await client.get_input_entity(user.id) template_msg = "User: %s || Type: Text || Message: {message}" % (user.first_name) template_media = "User: %s || Type: MediaOnly" % (user.first_name) template_media_msg = "User: %s || Type: MediaWithText || Message: {message}" % (user.first_name) if not event.media == None: temp_name = next(tempfile._get_candidate_names()) media = await client.download_media(event.media, temp_name) if message: await client.send_message(chat,template_media_msg.format(message=message), file=media) else: await client.send_message(chat,template_media, file=media) os.unlink(media) return await event.reply(template_msg.format(message=message)) @client.on(events.NewMessage()) async def handler(event): memory.update({ event.id: { "event": event, "user": await client.get_entity(event.from_id) } }) @client.on(events.MessageDeleted) async def handler(event): global memory deleted_ids = event.deleted_ids for deleted_message in deleted_ids: saved = memory[deleted_message] await on_delete_message(saved) if len(memory) >= MAX_MEM: memory = {} client.start() client.run_until_disconnected()