import logging import localization as lang from telegram import Update from telegram.ext import Application, CommandHandler, ContextTypes import os import sqlite3 # Enable logging logging.basicConfig( format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", level=logging.INFO ) DB_PATH = 'furry.db' conn = sqlite3.connect(DB_PATH, check_same_thread=False) cursor = conn.cursor() def init_db(): cursor.execute(''' CREATE TABLE IF NOT EXISTS user_lang ( chatid INTEGER PRIMARY KEY NULL, lang TEXT DEFAULT 'no' ) ''') conn.commit() init_db() print(lang.getstr("ru", "test")) print(lang.getstr("en", "test")) tokenfile = open("../token.txt", "r") bottoken = str(tokenfile.read()) tokenfile.close() async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: chat = update.effective_chat chat_id = chat.id try: cursor.execute("SELECT lang FROM user_lang WHERE chatid = ?", (chat_id,)) row = cursor.fetchone() if row[0] == "ru": await update.message.reply_text(lang.getstr("ru", "test2")) elif row[0] == "en": await update.message.reply_text(lang.getstr("en", "test")) else: await update.message.reply_text('Select your language using "/lang en" command.\n\nВыберите ваш язык командой "/lang ru".') except: await update.message.reply_text('Select your language using "/lang en" command.\n\nВыберите ваш язык командой "/lang ru".') cursor.execute("INSERT INTO user_lang (chatid, lang) VALUES (?, ?)", (chat_id, "no")) conn.commit() async def set_lang(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: chat = update.effective_chat chat_id = chat.id try: userlang = str(context.args[0]) try: cursor.execute("INSERT INTO user_lang (chatid, lang) VALUES (?, ?)", (chat_id, userlang)) # omfg except: fuckinnothing = "fuckinnothing" cursor.execute("UPDATE user_lang SET lang = ? WHERE chatid = ?", (userlang, chat_id)) # omfg conn.commit() cursor.execute("SELECT lang FROM user_lang WHERE chatid = ?", (chat_id,)) row = cursor.fetchone() await update.message.reply_text(lang.getstr(row[0], "succlang")) except: await update.message.reply_text('/lang en\n/lang ru') def main() -> None: application = Application.builder().token(bottoken).build() application.add_handler(CommandHandler("start", start)) application.add_handler(CommandHandler("lang", set_lang)) application.run_polling(allowed_updates=Update.ALL_TYPES) if __name__ == "__main__": main()