From fd39f0c48d9910d7d94295c06c4df90ba7a674cb Mon Sep 17 00:00:00 2001 From: trueold89 Date: Wed, 1 Nov 2023 01:49:17 +0300 Subject: [PATCH] Add multi language support --- bot/bot.py | 51 ++++++++++++++++++++++++++------------------------- bot/func.py | 29 +++++++++++++++-------------- bot/lang.py | 40 ++++++++++++++++++++++++++++++---------- 3 files changed, 71 insertions(+), 49 deletions(-) diff --git a/bot/bot.py b/bot/bot.py index 90f32dc..0ef6f87 100755 --- a/bot/bot.py +++ b/bot/bot.py @@ -3,6 +3,7 @@ import func, telebot, os from db import PATH +from lang import LANG as msg TOKEN = os.environ["TOKEN"] bot = telebot.TeleBot(TOKEN) @@ -14,15 +15,15 @@ dir = None def welcome(message): id = message.from_user.id if func.auth_check(id): - bot.reply_to(message,'Выберите тип загрузки:',reply_markup=home()) + bot.reply_to(message,str(msg.get('type')),reply_markup=home()) else: - bot.reply_to(message,'Этот бот запривачен, гнида, блять') + bot.reply_to(message,str(msg.get('adeny'))) # Keyboard: Homepage def home(): keyboard = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True) - file = telebot.types.KeyboardButton('Файл') - magnet = telebot.types.KeyboardButton('Magnet-ссылка') + file = telebot.types.KeyboardButton(str(msg.get('file'))) + magnet = telebot.types.KeyboardButton(str(msg.get('magnet'))) keyboard.add(file,magnet) return keyboard @@ -31,8 +32,8 @@ def home(): def login(message): id = message.from_user.id passwd = message.text.replace('/login ', '') - f = func.u_auth(id,passwd) - if f == 'Вы успешно авторизировались' or f == 'Вы уже авторизированны': + f = str(func.u_auth(id,passwd)) + if f == str(msg.get('sucauth')) or f == str(msg.get('alauth')): bot.reply_to(message,f,reply_markup=home()) else: bot.reply_to(message,f) @@ -65,9 +66,9 @@ def add(message): if len(txt) == 3: key = txt[1] path = txt[2] - f = func.add_dir(id,key,path) + f = str(func.add_dir(id,key,path)) else: - f = 'Неверные аргументы' + f = str(msg.get('aerr')) bot.reply_to(message,f,reply_markup=home()) # Folder del @@ -79,7 +80,7 @@ def rm(message): bot.reply_to(message,str(f),reply_markup=home()) # Magnet -@bot.message_handler(func=lambda message: message.text == 'Magnet-ссылка') +@bot.message_handler(func=lambda message: message.text == str(msg.get('magnet'))) def magnet(message): id = message.from_user.id if func.auth_check(id): @@ -87,14 +88,14 @@ def magnet(message): type = 'magnet' f = folder_menu() if f == None: - bot.reply_to(message,'Папок не обнаруженно, воспользуйтесь коммандой /add') + bot.reply_to(message,str(msg.get('cff'))) else: - bot.reply_to(message,'Выберите папку:',reply_markup=f) + bot.reply_to(message,str(msg.get('chf')),reply_markup=f) else: - bot.reply_to(message,'Этот бот запривачен, гнида, блять') + bot.reply_to(message,str(msg.get('adeny'))) # File -@bot.message_handler(func=lambda message: message.text == 'Файл') +@bot.message_handler(func=lambda message: message.text == str(msg.get('file'))) def file(message): id = message.from_user.id if func.auth_check(id): @@ -102,11 +103,11 @@ def file(message): type = 'file' f = folder_menu() if f == None: - bot.reply_to(message,'Папок не обнаруженно, воспользуйтесь коммандой /add') + bot.reply_to(message,str(msg.get('cff'))) else: - bot.reply_to(message,'Выберите папку:',reply_markup=f) + bot.reply_to(message,str(msg.get('chf')),reply_markup=f) else: - bot.reply_to(message,'Этот бот запривачен, гнида, блять') + bot.reply_to(message,str(msg.get('adeny'))) # File download @bot.message_handler(content_types=['document']) @@ -122,23 +123,23 @@ def download(message): file_name = os.path.join(PATH, message.document.file_name) with open(file_name, 'wb') as dl: dl.write(file) - f = func.file(id,file_name,dir) + f = str(func.file(id,file_name,dir)) dir, type, folder_list = None,None,[] bot.reply_to(message,f) else: - bot.reply_to(message,'Неверное расширение файла') - bot.reply_to(message,'Выберите тип загрузки:',reply_markup=home()) + bot.reply_to(message,str(msg.get('ntorr'))) + bot.reply_to(message,str(msg.get('type')),reply_markup=home()) else: - bot.reply_to(message,'Этот бот запривачен, гнида, блять') + bot.reply_to(message,str(msg.get('adeny'))) # Dir choose def dirchoose(message): global dir dir = message.text if type == 'magnet': - bot.reply_to(message,'Отправте Magnet-ссылку') + bot.reply_to(message,str(msg.get('sendm'))) if type == 'file': - bot.reply_to(message,'Отправте .torrent файл') + bot.reply_to(message,str(msg.get('sendf'))) # Unknown message @bot.message_handler(func=lambda message: True) @@ -151,12 +152,12 @@ def unknown(message): dirchoose(message) return None if dir != None and type == 'magnet': - f = func.magnet(id,txt,dir) + f = str(func.magnet(id,txt,dir)) dir, type, folder_list = None,None,[] bot.reply_to(message,f) - bot.reply_to(message,'Выберите тип загрузки:',reply_markup=home()) + bot.reply_to(message,str(msg.get('type')),reply_markup=home()) else: - bot.reply_to(message,'Этот бот запривачен, гнида, блять') + bot.reply_to(message,str(msg.get('adeny'))) func.qbt() bot.polling() diff --git a/bot/func.py b/bot/func.py index b8a65b6..de33a22 100644 --- a/bot/func.py +++ b/bot/func.py @@ -3,6 +3,7 @@ import db, os from db import * +from lang import LANG as msg def qbt(): url = os.environ['QURL'] @@ -21,14 +22,14 @@ def u_auth(id,passwd): if db.check('obj',AUTH_FILE): list = db.read(AUTH_FILE) if id in list: - return 'Вы уже авторизированны' + return msg.get('alauth') else: if passwd == os.environ['PASS']: list.append(id) db.write(list,AUTH_FILE) - return 'Вы успешно авторизировались' + return msg.get('sucauth') else: - return 'Неверный пароль' + return msg.get('wrauth') def auth_check(id): if db.check('obj',AUTH_FILE): @@ -41,16 +42,16 @@ def auth_check(id): def add_dir(id,dir,path): if auth_check(id): if os.path.exists(path) == False: - return f"Директории '{path}' не сушествует на сервере" + return str(msg.get('pne')).format(path) if db.check('obj',DIR_FILE): dict = db.read(DIR_FILE) else: dict = {} dict.setdefault(dir,path) db.write(dict,DIR_FILE) - return f"Папка {dir} успешно добавлена" + return str(msg.get('fsa')).format(dir) else: - return 'Этот бот запривачен, гнида, блять' + return msg.get('adeny') def del_dir(id,dir): if auth_check(id): @@ -61,21 +62,21 @@ def del_dir(id,dir): if dir in dict: del dict[dir] db.write(dict,DIR_FILE) - return f"Папка {dir} успешно удалена" + return str(msg.get('frm')).format(dir) else: - return f"Папки {dir} не существует" + return str(msg.get('fne')).format(dir) else: - return 'Этот бот запривачен, гнида, блять' + return msg.get('adeny') def magnet(id,link,dir): if auth_check(id): dict = db.read(DIR_FILE) path = dict[dir] - command = f'''qbt torrent add url "{link} -f {path}"''' + command = f'''qbt torrent add url "{link}" -f "{path}"''' os.system(f"bash -c '{command}'") - return 'Torrent добавлен в очередь' + return msg.get('add') else: - return 'Этот бот запривачен, гнида, блять' + return msg.get('adeny') def file(id,file,dir): if auth_check(id): @@ -84,9 +85,9 @@ def file(id,file,dir): command = f'''qbt torrent add file "{file}" -f {path}''' os.system(f"bash -c '{command}'") os.remove(file) - return 'Torrent добавлен в очередь' + return msg.get('add') else: - return 'Этот бот запривачен, гнида, блять' + return msg.get('adeny') def dirlist(): dirs = {} diff --git a/bot/lang.py b/bot/lang.py index c0268c5..9df0cfa 100644 --- a/bot/lang.py +++ b/bot/lang.py @@ -3,15 +3,35 @@ import os -def main(): - lang = {} - env = os.environ['LANG'] - if env == None: - lang = russian - return lang +langs = ['RU'] -# RU -russian = {} +# Russian +RU = { + 'alauth': 'Вы уже авторизированны', + 'sucauth': 'Вы успешно авторизировались', + 'wrauth': 'Неверный пароль', + 'pne': "Директории '{}' не сушествует на сервере", + 'fsa': "Папка '{}' успешно добавлена", + 'frm': "Папка '{}' успешно удалена", + 'fne': "Папки '{}' не существует", + 'add': 'Torrent добавлен в очередь', + 'type': 'Выберите тип загрузки:', + 'magnet': 'Magnet-ссылка', + 'file': 'Файл', + 'aerr': 'Неверные аргументы', + 'cff': 'Папок не обнаруженно, воспользуйтесь коммандой /add', + 'chf': 'Выберите папку:', + 'ntorr': 'Неверное расширение файла', + 'sendm': 'Отправте Magnet-ссылку', + 'sendf': 'Отправте .torrent файл', + 'adeny': 'Этот бот запривачен, гнида, блять' + } -# ENG -english = {} +# English +ENG = {} + +for i in langs: + if i == os.environ['LANG']: + LANG = globals()[i] + else: + LANG = RU