telelog/bin/log.py

55 lines
1.4 KiB
Python
Raw Normal View History

2021-11-25 06:42:59 +01:00
#!/usr/bin/python3
2022-01-02 04:23:43 +01:00
import sys
sys.path.append("/var/telelog")
from telethon import TelegramClient, events, functions, types
2021-11-25 06:42:59 +01:00
from config import *
2022-01-02 04:23:43 +01:00
client = TelegramClient('/var/telelog/log', api_id, api_hash)
2021-11-25 06:42:59 +01:00
@client.on(events.NewMessage)
async def log(event):
if event.is_private:
if event.sender_id != myid:
#Incoming message
try:
2022-01-02 04:23:43 +01:00
f = open(f'/var/telelog/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))
2022-01-02 04:23:43 +01:00
f = open(f'/var/telelog/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
2022-01-02 04:23:43 +01:00
f = open(f'/var/telelog/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:
2022-01-02 04:23:43 +01:00
chat = f'/var/telelog/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()