def set_custom_gdbye(chat_id, custom_goodbye, goodbye_type, buttons=None): if buttons is None: buttons = [] with INSERTION_LOCK: welcome_settings = SESSION.query(Welcome).get(str(chat_id)) if not welcome_settings: welcome_settings = Welcome(str(chat_id), True) if custom_goodbye: welcome_settings.custom_leave = custom_goodbye welcome_settings.leave_type = goodbye_type.value else: welcome_settings.custom_leave = DEFAULT_GOODBYE welcome_settings.leave_type = Types.TEXT.value SESSION.add(welcome_settings) with LEAVE_BTN_LOCK: prev_buttons = SESSION.query(GoodbyeButtons).filter( GoodbyeButtons.chat_id == str(chat_id)).all() for btn in prev_buttons: SESSION.delete(btn) for b_name, url, same_line in buttons: button = GoodbyeButtons(chat_id, b_name, url, same_line) SESSION.add(button) SESSION.commit()
def migrate_chat(old_chat_id, new_chat_id): with GMUTE_SETTING_LOCK: chat = SESSION.query(GmuteSettings).get(str(old_chat_id)) if chat: chat.chat_id = new_chat_id SESSION.add(chat) SESSION.commit()
def setKickTime(chat_id, value): with AUTOKICK_LOCK: prevObj = SESSION.query(AutoKickSafeMode).get(str(chat_id)) if prevObj: SESSION.delete(prevObj) newObj = AutoKickSafeMode(str(chat_id), int(value)) SESSION.add(newObj) SESSION.commit()
def setDefenseStatus(chat_id, status): with DEFENSE_LOCK: prevObj = SESSION.query(DefenseMode).get(str(chat_id)) if prevObj: SESSION.delete(prevObj) newObj = DefenseMode(str(chat_id), status) SESSION.add(newObj) SESSION.commit()
def set_welcome_mutes(chat_id, welcomemutes): with WM_LOCK: prev = SESSION.query(WelcomeMute).get((str(chat_id))) if prev: SESSION.delete(prev) welcome_m = WelcomeMute(str(chat_id), welcomemutes) SESSION.add(welcome_m) SESSION.commit()
def disable_gmutes(chat_id): with GMUTE_SETTING_LOCK: chat = SESSION.query(GmuteSettings).get(str(chat_id)) if not chat: chat = GmuteSettings(chat_id, False) chat.setting = False SESSION.add(chat) SESSION.commit() GMUTESTAT_LIST.add(str(chat_id))
def set_cas_status(chat_id, status): with CAS_LOCK: ban = False prevObj = SESSION.query(CombotCASStatus).get(str(chat_id)) if prevObj: ban = prevObj.autoban SESSION.delete(prevObj) newObj = CombotCASStatus(str(chat_id), status, ban) SESSION.add(newObj) SESSION.commit()
def set_gdbye_preference(chat_id, should_goodbye): with INSERTION_LOCK: curr = SESSION.query(Welcome).get(str(chat_id)) if not curr: curr = Welcome(str(chat_id), should_goodbye=should_goodbye) else: curr.should_goodbye = should_goodbye SESSION.add(curr) SESSION.commit()
def set_clean_welcome(chat_id, clean_welcome): with INSERTION_LOCK: curr = SESSION.query(Welcome).get(str(chat_id)) if not curr: curr = Welcome(str(chat_id)) curr.clean_welcome = int(clean_welcome) SESSION.add(curr) SESSION.commit()
def disable_gbans(chat_id): with GBAN_SETTING_LOCK: chat = SESSION.query(GbanSettings).get(str(chat_id)) if not chat: chat = GbanSettings(chat_id, False) chat.setting = False SESSION.add(chat) SESSION.commit() GBANSTAT_LIST.add(str(chat_id))
def set_cas_autoban(chat_id, autoban): with CAS_LOCK: status = True prevObj = SESSION.query(CombotCASStatus).get(str(chat_id)) if prevObj: status = prevObj.status SESSION.delete(prevObj) newObj = CombotCASStatus(str(chat_id), status, autoban) SESSION.add(newObj) SESSION.commit()
def enable_gmutes(chat_id): with GMUTE_SETTING_LOCK: chat = SESSION.query(GmuteSettings).get(str(chat_id)) if not chat: chat = GmuteSettings(chat_id, True) chat.setting = True SESSION.add(chat) SESSION.commit() if str(chat_id) in GMUTESTAT_LIST: GMUTESTAT_LIST.remove(str(chat_id))
def enable_gbans(chat_id): with GBAN_SETTING_LOCK: chat = SESSION.query(GbanSettings).get(str(chat_id)) if not chat: chat = GbanSettings(chat_id, True) chat.setting = True SESSION.add(chat) SESSION.commit() if str(chat_id) in GBANSTAT_LIST: GBANSTAT_LIST.remove(str(chat_id))
def set_ses(chat_id, ses_id, expires): with INSERTION_LOCK: autochat = SESSION.query(ChatbotChats).get(str(chat_id)) if not autochat: autochat = ChatbotChats(str(chat_id), str(ses_id), str(expires)) else: autochat.ses_id = str(ses_id) autochat.expires = str(expires) SESSION.add(autochat) SESSION.commit()
def set_afk(user_id, reason=""): with INSERTION_LOCK: curr = SESSION.query(AFK).get(user_id) if not curr: curr = AFK(user_id, reason, True) else: curr.is_afk = True curr.reason = reason AFK_USERS[user_id] = reason SESSION.add(curr) SESSION.commit()
def set_flood(chat_id, amount): with INSERTION_LOCK: flood = SESSION.query(FloodControl).get(str(chat_id)) if not flood: flood = FloodControl(str(chat_id)) flood.user_id = None flood.limit = amount CHAT_FLOOD[str(chat_id)] = (None, DEF_COUNT, amount) SESSION.add(flood) SESSION.commit()
def set_human_checks(user_id, chat_id): with INSERTION_LOCK: human_check = SESSION.query(WelcomeMuteUsers).get( (user_id, str(chat_id))) if not human_check: human_check = WelcomeMuteUsers(user_id, str(chat_id), True) else: human_check.human_check = True SESSION.add(human_check) SESSION.commit() return human_check
def set_blacklist_strength(chat_id, blacklist_type, value): # for blacklist_type # 0 = nothing # 1 = delete # 2 = warn # 3 = mute # 4 = kick # 5 = ban # 6 = tban # 7 = tmute with STICKSET_FILTER_INSERTION_LOCK: global CHAT_BLSTICK_BLACKLISTS curr_setting = SESSION.query(StickerSettings).get(str(chat_id)) if not curr_setting: curr_setting = StickerSettings(chat_id, blacklist_type=int(blacklist_type), value=value) curr_setting.blacklist_type = int(blacklist_type) curr_setting.value = str(value) CHAT_BLSTICK_BLACKLISTS[str(chat_id)] = {'blacklist_type': int(blacklist_type), 'value': value} SESSION.add(curr_setting) SESSION.commit()