79 lines
2.2 KiB
Python
79 lines
2.2 KiB
Python
import logging
|
|
import configparser
|
|
import aria2p
|
|
import threading
|
|
from telegram.ext import Updater
|
|
from telegram import Bot
|
|
import os
|
|
import time
|
|
|
|
botStartTime = time.time()
|
|
if os.path.exists('log.txt'):
|
|
with open('log.txt', 'r+') as f:
|
|
f.truncate(0)
|
|
|
|
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
|
|
handlers=[logging.FileHandler('log.txt'), logging.StreamHandler()],
|
|
level=logging.INFO)
|
|
|
|
config = configparser.ConfigParser()
|
|
config.read('bot/config.ini')
|
|
|
|
|
|
def getConfig(name: str):
|
|
return config['DEFAULT'][name]
|
|
|
|
|
|
LOGGER = logging.getLogger(__name__)
|
|
|
|
try:
|
|
if bool(getConfig('_____REMOVE_THIS_LINE_____')):
|
|
logging.ERROR('The README.md file there to be read! Exiting now!')
|
|
exit()
|
|
except KeyError:
|
|
pass
|
|
|
|
aria2 = aria2p.API(
|
|
aria2p.Client(
|
|
host="http://localhost",
|
|
port=6800,
|
|
secret="",
|
|
)
|
|
)
|
|
|
|
DOWNLOAD_DIR = None
|
|
BOT_TOKEN = None
|
|
|
|
download_dict_lock = threading.Lock()
|
|
status_reply_dict_lock = threading.Lock()
|
|
# Key: update.effective_chat.id
|
|
# Value: telegram.Message
|
|
status_reply_dict = {}
|
|
# Key: update.message.message_id
|
|
# Value: An object of DownloadStatus
|
|
download_dict = {}
|
|
# Stores list of users and chats the bot is authorized to use in
|
|
AUTHORIZED_CHATS = set()
|
|
if os.path.exists('authorized_chats.txt'):
|
|
with open('authorized_chats.txt', 'r+') as f:
|
|
lines = f.readlines()
|
|
for line in lines:
|
|
# LOGGER.info(line.split())
|
|
AUTHORIZED_CHATS.add(int(line.split()[0]))
|
|
try:
|
|
BOT_TOKEN = getConfig('BOT_TOKEN')
|
|
parent_id = getConfig('GDRIVE_FOLDER_ID')
|
|
DOWNLOAD_DIR = getConfig('DOWNLOAD_DIR')
|
|
if DOWNLOAD_DIR[-1] != '/' or DOWNLOAD_DIR[-1] != '\\':
|
|
DOWNLOAD_DIR = DOWNLOAD_DIR + '/'
|
|
DOWNLOAD_STATUS_UPDATE_INTERVAL = int(getConfig('DOWNLOAD_STATUS_UPDATE_INTERVAL'))
|
|
OWNER_ID = int(getConfig('OWNER_ID'))
|
|
AUTO_DELETE_MESSAGE_DURATION = int(getConfig('AUTO_DELETE_MESSAGE_DURATION'))
|
|
except KeyError as e:
|
|
LOGGER.error("One or more env variables missing! Exiting now")
|
|
exit(1)
|
|
|
|
bot = Bot(BOT_TOKEN)
|
|
updater = Updater(token=BOT_TOKEN, use_context=True)
|
|
dispatcher = updater.dispatcher
|