def __chat_settings__(chat_id, user_id): welcome_pref, _, _ = sql.get_welc_pref(chat_id) goodbye_pref, _, _ = sql.get_gdbye_pref(chat_id) return ( "Obrolan ini memiliki preferensi selamat datang yang disetel ke `{}`.\n" "Ini preferensi selamat tinggal`{}`.".format(welcome_pref, goodbye_pref))
def __chat_settings__(chat_id, user_id): welcome_pref = sql.get_welc_pref(chat_id)[0] goodbye_pref = sql.get_gdbye_pref(chat_id)[0] clean_welc_pref = sql.get_clean_pref(chat_id) welc_mutes_pref = sql.get_welc_mutes_pref(chat_id) return ( "Obrolan ini memiliki preferensi selamat datang yang disetel ke `{}`.\n" "Ini preferensi selamat tinggal `{}`. \n\n" "*Preferensi layanan:*\n" "\nSelamat datang dibersihkan: `{}`" "\nSelamat datang dibisukan: `{}`".format(welcome_pref, goodbye_pref, clean_welc_pref, welc_mutes_pref))
def goodbye(update, context): chat = update.effective_chat args = context.args if len(args) == 0 or args[0] == "noformat": noformat = args and args[0] == "noformat" pref, goodbye_m, goodbye_type = sql.get_gdbye_pref(chat.id) update.effective_message.reply_text( "Obrolan ini memiliki setelan selamat tinggal yang disetel ke: `{}`.\n*Pesan selamat tinggal " "(tidak mengisi {{}}):*".format(pref), parse_mode=ParseMode.MARKDOWN, ) if goodbye_type == sql.Types.BUTTON_TEXT: buttons = sql.get_gdbye_buttons(chat.id) if noformat: goodbye_m += revert_buttons(buttons) update.effective_message.reply_text(goodbye_m) else: keyb = build_keyboard(buttons) keyboard = InlineKeyboardMarkup(keyb) send(update, goodbye_m, keyboard, sql.DEFAULT_GOODBYE) else: if noformat: ENUM_FUNC_MAP[goodbye_type](chat.id, goodbye_m) else: ENUM_FUNC_MAP[goodbye_type](chat.id, goodbye_m, parse_mode=ParseMode.MARKDOWN) elif len(args) >= 1: if args[0].lower() in ("on", "yes"): sql.set_gdbye_preference(str(chat.id), True) update.effective_message.reply_text( "Saya akan menyesal ketika orang pergi!") elif args[0].lower() in ("off", "no"): sql.set_gdbye_preference(str(chat.id), False) update.effective_message.reply_text( "Mereka pergi, mereka mati bagiku.") else: # idek what you're writing, say yes or no update.effective_message.reply_text( "Saya hanya mengerti 'on/yes' atau 'off/no' saja!")
def left_member(update, context): chat = update.effective_chat should_goodbye, cust_goodbye, goodbye_type = sql.get_gdbye_pref(chat.id) cust_goodbye = markdown_to_html(cust_goodbye) if should_goodbye: reply = update.message.message_id cleanserv = sql.clean_service(chat.id) # Clean service welcome if cleanserv: try: dispatcher.bot.delete_message(chat.id, update.message.message_id) except Unauthorized: return except BadRequest: pass reply = False left_mem = update.effective_message.left_chat_member if left_mem: # Ignore gbanned users if is_user_gbanned(left_mem.id): return # Ignore spamwatch banned users try: sw = spamwtc.get_ban(int(left_mem.id)) if sw: return except BaseException: pass # Ignore bot being kicked if left_mem.id == context.bot.id: return # Give the owner a special goodbye if left_mem.id == OWNER_ID: update.effective_message.reply_text("Selamat jalan, masterku", reply_to_message_id=reply) return # if media goodbye, use appropriate function for it if (goodbye_type != sql.Types.TEXT and goodbye_type != sql.Types.BUTTON_TEXT): ENUM_FUNC_MAP[goodbye_type](chat.id, cust_goodbye) return first_name = (left_mem.first_name or "PersonWithNoName" ) # edge case of empty name - occurs for some bugs. if cust_goodbye: if left_mem.last_name: fullname = "{} {}".format(first_name, left_mem.last_name) else: fullname = first_name count = chat.get_members_count() mention = mention_html(left_mem.id, first_name) if left_mem.username: username = "******" + escape(left_mem.username) else: username = mention valid_format = escape_invalid_curly_brackets( cust_goodbye, VALID_WELCOME_FORMATTERS) res = valid_format.format( first=escape(first_name), last=escape(left_mem.last_name or first_name), fullname=escape(fullname), username=username, mention=mention, count=count, chatname=escape(chat.title), id=left_mem.id, ) buttons = sql.get_gdbye_buttons(chat.id) keyb = build_keyboard(buttons) else: res = sql.DEFAULT_GOODBYE keyb = [] keyboard = InlineKeyboardMarkup(keyb) send(update, res, keyboard, sql.DEFAULT_GOODBYE)
def __chat_settings__(chat_id, user_id): welcome_pref, _, _ = sql.get_welc_pref(chat_id) goodbye_pref, _, _ = sql.get_gdbye_pref(chat_id) return "This chat has it's welcome preference set to `{}`.\n" \ "It's goodbye preference is `{}`.".format(welcome_pref, goodbye_pref)
def left_member(update, context): bot = context.bot chat = update.effective_chat user = update.effective_user should_goodbye, cust_goodbye, goodbye_type = sql.get_gdbye_pref(chat.id) if user.id == bot.id: return if should_goodbye: reply = update.message.message_id cleanserv = sql.clean_service(chat.id) # Clean service welcome if cleanserv: try: dispatcher.bot.delete_message(chat.id, update.message.message_id) except BadRequest: pass reply = False left_mem = update.effective_message.left_chat_member if left_mem: # Thingy for spamwatched users if spamwtc != None: sw_ban = spamwtc.get_ban(left_mem.id) if sw_ban: return # Dont say goodbyes to gbanned users if is_user_gbanned(left_mem.id): return # Ignore bot being kicked if left_mem.id == bot.id: return # Give the owner a special goodbye if left_mem.id == OWNER_ID: update.effective_message.reply_text("Sayounara <3", reply_to_message_id=reply) return # Give the devs a special goodbye elif left_mem.id in DEV_USERS: update.effective_message.reply_text( "Beri jalan Dev saya mau pergi...", reply_to_message_id=reply, ) return # if media goodbye, use appropriate function for it if goodbye_type != sql.Types.TEXT and goodbye_type != sql.Types.BUTTON_TEXT: ENUM_FUNC_MAP[goodbye_type](chat.id, cust_goodbye) return first_name = (left_mem.first_name or "PersonWithNoName" ) # edge case of empty name - occurs for some bugs. if cust_goodbye: if cust_goodbye == sql.DEFAULT_GOODBYE: cust_goodbye = random.choice( sql.DEFAULT_GOODBYE_MESSAGES).format( first=escape_markdown(first_name)) if left_mem.last_name: fullname = escape_markdown( f"{first_name} {left_mem.last_name}") else: fullname = escape_markdown(first_name) count = chat.get_members_count() mention = mention_markdown(left_mem.id, first_name) if left_mem.username: username = "******" + escape_markdown(left_mem.username) else: username = mention valid_format = escape_invalid_curly_brackets( cust_goodbye, VALID_WELCOME_FORMATTERS) res = valid_format.format( first=escape_markdown(first_name), last=escape_markdown(left_mem.last_name or first_name), fullname=escape_markdown(fullname), username=username, mention=mention, count=count, chatname=escape_markdown(chat.title), id=left_mem.id, ) buttons = sql.get_gdbye_buttons(chat.id) keyb = build_keyboard(buttons) else: res = random.choice( sql.DEFAULT_GOODBYE_MESSAGES).format(first=first_name) keyb = [] keyboard = InlineKeyboardMarkup(keyb) send( update, res, keyboard, random.choice( sql.DEFAULT_GOODBYE_MESSAGES).format(first=first_name), )