auteur |
---|
Sébastien Lamy (lamyseba arobase free.fr) |
Le répertoire scripts
contient des scripts pour faciliter la gestion d'une
petite bibliothèque d'école qui utilise le programme Tellico pour le
catalogage des livres.
Un automate pour imprimer les fiches et les cotes des livres qui en ont besoin. Ce programme génère un pdf et met à jour le fichier d'inventaire: il remet à zéro le nombre de fiche ou de cote à imprimer pour les livres concernés.
Ce script peut être lancé en ligne de commande depuis un terminal. On peut
aussi cliquer sur les lanceurs Impression des fiches
et Impression des cotes
à la racine du projet pour exécuter ce script sans option.
Le fichier pdf est stocké dans le répertoire impressions/fiches
ou
impressions/cotes
à la racine du projet. La liste des livres traités lors
de chaque exécution du script est écrite à la fin du fichier
impressions/impression.log
.
La mise à jour des données est déléguée à Tellico si Tellico est
ouvert, sinon ce script met à jour directement le fichier inventaire.tc
où
sont sauvegardées les données.
impression.py [-h] [--log LOG] [--genre GENRE] [--eco] [-s SORT] item_type
Le premier argument indique s`il faut imprimer les fiches ou les cotes : Ce
script ne fait pas les deux à la fois.
positional arguments:
item_type peut prendre la valeur "fiches" ou "cotes"
optional arguments:
-h, --help show this help message and exit
--log LOG info or debug
--genre GENRE la liste des genres à traiter, séparés par des ';'.
Si la liste commence par un '!', les genres donnés
seront exclus et les autres seront traités
--eco pour les fiches: n`imprime que les pages pleines
-s SORT, --sort SORT le tri souhaité pour l`impression, séparés par des ';'.
Par défaut 'cote' pour les cotes et 'ID' pour les fiches
En supposant que vous soyez placé dans le répertoire racine du projet.
# Imprime toutes les fiches manquantes
./scripts/impression.py fiches
# Imprime les cotes manquantes de tous les livres qui ne sont pas du
# genre "Documentaire" ni du genre "Album"
./scripts/impression.py cotes --genre \!"Documentaire;Album"
# Imprime les cotes manquantes de tous les livres qui sont du genre
# "Documentaire" ou du genre "Album"
./scripts/impression.py cotes --genre "Documentaire;Album"
# Imprime toutes les fiches manquantes et détaille le déroulé sur la sortie
# standard (au lieu de l'écrire dans le fichier de log)
./scripts/impression.py fiches --log debug
# Imprime toutes les fiches manquantes pour les livres qui ne sont pas du
# genre "Documentaire" et n'imprime que les pages pleines
./scripts/impression.py fiches --genre \!Documentaire --eco
# Imprime toutes les fiches manquantes pour les livres du genre 'Documentaire'
# et tri par cote puis par ID si la cote est la même:
./scripts/impression.py fiches --genre Documentaire --sort cote;ID
Génère une page internet montrant les livres du catalogue, puis la met en ligne sur le site de l'école. La page inclut un champs de recherche. On peut cliquer sur une colonne pour trier suivant cette colonne.
Ce script ne prend pas d'option, il peut être lancé depuis la ligne de commande. On peut aussi utiliser anacron pour le lancer automatiquement tous les jours.
En supposant que vous soyez placé dans le répertoire racine du projet.
./scripts/web.sh
Sauvegarde le catalogue inventaire.tc
, ainsi que le répertoire docs
(cette documentation). Cette sauvegarde est effectué par un commit
suivi d'un push sur le site github
Ce script ne prend pas d'option, il peut être lancé depuis la ligne de commande. On peut aussi utiliser anacron pour le lancer automatiquement tous les jours.
En supposant que vous soyez placé dans le répertoire racine du projet.
./scripts/github_push.sh
Ce programme permet de changer le format des noms d'auteurs. On est parti sur un format "Dupont, Jean" pour l'inventaire, mais on se réserve la possibilité d'adopter "Jean Dupont" à l'avenir, même si une réflexion nous indique c'est peu probable. Ce script peut être lancé en ligne de commande depuis un terminal.
rename_authors.py [-h] [-v] input_file output_file
positional arguments:
input_file le fichier de base de donnée tellico à transformer
output_file le nom du fichier de sortie (par defaut:output.tc)
optional arguments:
-h, --help show this help message and exit
-v, --verbose affiche les transformations de nom sur la sortie standard
En supposant que vous soyez placé dans le répertoire racine du projet.
# Renomme les auteurs du fichier inventaire.tc au format 'Prénom' 'Nom' et
# enregistre le résultat dans le fichier inventaire_new.tc
./rename_authors.py inventaire.tc inventaire_new.tc
# Renomme les auteurs en modifiant directement le fichier inventaire.tc et
# en affichant les transformation de nom dans la console:
./rename_authors.py -v inventaire.tc inventaire.tc
Génère la documentation du projet (celle que vous consultez maintenant):
interprète les fichiers au format Markdown du répertoire docs/sources
pour
générer les fichiers html dans le répertoire docs
.
- Les fichiers au format Markdown sont consultables et modifiables avec un
éditeur de texte simple (notepad, gedit). Leur nom se termine par l'extension
.md
- Les fichiers html sont des fichiers lus par les navigateurs web (firefox,
chrome...). La documentation du projet se trouve au format html dans le
répertoire
docs
.
Ce script peut être lancé en ligne de commande depuis un terminal, mais on
peut aussi cliquer sur le lanceur Générer html
dans le dossier docs/sources
pour exécuter ce script sans option.
Avec l'option -i, ce script ne génère pas la documentation mais met à jour
l'icone du lanceur Documentation
à la racine du projet.
Pour plus d'information sur la consultation et la modification de la documentation, consultez la page dédiée
doc.py [-h] [-i]
optional arguments:
-h, --help show this help message and exit
-i, --icon Mets à jour l`icone du lanceur (au lieu de générer la
documentation)
En supposant que vous soyez placé dans le répertoire racine du projet.
# Génère la documentation à partir de tous les fichier .md du répertoire
# docs/src
./scripts/doc.py
# Met à jour l'icone du lanceur `Documentation`, à la racine du projet
./scripts/doc.py -i
C'est mieux de partir avec Tellico, bien sur! Ces scripts s'appuient sur un
catalogue Tellico customisé avec des champs supplémentaires, notamment pour
gérer le nombre d'impression de fiche ou de cote pour chaque livre.
Le catalogue inventaire.tc
(à la racine du projet) fonctionne bien avec
les scripts: c'est l'inventaire à jour des livres de notre école! Vous pouvez
l'ouvrir avec Tellico, puis le vider pour le re-remplir avec vos propres
références.
Les scripts utilisent des programmes en ligne de commande, qui doivent être installés sur l'ordinateur:
xsltproc
est utilisé pour générer une page html à partir des données du catalogue. Ce programme fait partie du paquetlibxslt
installé dans la plupart des distribution linux.- wkhtmltopdf : utilisé pour transformer la page html en pdf à imprimer
Note: La version disponible par défaut dans les dépôts de la plupart des distrib donne une mauvaise sortie pdf car elle ignore l'option--disable-smart-shrinking
fournie par le script. Si cela vous arrive, téléchargez la version fournie sur le site en ligne(1). Placez ensuite l'executable dans /usr/bin :sudo cp ~/Téléchargement/dossier_wkhtml_dezipé/bin/wkhtmltopdf /usr/bin
- la commande
ftp
doit être disponible (c'est le cas la plupart du temps) - Un interpréteur python, ainsi que les librairies
python-dbus
etpython-markdown
(1) Pour la petite histoire, cette version est compilée avec une version patchée de Qt, et souvent la version disponible dans le dépot de votre distro linux favorite n'est pas compilée avec cette version patchée