Задание:
Пункты задания
* Описать функционал тг-бота по отслеживанию состояния яндекс диска
* Выложить результаты на GitHub.
* Обновить код бота на сервере.
🔷 Описание
В предыдущих записях был разобран шаблон для структуры создания телеграмм-бота. Последним заданием будет дописать часть бизнес-логики данного бота, то есть описать набор классов и функций, которые обращаются к базе данных параллельно с командами-обработчиками.
🔷 Тема проекта
Бот для отслеживания общей папки на Яндекс Диске.
🔷 Применение
Группа слушателей курса имеет доступ к папке с материалами преподавателя. Бот регистрирует преподавателей и слушателей и информирует их о внесённых преподавателем изменениях в папке диска.
Техническое задание
🔶 В базе данных отслеживаются:
1. Преподаватель
* имеет ссылку-приглашение для закрепления за ним слушателей
* может регистрироваться в API Яндекс Диска
* может регистрировать токен
* может добавлять папки на Диске в отслеживаемые
2. Слушатель
* закреплён за преподавателем, который прошёл регистрацию
* может зарегистрироваться по ссылке приглашению от преподавателя
* получает сообщения об изменениях на Яндекс Диске
🔶 Зависимости (Библиотеки и фреймворки)
* aiogram3.4. и выше
* yadisk - https://pypi.org/project/yadisk/
* python-dotenv
* sqlalchemy
* aiosqlite
🔶 Классы
Среди классов можно выделить:
1. Класс подключения к яндекс диску
* метод получения токена
* метод проверки наличия новых файлов в папке
2. Классы моделей в базе данных
🔶 Модели в базе данных (создать с помощью sqlalchemy):
1. Таблица пользователей
* идентификатор строки таблицы
* индентификатор пользователя тг
* идентификатор преподателя (если есть)
* токен api яндекс диска (если преподаватель)
* имя пользователя в тг
2. Таблица папок яндекс диска
* идентификатор папки
* индентификатоп пользователя тг (внешний ключ к таблице пользователей)
* путь к папке на яндекс диске
🔶 Процесс получения токена Яндекс Диска:
Процесс должен быть автоматизирован с помощью команд бота.
1. Перейти по ссылке
https://oauth.yandex.ru/client/new
2. Выбрать название и платформу приложения - Веб-сервисы
3. Указать Redirect URI
https://oauth.yandex.ru/verification_code
4. Выбрать следующие права доступа к данным на диске
* чтение событий аудит лога
* доступ к папке приложения на диске
* Доступ к папке приложения на Диске
* чтение всего Диска
* запись в любом месте на Диске
* доступ к информации о Диске
* доступ к Яндекс.Диску для приложений
5. Получить client_id и перейти по ссылке для получения токена
https://oauth.yandex.ru/authorize?response_type=token&client_id=
🔶 Функционал, который нужно описать в хендлерах:
1. Команда /start — регистрирует нового пользователя.
* можно выбрать кто регистрируется: преподаватель или слушатель
* выбор класса пользователя дополнительно подтверждать не нужно
2. Команда /status — выводит статус пользователя.
* предлагает зарегистрироваться /register и получить токен API Яндекс Диска, если его нет
* показывает токен, если пользователь зарегистрирован в API Яндекс Диска
3. Команда /register — выводит инструкцию по регистрации в API Яндекс Диска и выводит команду token
* регистрация API Яндекс Диска -
4. Команда /token — проверяет токен API Яндекс Диска
* допускается, что токен необходимо хранить в базе данных
5. Команда /add — добавляет папку на Яндекс Диске в отслеживаемые для слушателей, которые закреплены за преподавателем
* список отслеживаемые папок храниться в базе данных
6. Команда /delete — удаляет папку из отслеживаемых
* выбранная папка удаляется из списка в базе данных
Комментарии к заданию в записи
https://my.mts-link.ru/Ranepa/1056310948/record-new/1932021766
Гарантия на работу | 1 год |
Средний балл | 4.96 |
Стоимость | Назначаете сами |
Эксперт | Выбираете сами |
Уникальность работы | от 70% |