def get_gmuted_user(user_id): try: return SESSION.query(GloballyMutedUsers).get(user_id) finally: SESSION.close()
def num_warn_chat_filters(chat_id): try: return SESSION.query(WarnFilters.chat_id).filter( WarnFilters.chat_id == str(chat_id)).count() finally: SESSION.close()
def get_all_chat_notes(chat_id): try: return SESSION.query(Notes).filter( Notes.chat_id == str(chat_id)).order_by(Notes.name.asc()).all() finally: SESSION.close()
def get_chat_warn_filters(chat_id): try: return SESSION.query(WarnFilters).filter( WarnFilters.chat_id == str(chat_id)).all() finally: SESSION.close()
def num_warns(): try: return SESSION.query(func.sum(Warns.num_warns)).scalar() or 0 finally: SESSION.close()
def num_blacklist_chat_filters(chat_id): try: return SESSION.query(BlackListFilters.chat_id).filter( BlackListFilters.chat_id == str(chat_id)).count() finally: SESSION.close()
def get_locks(chat_id): try: return SESSION.query(Permissions).get(str(chat_id)) finally: SESSION.close()
def curr_connection(chat_id): try: return SESSION.query(Connection).get((str(chat_id))) finally: SESSION.close()
def get_history(user_id): try: return SESSION.query(ConnectionHistory).get(str(user_id)) finally: SESSION.close()
def chat_antiarabic(chat_id: Union[str, int]) -> bool: try: if chat_setting := SESSION.query(AntiArabicChatSettings).get( str(chat_id)): return chat_setting.antiarabic return False
def get_connected_chat(user_id): try: return SESSION.query(Connection).get((int(user_id))) finally: SESSION.close()
return "<Chat AntiArabic settings ({})>".format(self.chat_id) AntiArabicChatSettings.__table__.create(checkfirst=True) CHAT_LOCK = threading.RLock() def chat_antiarabic(chat_id: Union[str, int]) -> bool: try: if chat_setting := SESSION.query(AntiArabicChatSettings).get( str(chat_id)): return chat_setting.antiarabic return False finally: SESSION.close() def set_chat_setting(chat_id: Union[int, str], setting: bool): with CHAT_LOCK: chat_setting = SESSION.query(AntiArabicChatSettings).get(str(chat_id)) if not chat_setting: chat_setting = AntiArabicChatSettings(chat_id) chat_setting.antiarabic = setting SESSION.add(chat_setting) SESSION.commit() def migrate_chat(old_chat_id, new_chat_id): with CHAT_LOCK:
def check_afk_status(user_id): try: return SESSION.query(AFK).get(user_id) finally: SESSION.close()
def get_gmute_list(): try: return [x.to_dict() for x in SESSION.query(GloballyMutedUsers).all()] finally: SESSION.close()
def get_user_bio(user_id): userbio = SESSION.query(UserBio).get(user_id) SESSION.close() if userbio: return userbio.bio return None
def num_disabled(): try: return SESSION.query(Disable).count() finally: SESSION.close()
def num_blacklist_filters(): try: return SESSION.query(BlackListFilters).count() finally: SESSION.close()
def prev_locale(chat_id): try: return SESSION.query(Locales).get((str(chat_id))) finally: SESSION.close()
def num_blacklist_filter_chats(): try: return SESSION.query(func.count(distinct( BlackListFilters.chat_id))).scalar() finally: SESSION.close()
def get_rules(chat_id): ret = rules.rules if (rules := SESSION.query(Rules).get( str(chat_id))) else "" SESSION.close() return ret
def get_restr(chat_id): try: return SESSION.query(Restrictions).get(str(chat_id)) finally: SESSION.close()
def get_private_rules(chat_id): curr = SESSION.query(PrivateRules).get(str(chat_id)) if curr: return curr.is_private else: return True
def get_warn_filter(chat_id, keyword): try: return SESSION.query(WarnFilters).get((str(chat_id), keyword)) finally: SESSION.close()
def num_chats(): try: return SESSION.query(func.count(distinct(Rules.chat_id))).scalar() finally: SESSION.close()
def num_warn_filters(): try: return SESSION.query(WarnFilters).count() finally: SESSION.close()
def migrate_chat(old_chat_id, new_chat_id): with INSERTION_LOCK: chat = SESSION.query(Rules).get(str(old_chat_id)) if chat: chat.chat_id = str(new_chat_id) SESSION.commit()
def num_warn_filter_chats(): try: return SESSION.query(func.count(distinct( WarnFilters.chat_id))).scalar() finally: SESSION.close()
def get_user_me_info(user_id): userinfo = SESSION.query(UserInfo).get(user_id) SESSION.close() if userinfo: return userinfo.info return None
def add_note_button_to_db(chat_id, note_name, b_name, url, same_line): with BUTTONS_INSERTION_LOCK: button = Buttons(chat_id, note_name, b_name, url, same_line) SESSION.add(button) SESSION.commit()
def num_logchannels(): try: return SESSION.query(func.count(distinct(GroupLogs.chat_id))).scalar() finally: SESSION.close()