Skip to main content

Telegram bot API facade that provides the subscription to custom chat commands via python decorators.

Project description

Чат бот с информацией о ТВ программе

В этом домашнем задании ваша цель - сделать телеграм бота, который дает базовую информацию по ТВ передаче.

Вам нельзя использовать библиотеки для создания готовых телеграм ботов! (но не запрещается посмотреть как они работают)

Используйте API телеграма.

Ваша задача:

  1. Перейдите в документацию по созданию ботов в телеграм: https://core.telegram.org/bots
  2. Создайте токен для работы с ботом по инструкции в документации
  3. Сделайте клиента для работы с API телеграма (документация к API: https://core.telegram.org/bots/api)
  4. Реализуйте логику работы бота по следующему принципу:
    1. У пользователя доступно только одно действие: запрос информации по имени ТВ программы. То есть мы отправляем боту сообщение с названием программы и получаем в ответ информацию об этой программе. (можно использовать parse_mode = html для валидации html тегов в тексте описания тв программы)
    2. Если такой программы не найдено или пользователь отправил некоректное сообщение (картинку, стикер и тд.) отправлять сообщение с ошибкой.
    3. Для получения информации о тв программе используйте решение домашки 1.5 (если у вас его нет, напишите мне в телеграм (@indionapolis), я отправлю вам готовый код)
  5. Мы можем считать, что у нас только один пользователь
  6. Токен телеграма должен быть указан в файле .env под именем TELEGRAM_TOKEN (локальный .env вы в гит не пушите, проверяющий сделает свой файл со своим токеном)
  7. Итоговый проект должен проходить тест и проверки flake8, black и MyPy

Полезные ссылки:

Запуск тестов:

make lint
make test

Пример работы бота:

# запускаем бота
python -m main.py
# чат в телеграм
User:

Family Guy

Bot:

Name: Family Guy
Network Name: FOX
Network Country Name: United States
Summary: Family Guy follows Peter Griffin the endearingly ignorant dad, and his hilariously offbeat family of middle-class New Englanders in Quahog, RI. Lois is Peter's wife, a stay-at-home mom with no patience for her family's antics. Then there are their kids: 18-year-old Meg is an outcast at school and the Griffin family punching bag; 13-year-old Chris is a socially awkward teen who doesn't have a clue about the opposite sex; and one-year-old Stewie is a diabolically clever baby whose burgeoning sexuality is very much a work in progress. Rounding out the Griffin household is Brian the family dog and a ladies' man who is one step away from AA.

Усложненный вариант

  • Сделать возможность сохранять шоу в избанное
  • Выводить список избранных шоу
  • Сделать возможность удалять шоу из избанного

Критерии оценивания

  1. Сделать клиент для API телеграма - 2 балла
  2. Сделать бота, который реализует логику общения - 2 балла
  3. Сделать скрипт, который запускает бота для обработки входящих сообщений - 2 балла
  4. Использовать изученые методики ООП (создать логические классы, сделать релевантные методы для их работы) - 2 балла
  5. Пройти проверку линтерами - 1 балл
  6. Покрыть тестами логику работы бота - 1 балл
  7. Реализовать логику избранного шоу - отдельные доп 3 балла

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file tinkoff_backend_academy_telegram_bot-0.0.7-py3-none-any.whl.

File metadata

File hashes

Hashes for tinkoff_backend_academy_telegram_bot-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 926a4f2ccadfeeffa9c740d427f09433ff4a6219280a5bd213fc81fa85433d6a
MD5 bdc88a05acb10ca6611161fb863b5abe
BLAKE2b-256 45c9b4028fe80dba050fbc3b6284ec45523a9dae3433f39b1f4a09da05d259b5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page