Newer
Older
## Микрообзор функционала Dict2Flashcards
Лучше посмотреть [страничку на гитхабе](https://github.com/Blackdeer1524/Dict2Flashcards).
![](img/2023-04-20-23-31-47.png)
Приложение является "визуализацией" коллекиции Deck. Deck - это по сути вектор
карточек (класс Card). Кнопки со стрелками - навигация по колоде. ">"
пропустить карточку, "<" откатиться к предыдущей карточке
(и убрать карточку из добавленных если она была добавлена на предыдущем шаге).
">>>" - пропустить все оставшиеся карточки в колоде. Bury - отложить
карточку в отдельный файл.
Внутри у нас 2 колоды: колода, с которой мы взаимодействуем (Deck) и в которую
идут сохраненные карточки (SaveDeck).
## Плагины
У нас будут плагины, отвечающие за:
* за сохранение колоды;
* за снабжение информации
* предоставление определений к словам
* Локальные словари (json)
* Внешние словари (парсеры HTML страниц, API, и т.д. )
* предоставление предложений по слову
* Внешние словари (парсеры HTML страниц, API, и т.д. )
* предоставление ссылок изображений
* Внешние (парсеры HTML страниц, API, и т.д. )
* предоставление ссылок на аулио
* Локальные (директория с аудио)
* Внешние (парсеры HTML страниц, API, и т.д. )
Каждый плагин должен реализовать 3 функции:
def get(word: str) - возвращает список карт, в которых заполнены соответствующие типу плагина поля
def load() - выполняет необходимые действия при первом использовании плагина
def unload() - выполняет необходимые действия, когда плагин больше не нужен
С плагинами мы будет общаться через запросы к серверу плагинов:
![](img/2023-04-20-23-33-23.png)
Кнопки `</>` отвечают за конфигурацию плагинов
Кнопки прямо левее `</>`: кнопка выбора текущего плагина
Плагины снабжения можно **комбинировать в цепи**. Цепи нужны для одновременного
поиска по словарям / парсить несколько искочников за раз. **Цепи так же можно
комбинировать в цепи**. Реализация комбинации цепей в цепи довольно сложна
так как нужно управлять графом зависимостей цепей друг от друга (по этому
цепи цепей мы оставим до самого конца, если на это будет время):
## Интерфейс добавления изображений
Существует возможность добавление к карточкам изображений
![](img/2023-04-20-23-34-42.png)
## Браузер добавленных карточек (текущая сессия)
![](img/2023-04-20-23-35-02.png)
Основная проблема, связанная с браузером, это синхронизация плагинов снабжения
в окне браузера в основным окном. То есть если мы поменяли текущий плагин снабжения
предложений в браузере, это дожно так же отразиться в основном окне.
## Язык запросов
Реализован язык запросов который позволяет искать карточки по колоде.
[см. стандарт](https://github.com/Blackdeer1524/Dict2Flashcards#query-language-documentation)