def show_styling_menu(session, context, poll): """Show the menu for sorting settings.""" context.query.message.edit_text( get_poll_text(session, context.poll), parse_mode="markdown", reply_markup=get_styling_settings_keyboard(poll), disable_web_page_preview=True, )
def send_styling_message(session, context): """Update the current styling menu message.""" context.query.message.edit_text( text=get_poll_text(session, context.poll), parse_mode="markdown", reply_markup=get_styling_settings_keyboard(context.poll), disable_web_page_preview=True, )
def clone_poll(session, context, poll): """Clone this poll.""" new_poll = clone_poll_internal(session, poll) session.commit() context.tg_chat.send_message( get_poll_text(session, new_poll), parse_mode="markdown", reply_markup=get_management_keyboard(new_poll), disable_web_page_preview=True, ) return i18n.t("callback.cloned", locale=poll.user.locale)
def show_menu(session, context, poll): """Replace the current message with the main poll menu.""" message = context.query.message message.edit_text( get_poll_text(session, poll), parse_mode="markdown", reply_markup=get_management_keyboard(poll), disable_web_page_preview=True, ) remove_old_references(session, context.bot, poll, context.user) reference = Reference( poll, ReferenceType.admin.name, user=context.user, message_id=message.message_id ) session.add(reference) session.commit()
def create_poll(session, poll, user, chat, message=None): """Finish the poll creation.""" poll.created = True user.expected_input = None user.current_poll = None text = get_poll_text(session, poll) if len(text) > 4000: error_message = i18n.t("misc.over_4000", locale=user.locale) message = chat.send_message(error_message, parse_mode="markdown") session.delete(poll) return if message: message = message.edit_text( text, parse_mode="markdown", reply_markup=get_management_keyboard(poll), disable_web_page_preview=True, ) else: message = chat.send_message( text, parse_mode="markdown", reply_markup=get_management_keyboard(poll), disable_web_page_preview=True, ) if len(text) > 3000: error_message = i18n.t("misc.over_3000", locale=user.locale) message = chat.send_message(error_message, parse_mode="markdown") reference = Reference(poll, ReferenceType.admin.name, user=user, message_id=message.message_id) session.add(reference) session.flush() increase_stat(session, "created_polls") increase_user_stat(session, user, "created_polls")
def go_back(session, context, poll): """Go back to the original step.""" if context.callback_result == CallbackResult.main_menu: text = get_poll_text(session, poll) keyboard = get_management_keyboard(poll) poll.in_settings = False elif context.callback_result == CallbackResult.settings: text = get_settings_text(poll) keyboard = get_settings_keyboard(poll) context.query.message.edit_text( text, parse_mode="markdown", reply_markup=keyboard, disable_web_page_preview=True, ) # Reset the expected input from the previous option context.user.expected_input = None