105 lines
3.6 KiB
Markdown
105 lines
3.6 KiB
Markdown
# 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](https://sailfishos.org/wiki/Sailfish_SDK)
|
|
(su Linux: `flatpak install flathub org.sailfishos.sdk` o tarball).
|
|
|
|
```sh
|
|
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:
|
|
|
|
```sh
|
|
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
|
|
|
|
```sh
|
|
# 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
|