Repository navigation
Releases: QrCommunication/library-manager-reader
Release list
v0.6.5 — contrat de lecture KOReader, conflits explicites, progression sur les couvertures
Nouveautés depuis la v0.6.0
Synchronisation de lecture — contrat KOReader
- Positions au format KOReader : library-manager.com n'accepte plus que des positions KOReader sur l'API mobile (XPointer CREngine + pourcentage). L'appli envoie désormais ce format ; l'ancien format (CFI / chapitre / %) était refusé par le serveur, ce qui faisait échouer toutes les synchronisations.
- XPointer fidèle à CREngine : les décalages comptent les caractères du texte tel que KOReader le traite (espaces fusionnés hors
<pre>, blancs entre blocs ignorés), pour que la position tombe au même endroit sur la liseuse et sur le téléphone. - Reprise de lecture : à l'ouverture, un XPointer reçu du serveur est converti en position dans le chapitre ; à défaut, l'appli se replace sur le pourcentage.
- Copies identiques uniquement : l'XPointer ne circule que pour un fichier vérifié identique octet par octet (sha256) ; un livre seulement rapproché par son titre partage le pourcentage.
Journal et conflits
- Rejeu exact : une opération envoyée est figée ; si la réponse se perd, l'appli renvoie exactement la même opération, sans jamais la fusionner ni la réécrire. Une seule opération en cours par livre.
- Conflits explicites : quand l'appareil et le serveur ont tous deux avancé, l'appli affiche les deux positions avec leur version et leur date et vous laisse choisir — plus de « le plus récent gagne » fondé sur l'horloge du téléphone.
- Relecture à l'ouverture et au retour au premier plan : la position serveur est revérifiée à chaque fois.
- Erreurs serveur temporaires (5xx, 429, session expirée) : l'opération est conservée et rejouée ; seul un refus définitif l'écarte. Au-delà de 30 jours, elle est mise de côté pour une réconciliation explicite.
- La synchronisation de bibliothèque KOReader (kosync) demande elle aussi votre choix en cas de divergence.
- Base locale migrée en v6 (journal enrichi, état des conflits) ; les anciennes opérations au format CFI sont abandonnées, les positions locales sont conservées.
Bibliothèque
- Barre de progression sur chaque couverture : un bandeau en bas de la couverture affiche l'avancement et le pourcentage (vert une fois le livre terminé), à la place de l'ancienne ligne de 3 px peu visible. Accessible aux lecteurs d'écran, jamais affichée pour un livre jamais ouvert.
- Après un envoi vers library-manager.com, la copie locale est confirmée au serveur lorsque le fichier est identique (nécessaire à la synchronisation de lecture).
Documentation
- README anglais et français réécrits : fonctionnalités, synchronisation KOReader, confidentialité, historique des versions.
Téléchargements : library-reader-0.6.5-production.apk (installation directe) · library-reader-0.6.5-sources.zip (sources du commit compilé). versionCode 65.
SHA-256
library-reader-0.6.5-production.apk:5a8c038834b485b78d3875d260d51bad76a6882659f0e6bbc0e0cfdec59da1e5library-reader-0.6.5-sources.zip:fdd82afa52a08c88fcb5e308b2a27544468cbaae1907294ddb0fda2ee7e9c26e
v0.6.0 — recherche serveur, import en lot, sync live de lecture
Nouveautés depuis la v0.5.0
Bibliothèque cloud
- Recherche serveur : un champ de recherche interroge la route dédiée
/books/search(mots-clés sur titre, sous-titre, auteurs, séries, genres, tags) avec pagination conservée. - Filtre série par select autocomplete : la liste déroulante interroge le catalogue du serveur au fil de la saisie — elle trouve toutes les séries de l'espace, pas seulement celles déjà chargées. « Toutes les séries » réinitialise.
- Compteur fidèle : l'en-tête affiche désormais le total serveur — « Sur le serveur (x/total) ».
- Import en lot : long-appui sur un livre distant pour le cocher, barre d'actions avec compteur et téléchargement groupé séquentiel. Les livres déjà dans la bibliothèque portent un badge opaque et ne peuvent pas être cochés.
- Fiche ⓘ : charge les détails serveur du livre (titre, auteur, série, éditeur, langue, versions prêtes, résumé).
- Correctifs : le filtre série rechargeait la liste de façon fiable, URLs signées jamais porteuses du jeton, en-tête
Originsur les POST OAuth (rejet CSRF côté serveur).
Lecture
- Synchronisation live bidirectionnelle : pour les livres présents des deux côtés, la position est poussée à chaque changement de page et la position serveur plus récente est appliquée à l'ouverture.
- Journal hors ligne : hors connexion, la position reste durable en SQLite ; au retour du réseau, le journal se vide automatiquement, sans jamais ralentir la lecture. Conflits gérés par révision serveur (reprise unique, jamais de boucle).
Interface
- Plus aucune fenêtre système : confirmations et erreurs passent par des dialogues thématisés (dialogues à N boutons, style destructif), les succès par des notifications toast qui disparaissent seules.
- Réglages repensés : sections en cartes lisibles (Général, Lecture, library-manager.com, KOReader, Données) et bouton retour vers la bibliothèque.
- Export de toute la bibliothèque en un clic depuis les réglages (zip renommé façon calibre + positions KOReader).
Téléchargements : library-reader-0.6.0-production.apk (installation directe) · library-reader-0.6.0-production.aab (Google Play). versionCode 60.
v0.5.0 — library-manager.com, grille distante et couvertures
Nouveautés depuis la v0.2.3
library-manager.com — volet distant complet
- Connexion sécurisée par PKCE : plus de mot de passe dans l'appli — l'authentification passe par un WebView intégré (le serveur répond en JSON sur sa page de callback), les jetons vivent uniquement dans le Keychain/Keystore de l'appareil, avec renouvellement silencieux et révocation à la déconnexion.
- Grille des livres distants : les livres de vos espaces s'affichent comme dans la bibliothèque (tuiles avec initiales, couvertures du serveur dès disponibles, badges tomes), pagination automatique, et badge ✓ « Dans la bibliothèque » sur ceux déjà présents localement.
- Transferts dans les deux sens : long-clic sur un livre distant → « Transférer vers la bibliothèque » (téléchargement par URL signée, vérification sha256 + taille, puis confirmation de copie au serveur) ; long-clic sur un livre local → « Envoyer vers library-manager.com » (formats EPUB/MOBI/AZW3, détection de doublon serveur).
- Synchronisation de l'avancement par révisions : en cas de divergence serveur/appareil, l'appli demande explicitement quelle position conserver — jamais d'écrasement silencieux.
- Couvertures serveur : téléchargement conditionnel (If-None-Match/304), cache disque par version, intégrité vérifiée (WebP ≤ 512 Kio, empreinte SHA-256), purge à la déconnexion.
- Retour du serveur si le fichier distant ne correspond pas à sa version (somme de contrôle).
Bibliothèque et réglages
- Réglages réorganisés ; export de toute la bibliothèque en un clic (zip renommé façon calibre + positions KOReader) ; icônes pour les actions groupées ; suppression de la mise à jour automatique des métadonnées (non fiable).
- Synchronisation KOReader globale depuis les réglages (conflits arbités au plus récent, résumé détaillé).
Divers
- Alignement des paquets Expo SDK 57 ; nombreux correctifs (en-tête Origin pour les POST OAuth, gestion des erreurs d'échange de jetons, diagnostics de connexion).
Téléchargements : library-reader-0.5.0-production.apk (installation directe) · library-reader-0.5.0-production.aab (Google Play). versionCode 50.
v0.2.3 — Métadonnées dans les fichiers + export
Nouveautés
Métadonnées inscrites dans les fichiers
Modifier titre, auteur, série ou tome depuis la bibliothèque (appui long → Modifier) écrit désormais ces informations dans le fichier lui-même :
- EPUB :
dc:title,dc:creatoret la collection EPUB3 (série + tome) dans l'OPF ; - CBZ :
ComicInfo.xml(Title, Series, Number) ; - MOBI / AZW3 : formats binaires en lecture seule — la base reste la source de vérité.
Les modifications survivent ainsi à « Mettre à jour les métadonnées » (le fichier reste la source : les champs lus sont réinjectés dans la base).
Export
- Un livre : appui long → Exporter le livre → le fichier est exporté renommé « Auteur - Titre.ext » (convention calibre) vers le dossier de votre choix.
- Plusieurs livres : mode sélection → Exporter la sélection → une archive ZIP
library-reader-export-<date>.zipcontenant les livres renommés, plus les sidecars KOReader (.sdr) pour retrouver votre position dans KOReader.
Divers
- versionCode 23 (numérotation Google Play).
Téléchargements : APK preview ci-dessous (build EAS).
v0.2.0 — logo, thème navy, suivi KOReader
Nouveautés
Identité visuelle
- Icône et splash générés depuis le logo Library Manager (livres navy sur étagère grise, marque-page)
- Thème de l'application aligné sur les couleurs du logo : accent navy #17263D, gris froids, nuance nuit ajustée
Suivi de lecture compatible KOReader
- Compte KOReader : connectez (ou créez) votre compte dans Réglages → Synchronisation KOReader — serveur communautaire
sync.koreader.rockspar défaut, ou votre propre serveur KOSync. Seul le MD5 du mot de passe est stocké, comme KOReader lui-même. - Synchronisation par livre : menu long-press → Synchroniser avec KOReader. En cas de divergence entre les deux appareils, l'application vous demande explicitement quelle position conserver.
- Fichiers sidecar KOReader (.sdr) : importez la position depuis un dossier
<livre>.sdr(metadata..lua) ou exportez-la pour la déposer à côté du livre dans KOReader. - Grille bibliothèque : chaque livre affiche sa progression (barre + pourcentage), y compris celle ramenée de KOReader.
Téléchargements
library-reader-v0.2.0.apk: APK productionlibrary-reader-v0.2.0-preview.apk: APK preview (même code)library-reader-v0.2.0.aab: bundle Android App Bundle (Google Play)
Technique
- Digest
partialMD5identique à KOReader (port deutil.partialMD5) comme clé de document - Client API KOSync v1 complet (create/auth, push/pull)
- 29 nouveaux tests ; suite complète : 291 tests verts
v0.1.0
Library Manager Reader v0.1.0
Première release du lecteur de livres hors ligne (Expo / React Native).
- Formats : EPUB, MOBI, AZW3, CBZ, CBR
- Bibliothèque : recherche, tris (récents/titre/série), séries avec tomes, édition de métadonnées, corbeille 30 jours, doublons détectés à l'import
- Lecture : polices lecture/dyslexie, taille 10–40, thème auto/jour/nuit, mode concentration (bionic reading), TTS multilingue, navigation, surlignage et annotations
- Dictionnaire : définitions Wiktionary dans la langue de l'interface (fallback HTML pour toutes les éditions), traduction LibreTranslate vers la langue choisie, toutes les langues européennes
- Progression et annotations 100 % hors ligne (SQLite)
APK de preview Android attaché ci-dessous (signature preview, installation directe).