telelog/log.py

53 lines
1.3 KiB
Python
Raw Normal View History

2021-11-25 06:42:59 +01:00
#!/usr/bin/python3
from telethon import TelegramClient, events, functions, types
2021-11-25 06:42:59 +01:00
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")
2021-11-29 14:38:37 +01:00
f.write("")
2021-11-25 06:42:59 +01:00
else:
#Outgoing message
f = open(f'logs/{event.chat_id}', "a")
2021-11-29 14:38:37 +01:00
f.write("")
2021-11-25 06:42:59 +01:00
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())
2021-11-25 06:42:59 +01:00
client.start()
client.run_until_disconnected()