Создать простого Telegram-бота, который:
Принимает фото еды.
Спрашивает название блюда.
Записывает данные в Google-таблицу.
Позволяет вручную отправить самочувствие утром.
Хранит всё в одном листе.
Функционал:
1. Обработка фотографий
Пользователь отправляет фото.
Бот отвечает:
“Какое это блюдо? Напиши название.”
Пользователь пишет название текста.
Бот сохраняет в таблицу:
| timestamp | user_id | username | dish_name | photo_url | source |
photo_url — ссылка Telegram (file_path), фото скачивать НЕ нужно.
Если пользователь отправил одно и то же фото (по file_unique_id), бот пишет:
“Это фото уже есть в базе. Добавить повторно? (Да/Нет)”
2. Обработка текстового ввода
Если пользователь сразу пишет название блюда (без фото):
Бот спрашивает: “Сколько грамм/порция?”
Записывает в таблицу:
| timestamp | user_id | username | dish_name | weight | photo_url = “” | source = “text” |
3. Самочувствие утром (вручную)
Команда:
/mood
Бот отправляет вопрос:
"Как самочувствие сегодня по шкале от 1 до 10?"
Пользователь пишет число → запись сохраняется в таблицу:
| timestamp | user_id | username | mood |
(записывается на тот же лист)
4. Команда просмотра за сегодня
Команда:
/day
Бот отображает список сегодняшних записей в тексте:
Формат:
1) 12:41 — картошка с мясом
2) 14:57 — салат овощной
3) 19:10 — mood: 7/10
5. Команда помощи
/help
Текст:
Отправьте фото — я спрошу название блюда и запишу в таблицу.
Команда /mood — отправить самочувствие за день.
Команда /day — посмотреть записи за сегодня.
Бот должен корректно работать у 5 параллельных пользователей
Скорость записи: до 2–3 вставок/сек
Хостинг:
PythonAnywhere / Render / Railway (любой бесплатный)
Вы настраиваете хостинг самостоятельно
Требования к качеству
Бот должен работать стабильно.
Код должен быть структурирован, без хаоса.
Должна быть инструкция:
Как изменить таблицу
Как изменить токен бота
Как перезапустить бота
Логи ошибок должны выводиться в консоль.
Критерии сдачи
Фото → название → запись
/mood работает
/day выводит данные
Фото НЕ скачиваются
Повторные фото определяются (file_unique_id)
Один лист в таблице
Инструкция + короткое видео (скринкаст)
Опубликован 12.11.2025 в 07:51
Заказ находится в архиве