Je me suis un peu repenché sur le logiciel :
Vis a vis des dependances :
time aptitude show zenity | grep "État: non installé"
real 0m3.115s
time ( dpkg_list=$(dpkg -l) ; egrep "^ii zenity" <<< "${dpkg_list}")
real 0m0.100s
donc je te propose une version beaucoup plus rapide (30 fois plus rapide)
dep()
{
# Destruction de la variable des dependances manquantes
unset dep_manquante
# Liste les paquets installés
dpkg_list=$(dpkg -l)
# Boucle traitants les dependances
for dep in bash calibre wget zip
do
# Dependance à tester
[[ -z $(egrep "^ii ${dep}" <<< "${dpkg_list}") ]] && dep_manquante+=(${dep})
done
# Si la variable existe alors il faut installer des paquets
if [[ ${dep_manquante[@]} ]]
then
zenity --title "boomeranga" --window-icon "/usr/share/pixmaps/boomeranga.svg" --info --text "Les dépendances suivantes sont nécessaires pour le bon
fonctionnement de boomeranga! :
<b>${dep_manquante[@]}</b>
Il est conseillé de les installer avant de redémarrer le script."
exit
else
zenity --info --ok-label "Go!" --timeout "2" --title "boomeranga!" --window-icon "/usr/share/pixmaps/boomeranga.svg" --text "Toutes les dépendances
sont satisfaites"
fi
}
Suffisamment rapide pour ne pas avoir besoin de la fenêtre zenity.
Evite++++++ les accents dans les commandes et noms de fonction, ca peut foutre le bordel.
Le dossier de config ne doit pas etre ~/.boomeranga mais ~/.config/boomeranga
Le demarrage est assez long, affiche une fenetre zenity qui indique que le script est lancé sinon on risque de le lancer plusieurs fois.
voilou quelques idées :p
EDIT : voila la suite 🙂
le ! de boomeranga fout le bordel : ! veut dire la dernière commande
=> enlève le des fenêtres zenity
travailler avec les adresses complètes évite des soucis et des cd et co
remplacer notify-send par zenity --notification
=> quitte a utiliser zenity autant le faire pour tout
proposer de ne rien faire juste conserver les fichiers...
=> perso je préfère lire les fichiers jpg
Et voila ma version de la fonction de telechargement.
1) Recupere la page du manga contenant les chapitres disponnibles
2) Affiche les chapitres dispo (meme les chapitres bonus) et te renvoie les adresses des chapitres
3) boucle sur les chapitres pour les telecharger avec une fenetre zenity indiquant que le travail est en cours
# telechargement de la page du manga
wget -U=firefox "http://www.lecture-en-ligne.com/manga/${manga}/" -O "/tmp/${manga}.html"
# Liste affichant les chapitres dispos et renvoyant leur adresse
chap_a_dl=$(egrep -A 2 '<td class="td">.*chapitre.*</td>' "/tmp/${manga}.html" | sed 's@.*<td class="td">\(.*\)</td>@\1@ ; s@.*<a href="../../\(.*\)" class.*@\1@ ; /<td class="td">/d ; /<td>.*<\/td>/d ; /^--$/d' | zenity --list --multiple --column="Numero des chapitres disponnibles" --column="adresses" --hide-column="2" --print-column="2" --separator "\n")
# Verification qu'une selection s'est faite
if [[ -z "${chap_a_dl}" ]]
then
echo "Erreur"
exit
fi
# Boucle travaillant chaque chapitre
while read LINK
do
imax=$(wget -U=firefox -qO - "http://www.lecture-en-ligne.com/${LINK}" | sed -n "/current_total_pages/ s/.*'\(.*\)'.*/\1/p")
chap=${LINK#*/}
chap=${chap%%/*}
# Verification de la validité du chapitre
if [[ -z "${imax}" ]]
then
echo "Erreur"
exit
fi
# Creation du dossier recevant les images
mkdir -p "/home/hizoka/Download/boomeranga/${manga}/${chap}"
# Recuperation des images
for im in $(seq -w ${imax})
do
wget -U=firefox -T 10 -t 50 http://www.lecture-en-ligne.com/images/mangas/${manga}/${chap}/${im}.jpg -O "/home/hizoka/Download/boomeranga/${manga}/${chap}/${im}.jpg"
done | zenity --title "boomeranga" --progress --text "Récupération en cours" --text "Récupération du chapitre ${chap} en cours" --auto-close --no-cancel --pulsate
#création du .cbz
zip -r "/home/hizoka/Download/boomeranga/${manga}/${chap}.cbz" "/home/hizoka/Download/boomeranga/${manga}/${chap}"
rm -r "/home/hizoka/Download/boomeranga/${manga}/${chap}"
#conversion pdf
[[ ${pdf} = "o" ]] && ebook-convert "/home/hizoka/Download/boomeranga/${manga}/${chap}.cbz" "/home/hizoka/Download/boomeranga/${manga}/${chap}.pdf" --right2left
done <<< "${chap_a_dl}"
# SUppression du fichier du manga
[[ -f "/tmp/${manga}.html" ]] && rm "/tmp/${manga}.html"