from modules.utils import configGet
from pyrogram.types import BotCommand, BotCommandScopeChat
from pyrogram.errors import bad_request_400

def commands_register(app):

    # Registering user commands
    commands_list = []
    for command in configGet("commands"):
        commands_list.append(BotCommand(command, configGet("commands")[command]))
    app.set_bot_commands(commands_list)

    # Registering admin commands
    commands_admin_list = []
    for command in configGet("commands"):
        commands_admin_list.append(BotCommand(command, configGet("commands")[command]))
        
    for command in configGet("commands_admin"):
        commands_admin_list.append(BotCommand(command, configGet("commands_admin")[command]))

    for admin in configGet("admins"):
        try:
            app.set_bot_commands(commands_admin_list, scope=BotCommandScopeChat(chat_id=admin))
        except bad_request_400.PeerIdInvalid:
            pass

    app.set_bot_commands(commands_admin_list, scope=BotCommandScopeChat(chat_id=configGet("owner")))

    # Registering admin group commands
    commands_group_admin_list = []
    for command in configGet("commands_group_admin"):
        commands_group_admin_list.append(BotCommand(command, configGet("commands_group_admin")[command]))
    app.set_bot_commands(commands_group_admin_list, scope=BotCommandScopeChat(chat_id=configGet("admin_group")))

    # Registering destination group commands
    commands_group_destination_list = []
    for command in configGet("commands_group_destination"):
        commands_group_destination_list.append(BotCommand(command, configGet("commands_group_destination")[command]))
    app.set_bot_commands(commands_group_destination_list, scope=BotCommandScopeChat(chat_id=configGet("destination_group")))