#!/usr/bin/python3 from telethon import TelegramClient, events, functions, types from config import * client = TelegramClient('telelog', api_id, api_hash) @client.on(events.NewMessage) async def log(event): if event.is_private: if event.sender_id != myid: #Incoming message try: f = open(f'logs/{event.chat_id}') except IOError: chat = await event.get_input_chat() rpl = "This account does not accept private messages. " rpl += "My userbot will block you now. " rpl += "Please reach out to me in a common group if applicable. " await event.respond(rpl) await client(functions.contacts.BlockRequest(chat)) f = open(f'logs/{event.chat_id}', "a") f.write("← ") else: #Outgoing message f = open(f'logs/{event.chat_id}', "a") f.write("→ ") f.write(event.raw_text + "\n") f.close() # Interactive commands msg = event.raw_text if event.sender_id != myid: return if msg.startswith('.tl.alive'): rpl = "Telelog alive and well!" await event.edit(rpl) if msg.startswith('.tl.log'): arr = msg.split() if len(arr) == 1: import os rpl = "Available log files:\n" rpl += os.popen("ls logs").read() await event.edit(rpl) else: chat = f'logs/{arr[1]}' f = open(chat) await event.edit(f.read()) client.start() client.run_until_disconnected()