3.6 KiB
harbour-calibreweb
Client OPDS per Sailfish OS: naviga e scarica libri dalla tua istanza Calibre Web (o dal Content Server di Calibre).
Funziona con qualsiasi server OPDS, ma è pensato per Calibre Web: feed di navigazione, ricerca, copertine, download con progresso.
Perché OPDS e non l'API REST
Le versioni recenti di calibre-web (upstream) non hanno più l'API REST:
/api/* è stata rimossa e non esiste in nessuna release 0.6.9+ né in master.
L'interfaccia stabile e documentata è OPDS (/opds, /opds/new,
/opds/search?query=...), che usa HTTP Basic Auth ed espone i link di
download per formato. OPDS è supportato anche dal Content Server di Calibre,
quindi questa app copre entrambi i backend.
Funzionalità
- Sezioni del catalogo (novità, autori, categorie, scaffali, ...) dall'indice
/opds - Paginazione automatica (link
rel="next") - Ricerca testuale (
/opds/search) - Copertine con cache locale
- Dettaglio libro: autore, descrizione, formati con dimensione
- Download con barra di progresso in
~/Downloads - Autenticazione HTTP Basic (utente vuoto = browse anonimo)
- Opzione "ignora errori SSL" per certificati autofirmati
Build
Serve il Sailfish SDK
(su Linux: flatpak install flathub org.sailfishos.sdk o tarball).
git clone <questo repo> harbour-calibreweb
cd harbour-calibreweb
# scegli un target, es.:
sfdk target install SailfishOS-4.6.0.11-armv7hl
sfdk target use SailfishOS-4.6.0.11-armv7hl
sfdk build # produce l'RPM in RPMS/
sfdk deploy # installa sul dispositivo connesso
In alternativa, installa l'RPM a mano:
pkcon install-local harbour-calibreweb-0.1.0-1.armv7hl.rpm
Target consigliati in base al dispositivo: armv7hl (Xperia X, Jolla C…),
aarch64 (Xperia 10 II/III, Jolla C2), x86_64 (emulatore).
Per il Jolla Phone 2026 (MediaTek Dimensity, jp2601): aarch64 con
Sailfish OS 5.0, es. SailfishOS-5.0.0.62-aarch64 (o l'ultimo 5.0.x
disponibile nella tua versione dell'SDK).
Configurazione
Apri l'app → menù → Impostazioni:
| Campo | Valore |
|---|---|
| Indirizzo Calibre Web | es. https://calibre.example.com (o con sottopath) |
| Utente | vuoto se il browse anonimo è attivo su calibre-web |
| Password | quella dell'account (Basic Auth) |
| Ignora SSL | attivalo solo se il server ha un certificato autofirmato |
Poi Prova connessione e naviga.
Struttura
src/ C++: settings (QSettings), apiclient (feed+copertine),
downloader (progressi), opdsparser (Atom/OPDS), main
qml/pages/ MainPage (indice), FeedPage (liste+paginazione),
BookDetailPage (dettaglio+download), SearchPage, SettingsPage
qml/cover/ cover dell'app
icons/ icone 86/108 px + script di generazione
rpm/ spec e desktop file
Limiti noti
- La password è salvata in chiaro nelle impostazioni dell'app
(
/home/nemo/.config/harbour/calibreweb.conf) — accettabile per uso personale. Il file è fisso e condiviso tra launcher (nemo) e debug SSH (defaultuser): la config non dipende dall'utente che avvia l'app. - La ricerca usa il motore del server; risultati identici alla UI web.
- Il core C++ (parsing, auth, download) è testato con Qt 5.15 contro feed OPDS reali e un mock con Basic Auth; la UI Silica richiede il SDK per la verifica su dispositivo.
Test del core
# mock server OPDS + test end-to-end (vedi repository /tmp in locale):
python3 /tmp/mock_opds.py
# compila e lancia /tmp/opds_test (Qt 5.15+)
Licenza
MIT