def gbanstat(update, context): args = context.args if len(args) > 0: if args[0].lower() in ["on", "yes"]: sql.enable_gbans(update.effective_chat.id) update.effective_message.reply_text( "I've enabled antispam in this group. This will help protect you " "from spammers, unsavoury characters, and the biggest trolls.") elif args[0].lower() in ["off", "no"]: sql.disable_gbans(update.effective_chat.id) update.effective_message.reply_text( "I've disabled antispam in this group. GBans wont affect your users " "anymore. You'll be less protected from any trolls and spammers " "though!") else: update.effective_message.reply_text( "Give me some arguments to choose a setting! on/off, yes/no!\n\n" "Your current setting is: {}\n" "When True, any gbans that happen will also happen in your group. " "When False, they won't, leaving you at the possible mercy of " "spammers.".format(sql.does_chat_gban(update.effective_chat.id)))
def enforce_gban(update, context): # Not using @restrict handler to avoid spamming - just ignore if cant gban. if (sql.does_chat_gban(update.effective_chat.id) and update.effective_chat.get_member( context.bot.id).can_restrict_members): user = update.effective_user chat = update.effective_chat msg = update.effective_message if user and not is_user_admin(chat, user.id): check_and_ban(update, user.id) if msg.new_chat_members: new_members = update.effective_message.new_chat_members for mem in new_members: check_and_ban(update, mem.id) if msg.reply_to_message: user = msg.reply_to_message.from_user if user and not is_user_admin(chat, user.id): check_and_ban(update, user.id, should_message=False)
def __chat_settings__(chat_id, user_id): return "This chat is enforcing *gbans*: `{}`.".format( sql.does_chat_gban(chat_id))