Vous êtes ici

Le blog de Laurent Espitallier

UK/Happy hardcore : sélection février 2021

Blog: 

Singles

Upfront

Classic

Mixes

Upfront

Classic

L'archive web locale du pauvre, sans prise de tête

💡 Pour une meilleure appréhension, il est recommandé de lire ce tutoriel sur le wiki ou à l'aide du mode lecture de votre navigateur web.


En attendant un web majoritairement décentralisé via IPFS (ou une autre technologie) archiver le web reste une pratique utile pour diverses raisons, par exemple :

  • comme contre mesure à la censure
  • pour consulter des pages web hors ligne
  • en cas d'indisponibilité ou inaccessibilité temporaire
  • ou pour avoir un historique lorsqu'un site ou une page web disparaît (ou est remplacé⋅e par une autre ou encore est modifié⋅e mais qu'il manque des informations)

Si l'acteur principal dans ce domaine - Internet Archive avec son archive.org - fait un travail remarquable, reste que tout n'est pas toujours archivé ou archivable et que vous pouvez vous retrouver déconnecté d'internet ou avoir une faible bande passante, insuffisante pour consulter ce dont vous avez besoin.

De plus si certains sites comme Wikipédia possèdent bien une version téléchargeable, le moins que l'on puisse dire, c'est que c'est loin d'être une généralité.

D’où l'idée d'avoir sa propre archive web. Même si elle restera probablement modeste, si de nombreuses personnes en ont, un historique du web décent pourrait advenir.

Comme vous allez le constater, il n'est pas nécessaire d'avoir un équipement coûteux ou complexe, l'objectif ici est simplement de sauvegarder tout le contenu d'une page web dans un seul fichier avec à côté les contenus audio ou vidéo qu'elle pourrait contenir.

Un disque dur de taille suffisante (à vous de choisir en fonction de vos besoins) et les logiciels suivants seront nécessaires.

Prérequis techniques

optionnel :

Installation

Incron, youtube-dl, archivement

Selon votre distribution :

sudo dnf install incron youtube-dl archivemount

ou

sudo dnf install incron youtube-dl archivemount

les bash, awk, tar sont généralement déjà installés (ou vous les utilisez déjà pour d'autres choses)

Configuration

SingleFile

1.

Clic droit sur l'icône de l'extension puis menu Gérer l'extension

singlefile2.png

Onglet "Préférences"

Ne pas oublier d'ajouter l'URL de la page sauvegardée dans la barre d'information

{url-href}

... et d'inclure la barre d'information dans la page sauvegardée.

Je propose également le modèle de nom de fichier (nomenclature) suivante :

{url-href-flat}_{page-title}_({date-locale}_{time-locale}).html

Ne pas hésiter à choisir des noms de fihiers longs.

singlefile25.png

2.

Avec les options suivantes :

singlefile3.png

Incron

 sudo rm -f  /etc/incron.allow
 echo $USER | sudo tee -a /etc/incron.allow
 incrontab -e # équivalent de crontab -e, permet de surveiller un dossier et de déclencher un script en fonction des événèments

Ajouter la ligne suivante :

/chemin/de/l/archive IN_CLOSE_WRITE /chemin/de/l/archive/incron-script-archive-web.sh
# cette ligne va permettre à incron de :
# 1. Surveiller le dossier : ...
# 2. Et lorsqu'un fichier est créé ou modifier 
# 3. Lancer le script : ...

Sauvegarder.

Automatisation

Lors de l'enregistrement de la page web, un dossier est créé avec le nom du site. La page déplacée à l'interieur de ce dossier et youtube-dl tente de télécharger les podcasts ou la vidéo qui se trouvent sur la même page.

nano /chemin/de/l/archive/incron-script-archive-web.sh
# le script contiendra :
FULLPATH="$1"
FILENAME="$2"
if [[ $FILENAME == **.html ]] # Si le fichier créé ou modifié est au format HTML
then
URL=$(grep -m 1 "url:" "$FULLPATH/$FILENAME") # Récupère l'URL exacte de la page sauvegardée dans les métadonnées enregistrées par l'extension SingleFile
URL=$(echo ${URL//url:/}) # Supprime la partie qui commence par "url :"
DOMAIN=$(echo $URL | awk -F/ '{print $3}') # Extraction du nom de domaine
cd "$FULLPATH" # Se rendre dans le dossier de l'archive
mkdir "$DOMAIN" # Création d'un dossier au nom du site
mv "$FILENAME" "$DOMAIN" # Déplacement de la page dans ce dossier
cd "$DOMAIN/"
youtube-dl -o '$FILENAME_%(title)s-%(id)s.%(ext)s' "$URL" # Sauvegarde des médias de cette page
else
echo "Fichier non HTML"
fi

Réduction de l'espace disque occupé par l'archive

Étant donné que les fichiers HTML seront en grand partie constitués de texte, le gain potentiel - même avec une compression sans perte - devrait être assez important.

sudo dnf install archivemount
touch fichier.vide
tar -czvf archive.tar.gz fichier.vide # Création du fichier d'archive
# Ajouter en début de script :
archivemount /chemin/de/archive.tar.gz /chemin/de/l/archive/ # montage du fichier d'archive

Lorsque l'archivage des fichiers est terminé :

# Ajouter en fin de script :
umount /chemin/de/l/archive/

UK/Happy hardcore : sélection janvier 2021

Débutant en informatique et intimidé par la ligne de commande ? Implémentez un premier alias qui pourrait réalistement vous émanciper d'un gestionnaire de fichiers graphique

Book Folder File - Free vector graphic on Pixabay https://pixabay.com/vectors/book-folder-file-notebook-159747/

Supposons que vous ayez beaucoup de fichiers sur un disque dur ou un serveur de fichiers avec une arborescence de dossiers profonde, complexe et que vous ne vous souveniez plus exactement de son emplacement. Même avec un bon gestionnaire de fichiers graphique comme l'explorateur Windows retrouver et ouvrir le document que vous cherchez va requérir beaucoup de temps, d'autant que l'Indexation et la recherche par mot clé sur des systèmes d'exploitation comme Microsoft Windows ne sont pas toujours très convaincants.

Voici une commande qui pourrait vous aider. A vous ensuite d'en créer d'autre ou de l'adapter à vos besoins.

Prérequis

Au préalable

Ouvrez un émulateur de terminal :

Touche "Super" sous GNOME, saisir "term" puis appuyez sur entrée.

Créer un fichier texte dans u sous dossier

mkdir -p ~/dossier/et/sous/dossier
echo "test" > ~/dossier/et/sous/dossier/monfichier.txt

Mettez à jour l'index des fichiers de votre système

sudo updatedb

Normalement cette indexation devrait se faire régulièrement sinon la paramétrer avec cron

Définissez quelques associations par défaut pour types de fichiers

Tant qu'à faire avec le fichier que l'on vient de créer

mimeopen -d monfichier.txt

Choisir :

"2) Other"

Et saisir avant de valider :

/usr/bin/nano

S'il retourne un message d'erreur la pemière fois, créer le dossier qui va contenir le fichier de configuration de mimeopen {.is-warning}

Création de l'alias

alias ouvre='mimeopen -n "$( ls "$(locate * | fzf -i -e)" )"'

Utilisation de l'alias

C'est le plus compliqué ! 😅
Saisir et valider :

ouvre

Puis saisir simplement un(des) bout(s) de nom(s) de dossier(s) et/ou de fichier(s) avec un espace pour les séparer.
Par exemple, si vous ne vous souvenez plus du nom complet du dossier et du fichier :

ossier fichi

Faites votre choix avec les flèches et du clavier.

... magique 🤩

Vous pourriez rendre le processus encore plus performant en créant la base d'indexation en mémoire vive dans l'espace utilisateur plutôt que sur le SSD (ou pire le disque dur). Pour cela vous devrez utiliser l'option -o de updatedb

sudo updatedb -o /chemin/de/l/index

et lors de la recherche avec la commande locate, l'option -d

alias ouvre='mimeopen -n "$( ls "$(locate -d /chemin/de/l/index * | fzf -i -e)" )"'

Rendre permanent l'alias

Il faut ajouter la création de l'alias au fichier .bashrc

echo $'alias ouvre=\'mimeopen "$( ls "$(locate * | fzf -i -e)" )"\'' >> .bashrc

Pages

Subscribe to RSS - Le blog de Laurent Espitallier