Ejemplo n.º 1
0
def back_to_the_catalog(chat_id,
                        language,
                        message_text=None,
                        parent_category=None):
    bot.send_chat_action(chat_id, 'typing')
    if not message_text:
        catalog_message = strings.get_string('catalog.start', language)
    else:
        catalog_message = message_text
    if parent_category:
        catalog_message = strings.from_category_name(parent_category, language)
        categories = parent_category.get_siblings(include_self=True).all()
        category_keyboard = keyboards.from_dish_categories(
            categories, language)
        bot.send_message(chat_id,
                         catalog_message,
                         reply_markup=category_keyboard)
        if parent_category.parent:
            bot.register_next_step_handler_by_chat_id(
                chat_id,
                catalog_processor,
                parent_category=parent_category.parent)
        else:
            bot.register_next_step_handler_by_chat_id(chat_id,
                                                      catalog_processor)
        return
    categories = dishservice.get_parent_categories(sort_by_number=True)
    category_keyboard = keyboards.from_dish_categories(categories, language)
    bot.send_message(chat_id,
                     catalog_message,
                     reply_markup=category_keyboard,
                     parse_mode='HTML')
    bot.register_next_step_handler_by_chat_id(chat_id, catalog_processor)
Ejemplo n.º 2
0
def channel_processor(message: Message):
    chat_id = message.chat.id
    user_id = message.from_user.id
    language = userservice.get_user_language(user_id)

    def error():
        error_msg = strings.get_string('package_offers.channel', language)
        bot.send_message(chat_id, error_msg)
        bot.register_next_step_handler_by_chat_id(chat_id, channel_processor)

    if not message.text:
        error()
        return
    if strings.get_string('go_back', language) in message.text:
        main_menu_message = strings.get_string('main_menu.choose_option', language)
        main_menu_keyboard = keyboards.get_keyboard('main_menu', language)
        bot.send_message(chat_id, main_menu_message, reply_markup=main_menu_keyboard)
        return
    try:
        package_offers = channelservice.get_package_offers_by_channel(message.text)
    except channelservice.ChannelNotFound:
        error()
        return
    for package_offer in package_offers:
        if package_offer.telegram_id:
            bot.send_document(chat_id, package_offer.telegram_id)
        else:
            bot.send_chat_action(chat_id, 'upload_document')
            file = open(package_offer.file_path, 'rb')
            sent_file = bot.send_document(chat_id, file)
            tg_id = sent_file.document.file_id
            channelservice.set_telegram_id_for_price_file(package_offer.id, tg_id)
    bot.register_next_step_handler_by_chat_id(chat_id, channel_processor)
Ejemplo n.º 3
0
def catalog(message: Message):
    chat_id = message.chat.id
    user_id = message.from_user.id
    language = userservice.get_user_language(user_id)
    bot.send_chat_action(chat_id, 'typing')
    dishes_keyboard = keyboards.get_keyboard('catalog.dish_keyboard')
    dish_message = strings.get_string('catalog.dish_action_helper', language)
    bot.send_message(chat_id, dish_message, reply_markup=dishes_keyboard)
    bot.register_next_step_handler_by_chat_id(chat_id, count_processor)
Ejemplo n.º 4
0
def catalog(message: Message):
    chat_id = message.chat.id
    user_id = message.from_user.id
    language = userservice.get_user_language(user_id)
    bot.send_chat_action(chat_id, 'typing')
    catalog_message = strings.get_string('catalog.start', language)
    category_keyboard = keyboards.from_dish_categories(language)
    bot.send_message(chat_id, catalog_message, reply_markup=category_keyboard)
    bot.register_next_step_handler_by_chat_id(chat_id, catalog_processor)
Ejemplo n.º 5
0
def back_to_the_catalog(chat_id, language, message_txt=None):
    bot.send_chat_action(chat_id, 'typing')
    if not message_txt:
        catalog_message = strings.get_string('catalog.start', language)
    else:
        catalog_message = message_txt
    categories = dishservice.get_all_categories(sort_by_number=True)
    category_keyboard = keyboards.from_dish_categories(categories, language)
    bot.send_message(chat_id, catalog_message, reply_markup=category_keyboard)
    bot.register_next_step_handler_by_chat_id(chat_id, catalog_processor)
Ejemplo n.º 6
0
def catalog(message: Message):
    chat_id = message.chat.id
    user_id = message.from_user.id
    language = userservice.get_user_language(user_id)
    bot.send_chat_action(chat_id, 'typing')
    catalog_message = strings.get_string('catalog.start', language)
    categories = dishservice.get_parent_categories(sort_by_number=True)
    if len(categories) == 0:
        empty_message = strings.get_string('catalog.empty', language)
        bot.send_message(chat_id, empty_message)
        return
    category_keyboard = keyboards.from_dish_categories(categories, language)
    bot.send_message(chat_id, catalog_message, reply_markup=category_keyboard)
    bot.register_next_step_handler_by_chat_id(chat_id, catalog_processor)
Ejemplo n.º 7
0
def rating_processor(message: Message):
    chat_id = message.chat.id
    user_id = message.from_user.id
    language = userservice.get_user_language(user_id)

    def error():
        bot.register_next_step_handler_by_chat_id(chat_id, rating_processor)

    if not message.text:
        error()
        return
    if strings.get_string('main_menu', language) in message.text:
        _to_main_menu(chat_id, language)
    elif strings.get_string('rating.ratings', language) in message.text:
        rating = ratingservice.get_rating()
        if rating and rating.images.count() > 0:
            for image in rating.images.all():
                if image.image_id:
                    bot.send_photo(chat_id, image.image_id)
                else:
                    bot.send_chat_action(chat_id, 'upload_photo')
                    sent_file = bot.send_photo(chat_id, open(image.image_path, 'rb'))
                    tg_id = sent_file.photo[-1].file_id
                    ratingservice.set_rating_telegram_id(image, tg_id)
        else:
            empty_message = strings.get_string('ratings.empty', language)
            bot.send_message(chat_id, empty_message)
            bot.register_next_step_handler_by_chat_id(chat_id, rating_processor)
            return
        bot.register_next_step_handler_by_chat_id(chat_id, rating_processor)
    elif strings.get_string('rating.presentations', language) in message.text:
        presentations = channelservice.get_channel_presentations()
        if len(presentations) == 0:
            presentations_empty_message = strings.get_string('rating.presentations_empty', language)
            bot.send_message(chat_id, presentations_empty_message)
            bot.register_next_step_handler_by_chat_id(chat_id, rating_processor)
        for file in presentations:
            if file.telegram_id:
                bot.send_document(chat_id, file.telegram_id)
            else:
                bot.send_chat_action(chat_id, 'upload_document')
                sent_file = bot.send_document(chat_id, open(file.file_path, 'rb'))
                tg_id = sent_file.document.file_id
                channelservice.set_telegram_id_for_presentation_file(file.id, tg_id)
        bot.register_next_step_handler_by_chat_id(chat_id, rating_processor)
    else:
        error()