예제 #1
0
def set_warn_strength(update, context):
    chat = update.effective_chat  # type: Optional[Chat]
    user = update.effective_user  # type: Optional[User]
    msg = update.effective_message  # type: Optional[Message]
    args = context.args

    conn = connected(context.bot, update, chat, user.id, need_admin=True)
    if conn:
        chat = dispatcher.bot.getChat(conn)
        chat_id = conn
        chat_name = dispatcher.bot.getChat(conn).title
    else:
        if update.effective_message.chat.type == "private":
            send_message(
                update.effective_message,
                tl(update.effective_message,
                   "Anda bisa lakukan command ini pada grup, bukan pada PM"))
            return ""
        chat = update.effective_chat
        chat_id = update.effective_chat.id
        chat_name = update.effective_message.chat.title

    if args:
        if args[0].lower() in ("on", "yes"):
            sql.set_warn_strength(chat.id, False)
            if conn:
                text = "Terlalu banyak peringatan sekarang akan menghasilkan blokir pada *{}*!".format(
                    chat_name)
            else:
                text = "Terlalu banyak peringatan sekarang akan menghasilkan blokir!"
            send_message(update.effective_message, text, parse_mode="markdown")
            return "<b>{}:</b>\n" \
                   "<b>Admin:</b> {}\n" \
                   "Telah mengaktifkan peringatan yang kuat. Pengguna akan diblokir.".format(html.escape(chat.title),
                                                                            mention_html(user.id, user.first_name))

        elif args[0].lower() in ("off", "no"):
            sql.set_warn_strength(chat.id, True)
            if conn:
                text = "Terlalu banyak peringatan akan menghasilkan tendangan pada *{}*! Pengguna akan dapat bergabung lagi.".format(
                    chat_name)
            else:
                text = "Terlalu banyak peringatan akan menghasilkan tendangan! Pengguna akan dapat bergabung lagi."
            send_message(update.effective_message, text, parse_mode="markdown")
            return "<b>{}:</b>\n" \
                   "<b>Admin:</b> {}\n" \
                   "Telah menonaktifkan peringatan kuat. Pengguna hanya akan ditendang.".format(html.escape(chat.title),
                                                                                  mention_html(user.id,
                                                                                               user.first_name))

        else:
            send_message(update.effective_message,
                         "Saya hanya mengerti on/yes/no/off!")
    else:
        limit, soft_warn, warn_mode = sql.get_warn_setting(chat.id)
        if soft_warn:
            if conn:
                text = "Peringatan saat ini disetel ke *tendangan* pengguna saat melampaui batas pada *{}*.".format(
                    chat_name)
            else:
                text = "Peringatan saat ini disetel ke *tendangan* pengguna saat melampaui batas."
            send_message(update.effective_message,
                         text,
                         parse_mode=ParseMode.MARKDOWN)
        else:
            if conn:
                text = "Peringatan saat ini disetel untuk *diblokir* pengguna saat melampaui batas pada *{}*.".format(
                    chat_name)
            else:
                text = "Peringatan saat ini disetel untuk *diblokir* pengguna saat melampaui batas."
            send_message(update.effective_message,
                         text,
                         parse_mode=ParseMode.MARKDOWN)
    return ""
예제 #2
0
def WARN_EDITBTN(bot: Bot, update: Update):
    query = update.callback_query
    user = update.effective_user
    print("User {} clicked button WARN EDIT".format(user.id))
    qdata = query.data.split("=")[1].split("|")[0]
    chat_id = query.data.split("|")[1]
    if qdata == "?":
        bot.answerCallbackQuery(
            query.id,
            "Batas dari peringatan. Jika peringatan melewati batas maka akan di eksekusi.",
            show_alert=True)
    if qdata == "-":
        button = []
        limit, soft_warn = sql.get_warn_setting(chat_id)
        limit = int(limit) - 1
        if limit <= 2:
            bot.answerCallbackQuery(query.id,
                                    "Batas limit Tidak boleh kurang dari 3",
                                    show_alert=True)
            return
        sql.set_warn_limit(chat_id, int(limit))
        chat = bot.get_chat(chat_id)
        text = "*{}* memiliki pengaturan berikut untuk modul *Peringatan*:\n\n".format(
            escape_markdown(chat.title))
        text += "Batas maksimal peringatan telah di setel menjadi `{}`. Dibutuhkan `{}` peringatan " \
           "sebelum pengguna akan mendapatkan *{}*.".format(limit, limit, "tendangan" if soft_warn else "pemblokiran")
        button.append([
            InlineKeyboardButton(
                text="➖", callback_data="set_wlim=-|{}".format(chat_id)),
            InlineKeyboardButton(
                text="Limit {}".format(limit),
                callback_data="set_wlim=?|{}".format(chat_id)),
            InlineKeyboardButton(text="➕",
                                 callback_data="set_wlim=+|{}".format(chat_id))
        ])
        button.append([
            InlineKeyboardButton(
                text="{}".format("❎ Tendang" if soft_warn else "⛔️ Blokir"),
                callback_data="set_wlim=exec|{}".format(chat_id))
        ])
        button.append([
            InlineKeyboardButton(
                text="Kembali", callback_data="stngs_back({})".format(chat_id))
        ])
        query.message.edit_text(text=text,
                                parse_mode=ParseMode.MARKDOWN,
                                reply_markup=InlineKeyboardMarkup(button))
        bot.answer_callback_query(query.id)
    if qdata == "+":
        button = []
        limit, soft_warn = sql.get_warn_setting(chat_id)
        limit = int(limit) + 1
        if limit <= 0:
            bot.answerCallbackQuery(query.id,
                                    "Batas limit Tidak boleh kurang dari 0",
                                    show_alert=True)
            return
        sql.set_warn_limit(chat_id, int(limit))
        chat = bot.get_chat(chat_id)
        text = "*{}* memiliki pengaturan berikut untuk modul *Peringatan*:\n\n".format(
            escape_markdown(chat.title))
        text += "Batas maksimal peringatan telah di setel menjadi `{}`. Dibutuhkan `{}` peringatan " \
           "sebelum pengguna akan mendapatkan *{}*.".format(limit, limit, "tendangan" if soft_warn else "pemblokiran")
        button.append([
            InlineKeyboardButton(
                text="➖", callback_data="set_wlim=-|{}".format(chat_id)),
            InlineKeyboardButton(
                text="Limit {}".format(limit),
                callback_data="set_wlim=?|{}".format(chat_id)),
            InlineKeyboardButton(text="➕",
                                 callback_data="set_wlim=+|{}".format(chat_id))
        ])
        button.append([
            InlineKeyboardButton(
                text="{}".format("❎ Tendang" if soft_warn else "⛔️ Blokir"),
                callback_data="set_wlim=exec|{}".format(chat_id))
        ])
        button.append([
            InlineKeyboardButton(
                text="Kembali", callback_data="stngs_back({})".format(chat_id))
        ])
        query.message.edit_text(text=text,
                                parse_mode=ParseMode.MARKDOWN,
                                reply_markup=InlineKeyboardMarkup(button))
        bot.answer_callback_query(query.id)
    if qdata == "exec":
        button = []
        limit, soft_warn = sql.get_warn_setting(chat_id)
        if soft_warn:
            exc = "Blokir"
            sql.set_warn_strength(chat_id, False)
            soft_warn = False
        else:
            exc = "Tendang"
            sql.set_warn_strength(chat_id, True)
            soft_warn = True
        chat = bot.get_chat(chat_id)
        text = "*{}* memiliki pengaturan berikut untuk modul *Peringatan*:\n\n".format(
            escape_markdown(chat.title))
        text += "Pengguna akan di `{}` jika sudah diluar batas peringatan. Dibutuhkan `{}` peringatan " \
           "sebelum pengguna akan mendapatkan *{}*.".format(exc, limit, "tendangan" if soft_warn else "pemblokiran")
        button.append([
            InlineKeyboardButton(
                text="➖", callback_data="set_wlim=-|{}".format(chat_id)),
            InlineKeyboardButton(
                text="Limit {}".format(limit),
                callback_data="set_wlim=?|{}".format(chat_id)),
            InlineKeyboardButton(text="➕",
                                 callback_data="set_wlim=+|{}".format(chat_id))
        ])
        button.append([
            InlineKeyboardButton(
                text="{}".format("❎ Tendang" if soft_warn else "⛔️ Blokir"),
                callback_data="set_wlim=exec|{}".format(chat_id))
        ])
        button.append([
            InlineKeyboardButton(
                text="Kembali", callback_data="stngs_back({})".format(chat_id))
        ])
        query.message.edit_text(text=text,
                                parse_mode=ParseMode.MARKDOWN,
                                reply_markup=InlineKeyboardMarkup(button))
        bot.answer_callback_query(query.id)