alxcp/ABCat
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Каталог ссылок Приложение является базой, на основе которой можно создавать каталоги различного контента. Приложение имеет систему плагинов, которые могут добавлять в него различную функциональность по поиску контента, его структурированию, группировке, фильтрации, представлению и др. В базовую версию входят плагины для поддержки каталога раздач аудиокниг с сайта Rutracker.org Для пользователей: Системные требования: - Windows Vista (Необходимы для поддержки .Net Framework 4.5) - .Net Framework 4.5 - Доступ в интернет (при обновлении каталога и загрузке контента) - Свободное место на диске: 200Mb+ (для хранения БД) - CPU: Любой более-менее современный. Фильтрация и группировка записей каталога могут потребовать довольно много ресурсов процессора, поэтому чем больше - тем лучше, но работать должно и на слабых машинах. - RAM: Приложение использует 150-200 MB Ram. Установка приложения не требуется. Достаточно скопировать файлы на диск и запустить ABCat.exe. При первом запуске потребуется указать пути для хранения БД, загрузки контента, путь к uTorrent, срок актуальности записей каталога и группы каталога (актуальные записи не загружаются при обновлении каталога). Приложение построено на: - .Net Framework 4.7.2 - WPF - ModernUI.WPF.1.0.5 - WPFToolkit.3.5.50211.1 Структура решения (в порядке зависимости): - ABCat.Shared Общая для всех проектов библиотека. Базовые утилиты, типы данны и т.д. - ABCat.DB Слой доступа к данным. Структура Entity, классы для упрощения работы с базой. - ABCat.Plugins.Core Ядро плагинов. Интерфейсы поддерживаемых плагинов, контекст приложения. - ABCat GUI, модели для работы GUI, и т.д. Windows Application Структура хранилища каталога: - Catalog.sdf Основная БД хранилища. Записи каталога, группировка записей, метаданные - PageStorage.sdf Хранилище кешированных Html, загруженных при обновлении каталога. Может использоваться для повторного парсинга записей без обращения на сайт источника. Имеет наибольший размер и может быть удалён в любой момент - при отсутствии страницы в кеше она будет повторно загружена с сайта. - ProcessingSettings.sdf Настройки парсеров (списки автозамены для нормализации каталога) - UserData.sdf Пользовательские данные каталога (информация о загрузке записей, скрытии записей на UI). Пользовательские данные отделены от основной БД для упрощения обмена базами между пользователями - при замене Catalog.sdf пользователь не теряет своих личных данных. Плагины. Плагином может быть Dll на .Net Framework 4.5, содержащая классы, помеченные специальным атрибутом ABCat.Plugins.Core.PluginCreatorAttribute и реализующие один или несколько интерфейсов приложения. В конструктор класса передается экземпляр контекста приложения со всей необходимой информацией для инициализации и работы плагина. Структура плагинов: == Site Плагины для операций с источниками контента, наполнения БД ---- ISiteParserPlugin Плагин для наполнения каталога. Обеспечивает загрузку записей из какого-либо источника, загрузку метаданных для записей, наполнение каталога. В ABCat.Plugins.Core имеется абстрактный класс SiteParserBase, обеспечивающий базовую логику асинхронности. При создании плагинов рекомендуется наследоваться от этого класса. ---- IRecordTargetDownloaderPlugin Плагин для загрузки контента, связанного с записью каталога. В ABCat.Plugins.Core имеется абстрактный класс RecordTargetDownloaderBase, обеспечивающий базовую логику асинхронности. При создании плагинов рекомендуется наследоваться от этого класса. == Catalog Плагины для операций с каталогом контекта ---- IFilteringLogicPlugin Интерфейс для плагинов, обеспечивающих фильтрацию записей на UI. Класс должен представлять открытые поля для ввода параметров фильтрации, методы обновления кешей фильтра и методы фильтрации. ---- IGrouppingLogicPlugin Интерфейс для плагинов, обеспечивающих группировку записей на UI. ---- INormalizationLogicPlugin Интерфейс для плагинов, обеспечивающих логику нормализации данных в каталоге. Нормализация - это процесс нахождения различных вариантов представления одного и того же значения атрибута записи каталога (например "Стивен Кинг" == "Кинг Стивен" == "Кинг Стивн"), и их приведения к единому виду. Плагин может иметь собственную логику формирования списков автозамены (например синтаксический анализ), или пользоваться базой списков автозамены (ProcessingSettings.sdf) == UI Плагины для пользовательского интерфейса ---- IBrowserWindowPlugin Плагин, отображающий окно браузера и показывающий содержимое страницы, связанной с записью каталога ---- IRecordsListPlugin Пользовательский контрол, отображающий набор записей каталога. Обеспечивает необходимые методы навигации по записям, выделению записей и т.д. Базовая версия проекта содержит необходимый набор стандартных плагинов, обеспечивающих работы с каталогом аудиокниг сайта Rutracker.org Плагины могут иметь ссылку на проекты ABCat.Shared, ABCat.Plugins.Core, ABCat.DB Оставайтесь на раздаче!
About
Audio Books Catalog
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published