Exemplo n.º 1
0
def addedChat(chat_id):
    with ALLOWCHATLOCK:
        chat = SESSION.query(AllowedChat).get(chat_id)
        if not chat:
            chat = AllowedChat(chat_id)
            SESSION.merge(chat)
        SESSION.commit()
        __load_added_chats_list()
Exemplo n.º 2
0
def add_to_stickers(chat_id, trigger):
    with STICKERS_FILTER_INSERTION_LOCK:
        stickers_filt = StickersFilters(str(chat_id), trigger)

        SESSION.merge(stickers_filt)  # merge to avoid duplicate key issues
        SESSION.commit()
        global CHAT_STICKERS
        if CHAT_STICKERS.get(str(chat_id), set()) == set():
            CHAT_STICKERS[str(chat_id)] = {trigger}
        else:
            CHAT_STICKERS.get(str(chat_id), set()).add(trigger)
Exemplo n.º 3
0
def add_warn_filter(chat_id, keyword, reply):
    with WARN_FILTER_INSERTION_LOCK:
        warn_filt = WarnFilters(str(chat_id), keyword, reply)

        if keyword not in WARN_FILTERS.get(str(chat_id), []):
            WARN_FILTERS[str(chat_id)] = sorted(
                WARN_FILTERS.get(str(chat_id), []) + [keyword],
                key=lambda x: (-len(x), x))

        SESSION.merge(warn_filt)  # merge to avoid duplicate key issues
        SESSION.commit()
Exemplo n.º 4
0
def add_to_blacklist(chat_id, trigger):
    with BLACKLIST_FILTER_INSERTION_LOCK:
        blacklist_filt = BlackListFilters(str(chat_id), trigger)

        SESSION.merge(blacklist_filt)  # merge to avoid duplicate key issues
        SESSION.commit()
        global CHAT_BLACKLISTS
        if CHAT_BLACKLISTS.get(str(chat_id), set()) == set():
            CHAT_BLACKLISTS[str(chat_id)] = {trigger}
        else:
            CHAT_BLACKLISTS.get(str(chat_id), set()).add(trigger)
Exemplo n.º 5
0
def update_gban_reason(user_id, name, reason=None):
    with GBANNED_USERS_LOCK:
        user = SESSION.query(GloballyBannedUsers).get(user_id)
        if not user:
            return None
        old_reason = user.reason
        user.name = name
        user.reason = reason

        SESSION.merge(user)
        SESSION.commit()
        return old_reason
Exemplo n.º 6
0
def gban_user(user_id, name, reason=None):
    with GBANNED_USERS_LOCK:
        user = SESSION.query(GloballyBannedUsers).get(user_id)
        if not user:
            user = GloballyBannedUsers(user_id, name, reason)
        else:
            user.name = name
            user.reason = reason

        SESSION.merge(user)
        SESSION.commit()
        __load_gbanned_userid_list()
Exemplo n.º 7
0
def user_demote_dynasty(dynasty_id, user_id):
    with DYNASTY_LOCK:
        global DYNASTY_BYOWNER, DYNASTY_BYDYNASTYID, DYNASTY_BYNAME
        # Variables
        getdynasty = DYNASTY_BYDYNASTYID.get(str(dynasty_id))
        owner_id = getdynasty['owner']
        dynasty_name = getdynasty['dname']
        dynasty_rules = getdynasty['drules']
        dynasty_log = getdynasty['dlog']
        # Temp set
        try:
            members = eval(eval(getdynasty['dusers'])['members'])
        except ValueError:
            return False
        members.remove(user_id)
        # Set user
        DYNASTY_BYOWNER[str(owner_id)]['dusers'] = str({
            'owner': str(owner_id),
            'members': str(members)
        })
        DYNASTY_BYDYNASTYID[str(dynasty_id)]['dusers'] = str({
            'owner':
            str(owner_id),
            'members':
            str(members)
        })
        DYNASTY_BYNAME[dynasty_name]['dusers'] = str({
            'owner': str(owner_id),
            'members': str(members)
        })
        # Set on database
        dynasty = Dynasties(
            str(owner_id), dynasty_name, str(dynasty_id), dynasty_rules,
            dynasty_log, str({
                'owner': str(owner_id),
                'members': str(members)
            }))
        SESSION.merge(dynasty)
        SESSION.commit()
        return True

        curr = SESSION.query(UserF).all()
        result = False
        for r in curr:
            if int(r.user_id) == int(user_id):
                if r.dynasty_id == dynasty_id:
                    SESSION.delete(r)
                    SESSION.commit()
                    result = True

        SESSION.close()
        return result
Exemplo n.º 8
0
def subs_dynasty(dynasty_id, my_dynasty):
    check = get_spec_subs(dynasty_id, my_dynasty)
    if check:
        return False
    with DYNASTY_SUBSCRIBER_LOCK:
        subsdynasty = DynastySubs(dynasty_id, my_dynasty)

        SESSION.merge(subsdynasty)  # merge to avoid duplicate key issues
        SESSION.commit()
        global DYNASTY_SUBSCRIBER
        if DYNASTY_SUBSCRIBER.get(dynasty_id, set()) == set():
            DYNASTY_SUBSCRIBER[dynasty_id] = {my_dynasty}
        else:
            DYNASTY_SUBSCRIBER.get(dynasty_id, set()).add(my_dynasty)
        return True
Exemplo n.º 9
0
def set_drules(dynasty_id, rules):
    with DYNASTY_LOCK:
        global DYNASTY_BYOWNER, DYNASTY_BYDYNASTYID, DYNASTY_BYNAME
        # Variables
        getdynasty = DYNASTY_BYDYNASTYID.get(str(dynasty_id))
        owner_id = getdynasty['owner']
        dynasty_name = getdynasty['dname']
        dynasty_members = getdynasty['dusers']
        dynasty_rules = str(rules)
        dynasty_log = getdynasty['dlog']
        # Set user
        DYNASTY_BYOWNER[str(owner_id)]['drules'] = dynasty_rules
        DYNASTY_BYDYNASTYID[str(dynasty_id)]['drules'] = dynasty_rules
        DYNASTY_BYNAME[dynasty_name]['drules'] = dynasty_rules
        # Set on database
        dynasty = Dynasties(str(owner_id), dynasty_name, str(dynasty_id),
                            dynasty_rules, dynasty_log, str(dynasty_members))
        SESSION.merge(dynasty)
        SESSION.commit()
        return True
Exemplo n.º 10
0
def user_join_dynasty(dynasty_id, user_id):
    with DYNASTY_LOCK:
        global DYNASTY_BYOWNER, DYNASTY_BYDYNASTYID, DYNASTY_BYNAME
        # Variables
        getdynasty = DYNASTY_BYDYNASTYID.get(str(dynasty_id))
        owner_id = getdynasty['owner']
        dynasty_name = getdynasty['dname']
        dynasty_rules = getdynasty['drules']
        dynasty_log = getdynasty['dlog']
        # Temp set
        members = eval(eval(getdynasty['dusers'])['members'])
        members.append(user_id)
        # Set user
        DYNASTY_BYOWNER[str(owner_id)]['dusers'] = str({
            'owner': str(owner_id),
            'members': str(members)
        })
        DYNASTY_BYDYNASTYID[str(dynasty_id)]['dusers'] = str({
            'owner':
            str(owner_id),
            'members':
            str(members)
        })
        DYNASTY_BYNAME[dynasty_name]['dusers'] = str({
            'owner': str(owner_id),
            'members': str(members)
        })
        # Set on database
        dynasty = Dynasties(
            str(owner_id), dynasty_name, str(dynasty_id), dynasty_rules,
            dynasty_log, str({
                'owner': str(owner_id),
                'members': str(members)
            }))
        SESSION.merge(dynasty)
        SESSION.commit()
        __load_all_dynasties_chats()
        return True
Exemplo n.º 11
0
def ensure_bot_in_db():
    with INSERTION_LOCK:
        bot = Users(dispatcher.bot.id, dispatcher.bot.username)
        SESSION.merge(bot)
        SESSION.commit()