BinaryONe
Refresh Update
2f67506
#
# Copyright (C) 2021-2022 by TeamYukki@Github, < https://github.com/TeamYukki >.
#
# This file is part of < https://github.com/TeamYukki/YukkiMusicBot > project,
# and is released under the "GNU v3.0 License Agreement".
# Please see < https://github.com/TeamYukki/YukkiMusicBot/blob/master/LICENSE >
#
# All rights reserved.
from pykeyboard import InlineKeyboard
from pyrogram import filters
from pyrogram.types import InlineKeyboardButton, Message
from config import BANNED_USERS
from strings import get_command, get_string, languages_present
from YukkiMusic import app
from YukkiMusic.utils.database import get_lang, set_lang
from YukkiMusic.utils.decorators import (ActualAdminCB, language,
languageCB)
# Languages Available
def lanuages_keyboard(_):
keyboard = InlineKeyboard(row_width=3)
keyboard.add(
*[
(
InlineKeyboardButton(
text=languages_present[i],
callback_data=f"languages:{i}",
)
)
for i in languages_present
]
)
keyboard.row(
InlineKeyboardButton(
text=_["BACK_BUTTON"],
callback_data=f"settingsback_helper",
),
InlineKeyboardButton(
text=_["CLOSE_BUTTON"], callback_data=f"close"
),
)
return keyboard
LANGUAGE_COMMAND = get_command("LANGUAGE_COMMAND")
@app.on_message(
filters.command(LANGUAGE_COMMAND)
& filters.group
& ~BANNED_USERS
)
@language
async def langs_command(client, message: Message, _):
keyboard = lanuages_keyboard(_)
await message.reply_text(
_["setting_1"].format(message.chat.title, message.chat.id),
reply_markup=keyboard,
)
@app.on_callback_query(filters.regex("LG") & ~BANNED_USERS)
@languageCB
async def lanuagecb(client, CallbackQuery, _):
try:
await CallbackQuery.answer()
except:
pass
keyboard = lanuages_keyboard(_)
return await CallbackQuery.edit_message_reply_markup(
reply_markup=keyboard
)
@app.on_callback_query(
filters.regex(r"languages:(.*?)") & ~BANNED_USERS
)
@ActualAdminCB
async def language_markup(client, CallbackQuery, _):
langauge = (CallbackQuery.data).split(":")[1]
old = await get_lang(CallbackQuery.message.chat.id)
if str(old) == str(langauge):
return await CallbackQuery.answer(
"You're already on same language", show_alert=True
)
try:
_ = get_string(langauge)
await CallbackQuery.answer(
"Successfully changed your language.", show_alert=True
)
except:
return await CallbackQuery.answer(
"Failed to change language or Language under update.",
show_alert=True,
)
await set_lang(CallbackQuery.message.chat.id, langauge)
keyboard = lanuages_keyboard(_)
return await CallbackQuery.edit_message_reply_markup(
reply_markup=keyboard
)