https://github.com/aladser/yalink
Просмотр файлов публичной ссылки Яндекс Диска. Django
https://github.com/aladser/yalink
celery django postgresql redis-cache yandex-api
Last synced: about 1 month ago
JSON representation
Просмотр файлов публичной ссылки Яндекс Диска. Django
- Host: GitHub
- URL: https://github.com/aladser/yalink
- Owner: Aladser
- Created: 2024-10-21T07:45:57.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-10-28T09:46:07.000Z (over 1 year ago)
- Last Synced: 2024-11-05T13:41:16.336Z (over 1 year ago)
- Topics: celery, django, postgresql, redis-cache, yandex-api
- Language: Python
- Homepage:
- Size: 1.23 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Публичные файлы Яндекс Диска
#### Настройки проекта
+ создать файл *.env* по аналогии c *.env.example*
+ ``pip install -r requirements.txt``
+ создать базу данных PostgreSQL *yalink*
+ ``python manage.py migrate``
+ ``python manage.py makeusers``
+ запуск проекта:
* локальный сервер ``python manage.py runserver``
* настройки для nginx в папке *install* для имени сайта *yalink.local*
#### Описание
Проект предназначен для просмотра папок и файлов публичных ссылок Яндекс Диска. Для этого не используется токен доступа.
Рекурсивный просмотр файлов. Реализовано так, что можно посмотреть содержимое вложенных папок, но не загрузить их полностью.
+ Индексная страница

+ Если нажать на получение файлов ссылки Яндекс Диска без авторизации, редирект на страницу авторизации.
Два вида авторизации:
* логин-пароль
* Яндекс

+ Открытие ссылки. У файлов есть кнопка *Скачать*. Можно скачать все содержимое и открыть для просмотра содержимого.

+ Открытие вложенной папки. В пути появляется GET-параметр path - путь до папки внутри ресурса

+ Можно скачать несколько файлов. Реализовано через JS(*index.js*): программное нажатие кнопок *Скачать* у соответствующих файлов

+ Можно отфильтровать файлы по их типу. Реализовано через JS(*index.js*): показываются только элементы, соответствующие фильтру.

#### Приложения
+ ``authen`` - аутентификация пользователя
+ ``main`` - главная страница
#### Представления
+ ``main``
* ``MainView``(`` get_context_data()`` ) - представление главной страницы
+ перенаправление на страницу авторизации, если идет запрос на получение содержимого ссылки без авторизации
+ проверка корректности ссылки
+ получение списка файлов ссылки из кэша, если ранее было запрос на их получение
+ если нет кэша, то получение списка элементов ссылки из внешнего ресурса
+ ``authen``
* ``UserLoginView`` - авторизация логин-пароль через БД
* ``yalogin`` - авторизация через Яндекс
* ``RegisterView`` - регистрация пользователя в БД
* ``ProfileView`` - профилья пользователя
* ``CustomPasswordResetView`` - сброс пароля - отправка ссылки на почту
* ``CustomUserPasswordResetConfirmView`` - сброс пароля - ввод нового пароля
* ``CustomPasswordResetCompleteView`` - сброс пароля - проверка ввода нового пароля
* ``VerificateEmailView`` - подтверждение почты
* ``RegisterCompleteView`` - завершение регистрации