예제 #1
0
def rules(update, context):
    res = update.message.text.split(None, 1)
    r = ""

    chat_id = str(update.effective_chat.id)
    chat_idd = chat_id[1:]

    if res[0] == "/start":
        chat_idd = res[1]
        chat_idd = chat_idd[1:]
        k = ""
        k = get_chat(chat_id=chat_idd, rules=r)

        try:
            k = k[0][0]
        except:
            k = "Error"

        update.message.reply_text(
            text=k, parse_mode="HTML", disable_web_page_preview=True)
        return

    if res[0] == "/rules" or res[0] == ("/rules@"+bot_username):
        k = get_chat(chat_id=chat_idd, rules=r)

        try:
            k = k[0][0]
        except:
            k = "Error"

        #k = "<a href='t.me/jesvi_bot?start=" + chat_id + "'>Click Here</a>" + " to view the group's rules"

        k = get_chat(chat_id=chat_idd, rules=r)
        try:
            k = k[0][0]
        except:
            k = "No rules set in this group !"

        update.message.reply_text(
            text=k, parse_mode="HTML", disable_web_page_preview=True)
        return

    else:
        m = extract.sudocheck(update, context)
        if m == 2:
            return

    try:
        r = res[1]
        if res == None:
            return
    except:
        return

    k = push_chat(chat_id=chat_idd, rules=r)

    if k == 1:
        txt = ("Set group rules as - \n\n" +
               "<i>" + r + "</i>")
        update.message.reply_text(text=txt, parse_mode="HTML")
예제 #2
0
파일: bot.py 프로젝트: Darshanjk/deletebot
 def inner(*args, **kwargs):
     locale = ""
     chat_data = get_chat(args[1].effective_chat.id)
     if chat_data:
         locale = chat_data.locale or ""
     i18n.set("locale", locale)
     return func(*args, **kwargs)
예제 #3
0
파일: bot.py 프로젝트: Darshanjk/deletebot
 def gen_set(self, update, context):
     vote = self.DEFAULT_VOTE_COUNT
     timeout = self.DEFAULT_DELETE_TIMEOUT
     chat_data = get_chat(update.effective_chat.id)
     if chat_data:
         if chat_data.vote_count:
             vote = chat_data.vote_count
         if chat_data.delete_timeout:
             timeout = chat_data.delete_timeout
     time_suffix = i18n.t("second")
     if timeout > 60:
         timeout /= timeout
         time_suffix = i18n.t("minute")
     desc = f'⚙️\n{i18n.t("vote_count")}: {vote}\n{i18n.t("delete_timeout")}: {timeout} {time_suffix}\n\n{i18n.t("main_menu")}'
     keyboard = InlineKeyboardMarkup([
         [
             InlineKeyboardButton(i18n.t("language"),
                                  callback_data="language")
         ],
         [
             InlineKeyboardButton(i18n.t("vote_count"),
                                  callback_data="vote_count")
         ],
         [
             InlineKeyboardButton(i18n.t("delete_timeout"),
                                  callback_data="delete_timeout")
         ],
         [InlineKeyboardButton("❌", callback_data="close")],
     ])
     return {"text": desc, "reply_markup": keyboard}
예제 #4
0
파일: bot.py 프로젝트: Darshanjk/deletebot
    def receive_poll_answer(self, update, context):
        """Summarize a users poll vote"""
        answer = update.poll_answer
        poll_id = answer.poll_id
        selected_options = answer.option_ids

        timeout = self.DEFAULT_DELETE_TIMEOUT
        vote_count = self.DEFAULT_VOTE_COUNT
        chat_data = get_chat(context.bot_data[poll_id]["chat"])
        if chat_data:
            timeout = chat_data.delete_timeout or self.DEFAULT_DELETE_TIMEOUT
            vote_count = chat_data.vote_count or self.DEFAULT_VOTE_COUNT

        if len(selected_options) < 1:
            context.bot_data[poll_id]["count"][context.bot_data[poll_id][
                "voters"][update.effective_user.id]] -= 1
            return

        if selected_options[0] == 0:
            context.bot_data[poll_id]["count"]["yes"] += 1
            context.bot_data[poll_id]["voters"][
                update.effective_user.id] = "yes"
        elif selected_options[0] == 1:
            context.bot_data[poll_id]["count"]["no"] += 1
            context.bot_data[poll_id]["voters"][
                update.effective_user.id] = "no"

        # Close poll after three participants voted
        if (context.bot_data[poll_id]["count"]["yes"] == vote_count
                or context.bot_data[poll_id]["count"]["no"] == vote_count):
            context.bot.stop_poll(
                context.bot_data[poll_id]["chat"],
                context.bot_data[poll_id]["message_id"],
            )
            if timeout == -2:
                return
            context.job_queue.run_once(
                self.sched_delete,
                timeout,
                context=(
                    context.bot_data[poll_id]["chat"],
                    context.bot_data[poll_id]["message_id"],
                ),
            )
예제 #5
0
파일: bot.py 프로젝트: Darshanjk/deletebot
    def delete(self, update, context):
        vote_count = self.DEFAULT_VOTE_COUNT
        chat_data = get_chat(context.bot_data[update.poll.id]["chat"])
        if chat_data:
            vote_count = chat_data.vote_count or self.DEFAULT_VOTE_COUNT

        if update.poll.options[0].voter_count == vote_count:
            context.bot.delete_message(
                chat_id=context.bot_data[update.poll.id]["chat"],
                message_id=context.bot_data[update.poll.id]["msg_to_delete"],
            )
            if context.bot_data[update.poll.id]["ban"]:
                context.bot.kick_chat_member(
                    chat_id=context.bot_data[update.poll.id]["chat"],
                    user_id=context.bot_data[update.poll.id]["sender_id"],
                )
        if update.poll.is_closed:
            print("test closed")
            return
예제 #6
0
def rules(update, context):
    res = update.message.text.split(None, 1)
    r = ""

    chat_id = str(update.effective_chat.id)
    chat_idd = chat_id[1:]

    if res[0] == "/start":
        chat_idd = res[1]
        chat_idd = chat_idd[1:]
        k = ""
        k = get_chat(chat_id=chat_idd, rules=None)

        try:
            # uncomment the below line and comment the other lines after changing rules=r in k = get_chat_base values
            # k = k[0][0]

            try:
                k = "Group Rules ( " + "<a href='telegram.me/" + \
                    k[0][1] + "'>" + k[0][2] + "</a> ) -\n\n" + k[0][6]
            except:
                try:
                    k = "Group rules ( " + k[0][2] + " ) -\n\n" + k[0][6]
                except:
                    k = "Group rules ( " + k[0][0] + " ) - \n\n" + k[0][6]

        except:
            k = "Error"

        update.message.reply_text(text=k,
                                  parse_mode="HTML",
                                  disable_web_page_preview=True)
        return

    if res[0] == "/rules" or res[0] == ("/rules@" + bot_username):
        k = get_chat(chat_id=chat_idd, rules=r)

        try:
            k = k[0][0]

            # comment the below line code to change to type 2 rule method
            k = ("<a href='t.me/jesvi_bot?start=" + chat_id +
                 "'>Click Here</a>" + " to view the group's rules")

        except:
            k = "No rules set in this group !"

        update.message.reply_text(text=k,
                                  parse_mode="HTML",
                                  disable_web_page_preview=True)
        return

    elif res[0] == "/rule":
        k = get_chat(chat_id=chat_idd, rules=r)

        try:
            k = k[0][0]
        except:
            k = "No rules set in this group !"

        update.message.reply_text(text=k,
                                  parse_mode="HTML",
                                  disable_web_page_preview=True)
        return

    else:
        m = extract.sudocheck(update, context)
        if m == 2:
            return

    try:
        r = res[1]
        if res == None:
            return
    except:
        return

    k = push_chat(chat_id=chat_idd, rules=r)

    if k == 1:
        txt = ("Set group rules as - \n\n" + "<i>" + r + "</i>")
        update.message.reply_text(text=txt, parse_mode="HTML")