Exemplo n.º 1
0
def unmute(update, context):
    chat = update.effective_chat  # type: Optional[Chat]
    user = update.effective_user  # type: Optional[User]
    message = update.effective_message  # type: Optional[Message]
    args = context.args

    if user_can_ban(chat, user, context.bot.id) == False:
        message.reply_text(
            "Anda tidak memiliki cukup hak untuk menyuarakan orang")
        return ""

    user_id = extract_user(message, args)
    if not user_id:
        message.reply_text(
            "Anda harus memberi saya nama pengguna untuk menyuarakan, atau membalas seseorang untuk dibungkam."
        )
        return ""

    member = chat.get_member(int(user_id))

    if member.status != "kicked" and member.status != "left":
        if (member.can_send_messages and member.can_send_media_messages
                and member.can_send_other_messages
                and member.can_add_web_page_previews):
            message.reply_text(
                "Pengguna ini sudah memiliki hak untuk berbicara.")
        else:
            context.bot.restrict_chat_member(
                chat.id,
                int(user_id),
                permissions=ChatPermissions(
                    can_send_messages=True,
                    can_invite_users=True,
                    can_pin_messages=True,
                    can_send_polls=True,
                    can_change_info=True,
                    can_send_media_messages=True,
                    can_send_other_messages=True,
                    can_add_web_page_previews=True,
                ),
            )
            message.reply_text(
                "Ya! pengguna ini dapat mulai berbicara lagi...")
            return ("<b>{}:</b>"
                    "\n#UNMUTE"
                    "\n<b>Admin:</b> {}"
                    "\n<b>User:</b> {}".format(
                        html.escape(chat.title),
                        mention_html(user.id, user.first_name),
                        mention_html(member.user.id, member.user.first_name),
                    ))
    else:
        message.reply_text(
            "Pengguna ini bahkan tidak ada dalam obrolan, mengaktifkannya tidak akan membuat mereka berbicara lebih banyak daripada mereka "
            "sudah lakukan!")

    return ""
Exemplo n.º 2
0
def unban(update, context):
    message = update.effective_message
    user = update.effective_user
    chat = update.effective_chat
    args = context.args

    if user_can_ban(chat, user, context.bot.id) is False:
        message.reply_text(
            "Anda tidak memiliki cukup hak untuk membatalkan pelarangan orang di sini!"
        )
        return ""

    user_id, reason = extract_user_and_text(message, args)

    if not user_id:
        return ""

    try:
        member = chat.get_member(user_id)
    except BadRequest as excp:
        if excp.message == "User not found":
            message.reply_text(
                "Sepertinya saya tidak dapat menemukan pengguna ini")
            return ""
        else:
            raise

    if user_id == context.bot.id:
        message.reply_text(
            "Bagaimana saya akan membatalkan pelarangan diri saya sendiri jika saya tidak ada di sini...?"
        )
        return ""

    if is_user_in_chat(chat, user_id):
        message.reply_text(
            "Mengapa Anda mencoba membatalkan pelarangan seseorang yang sudah ada di obrolan ini?"
        )
        return ""

    chat.unban_member(user_id)
    message.reply_text("Selesai, mereka bisa bergabung lagi!")

    log = ("<b>{}:</b>"
           "\n#UNBANNED"
           "\n<b>Admin:</b> {}"
           "\n<b>User:</b> {} (<code>{}</code>)".format(
               html.escape(chat.title),
               mention_html(user.id, user.first_name),
               mention_html(member.user.id, member.user.first_name),
               member.user.id,
           ))
    if reason:
        log += "\n<b>Reason:</b> {}".format(reason)

    return log
Exemplo n.º 3
0
def mute(update, context):
    chat = update.effective_chat  # type: Optional[Chat]
    user = update.effective_user  # type: Optional[User]
    message = update.effective_message  # type: Optional[Message]
    args = context.args

    if user_can_ban(chat, user, context.bot.id) == False:
        message.reply_text(
            "Anda tidak memiliki cukup hak untuk membatasi seseorang agar tidak berbicara!"
        )
        return ""

    user_id = extract_user(message, args)
    if not user_id:
        message.reply_text(
            "Anda harus memberi saya nama pengguna untuk membungkam, atau membalas seseorang untuk dibungkam."
        )
        return ""

    if user_id == context.bot.id:
        message.reply_text("Yah... Aku tidak membungkam diriku sendiri!")
        return ""

    member = chat.get_member(int(user_id))

    if member:
        if is_user_admin(chat, user_id, member=member):
            message.reply_text(
                "Yah, saya tidak akan menghentikan admin untuk berbicara!")

        elif member.can_send_messages is None or member.can_send_messages:
            context.bot.restrict_chat_member(
                chat.id,
                user_id,
                permissions=ChatPermissions(can_send_messages=False),
            )
            message.reply_text("👍🏻 dibisukan! 🤐")
            return ("<b>{}:</b>"
                    "\n#MUTE"
                    "\n<b>Admin:</b> {}"
                    "\n<b>User:</b> {}".format(
                        html.escape(chat.title),
                        mention_html(user.id, user.first_name),
                        mention_html(member.user.id, member.user.first_name),
                    ))

        else:
            message.reply_text("Pengguna ini sudah dibisukan 🤐")
    else:
        message.reply_text("Pengguna ini tidak sedang mengobrol!")

    return ""
Exemplo n.º 4
0
def ban(update, context):
    chat = update.effective_chat
    user = update.effective_user
    message = update.effective_message
    args = context.args

    if user_can_ban(chat, user, context.bot.id) is False:
        message.reply_text(
            "Anda tidak memiliki cukup hak untuk melarang pengguna!")
        return ""

    user_id, reason = extract_user_and_text(message, args)

    if not user_id:
        message.reply_text(
            "Setidaknya merujuk beberapa pengguna untuk melarang!")
        return ""

    try:
        member = chat.get_member(user_id)
    except BadRequest as excp:
        if excp.message == "User not found":
            message.reply_text(
                "Saya tampaknya tidak dapat menemukan pengguna ini")
            return ""
        else:
            raise

    if is_user_ban_protected(chat, user_id, member):
        message.reply_text(
            "Saya tidak akan melarang admin, jangan mengejek diri sendiri!")
        return ""

    if user_id == context.bot.id:
        message.reply_text(
            "Saya tidak akan melarang diri saya sendiri, apakah Anda gila atau tidak?"
        )
        return ""

    log = ("<b>{}:</b>"
           "\n#BANNED"
           "\n<b>Admin:</b> {}"
           "\n<b>User:</b> {} (<code>{}</code>)".format(
               html.escape(chat.title),
               mention_html(user.id, user.first_name),
               mention_html(member.user.id, member.user.first_name),
               member.user.id,
           ))
    if reason:
        log += "\n<b>Reason:</b> {}".format(reason)

    try:
        chat.kick_member(user_id)
        # context.bot.send_sticker(chat.id, BAN_STICKER)  # banhammer marie
        # sticker
        context.bot.sendMessage(
            chat.id,
            "biarkan {} berjalan di papan.".format(
                mention_html(member.user.id, member.user.first_name)),
            parse_mode=ParseMode.HTML,
        )
        return log

    except BadRequest as excp:
        if excp.message == "Reply message not found":
            # Do not reply
            message.reply_text("Banned!", quote=False)
            return log
        else:
            LOGGER.warning(update)
            LOGGER.exception(
                "ERROR banning user %s in chat %s (%s) due to %s",
                user_id,
                chat.title,
                chat.id,
                excp.message,
            )
            message.reply_text("Sial, saya tidak bisa mencekal pengguna itu.")

    return ""
Exemplo n.º 5
0
def kick(update, context):
    chat = update.effective_chat
    user = update.effective_user
    message = update.effective_message
    args = context.args

    if user_can_ban(chat, user, context.bot.id) is False:
        message.reply_text(
            "Anda tidak memiliki cukup hak untuk menendang pengguna!")
        return ""

    user_id, reason = extract_user_and_text(message, args)

    if not user_id:
        return ""

    try:
        member = chat.get_member(user_id)
    except BadRequest as excp:
        if excp.message == "User not found":
            message.reply_text(
                "Sepertinya saya tidak dapat menemukan pengguna ini")
            return ""
        else:
            raise

    if is_user_ban_protected(chat, user_id):
        message.reply_text("Yeahh ... mari kita mulai menendang admin?")
        return ""

    if user_id == context.bot.id:
        message.reply_text("Yah aku tidak akan melakukan itu")
        return ""

    res = chat.unban_member(user_id)  # unban on current user = kick
    if res:
        # context.bot.send_sticker(chat.id, BAN_STICKER)  # banhammer marie
        # sticker
        context.bot.sendMessage(
            chat.id,
            "Sampai kita bertemu lagi {}.".format(
                mention_html(member.user.id, member.user.first_name)),
            parse_mode=ParseMode.HTML,
        )
        log = ("<b>{}:</b>"
               "\n#KICKED"
               "\n<b>Admin:</b> {}"
               "\n<b>User:</b> {} (<code>{}</code>)".format(
                   html.escape(chat.title),
                   mention_html(user.id, user.first_name),
                   mention_html(member.user.id, member.user.first_name),
                   member.user.id,
               ))
        if reason:
            log += "\n<b>Reason:</b> {}".format(reason)

        return log

    else:
        message.reply_text("Get Out!.")

    return ""
Exemplo n.º 6
0
def temp_ban(update, context):
    chat = update.effective_chat
    user = update.effective_user
    message = update.effective_message
    args = context.args

    if user_can_ban(chat, user, context.bot.id) is False:
        message.reply_text(
            "Anda tidak memiliki cukup hak untuk memblokir seseorang untuk sementara!"
        )
        return ""

    user_id, reason = extract_user_and_text(message, args)

    if not user_id:
        message.reply_text(
            "Hai kawan! setidaknya rujuk beberapa pengguna untuk dicekal...")
        return ""

    try:
        member = chat.get_member(user_id)
    except BadRequest as excp:
        if excp.message == "User not found":
            message.reply_text(
                "Sepertinya saya tidak dapat menemukan pengguna ini")
            return ""
        else:
            raise

    if is_user_ban_protected(chat, user_id, member):
        message.reply_text("Wow! mari kita mulai memblokir Admin sendiri?...")
        return ""

    if user_id == context.bot.id:
        message.reply_text(
            "Saya tidak akan melarang diri saya sendiri, apakah Anda gila atau tidak?"
        )
        return ""

    if not reason:
        message.reply_text(
            "Anda belum menentukan waktu untuk mencekal pengguna ini!")
        return ""

    split_reason = reason.split(None, 1)

    time_val = split_reason[0].lower()
    if len(split_reason) > 1:
        reason = split_reason[1]
    else:
        reason = ""

    bantime = extract_time(message, time_val)

    if not bantime:
        return ""

    log = ("<b>{}:</b>"
           "\n#TEMP BANNED"
           "\n<b>Admin:</b> {}"
           "\n<b>User:</b> {} (<code>{}</code>)"
           "\n<b>Time:</b> {}".format(
               html.escape(chat.title),
               mention_html(user.id, user.first_name),
               mention_html(member.user.id, member.user.first_name),
               member.user.id,
               time_val,
           ))
    if reason:
        log += "\n<b>Reason:</b> {}".format(reason)

    try:
        chat.kick_member(user_id, until_date=bantime)
        # context.bot.send_sticker(chat.id, BAN_STICKER)  # banhammer marie
        # sticker
        message.reply_text(
            "Dilarang! Pengguna akan diblokir {}.".format(time_val))
        return log

    except BadRequest as excp:
        if excp.message == "Pesan balasan tidak ditemukan":
            # Do not reply
            message.reply_text(
                "Selamat tinggal .. kita akan bertemu setelah {}.".format(
                    time_val),
                quote=False)
            return log
        else:
            LOGGER.warning(update)
            LOGGER.exception(
                "ERROR banning user %s in chat %s (%s) due to %s",
                user_id,
                chat.title,
                chat.id,
                excp.message,
            )
            message.reply_text("Sial, saya tidak bisa mencekal pengguna itu.")

    return ""
Exemplo n.º 7
0
def temp_mute(update, context):
    chat = update.effective_chat  # type: Optional[Chat]
    user = update.effective_user  # type: Optional[User]
    message = update.effective_message  # type: Optional[Message]
    args = context.args

    if user_can_ban(chat, user, context.bot.id) == False:
        message.reply_text(
            "Anda tidak memiliki cukup hak untuk membatasi seseorang agar tidak berbicara!"
        )
        return ""

    user_id, reason = extract_user_and_text(message, args)

    if not user_id:
        message.reply_text("Anda sepertinya tidak mengacu pada pengguna.")
        return ""

    try:
        member = chat.get_member(user_id)
    except BadRequest as excp:
        if excp.message == "User not found":
            message.reply_text(
                "Sepertinya saya tidak dapat menemukan pengguna ini")
            return ""
        else:
            raise

    if is_user_admin(chat, user_id, member):
        message.reply_text(
            "Saya benar-benar berharap dapat menonaktifkan admin...")
        return ""

    if user_id == context.bot.id:
        message.reply_text(
            "Saya tidak akan BISUKAN diri saya sendiri, apakah Anda sudah gila?"
        )
        return ""

    if not reason:
        message.reply_text(
            "Anda belum menentukan waktu untuk menonaktifkan pengguna ini!")
        return ""

    split_reason = reason.split(None, 1)

    time_val = split_reason[0].lower()
    if len(split_reason) > 1:
        reason = split_reason[1]
    else:
        reason = ""

    mutetime = extract_time(message, time_val)

    if not mutetime:
        return ""

    log = ("<b>{}:</b>"
           "\n#TEMP MUTED"
           "\n<b>Admin:</b> {}"
           "\n<b>User:</b> {}"
           "\n<b>Time:</b> {}".format(
               html.escape(chat.title),
               mention_html(user.id, user.first_name),
               mention_html(member.user.id, member.user.first_name),
               time_val,
           ))
    if reason:
        log += "\n<b>Alasan:</b> {}".format(reason)

    try:
        if member.can_send_messages is None or member.can_send_messages:
            context.bot.restrict_chat_member(
                chat.id,
                user_id,
                until_date=mutetime,
                permissions=ChatPermissions(can_send_messages=False),
            )
            message.reply_text("diam! 🤐 Dibisukan untuk {}!".format(time_val))
            return log
        else:
            message.reply_text("Pengguna ini telah dibungkam.")

    except BadRequest as excp:
        if excp.message == "Reply message not found":
            # Do not reply
            message.reply_text("diam! 🤐 Dibisukan untuk {}!".format(time_val),
                               quote=False)
            return log
        else:
            LOGGER.warning(update)
            LOGGER.exception(
                "ERROR muting user %s in chat %s (%s) due to %s",
                user_id,
                chat.title,
                chat.id,
                excp.message,
            )
            message.reply_text(
                "Sial, saya tidak bisa menonaktifkan pengguna itu.")

    return ""