-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathuploader.py
61 lines (51 loc) · 1.95 KB
/
uploader.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import requests,pathlib
from datetime import datetime
from telethon import TelegramClient, events, sync
from telethon.tl.types import DocumentAttributeImageSize
import requests,sys,platform,os
#reading config file
dir_path = os.path.dirname(os.path.realpath(__file__))
try:
if platform.system() == "Windows":
folders = ["\logs","\configs","\\TGDownloads/"]
files = ["\\uploadedDocuments.txt","\config.txt"]
else:
folders = ["/logs","/configs","/TGDownloads/"]
files = ["/uploadedDocuments.txt","/config.txt"]
dfolder=dir_path+folders[2]
f = open(dir_path+folders[1]+files[1],'r')
ls = []
for i in f:
i = i.rstrip('\n')
i = i.split('=')
i = i[1]
ls.append(i)
api_id=ls[0]
api_hash=ls[1]
bot_username=ls[2]
bot_token=ls[3]
except Exception as e:
print(e)
print("Please run the initial setup")
#Uploading files
def upload(filePath,fileName):
client = TelegramClient('session_name', api_id, api_hash)
client.start()
try:
client.send_file(bot_username, filePath,caption=fileName,force_document=True)
except Exception as e:
print(e)
else:
r = requests.get('https://api.telegram.org/bot'+bot_token+'/getUpdates?offset=-1').json()
file_name = r["result"][0]['message']['document']['file_name']
file_id = r["result"][0]['message']['document']['file_id']
ts = r["result"][0]['message']['date']
fname = pathlib.Path(filePath)
assert fname.exists(), f'No such file: {fname}' # check that the file exists
upload_date = datetime.utcfromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S')
created_date = datetime.utcfromtimestamp(fname.stat().st_mtime).strftime('%Y-%m-%d %H:%M:%S')
f=open(dir_path+folders[0]+files[0],'a')
info = f"{fileName},{created_date},{upload_date},{file_id}\n"
f.write(info)
print(f'Uploaded {fileName}')
client.disconnect()