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()
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)
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()
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)
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
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()
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
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
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
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
def ensure_bot_in_db(): with INSERTION_LOCK: bot = Users(dispatcher.bot.id, dispatcher.bot.username) SESSION.merge(bot) SESSION.commit()