def is_chat(chat_id: str): try: s__ = SESSION.query(Nightmode).get(str(chat_id)) if s__: return str(s__.chat_id) finally: SESSION.close()
def is_pin(chat_id: str): try: s__ = SESSION.query(Cleaned).get(str(chat_id)) if s__: return str(s__.chat_id) finally: SESSION.close()
def get_filter(chat_id, keyword): try: return SESSION.query(Filters).get((str(chat_id), keyword)) except BaseException: return None finally: SESSION.close()
def get_all_notes(chat_id): try: return SESSION.query(NOTES).filter(NOTES.chat_id == str(chat_id)).all() except BaseException: return None finally: SESSION.close()
def is_talkmode_indb(chat_id: str): try: s__ = SESSION.query(Talkmode).get(str(chat_id)) if s__: return str(s__.chat_id) finally: SESSION.close()
def get_current_goodbye_settings(chat_id): try: return SESSION.query(Goodbye).filter(Goodbye.chat_id == str(chat_id)).one() except: return None finally: SESSION.close()
def get_current_welcome_settings(chat_id): try: return SESSION.query(Welcome).filter(Welcome.chat_id == str(chat_id)).one() except: return None finally: SESSION.close()
def __load_feds_subscriber(): global FEDS_SUBSCRIBER global MYFEDS_SUBSCRIBER try: feds = SESSION.query(FedSubs.fed_id).distinct().all() for (fed_id, ) in feds: # remove tuple by ( ,) FEDS_SUBSCRIBER[fed_id] = [] MYFEDS_SUBSCRIBER[fed_id] = [] all_fedsubs = SESSION.query(FedSubs).all() for x in all_fedsubs: FEDS_SUBSCRIBER[x.fed_id] += [x.fed_subs] try: MYFEDS_SUBSCRIBER[x.fed_subs] += [x.fed_id] except KeyError: getsubs = SESSION.query(FedSubs).get((x.fed_id, x.fed_subs)) if getsubs: SESSION.delete(getsubs) SESSION.commit() FEDS_SUBSCRIBER = {x: set(y) for x, y in FEDS_SUBSCRIBER.items()} MYFEDS_SUBSCRIBER = {x: set(y) for x, y in MYFEDS_SUBSCRIBER.items()} finally: SESSION.close()
def get_notes(chat_id, keyword): try: return SESSION.query(NOTES).get((str(chat_id), keyword)) except BaseException: return None finally: SESSION.close()
def __load_all_feds_settings(): global FEDERATION_NOTIFICATION try: getuser = SESSION.query(FedsUserSettings).all() for x in getuser: FEDERATION_NOTIFICATION[str(x.user_id)] = x.should_report finally: SESSION.close()
def already_added(chat_id): try: return SESSION.query(Moidata).filter( Moidata.chat_id == str(chat_id)).one() except: return None finally: SESSION.close()
def get_all_filters(chat_id): try: return SESSION.query(Filters).filter( Filters.chat_id == str(chat_id)).all() except BaseException: return None finally: SESSION.close()
def get_warn_strength(chat_id): try: setting = SESSION.query(WarnSettings).get(str(chat_id)) if setting: return setting.soft_warn return "ban" finally: SESSION.close()
def is_chat(chat_id): try: chat = SESSION.query(aiChats).get(str(chat_id)) if chat: return True return False finally: SESSION.close()
def user_should_report(user_id: int) -> bool: try: user_setting = SESSION.query(ReportingUserSettings).get(user_id) if user_setting: return user_setting.should_report return True finally: SESSION.close()
def chat_should_report(chat_id: Union[str, int]) -> bool: try: chat_setting = SESSION.query(ReportingChatSettings).get(str(chat_id)) if chat_setting: return chat_setting.should_report return False finally: SESSION.close()
def get_rules(chat_id): rules = SESSION.query(Rules).get(str(chat_id)) ret = "" if rules: ret = rules.rules SESSION.close() return ret
def user_demote_fed(fed_id, user_id): with FEDS_LOCK: global FEDERATION_BYOWNER, FEDERATION_BYFEDID, FEDERATION_BYNAME # Variables getfed = FEDERATION_BYFEDID.get(str(fed_id)) owner_id = getfed["owner"] fed_name = getfed["fname"] fed_rules = getfed["frules"] fed_log = getfed["flog"] # Temp set try: members = eval(eval(getfed["fusers"])["members"]) except ValueError: return False members.remove(user_id) # Set user FEDERATION_BYOWNER[str(owner_id)]["fusers"] = str({ "owner": str(owner_id), "members": str(members) }) FEDERATION_BYFEDID[str(fed_id)]["fusers"] = str({ "owner": str(owner_id), "members": str(members) }) FEDERATION_BYNAME[fed_name]["fusers"] = str({ "owner": str(owner_id), "members": str(members) }) # Set on database fed = Federations( str(owner_id), fed_name, str(fed_id), fed_rules, fed_log, str({ "owner": str(owner_id), "members": str(members) }), ) SESSION.merge(fed) 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.fed_id == fed_id: SESSION.delete(r) SESSION.commit() result = True SESSION.close() return result
def __load_sudo_users(): global SUDO_USERS global SUDO_USERSS try: all_bio = SESSION.query(BIO).all() SUDO_USERS = {user.user_id: user.fname for user in all_bio if user.is_sudo} SUDO_USERSS = {user.user_id: user.fname for user in all_bio if user.is_sudo} finally: SESSION.close()
def __load_afk_users(): global AFK_USERS global AFK_USERSS try: all_afk = SESSION.query(AFK).all() AFK_USERS = {user.user_id: user.reason for user in all_afk if user.is_afk} AFK_USERSS = {user.user_id: user.start_time for user in all_afk if user.is_afk} finally: SESSION.close()
def get_warn_setting(chat_id): try: setting = SESSION.query(WarnSettings).get(str(chat_id)) if setting: return setting.warn_limit, setting.soft_warn return 3, "ban" finally: SESSION.close()
def get_warns(user_id, chat_id): try: user = SESSION.query(Warns).get((user_id, str(chat_id))) if not user: return None reasons = user.reasons num = user.num_warns return num, reasons finally: SESSION.close()
def reset_warns(user_id, chat_id): with WARN_INSERTION_LOCK: warned_user = SESSION.query(Warns).get((user_id, str(chat_id))) if warned_user: warned_user.num_warns = 0 warned_user.reasons = "" SESSION.add(warned_user) SESSION.commit() SESSION.close()
def get_ses(chat_id): autochat = SESSION.query(aiChats).get(str(chat_id)) sesh = "" exp = "" if autochat: sesh = str(autochat.ses_id) exp = str(autochat.expires) SESSION.close() return sesh, exp
def unsubs_fed(fed_id, my_fed): with FEDS_SUBSCRIBER_LOCK: getsubs = SESSION.query(FedSubs).get((fed_id, my_fed)) if getsubs: if my_fed in FEDS_SUBSCRIBER.get(fed_id, set()): # sanity check FEDS_SUBSCRIBER.get(fed_id, set()).remove(my_fed) SESSION.delete(getsubs) SESSION.commit() return True SESSION.close() return False
def rem_sub(my_fed, fed_id): sox = SESSION.query(FedSubs).get((my_fed, fed_id)) if sox: if fed_id in MYFEDS_SUBSCRIBER.get(my_fed, set()): # sanity check MYFEDS_SUBSCRIBER.get(my_fed, set()).remove(fed_id) SESSION.delete(sox) SESSION.commit() return True SESSION.close() return False
def rm_afk(user_id): with INSERTION_LOCK: curr = SESSION.query(AFK).get(user_id) if curr: if user_id in AFK_USERS: # sanity check del AFK_USERS[user_id] del AFK_USERSS[user_id] SESSION.delete(curr) SESSION.commit() return True SESSION.close() return False
def remove_warn(user_id, chat_id): with WARN_INSERTION_LOCK: removed = False warned_user = SESSION.query(Warns).get((user_id, str(chat_id))) if warned_user and warned_user.num_warns > 0: warned_user.num_warns -= 1 SESSION.add(warned_user) SESSION.commit() removed = True SESSION.close() return removed
def __load_all_feds(): global FEDERATION_BYOWNER, FEDERATION_BYFEDID, FEDERATION_BYNAME try: feds = SESSION.query(Federations).all() for x in feds: # remove tuple by ( ,) # Fed by Owner check = FEDERATION_BYOWNER.get(x.owner_id) if check is None: FEDERATION_BYOWNER[x.owner_id] = [] FEDERATION_BYOWNER[str(x.owner_id)] = { "fid": str(x.fed_id), "fname": x.fed_name, "frules": x.fed_rules, "flog": x.fed_log, "fusers": str(x.fed_users), } # Fed By FedId check = FEDERATION_BYFEDID.get(x.fed_id) if check is None: FEDERATION_BYFEDID[x.fed_id] = [] FEDERATION_BYFEDID[str(x.fed_id)] = { "owner": str(x.owner_id), "fname": x.fed_name, "frules": x.fed_rules, "flog": x.fed_log, "fusers": str(x.fed_users), } # Fed By Name check = FEDERATION_BYNAME.get(x.fed_name) if check is None: FEDERATION_BYNAME[x.fed_name] = [] FEDERATION_BYNAME[x.fed_name] = { "fid": str(x.fed_id), "owner": str(x.owner_id), "frules": x.fed_rules, "flog": x.fed_log, "fusers": str(x.fed_users), } finally: SESSION.close()
def __load_all_feds_chats(): global FEDERATION_CHATS, FEDERATION_CHATS_BYID try: qall = SESSION.query(ChatF).all() FEDERATION_CHATS = {} FEDERATION_CHATS_BYID = {} for x in qall: # Federation Chats check = FEDERATION_CHATS.get(x.chat_id) if check is None: FEDERATION_CHATS[x.chat_id] = {} FEDERATION_CHATS[x.chat_id] = { "chat_name": x.chat_name, "fid": x.fed_id } # Federation Chats By ID check = FEDERATION_CHATS_BYID.get(x.fed_id) if check is None: FEDERATION_CHATS_BYID[x.fed_id] = [] FEDERATION_CHATS_BYID[x.fed_id].append(x.chat_id) finally: SESSION.close()