PROJET AUTOBLOG


Le blog de Genma

Site original : Le blog de Genma

⇐ retour index

Scan2Epub.sh où comment lire des Scantrad en Epub

jeudi 1 janvier 1970 à 01:00

Scantrad

Un scanlation, parfois aussi nommé scanslation, scantrad ou mangascan, fait référence à un manga qui a été numérisé (scanné) et traduit par des fans depuis sa langue originale (habituellement le japonais ou le coréen) vers une autre. Définition.

Dit autrement, le scantrad est au manga ce que les fansub sont aux anime.

Mon besoin

Comme je l'évoquais dans mes articles Liseuse Booken et BD, Comics, Manga et Ma liseuse Bookeen et les mangas, il m'arrive de lire des versions scannées (les fameux scantrad) de manga que je possède en version papier ou non publié en France.

Jusqu'à présent, je copiais les dossiers contenant les images sur la liseuse Bookeen. Inconvénient, ce sont des images et donc, quand la liseuse se met en pause, on perd là où on est. Si on lit un epub, et qu'on retourne dans le dossier image, on recommence depuis la première image, c'est tout sauf pratique.

La solution que je voyais et que j'avais en projet depuis longtemps et de générer des epubs regroupant ces images dans un seul et même epub.

Framablog et l'interview de Nylnook

Sur le Framablog, il y a une l'interview de Nylnook, le gentil lutin écolo-dessinateur, dans laquelle Nylnook parle de tout son processus de création de bandes-dessinées, jusqu'à la généreration automatisée de bandes-dessinées au format électronique, en les exportant sous différents formats. Pour ça, il a fait un tutoriel long et complet : Faire une BD de A à Z avec des logiciels libres. Pour l'export en différent format, il a fait un script très complet et contient pas mal de choses. Et surtout ça m'a donné l'astuce sur comment faire des epub facilement ! Donc un grand merci à Nylnook pour ça.

La réponse à mon besoin - Scan2Epub.sh

Prérequis
- Connaitre le shell ;)
- Avoir Calibre d'installer (le logiciel qui permet de gérer sa bibliothèque d'epub mais aussi de faire des conversions)

J'ai donc extrait le bout de code (la méthode) du script et je l'ai rapidement adapté à ce voulais faire / à mes besoins et voilà ce que ça donne.

J'ai un dossier Ranma qui contient l'arborescence suivante

Ranma
├── Volume1
│ ├── Chapitre1
│ │ ├── Ranma_1-2_001-001-000-cover.jpg
│ │ ├── Ranma_1-2_001-001-001.png
│ │ ├── Ranma_1-2_001-001-002.png
│ │ ├── ...
│ ├── Chapitre2
│ ├── Chapitre3
│ └── ...
├── Volume2
│ ├── Chapitre1
│ └── ...
└── ...

C'est un dossier avec des sous-dossiers contenant donc les fameux scans du manga Ranma.

Remarque les fichiers ont une nomenclature particulière à savoir Ranma_1-2_NumeroDuVolume-NumeroDuChapitre-NumeroDePage.png Exemple Ranma_1-2_001-001-002.png

J'ai crée un script rapidement en m'inspirant de celui de Nylnook :

#!/bin/bash

# Scan2Epub.sh

creator="Rumiko Takahashi"
title="Ranma 1/2"
ebookIsbn="123456789"
pubDate=`date`
language="Japonais"
tags="Manga, Ranma, Takahashi"
description="Manga de Ranma 1/2"

function convertToeBooks {
for Volume in `ls $path`
do
nomManga=`echo Ranma_1_2_$Volume`
echo "nomManga :" $nomManga
# On met le numéro de volume en numéro de série, sinon on a des conflits dans Calibre à l'import
# des volumes dans la bilbliothèque
series=`echo $Volume |cut -c7-7`
seriesindex=`echo $Volume |cut -c7-7`
# On récupère le fichier de couverture dans le dossier Chapitre 1
# Exemple de nom de couverture : Ranma_1-2_001-001-000-cover.jpg
cover=`find -name *cover.jpg | grep \$Volume`
cd ./Ranma/$Volume
zip ../$nomManga.cbz `find -name *.png |sort`
cd ../..
# La fonction ebook-convert fait partie de Calibre
ebook-convert ./Ranma/$nomManga.cbz ./Ranma/$nomManga.epub \
--authors "$creator" \
--publisher "$creator" \
--title "$title" \
--isbn "$ebookIsbn" \
--pubdate "$pubDate" \
--language "$language" \
--series "$series" \
--series-index "$seriesindex" \
--tags "$tags" \
--comments "$description" \
--no-default-epub-cover --dont-grayscale --dont-normalize \
--keep-aspect-ratio --output-profile tablet --no-process \
--disable-trim --dont-add-comic-pages-to-toc --wide --extra-css "img{width:100%}" \
--cover $cover \
--no-svg-cover --remove-first-image
done
}
# Appel de la méthode
convertToeBooks

Ca mouline un peu, ça sollicite pas mal le processeur pendant une dizaine de secondes et on a alors dans le dossier Ranma

└── Ranma
├── Ranma_1_2_Volume1.cbz
├── Ranma_1_2_Volume1.epub
├── Ranma_1_2_Volume2.cbz
├── Ranma_1_2_Volume2.epub
├── ...

Les fichiers .cbz sont des zip contenant les images, un vieux format utilisé à l'époque pour lire des bandes dessinées électroniques. Mais surtout, je retrouve des fichiers .epub ! Chaque fichier comme Ranma_1_2_Volume1.epub est à transférer ensuite sur la liseuse et est lisible comme un Ebook, avec temps de lecture, reprise à la bonne page etc. J'ai donc réussi mon mini-projet :)

Amélioration et v2

Quand je lance le script, le processus utilise un seul coeur, mais à 100% pendant quelques minutes, ce qui amène le ventilateur à tourner et faire du bruuit. J'ai un SSD, l'écriture disque n'est pas un facteur limitant, le processeur est un corei5, j'ai de la RAM. Donc je pourrais optimiser tout ça.

Le plus simple est de lancer 4 processus en paralèlle. Ma première idée est de faire un truc du genre

début de la boucle
appelDeFonction(i) &
appelDeFonction(i+1) &
appelDeFonction(i+2) &
appelDeFonction(i+3) &
retour en haut de la boucle

Ca commence à faire compliquer pour un simple script Shell, je pense que je vais repartir de Zéro et probablement faire ça via du Python pour avoir un language plus évolué.

Sinon, en autre fonctionnalité, il faudra que je rajoute la ligne qui va bien qui permettra, une fois les epub générés, d'en faire une copie automatique sur ma liseuse au montage de celle-ci.

Le Cecil et son guide de survie des aventuriers d'Internet

jeudi 1 janvier 1970 à 01:00

Comme vous le savez, je donne assez régulièrement des conférences sur l'hygiène numérique en utilisant comme support mon Guide d'Hygiène numérique version 2016. J'ai également fait une conférence De l'importance de l'éducation populaire au numérique, (que j'ai donné à Lyon, l'Ubuntu party de mai 2016, PSES2016, Toulouse) sur comment parler au grand public, en complément de ce guide d'hygiène numérique (et sur comment l'exploiter).

Lors de PSES 2017, j'ai rencontré des membres du Cecil - Centre d'Études sur la Citoyenneté, l'Informatisation et les Libertés. Le Cecil a édité un guide que j'ai pu feuilleté sur place, initulé le Guide de survie des aventuriers d'Internet. J'ai trouvé ce guide fort bien fait, assez complet et assez proche des connaissances et messages que je souhaite faire passer via mon partage de connaissances sur l'hygiène numérique. Je ne peux donc que conseiller de se procurrer ce guide.

Le Centre d'Études sur la Citoyenneté, l'Informatisation et les Libertés (Le CECIL) vise à donner une assise solide et permanente à l'étude critique de l'informatisation de la société et aux interventions citoyennes dans ce domaine.

Il est régulièrement amené à évolué et mis à jour, comme le dit Sylvain Steer, chargé de mission du CECIL (Centre d'Étude sur la Citoyenneté, l'Informatisation et les Libertés) et principal contributeur du contenu du Guide dans sa réponse aux questions pour une interview de Framasoft - Un guide pour les libérer tous.

A noter que le Cecil a aussi mis en place un certain nombre de fiches pratiques sur différents sujets, disponible ici.

Réflexions sur le fait d'installer une application depuis Github

jeudi 1 janvier 1970 à 01:00

De plus en plus de logiciels sont mis à disposition sur Github et disponible à l'installation à partir d'un simple téléchargement ou git clone sur sa machine du code source depuis le dépôt Github. C'est une solution de facilité qui marche généralement bien (parfois il faut faire quelques commandes en plus, dans le cas d'une utilisation d'un système comme npm, node ou autre).

Les applications Yunohost

C'est le cas par exemple des applications packagées pour Yunohost. Le package se trouve sur Github, on indique le chemin du dépôt comme source d'installation et la moulinette (l'outil interne de Yunohost) fait son travail. Le package ne fait que rajouter des scripts shell et de configuration permettant l'installation et la mise à jour de l'application, l'application en elle-même étant récupérée depuis le site officiel de l'application. C'est donc bel et bien la même application qui est installé de la même façon que si on l'avait fait soi-même.

C'est quoi le soucis ?

Avant je trouvais déjà lourd le fait d'embarquer toutes les traductions d'un logiciel. Certe ce n'est pas bien lourd, surtout à l'heure actuelle où le tera-octet de disque est devenue monnaie-courante (et je ne parle pas de la quantité de RAM, il est loin le temps où l'on pouvait penser "640K ought to be enough for anybody.").

Mais désormais, avec les framework de développement, une simple application web peut faire des dizaines de méga octets. Et surtout, on a tous les fichiers de tests unitaires de l'application. Des tas de fichiers dont je n'aurai pas l'usage.

On a donc d'un côté l'application, assez lourde, et à côté, les test unitaires, la documentation et des tas d'autres fichiers qui ne servent pas et qui potentiellement peuvent contenir des failles de sécurité. Je ne suis pas assez pointu dans le domaine pour savoir si c'est quelque chose qui peut réellement poser problème (en théorie oui, plus il y a de fichiers et plus on multiplie les chances qu'il y ait une faille exploitable. Un peu comme ajouter des tas de plugin divers et variés dans un Wordpress par exemple... - On est vendredi quand je rédige ce billet).

Ce que j'aimerais ?

Il faudrait deux modes :
- un mode développeur pour lequel on a tout le code source, les jeux de tests, la documentation etc.
- un mode production permettant d'avoir les fichiers de configuration, les fichiers utiles à l'application et seulement eux.

Simple non ?

Conclusion

La prochaine fois, on parlera peut être des applications proposées uniquement sous la forme de conteneur Docker ou d'un autre sujet ;)

Il y a un an, démission

jeudi 1 janvier 1970 à 01:00

Suite à l'envoi de ma lettre de motivation en septembre, il y a tout juste un an, le jour de mes mes 37 ans (donc aujourd'hui, c'est mon 38 ème anniversaire), je posais pour la première fois ma démission pour quitter mon tout premier emploi en CDI. J'avais déjà travaillé via des jobs d'été ou des stages, mais cet emploi, débuté en novembre 2005, était mon premier vrai emploi, avec un salaire tous les mois... Celles et ceux qui me connaissent ou celles et ceux qui lisent ce blog depuis des années savent tout le temps qu'il a été nécessaire pour en arriver à ce changement de vie, savent toutes les réflexions, le recul et le travail sur moi-même que j'ai pu faire.

Un an après, alors que je me disais "de toute façon, ça ne peut pas être pire", je ne peux que constater que c'est bien mieux que ce soit à quoi je m'attendais. Mes différents billets de blog au cours des premiers mois de l'année jusqu'au début de l'été (Premières semaines dans ma nouvelle vie, Je suis chef d'équipe ; tu nous rejoins ? Vous voulez que vos employés s'épanouissent ?, et d'autres) sont là pour en témoigner.

Le travail au quotidien est dense, j'ai beaucoup à faire, des responsabilités, des projets et une équipe à gérer. Mais je m'épanouis. Je suis dans mon élément. Je fais ce que j'aime. Je travaille pour et avec du logiciel libre. Un an après, je me dis que ce changement de vie était un beau cadeau que je me suis fait à moi-même.

Firefox Focus, le navigateur privé de Mozilla

jeudi 1 janvier 1970 à 01:00

Mozilla propose depuis peu une nouvelle application pour iOS & Android : Firefox Focus. Une version spéciale du navigateur qui se concentre sur le surf « sans traces ». Il s'agit surtout de bloquer un maximum de trackers publicitaires et sociaux, avec possibilité d'aller plus loin.

Focus se destine avant tout à la navigation sans traces, donc pour des besoins ponctuels.

Le blog de la communauté Mozilla francophone a fait un certain nombre de billets pour présenter les différentes fonctionnalités et sorties de ce navigateur, je vous renvoie vers eux :
- Firefox Focus débarque sur Android, bloque les publicités intempestives et protège votre vie privée
- Firefox Focus – le mois Mots-zilla
- Firefox Focus pour Android 1.1

Et enfin pour tout savoir, la page de support de Mozilla sur Firefox Focus : Mozilla Support - Firefox Focus

Sachant que Firefox par défaut est déjà un très bon navigateur dans sa version Android (tout comme sur PC), cette version complémentaire est une très bonne chose et est une très bonne initiative de Mozilla. Personnellement, je l'ai installé sur les deux téléphones Android que j'ai (personnel et professionnel) et il faut que je prenne le réflexe de l'utiliser au quotidien dès que possible et voir si cela vaut le coup que je présente et ajoute cette application dans le guide d'hygiène numérique.

Dans le même genre, il y a Qwant qui a lancé son application mobile avec navigateur intégré. De même, à étudier.