예제 #1
0
async def get_main_channel(ctx) -> discord.TextChannel:
    try:
        guild = ctx.guild
    except AttributeError:
        guild = ctx

    cur_main.execute("SELECT MESSAGE_CHANNEL_ID FROM CONFIG WHERE GUILD_ID=%s",
                     (guild.id, ))
    channel_db = cur_main.fetchone()

    overwrites_main = {
        guild.default_role:
        discord.PermissionOverwrite(read_messages=True,
                                    read_message_history=True,
                                    send_messages=False)
    }

    if channel_db:
        channel = discord.utils.get(guild.channels, id=int(channel_db[0]))
        if not channel:
            main_channel = await guild.create_text_channel(
                name="zemo bot", overwrites=overwrites_main)
            change_msg_welcome_channel(guild.id, main_channel.id,
                                       main_channel.id)
            return main_channel
        else:
            return channel
    else:
        main_channel = await guild.create_text_channel(
            name="zemo bot", overwrites=overwrites_main)
        change_msg_welcome_channel(guild.id, main_channel.id, main_channel.id)
        return main_channel
예제 #2
0
def get_prefix(guild_id: int) -> int:
    sql = "SELECT PREFIX FROM CONFIG WHERE GUILD_ID=%s"
    val = (guild_id, )

    cur_main.execute(sql, val)
    data = cur_main.fetchone()
    return data[0] if data else 0
예제 #3
0
def check_command_status_for_guild(guild_id: int, command: str):
    sql = "SELECT ID FROM COMMANDS WHERE COMMAND=%s"
    val = (command, )

    cur_main.execute(sql, val)
    data = cur_main.fetchone()

    if data and data[0]:
        sql_ = "SELECT * FROM DISABLED_COMMANDS WHERE COMMAND_ID=%s AND SERVER_ID=(SELECT ID FROM CONFIG WHERE GUILD_ID=%s)"
        val_ = (command, guild_id)

        cur_main.execute(sql_, val_)
        data_ = cur_main.fetchone()
        return not data_

    else:
        return False
예제 #4
0
def get_welcome_message(guild_id: int) -> str:
    sql = "SELECT WELCOME_MESSAGE FROM CONFIG WHERE GUILD_ID=%s"
    val = (guild_id, )

    cur_main.execute(sql, val)

    data = cur_main.fetchone()

    return data[0] if data and data[0] and data[0] else ""
예제 #5
0
def get_welcome_role_id(guild_id: int) -> int:
    sql = "SELECT WELCOME_ROLE_ID FROM CONFIG WHERE GUILD_ID=%s"
    val = (str(guild_id), )

    cur_main.execute(sql, val)

    data = cur_main.fetchone()

    return data[0] if data else 0
예제 #6
0
def disable_command(guild_id: int, command: str):
    cur_main.execute("SELECT ID FROM COMMANDS WHERE COMMAND=%s", (command, ))
    command_in_db = cur_main.fetchone()

    if command_in_db:
        sql = "INSERT INTO DISABLED_COMMANDS (SERVER_ID, COMMAND_ID) VALUES ((SELECT ID FROM CONFIG WHERE GUILD_ID=%s), %s)"
        val = (guild_id, command_in_db[0])

        cur_main.execute(sql, val)
        conn_main.commit()
예제 #7
0
def get_welcome_role(guild: discord.guild):
    sql = "SELECT WELCOME_ROLE_ID FROM CONFIG WHERE GUILD_ID=%s"
    val = (guild.id, )

    cur_main.execute(sql, val)
    data = cur_main.fetchone()

    role = ""

    if data and data[0]:
        role = discord.utils.get(guild.roles, id=int(data[0]))

    return role if role else 0
예제 #8
0
def get_all_disabled_commands_from_guild(guild_id: int) -> list:
    cur_main.execute(
        "SELECT COMMAND_ID FROM DISABLED_COMMANDS WHERE SERVER_ID=(SELECT ID FROM CONFIG WHERE GUILD_ID=%s)",
        (guild_id, ))
    command_ids = cur_main.fetchall()
    data = []

    for command_id in command_ids:
        cur_main.execute("SELECT COMMAND FROM COMMANDS WHERE ID=%s",
                         command_id)
        data.append(cur_main.fetchone()[0])

    return data
예제 #9
0
파일: commands.py 프로젝트: 00mjk/ZemoBot
def get_all_guild_commands_and_category(guild_id: int):
    cur_main.execute(
        "SELECT CATEGORY_ID, COMMAND FROM COMMANDS WHERE ID NOT IN (SELECT COMMAND_ID FROM DISABLED_COMMANDS WHERE SERVER_ID=(SELECT ID FROM CONFIG WHERE GUILD_ID=%s))",
        (guild_id, ))
    commands = {
        command: category
        for (category, command) in cur_main.fetchall()
    }

    for command in commands:
        cur_main.execute("SELECT CATEGORY FROM COMMAND_CATEGORIES WHERE ID=%s",
                         (commands[command], ))
        commands[command] = cur_main.fetchone()[0]

    return commands
예제 #10
0
def get_categories_with_command_count():
    cur_main.execute("SELECT CATEGORY_ID, COMMAND FROM COMMANDS;")
    data = cur_main.fetchall()
    dict_data = {}

    for entry in data:
        cur_main.execute(
            "SELECT CATEGORY FROM COMMAND_CATEGORIES WHERE ID=%s;",
            (entry[0], ))
        category = cur_main.fetchone()

        if category[0] + "_category" not in dict_data:
            dict_data[category[0] + "_category"] = 1
        else:
            dict_data[category[0] +
                      "_category"] = dict_data[category[0] + "_category"] + 1

    cur_main.execute("SELECT COMMAND FROM ADMIN_COMMANDS;")
    dict_data["admin_commands"] = len(cur_main.fetchall())

    return dict_data
예제 #11
0
def get_xp_from_user(guild_id: int, user_id: int) -> int:
    cur_main.execute("SELECT SUM(XP) FROM LEVEL WHERE SERVER_ID=(SELECT ID FROM CONFIG WHERE GUILD_ID=%s) AND USER_ID=%s", (guild_id, user_id))
    data = cur_main.fetchone()

    return data[0] if data and data[0] else 0
예제 #12
0
def get_twitch_username(guild_id: int) -> str:
    cur_main.execute('SELECT TWITCH_USERNAME FROM CONFIG WHERE GUILD_ID = %s',
                     (guild_id, ))
    data = cur_main.fetchone()
    return data[0] if data and data[0] else ""
예제 #13
0
def get_server(guild_id: int) -> bool:
    cur_main.execute('SELECT ACTIVE FROM CONFIG WHERE GUILD_ID = %s',
                     (guild_id, ))
    data = cur_main.fetchone()

    return bool(data)
예제 #14
0
파일: voice.py 프로젝트: 00mjk/ZemoBot
def get_user_voice_time(user_id: int) -> int:
    cur_main.execute("SELECT SUM(MINUTES) from VOICE WHERE USER_ID=%s",
                     (user_id, ))
    data = cur_main.fetchone()
    return data[0] if data and data[0] else 0