Files
harbour-calibreweb/README.md
T

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