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")
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)
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}
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"], ), )
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
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")