Lire l'add-on EAN-2 et proposer le numéro de la revue scannée

Découverte à la mesure : l'EAN-2 est DÉSACTIVÉ par défaut dans zbar. Il ne
suffisait donc pas de cesser de le filtrer — il n'était jamais produit.
Vérifié sur un EAN-13 + EAN-2 rendus en canvas : un symbole par défaut,
deux après setConfig(ZBAR_EAN2, ZBAR_CFG_ENABLE, 1).

L'EAN-5 reste désactivé : il porte un prix, pas un numéro.

Ce qui reste non vérifié — que les magazines réels y mettent bien leur
numéro de parution — est dit à l'utilisateur : le numéro est proposé dans
un champ modifiable, sous une invitation à le comparer à la couverture.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
mathieu
2026-08-19 22:30:21 +02:00
co-authored by Claude Opus 5
parent b97cf33494
commit 9ab6f23b8c
7 changed files with 143 additions and 32 deletions
+33 -3
View File
@@ -151,6 +151,37 @@ d'obtenir `zbar.wasm` et sa licence.
**Leçon confirmée, dans les deux sens** : le coût d'une bibliothèque n'est pas le poids de son
assembly. Toujours comparer deux publish.
### L'add-on EAN-2 — désactivé par défaut, et c'est le piège (2026-08-19)
Le code-barres d'un périodique porte, à côté du code principal, un petit code à deux chiffres :
l'**EAN-2**, qui est normativement le **numéro de parution**. C'est le candidat naturel pour
pré-remplir le numéro d'une revue.
⚠️ **Il ne suffit pas de cesser de le filtrer : zbar ne le produit pas.** Mesuré le 2026-08-19,
sur un EAN-13 `9772466671438` et un EAN-2 `43` rendus côte à côte dans un canvas :
| Scanner | Symboles lus |
|---|---|
| par défaut | `ZBAR_EAN13=9772466671438` |
| après `setConfig(ZBAR_EAN2, ZBAR_CFG_ENABLE, 1)` | `ZBAR_EAN2=43` **et** `ZBAR_EAN13=9772466671438` |
La ligne de configuration est donc indispensable, et ce fichier affirmait le contraire avant
mesure — « `decoder()` les écarte » laissait croire qu'ils arrivaient.
**L'EAN-5 reste désactivé** : il porte un **prix**. Le confondre avec un numéro créerait des
numéros « 00595 » que personne ne comprendrait. Le filtre du `decoder()` le mentionne quand même,
par prudence.
⚠️ **Ce qui reste non vérifié, et qui est dit à l'utilisateur** : que les magazines réels portent
bien leur numéro de parution dans cet add-on. La chaîne de décodage est prouvée, l'usage
éditorial ne l'est pas — cela demande un exemplaire devant la caméra. Le numéro lu est donc
**proposé** dans un champ modifiable, sous un message qui invite à le comparer à la couverture
(« Vérifiez-le sur la couverture »), et jamais enregistré tout seul.
⚠️ Un add-on lu ne doit pas **déteindre** sur la saisie suivante : `_parutionLue` est remis à zéro
à chaque saisie manuelle et à chaque ouverture du scanner. Sans cela, le numéro d'un magazine
serait proposé pour le suivant.
### Ce qui reste vrai de l'ancienne section
- Le scan caméra exige **HTTPS** (garanti par YunoHost ; `localhost` est considéré comme sûr).
@@ -165,9 +196,8 @@ assembly. Toujours comparer deux publish.
- Il remonte le **format** du symbole (`ZBAR_EAN13`, `ZBAR_ISBN13`, `ZBAR_EAN5`…), là où nous
déduisons le type du préfixe.
- Il décode les **add-ons EAN-2 (numéro de parution) et EAN-5 (prix)** imprimés à côté du code
principal. ⚠️ `decoder()` les **écarte** : ce ne sont pas le code du livre. L'EAN-2 deviendra
utile le jour où les périodiques seront catalogués.
- Il sait décoder les **add-ons EAN-2 (numéro de parution) et EAN-5 (prix)** imprimés à côté du
code principal. ⚠️ **Mais ils sont DÉSACTIVÉS par défaut** — voir « L'add-on EAN-2 » ci-dessous.
## Saisie d'un code-barres — décisions actées le 2026-08-18 (2ᵉ série)