Просмотр OPDS каталога библиотеки Флибуста https://flibusta.is Ссылка на каталог https://flibusta.is/opds
Программа получает xml данные с сайта флибусты, парсит их и с помощью jinja
генерирует хтмл-код страницы. После чего код отображается в QWebEngineView
.
При обработке jinja-шаблона
в тег <title>
страницы добавляется текущее время и дата. Это делается для того чтобы заголовок каждой страницы отличался от любой другой. Если этого не сделать, то QWebEngineView
не будет генерировать сигнал titleChanged
, при обработке которого происходит проверка экземпляра класса History
и активируются/декативируются кнопки навигации.
Существует файл содержащий список прокси-серверов. При попытке подключения к сайту флибусты эти серверы перебираются, и, при удачном подключении, сервер сохраняется в переменную, а потом используется для последующих подключений. При неудачной попытке соединения переменная обнуляется, и опять происходит перебор прокси-серверов.
Так же эти сервера передаются в QComboBox
, что при выборе одного их них прозволяет его установить для QWidget
.
При клике по ссылке на странице происходит делегирование ее обработки. Если ссылка ведет на opds-каталог приложение генерирует хтмл-страницу. Иначе ссылка обрабатывается в обычном порядке.
Также приложение позволяет загружать файлы книг. При клике на соответствующую ссылку, она проверяется на соответствие типу файл архива, а не хтмл-странице или xml-коду. При скачивании файла предлагается выбрать каталог для его сохранения.