From d951b22056b85f32965a187c65cba7826d3beb57 Mon Sep 17 00:00:00 2001 From: trueold89 Date: Thu, 2 Nov 2023 23:12:36 +0300 Subject: [PATCH 1/2] Add log system --- bot/bot.py | 5 +++-- bot/func.py | 7 ++++++- bot/lang.py | 20 +++++++++++++++++-- bot/log.py | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 82 insertions(+), 5 deletions(-) create mode 100644 bot/log.py diff --git a/bot/bot.py b/bot/bot.py index 0ef6f87..af8d8ca 100755 --- a/bot/bot.py +++ b/bot/bot.py @@ -1,7 +1,7 @@ #!/usr/bin/python3 # -- coding: utf-8 -- -import func, telebot, os +import func, telebot, os, log from db import PATH from lang import LANG as msg @@ -159,5 +159,6 @@ def unknown(message): else: bot.reply_to(message,str(msg.get('adeny'))) -func.qbt() +# func.qbt() +log.start() bot.polling() diff --git a/bot/func.py b/bot/func.py index de33a22..fe77a05 100644 --- a/bot/func.py +++ b/bot/func.py @@ -1,7 +1,7 @@ #!/usr/bin/python3 # -- coding: utf-8 -- -import db, os +import db, os, log from db import * from lang import LANG as msg @@ -27,6 +27,7 @@ def u_auth(id,passwd): if passwd == os.environ['PASS']: list.append(id) db.write(list,AUTH_FILE) + log.auth(id) return msg.get('sucauth') else: return msg.get('wrauth') @@ -49,6 +50,7 @@ def add_dir(id,dir,path): dict = {} dict.setdefault(dir,path) db.write(dict,DIR_FILE) + log.add(id,dir,path) return str(msg.get('fsa')).format(dir) else: return msg.get('adeny') @@ -62,6 +64,7 @@ def del_dir(id,dir): if dir in dict: del dict[dir] db.write(dict,DIR_FILE) + log.rm(id,dir) return str(msg.get('frm')).format(dir) else: return str(msg.get('fne')).format(dir) @@ -74,6 +77,7 @@ def magnet(id,link,dir): path = dict[dir] command = f'''qbt torrent add url "{link}" -f "{path}"''' os.system(f"bash -c '{command}'") + log.addmagnet(id,link) return msg.get('add') else: return msg.get('adeny') @@ -85,6 +89,7 @@ def file(id,file,dir): command = f'''qbt torrent add file "{file}" -f {path}''' os.system(f"bash -c '{command}'") os.remove(file) + log.addfile(id,file) return msg.get('add') else: return msg.get('adeny') diff --git a/bot/lang.py b/bot/lang.py index 9db759c..57fc83b 100644 --- a/bot/lang.py +++ b/bot/lang.py @@ -24,7 +24,15 @@ RU = { 'ntorr': 'Неверное расширение файла', 'sendm': 'Отправте Magnet-ссылку', 'sendf': 'Отправте .torrent файл', - 'adeny': 'Этот бот запривачен, гнида, блять' + 'adeny': 'Этот бот запривачен, гнида, блять', + # Logs + 'l_create': "Log Файл '{}' создан", + 'l_start': 'Бот готов к работе', + 'l_auth': "Пользователь '{}' успешно авторизировался", + 'l_add': "Пользователь '{}' добавил папку '{}' по пути '{}'", + 'l_rm': "Пользователь '{}' удалил папку '{}'", + 'l_file': "Пользователь '{}' добавил в очередь файл '{}'", + 'l_magnet': "Пользователь '{}' добавил в очередь ссылку '{}'" } # English @@ -46,7 +54,15 @@ ENG = { 'ntorr': 'Incorrect file extension', 'sendm': 'Send Magnet link', 'sendf': 'Send .torrent file', - 'adeny': "You do not have access, first authorize '/login '" + 'adeny': "You do not have access, first authorize '/login '", + # Logs + 'l_create': "Log File '{}' created", + 'l_start': 'Bot is up and running', + 'l_auth': "User '{}' successfully authorized", + 'l_add': "User '{}' added a folder '{}' with the path '{}'", + 'l_rm': "User '{}' deleted '{}' folder", + 'l_file': "User '{}' added file '{}' to the queue", + 'l_magnet': "User '{}' added the link '{}' to the queue" } for i in langs: diff --git a/bot/log.py b/bot/log.py new file mode 100644 index 0000000..7952730 --- /dev/null +++ b/bot/log.py @@ -0,0 +1,55 @@ +#!/usr/bin/python3 +# -- coding: utf-8 -- + +import os, uuid +from datetime import datetime +from lang import LANG as msg +from db import PATH + +def dt(): + date = datetime.now().date() + time = datetime.now().time() + str = f'{date} | {time.strftime("%H:%M:%S")}' + return str + +DEFAULT = f'{dt()} LOG: ' +ID = str(uuid.uuid1())[0:7] +FILE = f'{ID}.txt' + +def file(log): + if os.path.exists(f'{PATH}logs') == False: + os.mkdir(f'{PATH}logs') + with open(f'{PATH}logs/{FILE}','a') as logfile: + logfile.write(f'{log}\n') + logfile.close() + +def start(): + log1 = DEFAULT + str(msg.get('l_create').format(FILE)) + log2 = DEFAULT + str(msg.get('l_start')) + file(log2) + print(f'{log1}\n{log2}') + +def auth(id): + log = DEFAULT + str(msg.get('l_auth').format(id)) + file(log) + print(log) + +def add(id,folder,path): + log = DEFAULT + str(msg.get('l_add').format(id,folder,path)) + file(log) + print(log) + +def rm(id,folder): + log = DEFAULT + str(msg.get('l_rm').format(id,folder)) + file(log) + print(log) + +def addfile(id,filename): + log = DEFAULT + str(msg.get('l_file').format(id,filename[9:])) + file(log) + print(log) + +def addmagnet(id,link): + log = DEFAULT + str(msg.get('l_magnet').format(id,link)) + file(log) + print(log) From e0345df54e17bfb0aeb2958444f0bb7da3821bdd Mon Sep 17 00:00:00 2001 From: trueold89 Date: Fri, 3 Nov 2023 01:38:12 +0300 Subject: [PATCH 2/2] Add connection check && some little fixes --- bot/bot.py | 24 +++++++++++++++++++----- bot/func.py | 6 ++++-- bot/lang.py | 12 ++++++++---- bot/log.py | 10 ++++++++++ docker-compose.yml | 2 +- 5 files changed, 42 insertions(+), 12 deletions(-) diff --git a/bot/bot.py b/bot/bot.py index af8d8ca..aa6a87f 100755 --- a/bot/bot.py +++ b/bot/bot.py @@ -1,11 +1,11 @@ #!/usr/bin/python3 # -- coding: utf-8 -- -import func, telebot, os, log +import func, telebot, os, log, sys from db import PATH from lang import LANG as msg -TOKEN = os.environ["TOKEN"] +TOKEN = os.environ.get('TOKEN','None') bot = telebot.TeleBot(TOKEN) folder_list = [] dir = None @@ -159,6 +159,20 @@ def unknown(message): else: bot.reply_to(message,str(msg.get('adeny'))) -# func.qbt() -log.start() -bot.polling() +def run(): + if os.path.exists(PATH) == False: + os.mkdir(PATH) + log.start() + try: + func.qbt() + except: + log.errqbt() + sys.exit(1) + try: + bot.polling() + except: + log.errtelebot() + sys.exit(1) + +if __name__ == "__main__": + run() diff --git a/bot/func.py b/bot/func.py index fe77a05..8a9024d 100644 --- a/bot/func.py +++ b/bot/func.py @@ -1,7 +1,7 @@ #!/usr/bin/python3 # -- coding: utf-8 -- -import db, os, log +import db, os, log, subprocess from db import * from lang import LANG as msg @@ -12,10 +12,12 @@ def qbt(): commands = [ f"qbt settings set url {url}", f"qbt settings set username {username}", - f"echo {password} | qbt settings set password --no-warn" + f"echo {password} | qbt settings set password --no-warn", + f"qbt server info " ] for command in commands: os.system(f"bash -c '{command}'") + output = subprocess.run(command, shell=True, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) def u_auth(id,passwd): list = [] diff --git a/bot/lang.py b/bot/lang.py index 57fc83b..b72ca63 100644 --- a/bot/lang.py +++ b/bot/lang.py @@ -27,12 +27,14 @@ RU = { 'adeny': 'Этот бот запривачен, гнида, блять', # Logs 'l_create': "Log Файл '{}' создан", - 'l_start': 'Бот готов к работе', + 'l_start': 'Запуск бота...', 'l_auth': "Пользователь '{}' успешно авторизировался", 'l_add': "Пользователь '{}' добавил папку '{}' по пути '{}'", 'l_rm': "Пользователь '{}' удалил папку '{}'", 'l_file': "Пользователь '{}' добавил в очередь файл '{}'", - 'l_magnet': "Пользователь '{}' добавил в очередь ссылку '{}'" + 'l_magnet': "Пользователь '{}' добавил в очередь ссылку '{}'", + 'l_errqbt': "Ошибка подключения к qBitTorrent", + 'l_errtele': "Ошибка подключения к Telegram API, проверьте ваш токен", } # English @@ -57,12 +59,14 @@ ENG = { 'adeny': "You do not have access, first authorize '/login '", # Logs 'l_create': "Log File '{}' created", - 'l_start': 'Bot is up and running', + 'l_start': 'Start bot polling...', 'l_auth': "User '{}' successfully authorized", 'l_add': "User '{}' added a folder '{}' with the path '{}'", 'l_rm': "User '{}' deleted '{}' folder", 'l_file': "User '{}' added file '{}' to the queue", - 'l_magnet': "User '{}' added the link '{}' to the queue" + 'l_magnet': "User '{}' added the link '{}' to the queue", + 'l_errqbt': "Error connecting to qBitTorrent", + 'l_errtele': "Error connecting to Telegram API, check your token" } for i in langs: diff --git a/bot/log.py b/bot/log.py index 7952730..5b6cb4e 100644 --- a/bot/log.py +++ b/bot/log.py @@ -53,3 +53,13 @@ def addmagnet(id,link): log = DEFAULT + str(msg.get('l_magnet').format(id,link)) file(log) print(log) + +def errqbt(): + log = DEFAULT + str(msg.get('l_errqbt')) + file(log) + print(log) + +def errtelebot(): + log = DEFAULT + str(msg.get('l_errtele')) + file(log) + print(log) diff --git a/docker-compose.yml b/docker-compose.yml index 562561b..b7c9aa6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -12,4 +12,4 @@ services: QURL: ":" QUSER: "" QPASS: "" - LANG: "RU" + LANG: ""