def check_and_ban(update, user_id, should_message=True): if sql.is_user_gbanned(user_id): update.effective_chat.kick_member(user_id) if should_message: update.effective_message.reply_text( tl(update.effective_message, "Ini orang jahat, mereka seharusnya tidak ada di sini!"))
def check_and_ban(update, user_id, should_message=True): if sql.is_user_gbanned(user_id): update.effective_chat.kick_member(user_id) if should_message: send_message( update.effective_message, tl(update.effective_message, "This is a bad person, they shouldn't be here!"))
def ungban(update, context): message = update.effective_message # type: Optional[Message] args = context.args user_id = extract_user(message, args) if not user_id: send_message(update.effective_message, tl(update.effective_message, "Anda sepertinya tidak mengacu pada pengguna.")) return if user_id == "error": send_message(update.effective_message, tl(update.effective_message, "Error: Unknown user!")) return "" user_chat = context.bot.get_chat(user_id) if user_chat.type != 'private': send_message(update.effective_message, tl(update.effective_message, "Itu bukan pengguna!")) return if not sql.is_user_gbanned(user_id): send_message(update.effective_message, tl(update.effective_message, "Pengguna ini tidak dilarang secara global!")) return banner = update.effective_user # type: Optional[User] send_message(update.effective_message, tl(update.effective_message, "Saya akan berikan {} kesempatan kedua, secara global.").format(user_chat.first_name)) send_to_list(context.bot, SUDO_USERS + SUPPORT_USERS, tl(update.effective_message, "{} telah menghapus larangan global untuk pengguna {}").format(mention_html(banner.id, banner.first_name), mention_html(user_chat.id, user_chat.first_name)), html=True) sql.ungban_user(user_id) chats = get_all_chats() for chat in chats: chat_id = chat.chat_id # Check if this group has disabled gbans if not sql.does_chat_gban(chat_id): continue try: member = context.bot.get_chat_member(chat_id, user_id) if member.status == 'kicked': context.bot.unban_chat_member(chat_id, user_id) except BadRequest as excp: if excp.message in UNGBAN_ERRORS: pass else: send_message(update.effective_message, tl(update.effective_message, "Tidak dapat menghapus larangan secara global karena: {}").format(excp.message)) context.bot.send_message(OWNER_ID, tl(update.effective_message, "Tidak dapat menghapus larangan secara global karena: {}").format(excp.message)) return except TelegramError: pass send_to_list(context.bot, SUDO_USERS + SUPPORT_USERS, tl(update.effective_message, "Menghapus larangan global selesai!")) send_message(update.effective_message, tl(update.effective_message, "Orang ini telah dihapus larangannya."))
def __user_info__(user_id): is_gbanned = sql.is_user_gbanned(user_id) text = "Dilarang secara global: <b>{}</b>" if is_gbanned: text = text.format("Yes") user = sql.get_gbanned_user(user_id) if user.reason: text += "\nAlasan: {}".format(html.escape(user.reason)) else: text = text.format("No") return text
def __user_info__(user_id, chat_id): is_gbanned = sql.is_user_gbanned(user_id) text = tl(user_id, "Globally banned: <b>{}</b>") if is_gbanned: text = text.format("Yes") user = sql.get_gbanned_user(user_id) if user.reason: text += "\nReason: {}".format(html.escape(user.reason)) else: text = text.format("No") return text
def check_and_ban(update, user_id, should_message=True): chat = update.effective_chat message = update.effective_message try: if spam_watch is not None: spam_watch_ban = spam_watch.get_ban(user_id) if spam_watch_ban: chat.kick_member(user_id) if should_message: message.reply_markdown( "**Pengguna ini terdeteksi sebagai spambot oleh SpamWatch dan telah dikeluarkan!**\n\nKunjungi @SpamWatchSupport untuk membebaskan anda dari masalah ini!") return except Exception as e: print(e) if sql.is_user_gbanned(user_id): update.effective_chat.kick_member(user_id) if should_message: update.effective_send_message(update.effective_message, tl(update.effective_message, "Ini orang jahat, mereka seharusnya tidak ada di sini!"))
def gban(bot: Bot, update: Update, args: List[str]): message = update.effective_message # type: Optional[Message] user_id, reason = extract_user_and_text(message, args) if not user_id: message.reply_text("Anda sepertinya tidak mengacu pada pengguna.") return if int(user_id) in SUDO_USERS: message.reply_text( "Saya memata-matai, dengan mata kecil saya... perang pengguna sudo! Mengapa kalian saling berpaling? 😱" ) return if int(user_id) in SUPPORT_USERS: message.reply_text( "OOOH seseorang mencoba untuk memblokir secara global pengguna dukungan! 😄 *mengambil popcorn*" ) return if user_id == bot.id: message.reply_text( "😑 Sangat lucu, mari kita blokir secara global diri saya sendiri? Usaha yang bagus 😒" ) return try: user_chat = bot.get_chat(user_id) except BadRequest as excp: message.reply_text(excp.message) return if user_chat.type != 'private': message.reply_text("Itu bukan pengguna!") return if sql.is_user_gbanned(user_id): if not reason: message.reply_text( "Pengguna ini sudah dilarang secara global; Saya akan mengubah alasannya, tetapi Anda belum memberi saya satu..." ) return old_reason = sql.update_gban_reason( user_id, user_chat.username or user_chat.first_name, reason) if old_reason: message.reply_text( "Pengguna ini sudah gbanned, karena alasan berikut:\n" "<code>{}</code>\n" "Saya telah melakukan dan memperbaruinya dengan alasan baru Anda!" .format(html.escape(old_reason)), parse_mode=ParseMode.HTML) else: message.reply_text( "Pengguna ini sudah gbanned, tetapi tidak ada alasan yang ditetapkan; Saya telah melakukan dan memperbaruinya!" ) return message.reply_text("*Kristal banned telah mengarah* 😉") banner = update.effective_user # type: Optional[User] send_to_list(bot, SUDO_USERS + SUPPORT_USERS, "{} melarang secara global pengguna {} " "karena:\n{}".format( mention_html(banner.id, banner.first_name), mention_html(user_chat.id, user_chat.first_name), reason or "Tidak ada alasan yang diberikan"), html=True) sql.gban_user(user_id, user_chat.username or user_chat.first_name, reason) chats = get_all_chats() for chat in chats: chat_id = chat.chat_id # Check if this group has disabled gbans if not sql.does_chat_gban(chat_id): continue try: bot.kick_chat_member(chat_id, user_id) except BadRequest as excp: if excp.message in GBAN_ERRORS: pass else: message.reply_text( "Tidak dapat melarang secara global karena: {}".format( excp.message)) send_to_list( bot, SUDO_USERS + SUPPORT_USERS, "Tidak dapat melarang secara global karena: {}".format( excp.message)) sql.ungban_user(user_id) return except TelegramError: pass send_to_list(bot, SUDO_USERS + SUPPORT_USERS, "Melarang secara global selesai!") message.reply_text("Orang ini telah dilarang secara global.")
def gban(update, context): message = update.effective_message # type: Optional[Message] args = context.args user_id, reason = extract_user_and_text(message, args) if user_id == "error": send_message(update.effective_message, tl(update.effective_message, reason)) return "" if not user_id: send_message( update.effective_message, tl(update.effective_message, "You don't seem to be referring to a user.")) return if int(user_id) in SUDO_USERS: send_message( update.effective_message, tl( update.effective_message, "I spy, with my little eye... a sudo user war! Why are you guys turning on each other? 😱" )) return if int(user_id) in SUPPORT_USERS: send_message( update.effective_message, tl( update.effective_message, "OOOH someone's trying to gban a support User! 😄 *grabs popcorn*" )) return if user_id == context.bot.id: send_message( update.effective_message, tl(update.effective_message, "😑 So funny, lets gban myself why don't I? Nice try. 😒")) return try: user_chat = context.bot.get_chat(user_id) except BadRequest as excp: send_message(update.effective_message, excp.message) return if user_chat.type != 'private': send_message(update.effective_message, tl(update.effective_message, "That's not a user!")) return if sql.is_user_gbanned(user_id): if not reason: send_message( update.effective_message, tl( update.effective_message, "This user is already gbanned; I'd change the reason, but you haven't given me one..." )) return old_reason = sql.update_gban_reason( user_id, user_chat.username or user_chat.first_name, reason) if old_reason: send_message( update.effective_message, tl( update.effective_message, "This user is already gbanned, for the following reason:\n" "<code>{}</code>\n" "\nI've gone and updated it with your new reason!").format( html.escape(old_reason)), parse_mode=ParseMode.HTML) else: send_message( update.effective_message, tl( update.effective_message, "This user is already gbanned, but had no reason set; I've gone and updated it!" )) return send_message(update.effective_message, tl(update.effective_message, "*It's gban time!* 😉")) banner = update.effective_user # type: Optional[User] context.bot.send_message( MESSAGE_DUMP, tl(update.effective_message, "{} is gbanning user {} " "because:\n{}").format( mention_html(banner.id, banner.first_name), mention_html(user_chat.id, user_chat.first_name), reason or tl(update.effective_message, "No reason given")), parse_mode=ParseMode.HTML) sql.gban_user(user_id, user_chat.username or user_chat.first_name, reason) chats = get_all_chats() for chat in chats: chat_id = chat.chat_id # Check if this group has disabled gbans if not sql.does_chat_gban(chat_id): continue try: context.bot.kick_chat_member(chat_id, user_id) except BadRequest as excp: if excp.message in GBAN_ERRORS: pass else: send_message( update.effective_message, tl(update.effective_message, "Could not gban due to: {}").format(excp.message)) context.bot.send_message( MESSAGE_DUMP, tl(update.effective_message, "Could not gban due to: {}").format(excp.message)) sql.ungban_user(user_id) return except TelegramError: pass context.bot.send_message(MESSAGE_DUMP, tl(update.effective_message, "gban complete!")) send_message(update.effective_message, tl(update.effective_message, "Person has been gbanned."))
def ungban(update, context): message = update.effective_message # type: Optional[Message] args = context.args user_id = extract_user(message, args) if not user_id: send_message( update.effective_message, tl(update.effective_message, "You don't seem to be referring to a user.")) return if user_id == "error": send_message(update.effective_message, tl(update.effective_message, "Error: Unknown user!")) return "" user_chat = context.bot.get_chat(user_id) if user_chat.type != 'private': send_message(update.effective_message, tl(update.effective_message, "That's not a user!")) return if not sql.is_user_gbanned(user_id): send_message(update.effective_message, tl(update.effective_message, "This user is not gbanned!")) return banner = update.effective_user # type: Optional[User] send_message( update.effective_message, tl(update.effective_message, "I'll give {} a second chance, globally.").format( user_chat.first_name)) context.bot.send_message(MESSAGE_DUMP, tl(update.effective_message, "{} has ungbanned user {}").format( mention_html(banner.id, banner.first_name), mention_html(user_chat.id, user_chat.first_name)), parse_mode=ParseMode.HTML) sql.ungban_user(user_id) chats = get_all_chats() for chat in chats: chat_id = chat.chat_id # Check if this group has disabled gbans if not sql.does_chat_gban(chat_id): continue try: member = context.bot.get_chat_member(chat_id, user_id) if member.status == 'kicked': context.bot.unban_chat_member(chat_id, user_id) except BadRequest as excp: if excp.message in UNGBAN_ERRORS: pass else: send_message( update.effective_message, tl(update.effective_message, "Could not un-gban due to: {}").format(excp.message)) context.bot.send_message( OWNER_ID, tl(update.effective_message, "Could not un-gban due to: {}").format(excp.message)) return except TelegramError: pass context.bot.send_message(MESSAGE_DUMP, tl(update.effective_message, "un-gban complete!")) send_message(update.effective_message, tl(update.effective_message, "Person has been un-gbanned."))