def num_chats(): try: return SESSION.query(func.count(distinct(Notes.chat_id))).scalar() finally: SESSION.close()
def get_locks(chat_id): try: return SESSION.query(Permissions).get(str(chat_id)) finally: SESSION.close()
def get_support_list(): try: return [x.to_dict() for x in SESSION.query(SupportUsers).all()] finally: SESSION.close()
def num_warn_filters(): try: return SESSION.query(WarnFilters).count() 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 get_flood(chat_id): try: return SESSION.query(FloodControl).get(str(chat_id)) finally: SESSION.close()
def get_warn_filter(chat_id, keyword): try: return SESSION.query(WarnFilters).get((str(chat_id), keyword)) finally: SESSION.close()
def num_blacklist_filter_chats(): try: return SESSION.query(func.count(distinct( BlackListFilters.chat_id))).scalar() finally: SESSION.close()
def check_afk_status(user_id): try: return SESSION.query(AFK).get(user_id) finally: SESSION.close()
def num_blacklist_filters(): try: return SESSION.query(BlackListFilters).count() 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_gban_list(): try: return [x.to_dict() for x in SESSION.query(GloballyBannedUsers).all()] finally: SESSION.close()
def get_gbanned_user(user_id): try: return SESSION.query(GloballyBannedUsers).get(user_id) finally: SESSION.close()
def get_note(chat_id, note_name): try: return SESSION.query(Notes).get((str(chat_id), note_name)) finally: SESSION.close()
def num_filters(): try: return SESSION.query(CustomFilters).count() finally: SESSION.close()
def antichannel_status(chat_id: int) -> bool: with ANTICHANNEL_SETTING_LOCK: d = SESSION.query(AntiChannelSettings).get(str(chat_id)) if not d: return False return d.setting
def get_all_filters(): try: return SESSION.query(CustomFilters).all() finally: SESSION.close()
def check_url_availability(tg_chat_id, tg_feed_link): try: return (SESSION.query(RSS).filter(RSS.feed_link == tg_feed_link, RSS.chat_id == tg_chat_id).all()) finally: SESSION.close()
def get_repo(chat_id): chat = SESSION.query(GithubConfig).filter(GithubConfig.chat_id == str(chat_id)).first() if not chat: return None return chat.repo
def get_urls(tg_chat_id): try: return SESSION.query(RSS).filter(RSS.chat_id == tg_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 get_all(): try: return SESSION.query(RSS).all() finally: SESSION.close()
def num_warn_filter_chats(): try: return SESSION.query(func.count(distinct(WarnFilters.chat_id))).scalar() finally: SESSION.close()
def check_dnd_status(user_id): try: return SESSION.query(DND).get(user_id) 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_stickers_filters(): try: return SESSION.query(StickersFilters).count() finally: SESSION.close()
def get_restr(chat_id): try: return SESSION.query(Restrictions).get(str(chat_id)) finally: SESSION.close()
def num_stickers_chat_filters(chat_id): try: return (SESSION.query(StickersFilters.chat_id).filter( StickersFilters.chat_id == str(chat_id)).count()) finally: SESSION.close()
def __load_support_userid_list(): global SUPPORT_LIST try: SUPPORT_LIST = {x.user_id for x in SESSION.query(SupportUsers).all()} finally: SESSION.close()
def num_notes(): try: return SESSION.query(Notes).count() finally: SESSION.close()