예제 #1
0
def group_message_counter(group_id, read_only=False, reset=False):
    with LOCK:
        try:
            if read_only:
                session = get_session()
                group = get_unique_from_query(
                    session.query(
                        model.Group).filter(model.Group.id == group_id))
                return group.message_num
            if reset:
                session = get_session()
                group = get_unique_from_query(
                    session.query(
                        model.Group).filter(model.Group.id == group_id))
                group.message_num = 0
                return group.message_num
            else:
                session = get_session()
                group = get_unique_from_query(
                    session.query(
                        model.Group).filter(model.Group.id == group_id))
                if group.message_num is None:
                    group.message_num = 0
                group.message_num += 1
                return group.message_num
        finally:
            session.commit()
            session.close()
예제 #2
0
def get_admin_from_linked(chat_id):
    try:
        session = get_session()
        linked = get_unique_from_query(
            session.query(LinkedGroups).filter(
                LinkedGroups.linked_id == chat_id))
        if linked is None:
            session.close()
            return None

        return get_unique_from_query(
            session.query(AdminGroups).filter(
                AdminGroups.id == linked.admin_id))
    finally:
        session.close()
예제 #3
0
def commit_user(user_id,
                alias=None,
                level=None,
                profession=None,
                house=None,
                team=None,
                validation=None,
                profession_level=None,
                fort_level=None):
    with LOCK:
        session = get_session()
        user = get_unique_from_query(
            session.query(User).filter(User.id == user_id))
        if alias:
            user.alias = alias
        if level:
            user.level = level
        if house:
            user.house = house
        if validation:
            user.validation = validation
        if profession:
            user.profession = profession
        if team:
            user.team = team
        if profession_level:
            user.profession_level = profession_level
        if fort_level:
            user.fort_level = fort_level
        session.commit()
        session.close()
예제 #4
0
def get_real_user(user_id):
    try:
        session = get_session()
        return get_unique_from_query(
            session.query(User).filter(User.id == user_id))
    finally:
        session.close()
예제 #5
0
def get_user_by_name(username):
    try:
        session = get_session()
        return get_unique_from_query(
            session.query(User).filter(User.alias == username))
    finally:
        session.close()
예제 #6
0
def get_particular_admin(chat_id):
    try:
        session = get_session()
        return get_unique_from_query(
            session.query(SettingsAdmin).filter(SettingsAdmin.id == chat_id))
    finally:
        session.close()
예제 #7
0
def get_admin(chat_id):
    try:
        session = get_session()
        return get_unique_from_query(
            session.query(AdminGroups).filter(AdminGroups.id == chat_id))
    finally:
        session.close()
예제 #8
0
def set_ghost(user_id, ghost_bool):
    with LOCK:
        session = get_session()
        user = get_unique_from_query(
            session.query(User).filter(User.id == user_id))
        user.ghost = ghost_bool
        session.commit()
        session.close()
예제 #9
0
def get_real_group(group_id):
    try:
        session = get_session()
        group = get_unique_from_query(
            session.query(model.Group).filter(model.Group.id == group_id))
        return group
    finally:
        session.close()
예제 #10
0
def get_welcome_settings(chat_id):
    try:
        session = get_session()
        group = get_unique_from_query(
            session.query(Welcome).filter(Welcome.chat_id == chat_id))
        return group
    finally:
        session.close()
예제 #11
0
def set_fc(fc, user_id):
    with LOCK:
        session = get_session()
        user = get_unique_from_query(
            session.query(User).filter(User.id == user_id))
        user.friend_id = fc
        session.commit()
        session.close()
예제 #12
0
def get_plant(plant_id):
    try:
        session = get_session()
        plant = get_unique_from_query(
            session.query(model.Plants).filter(model.Plants.id == plant_id))
        return plant
    finally:
        session.close()
예제 #13
0
def get_join_settings(chat_id):
    try:
        session = get_session()
        group = get_unique_from_query(
            session.query(SettingsJoin).filter(SettingsJoin.id == chat_id))
        return group
    finally:
        session.close()
예제 #14
0
def get_group_settings(group_id):
    try:
        session = get_session()
        group = get_unique_from_query(
            session.query(SettingsGroup).filter(SettingsGroup.id == group_id))
        return group
    finally:
        session.close()
예제 #15
0
def get_warn_limit(group_id):
    try:
        session = get_session()
        group = get_unique_from_query(
            session.query(SettingsGroup).filter(SettingsGroup.id == group_id))
        return group.warn.value
    finally:
        session.close()
예제 #16
0
def update_fclist(user_id):
    with LOCK:
        session = get_session()
        user = get_unique_from_query(
            session.query(User).filter(User.id == user_id))
        user.fclists = not user.fclists
        session.commit()
        session.close()
예제 #17
0
def get_nanny_settings(chat_id):
    try:
        session = get_session()
        nanny = get_unique_from_query(
            session.query(SettingsNurse).filter(SettingsNurse.id == chat_id))
        return nanny
    finally:
        session.close()
예제 #18
0
def update_ranking(user_id):
    with LOCK:
        session = get_session()
        user = get_unique_from_query(
            session.query(User).filter(User.id == user_id))
        user.ranking = not user.ranking
        session.commit()
        session.close()
예제 #19
0
def set_staff(user_id, staff_bool):
    with LOCK:
        session = get_session()
        user = get_unique_from_query(
            session.query(User).filter(User.id == user_id))
        user.staff = staff_bool
        session.commit()
        session.close()
예제 #20
0
def get_poi(poi_id):
    try:
        session = get_session()
        poi = get_unique_from_query(
            session.query(model.Portals).filter(model.Portals.id == poi_id))
        return poi
    finally:
        session.close()
예제 #21
0
def set_nanny_settings(chat_id, settings_str):
    with LOCK:
        session = get_session()
        nanny = get_unique_from_query(
            session.query(SettingsNurse).filter(SettingsNurse.id == chat_id))
        nanny.set_nurseset_from_str(settings_str)
        session.commit()
        session.close()
        return
예제 #22
0
def set_nanny_reply(chat_id, text):
    with LOCK:
        session = get_session()
        nanny = get_unique_from_query(
            session.query(SettingsNurse).filter(SettingsNurse.id == chat_id))
        nanny.reply = text
        session.commit()
        session.close()
        return
예제 #23
0
def unban_user(user_id):
    with LOCK:
        session = get_session()
        user = get_unique_from_query(
            session.query(User).filter(User.id == user_id))
        user.flag = ""
        user.banned = False
        session.commit()
        session.close()
예제 #24
0
def set_admin_settings(chat_id, settings_str):
    with LOCK:
        session = get_session()
        admin = get_unique_from_query(
            session.query(AdminGroups).filter(AdminGroups.id == chat_id))
        admin.set_admset_from_str(settings_str)
        session.commit()
        session.close()
        return
예제 #25
0
def set_ladmin_settings(chat_id, settings_str):
    with LOCK:
        session = get_session()
        admin = get_unique_from_query(
            session.query(SettingsAdmin).filter(SettingsAdmin.id == chat_id))
        admin.set_setadm_from_str(settings_str)
        session.commit()
        session.close()
        return
예제 #26
0
def set_welcome_settings(chat_id, settings_str):
    with LOCK:
        session = get_session()
        group = get_unique_from_query(
            session.query(Welcome).filter(Welcome.chat_id == chat_id))
        group.set_welcomeset_from_str()
        session.commit()
        session.close()
        return
예제 #27
0
def set_join_settings(chat_id, settings_str):
    with LOCK:
        session = get_session()
        group = get_unique_from_query(
            session.query(SettingsJoin).filter(SettingsJoin.id == chat_id))
        group.set_joinset_from_str(settings_str)
        session.commit()
        session.close()
        return
예제 #28
0
def set_welcome_cooldown(chat_id, delete_cooldown):
    with LOCK:
        session = get_session()
        group = get_unique_from_query(
            session.query(SettingsJoin).filter(SettingsJoin.id == chat_id))
        group.delete_cooldown = delete_cooldown
        session.commit()
        session.close()
        return
예제 #29
0
def set_max_members(chat_id, max_members):
    with LOCK:
        session = get_session()
        group = get_unique_from_query(
            session.query(SettingsJoin).filter(SettingsJoin.id == chat_id))
        group.max_members = max_members
        session.commit()
        session.close()
        return
예제 #30
0
def ban_user(user_id, flag):
    with LOCK:
        session = get_session()
        user = get_unique_from_query(
            session.query(User).filter(User.id == user_id))
        user.flag = flag
        user.banned = True
        session.commit()
        session.close()