Exemple #1
0
def manage_points(uid: int, points: int):
    check_user(uid)
    base = execute(
        'SELECT points FROM users WHERE user_id = %s;',
        [uid]
    )[0][0] or 0
    points += base
    execute(
        'UPDATE users SET points = %s WHERE user_id = %s;',
        [points, uid]
    )
Exemple #2
0
def update_warn(uid: int, reason=None):
    today = now()
    return execute(
        'UPDATE warns'
        ' SET warn_date = %s, warn_time = %s, warn_reason = %s'
        ' WHERE user_id = %s;',
        [today.strftime('%Y-%m-%d'),
         today.strftime('%H:%M:%S'), reason, uid])
Exemple #3
0
def get_level(user_id: int):
    points = execute(
        'SELECT points FROM users WHERE user_id = %s',
        [user_id]
    )
    if points:
        return points[0]
    else:
        return 0
Exemple #4
0
def purge_settings(guild_id: int) -> Dict:
    q = execute(
        '''SELECT
            check_channel_id,
            active_role_id,
            inactive_role_id,
            purge_started_date
        FROM purges
        WHERE guild_id = %s;''', [guild_id])[0]
    return dict(check_channel_id=q[0],
                active_role_id=q[1],
                inactive_role_id=q[2],
                purge_started_date=q[3])
Exemple #5
0
def add_warn(uid: int, reason=None, level=None):
    today = now()
    warn_level = get_warn(uid)
    if level is None:
        level = warn_level[0][1] if warn_level else 1
    check_user(uid)
    return execute(
        'INSERT INTO warns'
        ' (user_id, warn_level, warn_date, warn_time, warn_reason)'
        ' VALUES (%s::bigint, %s, %s, %s, %s);', [
            uid, level,
            today.strftime('%Y-%m-%d'),
            today.strftime('%H:%M:%S'), reason
        ])
Exemple #6
0
def points_to_level(points: int) -> Dict:
    level = execute(
        'SELECT level_id, min_points, max_points, role_id '
        'FROM levels '
        'WHERE (( '
        '   ( %s >= min_points ) '
        '       AND '
        '   ( %s <= max_points ) '
        '));',
        [points, points]
    )
    return {
        'level_id': level[0][0],
        'min_points': level[0][1],
        'max_points': level[0][2],
        'role_id': level[0][3]
    } if level else {}
Exemple #7
0
def get_warns() -> Dict:
    records = execute(
        'SELECT warn_id, user_id, warn_level, warn_date, warn_time, warn_reason FROM warns;'
    )
    result = {}
    if records:
        for r in records:
            result[r[0]] = {
                'warn_id': r[0],
                'user_id': r[1],
                'warn_level': r[2],
                'warn_date': r[3],
                'warn_time': r[4],
                'warn_reason': r[5]
            }
    else:
        result = {{}}
    return result
Exemple #8
0
def get_all_points(limit=10) -> List:
    points = execute(
        'SELECT user_id, points FROM users LIMIT %s;',
        [limit]
    )
    return [[item[0], item[1]] for item in points] if points else []
Exemple #9
0
def get_points(uid: int) -> int:
    points = execute(
        'SELECT points FROM users WHERE user_id = %s',
        [uid]
    )
    return points[0][0] if points else 0
Exemple #10
0
def purge_enabled(guild_id: int) -> bool:
    q = execute('SELECT purge_enabled FROM purges WHERE guild_id = %s;',
                [guild_id])
    return q[0][0] if q else False
Exemple #11
0
def purge_disable(guild_id: int):
    return execute(
        'UPDATE purges SET purge_enabled = false WHERE guild_id = %s;',
        [guild_id])
Exemple #12
0
def add_user(uid: int):
    return execute('INSERT INTO users VALUES (%s::bigint);', [uid])
Exemple #13
0
def get_warn(uid: int) -> Tuple[Tuple]:
    return execute('SELECT * FROM warns WHERE user_id = %s;', [uid])
Exemple #14
0
def del_warns(uid: int):
    return execute('DELETE FROM warns WHERE user_id = %s;', [uid])
Exemple #15
0
def del_user(uid: int):
    return execute('DELETE FROM users WHERE user_id = %s;', [uid])
Exemple #16
0
def purge_enable(guild_id: int):
    today = now()
    return execute(
        'UPDATE purges SET purge_enabled = true, purge_started_date = %s WHERE guild_id = %s;',
        [today.strftime('%Y-%m-%d'), guild_id])
Exemple #17
0
def check_user(uid: int):
    if not execute('SELECT * FROM users WHERE user_id = %s;', [uid]):
        add_user(uid)