Organisation
analyse_nov_2021
Concernant la radio, l'enregistrement des stations
peut se faire à trois endroits,
en fonction de la source média :
sur carte micro sd, sur clé usb ou sur le nas.
Pour les audiolivres, la source prioritaire et quasiment unique
est la clé usb, et exactement le dossier /m/usb/aba,
/m/usb correspondant au montage de la racine de la clé usb
détectée au boot.
Plusieurs raisons pour ce choix :
- minorer l'usure de la carte micro sd
- la présence d'un partage réseau est exceptionnel
- un accès rapide aux livres téléchargés ou copiés (mode anarchie/ordonné).
Variables
all_lvr, sel_lvr et sel_n2i
Le coeur du module aba.py tourne autour des trois variables
globales all_lvr[], sel_lvr[]
et sel_n2i{}, et de la fonction build_selektion().
Un livre est un objet qui contient 11 attributs (nydplatufx + type_url) :
Champ | Description |
n | num4c, Numéro à 4 chiffres |
y | genre, tYpe |
d | Durée |
p | Poids, ex : "5.78", "12" |
l | Lecteur |
a | Auteur |
t | Titre |
u | Urls ressources (tableau) |
f | Fiche internet |
x | eXtra |
type_url | |
all_lvr[] contient tous les livres proposés
par la bibliothèque en cours.
sel_lvr[] est créé depuis all_lvr[] et un/des critères
de filtrage.
sel_n2i{} est un tableau de pointeurs vers l'index
de sel_lvr[].
Exemples pour les trois variables essentielles.
Exemple 01
Exemple 02
Source module mod/aba.py
Bibliothèques
intro
Les bibliothèques se classent en ... groupes :
1. livres gratuits en ligne (ex : audiocite.net, litteratureaudio.com)
2. livres privés sur clé usb
3. ...
Une bibliothèque propose des livres qui peuvent être :
- lus immédiatement ou pas
- supprimés ou pas
- ...
L'attribut "catalogue" d'une bibliothèque la caractérise (à vérifier).
...
tableau
Nouveauté : pour être accessibles plus rapidement, les livres
des bibliothèques en ligne peuvent être dupliqués localement,
sur un partage du réseau local. Par exemple, sur le disque dur
d'une freebox.
Le catalogue utilisé reste le fichier catalog.txt. Mais au lieu
de vérifier pour chaque livre s'il est présent (sur la clé usb)
ou s'il faut le télécharger pour le lire, il devient lisible
directement du dépôt local. Attention, les fichiers doivent
être lisibles directement (fichiers .mp3), pas sous format
zippé.
La fonction reseau_partages() de commun.py
monte le nas (si présent) de la freebox vers /media/fbx/xavbox.
Ensuite, la fonction media_present() de
aba.py
prendra en compte le nas pour déclarer un livre présent ou absent.
Tableau issu de la variable BIB_DISPOS de cfg.py.
Le type caractérise le catalogue : il peut être statique, sous la forme d'un fichier en dur,
ou dynamique, dans ce cas, le fichier catalog.txt n'existe pas.
Les catalogues en dur sont placés dans /opt/jk2019/ini/aba/...
Fichiers catalog.txt volumineux : 680 Ko pour audiocité classiques.
Un livre peut être présent (téléchargé) ou absent (en ligne).
Présent signifie qu'il peut être lu immédiatement
et qu'il est stocké en local (clé usb généralement).
Les fichiers téléchargés sont stockés dans /m/usb/aba/<clé_biblio>
Le dossier du livre correspond au champ "n" (de nydplatufx) du livre,
souvent représenté par une suite de 4 chiffres (variable utilisée : num4c,
pour numéro à 4 chiffres).
Les bibliothèques : catalogue statique et dynamique
# |
Bibliothèque (clé) |
Type cata. |
Catalogue |
Présence |
1 |
audio_cite_classiques |
statique |
audiocite_classiques/catalog.txt |
présent/absent |
2 |
audio_cite_contemporains |
statique |
audiocite_contemporains/catalog.txt |
présent/absent |
3 |
cle_usb_anarchie |
dynamique |
depuis contenu /m hors /m/music |
présent |
4 |
cle_usb_ordonnee |
dynamique |
depuis contenu /m/music/type3 |
présent |
5 |
divers_src |
statique |
autres_sources/catalog.txt |
présent/absent |
6 |
perso_zip |
dynamique |
depuis http://gangand.net/aa/audiolivres/perso_zip |
présent/absent |
7 |
librivoxde |
statique |
librivox_de/catalog.txt |
présent/absent |
8 |
librivoxen |
statique |
librivox_en/catalog.txt |
présent/absent |
9 |
librivoxfr |
statique |
librivox_fr/catalog.txt |
présent/absent |
10 |
litteaudio |
statique |
litteratureaudio/catalog.txt |
présent/absent |
Exemple de catalogue statique : extrait de audiocite_classiques/catalog.txt
n=0001|y=nouvelles|d=0:15:00|p=14|l=Plumedencr|a=Joseph Ferdinand Morissette|t=Lucien et Marie-Louise|u=https://archive.org/download/LucienEtMarieLouise/Lucien%20et%20Marie-Louise.mp3|f=nouvelles/joseph-ferdinand--morissette-lucien-et-marie-louise.html|x=
n=0002|y=religions|d=1:25:00|p=80|l=Léa|a=l’abbé Regnault|t=Chemin de croix médité|u=https://archive.org/compress/chemindecroixmedite/formats=VBR%20MP3&file=/chemindecroixmedite.zip|f=religions/p.a.-abbe-regnault-chemin-de-croix-medite.html|x=
n=0003|y=contes|d=0:2:00|p=1.75|l=Sabine|a=l’abbé Ricouard|t=Contes et légendes de la Seine-Maritime. Le bal des fées|u=https://www.archive.org/download/LeBalDesFees/Le_bal_des_fees.mp3|f=contes/abbe-ricouard-contes-et-legendes-de-la-seine-maritime--la-bal-des-fees.html|x=
n=0004|y=poesies|d=0:10:00|p=9.2|l=Ar Men|a=François Abgrall|t=Le Mystère de la Trinité|u=https://archive.org/download/abgrallfrancoislemysteredelatrinite/Abgrall_Francois_-_Le_Mystere_de_la_Trinite.mp3|f=poesies/francois-abgrall-le-mystere-de-la-trinite.html|x=
n=0005|y=romans/nouvelles|d=5:30:00|p=202|l=Raminagrobis|a=Edmond About|t=L'homme à l'oreille cassée|u=https://archive.org/compress/L_Homme_A_L_Oreille_Cassee/formats=VBR%20MP3&file=/L_Homme_A_L_Oreille_Cassee.zip|f=romans/edmond-about-lhomme-a-loreille-cassee.html|x=
n=0006|y=nouvelles|d=0:50:00|p=36|l=Daniel Luttringer|a=Edmond About|t=La Fille du chanoine|u=https://archive.org/download/Edmond_About_-_La_Fille_Du_Chanoine/Edmond_About_-_La_Fille_du_chanoine.mp3|f=nouvelles/edmond-about-la-fille-du-chanoine.html|x=
n=0007|y=romans/nouvelles|d=2:20:00|p=84|l=Raminagrobis|a=Edmond About|t=Le nez d'un notaire|u=https://archive.org/compress/LeNezDUnNoraire/formats=VBR%20MP3&file=/LeNezDUnNoraire.zip|f=romans/edmond-about-le-nez-dun-notaire.html|x=
n=0008|y=romans/nouvelles|d=6:17:00|p=231|l=Raminagrobis|a=Edmond About|t=Le roi des montagnes|u=https://archive.org/compress/LeRoiDesMontagnes/formats=VBR%20MP3&file=/LeRoiDesMontagnes.zip|f=romans/edmond-about-le-roi-des-montagnes.html|x=
Exemple de livres présents
changement
Déroulé des actions suite à une demande de changement de bibliothèque
Le changement de bibliothèque peut se faire suite
à une demande de l'utilisateur grâce à la commande "11" (menu vocal)
suivie de la touche "8", ou bien à la demande d'autres fonctions,
comme le choix d'un livre au hasard de l'ensemble des bibliothèques
(fonction present_hasard_biblios()).
La fonction menu_changer_biblio() est appelée.
La fonction menu_vocal() donne à choisir parmi les
fonctions de changement des bibliothèques :
bbl_audio_cite_classiques(),
bbl_audio_cite_contemporains(),
bbl_litterature(),
bbl_cle_usb_anarchie(),
bbl_cle_usb_ordonnee(),
bbl_perso_zip(),
bbl_librivoxde(),
bbl_librivoxen() et bbl_librivoxfr().
Ensuite est appelée bbl_changer(clé_de_nouvelle_biblio), dont voici la définition ci-dessous.
def bbl_changer(new_biblio)
def bbl_changer(new_biblio):
""" changement de bibliothèque grâce au menu vocal """
bibo = bbl_actu()
if bibo == new_biblio:
msg = "Vous êtes déjà dans la bibliothèque " + bbl_nom()
infos.pdrNew(msg)
else:
if nb_livres_total() > 0:
memo_pos_livre_aba()
save_num4c_actuel(lv_num4c())
infos.ini_set("aba_bbl_actuelle", new_biblio)
reprendre('pas_lancement des audiolivres')
S'il y a au moins un livre dans la nouvelle sélection,
la fonction memo_pos_livre_aba() est d'abord appelée
pour mémoriser un livre en lecture.
Ensuite, save_num4c_actuel(lv_num4c())
permet de sauvegarder le champ "n" du livre en cours de la bibliothèque en cours.
Enfin, on stocke la nouvelle biblio choisie dans py_user.ini,
avec la variable aba_bbl_actuelle.
Et on relance les audiolivres avec reprendre().
La fonction phb_chercher() produit le tableau
de résultats choix_hasard[] suivant.
Le tableau contient la liste des livres présents
des bibliothèques statiques ("cata_type" : "statique").
phb_chercher(...) produit le résultat choix_hasard[...]
Clé biblio | Fullpath | num4c ou champ "n" |
audio_cite_contemporains |
/m/music/aba/audio_cite_contemporains/0076 |
0076 |
audio_cite_classiques |
/m/music/aba/audio_cite_classiques/0755 |
0755 |
librivoxde |
/m/music/aba/librivoxde/0024 |
0024 |
librivoxde |
/m/music/aba/librivoxde/0037 |
0037 |
data_biblios
Statistiques sur les bibliothèques. Cliquez sur la colonne
Bibliothèque (clé) pour voir la liste
des livres.