TelegramGroupDumper/main.py

68 lines
2.0 KiB
Python
Raw Permalink Normal View History

2019-10-15 15:49:30 +00:00
import os
import sys
import time
#Gettit with pip bro
from telethon import TelegramClient, events, utils
2019-10-15 18:50:37 +00:00
import json
2019-10-15 15:49:30 +00:00
def get_env(name, message, cast=str):
if name in os.environ:
return os.environ[name]
while True:
value = input(message)
try:
return cast(value)
except ValueError as e:
print(e, file=sys.stderr)
time.sleep(1)
sesion = get_env('TG_SESION', 'Enter your API sesion name: ')
api_id = get_env('TG_API_ID', 'Enter your API ID: ', int)
api_hash = get_env('TG_API_HASH', 'Enter your API hash: ')
2019-10-15 18:50:37 +00:00
# Create and start the client so we can make requests
with TelegramClient(sesion, api_id, api_hash, spawn_read_thread=False)).start() as client:
client.start()
me = client.get_me()
#TODO: selector de conversaciones si el bot no esta inicializado
chat1 = client.get_entity('t.me/lonami')
2019-10-15 19:06:24 +00:00
createNewDump('lonami', chat1)
2019-10-15 18:50:37 +00:00
chat2 = client.get_entity('t.me/lol')
2019-10-15 19:06:24 +00:00
createNewDump('lol', chat2)
2019-10-15 18:50:37 +00:00
chat3 = client.get_entity('t.me/telegram')
2019-10-15 19:06:24 +00:00
createNewDump('telegram', chat3)
2019-10-15 18:50:37 +00:00
chats = (chat1, chat2, chat3)
2019-10-15 19:06:24 +00:00
@client.on.message(events.NewMessage(chats=chats, incoming = True))
2019-10-15 18:50:37 +00:00
2019-10-15 19:06:24 +00:00
def handler(events):
event.get
2019-10-15 18:50:37 +00:00
def createNewDump(name, entity):
2019-10-15 19:34:22 +00:00
filePath = "./dumps/"+name+"Dump.json"
2019-10-15 19:35:45 +00:00
if !os.path.isfile(filePath):
2019-10-15 19:34:22 +00:00
with open(filePath,"w+") as f:
meta = {'meta':[{
'name': name,
'entity': entity,
'creationDate': strftime("%Y-%m-%d %H:%M:%S", gmtime())
}]}
json.dump(meta, f)
2019-10-15 19:35:45 +00:00
2019-10-15 19:06:24 +00:00
def addEntryToDump(name, element):
#TODO Test si existe el dump anterior
2019-10-15 19:34:22 +00:00
filePath = "./dumps/"+name+"Dump.json"
with open(filePath,"w+") as f:
2019-10-15 19:06:24 +00:00
message = {'mensaje':[{
'element': element,
'Date': strftime("%Y-%m-%d %H:%M:%S", gmtime())
}]}
2019-10-15 18:50:37 +00:00
json.dump(meta, f)