def choice_one(update, context): user = update.message.from_user rcp_logger.info('Пользователь %s выбрал %s' % (user.username, update.message.text)) if update.message.text == 'Добавить рецепт': return RG.response_generator('new_recipe', update) elif update.message.text == 'Посмотреть мои рецепты': return RG.response_generator('browse_my_recipes', update) else: return RG.response_generator('search_recipe', update)
def new_tags(update, context): user = update.message.from_user RG.my_recipe.tag_id = get_category_by_name(update.message.text) rcp_logger.info('Пользователь %s выбрал категорию \"%s\"' % (user.username, update.message.text)) return RG.response_generator( 'confirm_recipe', update) if RG.from_confirm else RG.response_generator( 'search_status', update)
def new_descriptions(update, context): user = update.message.from_user RG.my_recipe.description = update.message.text rcp_logger.info('Пользователь %s ввёл сам рецепт \"%s\"' % (user.username, update.message.text)) return RG.response_generator( 'confirm_recipe', update) if RG.from_confirm else RG.response_generator( 'recipe_tag', update)
def new_components(update, context): user = update.message.from_user RG.my_recipe.ingredients = update.message.text rcp_logger.info('Пользователь %s ввёл список ингредиентов \"%s\"' % (user.username, update.message.text)) return RG.response_generator( 'confirm_recipe', update) if RG.from_confirm else RG.response_generator( 'recipe_description', update)
def new_recipe_name(update, context): user = update.message.from_user RG.my_recipe.user_id = user.id RG.my_recipe.user_name = user.username RG.my_recipe.title = update.message.text rcp_logger.info('Пользователь %s ввёл имя рецепта %s' % (user.username, update.message.text)) return RG.response_generator( 'confirm_recipe', update) if RG.from_confirm else RG.response_generator( 'recipe_components', update)
def start(update, context): RG.rcp_user.prefill_user(update.message.from_user) if RG.rcp_user.recipes_num and not RG.first_choice_keyboard.count( ['Посмотреть мои рецепты']): RG.first_choice_keyboard.append(['Посмотреть мои рецепты']) return RG.response_generator('start', update)
def browse_my_rcp_category(update, context): RG.searchable_category = update.message.text user = update.message.from_user rcp_logger.info('Пользователь %s выбирает категорию своих рецептов %s' % (user.username, update.message.text)) return RG.response_generator('my_search_by_cat', update)
def search_recipe(update, context): RG.rcp_keyword = update.message.text user = update.message.from_user rcp_logger.info('Пользователь %s пытается найти рецепт по запросу %s' % (user.username, update.message.text)) return RG.response_generator('search_by_keyword', update)
def searchable_status(update, context): user = update.message.from_user RG.my_recipe.is_searchable = False if update.message.text == 'Нет, рецепт приватный' else True rcp_logger.info( 'Пользователь %s ответил на вопрос о приватности рецепта: %s' % (user.username, update.message.text)) return RG.response_generator('confirm_recipe', update)
def choose_search_result(update, context): user = update.callback_query.from_user query = update.callback_query query.answer() RG.selected_recipe = format(query.data) rcp_logger.info('Пользователь %s выбирает из поиска рецепт с ID = %s' % (user.username, RG.selected_recipe)) context.bot.send_message(chat_id=update.effective_chat.id, text="Спасибо, что воспользовались Рецептуарием!", reply_markup=ReplyKeyboardRemove()) return RG.response_generator('my_search_rcp_selected', update)
def store_user_like(update, context): user = update.callback_query.from_user query = update.callback_query query.answer() user_id, recipe_id = format(query.data).split('~') like_recipe(user_id, recipe_id) rcp_logger.info('Пользователь %s лайкает рецепт с ID = %s' % (user.username, recipe_id)) context.bot.send_message(chat_id=update.effective_chat.id, text="Спасибо за лайк!", reply_markup=ReplyKeyboardRemove()) query.edit_message_reply_markup(reply_markup=InlineKeyboardMarkup([])) return RG.response_generator('store_user_like', update)
def confirm_choice(update, context): RG.from_confirm = True user = update.message.from_user rcp_logger.info('Пользователь %s выбрал %s' % (user.username, update.message.text)) if update.message.text == 'Да, сохранить рецепт': RG.my_recipe.save_recipe() return RG.response_generator('recipe_created', update) elif update.message.text == 'Нет, изменить название': return RG.response_generator('new_recipe', update) elif update.message.text == 'Нет, изменить ингредиенты': return RG.response_generator('recipe_components', update) elif update.message.text == 'Нет, изменить описание': return RG.response_generator('recipe_description', update) elif update.message.text == 'Нет, изменить категорию': return RG.response_generator('recipe_tag', update) elif update.message.text == 'Нет, изменить приватность': return RG.response_generator('search_status', update)
def cancel(update, context): user = update.message.from_user rcp_logger.info('Пользователь %s завершил диалог' % user.first_name) return RG.response_generator('cancel', update)
def return_to_search(update, context): return RG.response_generator('search_recipe', update)
def return_to_categories(update, context): return RG.response_generator('browse_my_recipes', update)