Informatique

Chercher/remplacer par style et wildcards dans Word

Nous avons écrits YxY à plusieurs mains et à cause d’un manque de concertation nous avons chacun utilisé nos propres marques pour spécifier les titres et sous-titres. Mon maquettiste me demande aujourd’hui d’unifier les documents, de supprimer les titres et de les encadrer avec un tag.


Word possède des fonctions de recherches assez puissante et notamment un moteur apparenté Regex pour faire des combinaisons complexes. Mais la doc étant un peu mal foutue, voici comment je m’y suis pris.

Mes titres étaient simplement des styles Word tout bêtes, Titre 1, Titre 2 etc.

L’idée est de remplacer un Titre 1 par son texte seul encadré de tag <A>xxx</A>, un Titre 2 par <B>xxx</B> et un Titre 3 par <C>xxx</C>.

Lancez la recherche Word (ctrl+H).

Cliquez dans la boite Rechercher, puis sélectionnez le menu Format, Style.

Allez chercher votre Titre 1 mais attention, il peut y avoir plusieurs style avec le même nom.

Cochez la case Utiliser les caractères génériques.

Pour récupérer toute la ligne, tapez le code suivant : <(*)^13

  • Le < indique un début de mot.
  • * demande de rechercher entre 0 et n lettres. Normalement il s’arrête au premier espace trouvé, ce qui est gênant si on veut en entier un titre qui comporte plusieurs mots.
  • ^13 est un code qui représente un saut de paragraphe. J’ai cherché sur internet, je ne l’ai pas trouvé dans l’aide.
  • Enfin, les parenthèses () indiquent que toutes les lettres trouvées forment un groupe qui sera réutilisé dans le remplacement.

Dans la case Remplacer, indiquez <A>\1</A>^13

  • <A> et </A> sont les tags dont mon maquettiste a besoin.
  • \1 est un code qui représente le contenu trouvé précédemment par (*).
  • ^13 est un saut de paragraphe.
  • Vous pouvez en profiter pour faire sauter le style en cliquant dans Format, Style et en choisissant le style Normal.

Cliquez sur Remplacer tout et laissez la magie opérer. Refaites la même chose pour chacun des niveaux de titres et hop un document tout propre.

Ne vous laissez pas décourager par le côté technique, c’est vraiment très simple à mettre en place, adaptable, et ça fait peut faire gagner un temps fou.

Ajouter une liste de répertoires au menu contextuel de Windows

Dans le cadre de mon activité informatique, j’utilise quotidiennement un bon nombre de petits logiciels portables, qui sont soigneusement rangés, chacun dans un répertoire. Arrivant à environ 200 logiciels, je les ai rangés par sous-catégories, pour les retrouver rapidement. Chacun son système je suppose, moi j’ai voulu les ranger alphabétiquement. Pour parcourir plus rapidement cette liste, on peut créer un simple raccourci, moi j’ai voulu les mettre dans le menu contextuel. Vu que j’ai un peu galéré, voici comment je m’y suis pris.


Tout d’abord, voici à quoi cela doit ressembler.

Un menu cascadant, puis la liste des répertoires elle-même.

Tout se passe en base de registre. La ruse ici est qu’il faut modifier des clés à deux endroits.

Tout d’abord, lancez Regedit.

Partie 1 – Le répertoire de base

Créez le répertoire principal en allant chercher cette clé.

HKEY_CURRENT_USER\SOFTWARE\Classes\DesktopBackground\Shell

Créez une clé avec le nom que vous voulez.

Créer les valeurs de clé REG_SZ suivantes :

  1. icon : Non obligatoire, permet de mettre une icone personalisée.
  2. MUIVerb : Non obligatoire, permet de mettre un nom différent du nom de la clé elle-même. Par exemple, j’aurais pu mettre “Soft” comme nom de clé, et changer en “Logiciel” grâce à MUIVerb.
  3. Position : prend les valeur “Top”, “Middle” et “Bottom”. Elle indique où doit se trouver le menu.
  4. SubCommands : c’est le plus important. Indique les dossiers ou autres objets qui doivent apparaître.

“SubCommands” doit comporter la liste des autres commandes, séparées par un point-virgule. Comme pour le menu principal, il sera possible de changer le nom qui apparait.

Comme dans la base de registre, la liste des sous-commandes va se mélanger avec celles par défaut de windows dans un joyeux bordel, j’ai préfixé chaque commande par le nom du répertoire principal.

Logiciels.A-H;Logiciels.I-P;Logiciels.Q-Z;Logiciels.Autres

Partie 2 – Les sous-commandes

Ca se passe ici :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell

Créez une clé pour chaque sous-répertoire.

Pour chaque clé, créez un REG_SZ MUIVerb pour changer le nom pour quelque chose de plus lisible. Vous pouvez aussi ajouter un Icon comme vu plus haut.

Enfin, créez une clé “command”. Écrit exactement comme ça.

Dans “command”, changez l’action par défaut.

Et voilà.

En vrai, c’est pas hyper compliqué une fois qu’on a compris.

Voilà quand même un petit texte qui contient mes modifs. Vous le copiez dans un fichier texte que vous renommez en .reg à la fin, vous le modifiez à votre convenance, et vous double-cliquez dessus pour tout créer d’un coup.

Windows Registry Editor Version 5.00 
[HKEY_CURRENT_USER\Software\Classes\DesktopBackground\Shell\Logiciels]

"Position"="Middle"
"SubCommands"="Logiciels.A-H;Logiciels.I-P;Logiciels.Q-Z;Logiciels.Autres"
"MUIVerb"="Logiciels"
"icon"="explorer.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Logiciels.A-H]
"MUIVerb"="A-H"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Logiciels.A-H\command]
@="explorer E:\Logiciels\A-H"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Logiciels.I-P]
"MUIVerb"="I-P" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Logiciels.I-P\command]
@="explorer E:\Logiciels\I-P" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Logiciels.Q-Z]
"MUIVerb"="Q-Z" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Logiciels.Q-Z\command]
@="explorer E:\Logiciels\Q-Z" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Logiciels.Autres]
"MUIVerb"="Autres" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Logiciels.Autres\command]
@="explorer E:\Logiciels\zz - Autre"

Télécharger automatiquement une liste de fichiers sur Youtube, et les convertir à la volée.

Toujours à la recherche de petit bout de script marrant et d’automatisation, je suis tombé sur la fonction “recherche” de Youtube-dl, qui marche plutôt pas mal.


Youtube-dl dispose de la fonction peu documentée : “ytsearch” qui permet de faire des recherches automatiquement dans Youtube, ainsi que de télécharger automatiquement le résultat.

Si on ajoute un chiffre, par exemple 5, donc “ytsearch5”, la fonction ira télécharger les 5 premiers résultats de la recherche.

Sous Windows, je me suis écrits le petit script suivant (que j’ai appelé ydlfile) à placer où vous voulez dans votre $PATH.

@echo off
for /f "delims=" %%a in (%1) do youtube-dl -f best -x --audio-format mp3 ytsearch1:"%%a"

Cette simple ligne prend un fichier texte en entrée, dont chaque ligne sera recherchée, téléchargée et convertie en fichier mp3. Plus la recherche est précise, plus vous aurez de chance que le fichier récupéré soit celui que vous vouliez.

Si vous tombez sur le net, par exemple, sur une playlist avec simplement le nom des artiste et le nom d’une chanson, copiez-collez le tout dans un fichier texte, donnez-le à manger au script, et voilà !

Je suis tombé par hasard sur la page de Bon Entendeur, des gens qui font des mixes plutôt sympas en ajoutant des voix de gens géniaux, comme Alexandre Astier ou Blanche Gardin (love absolu sur eux et leur famille pour plusieurs générations). En allant sur leur site, je suis tombé sur une tracklist sans lien.

Un copié-collé plus tard dans un fichier texte (bo.txt par exemple), j’obtiens un truc qui ressemble à ça :

Ensuite un petit ydlfile.bat bo.txt :

Et c’est parti !

Il doit y avoir moyen d’améliorer tout ça, mais je vous laisse le faire.

Transformer un album complet téléchargé sur Youtube en une suite de fichiers musicaux indépendants v2

Il y a quelques semaines, j’avais créé ici-même une procédure que je mets à jour avec de nouveaux outils, plus simples et encore moins de travail manuel.


Commencez déjà par vous familiariser avec l’article initial

1- Téléchargement de la vidéo et conversion en mp3

$ youtube-dl -x --audio-format mp3 <lien vers la video>

Si vous n’aimez pas la ligne de commande, il y a des services comme fluvore qui font le job.

2- Création du fichier CUE

Ce document contient toutes les informations des pistes, durées, artistes etc.

Le site http://cuegenerator.net/ permet de le créer facilement.

Entrez les informations à gauche, le fichier CUE apparaît à droite.

Attention au format des informations dans la tracklist. Il y a un espace entre le timecode et l’artiste, et un tiret “-” entre l’artiste et le titre de la piste.

Je m’y suis pris de la façon suivante (vidéo de 48 sec).

Si les informations sont correctement inscrites, le fichier se met à jour automatiquement à droite. Si tout est bon, cliquez sur Save Cue To File pour le récupérer.

Placez-le dans le même répertoire que le fichier mp3.

3- Conversion

J’ai trouvé l’outil MP3DirectCut qui est léger et portable. Il fait tout un tas de choses, dont la découpe dont nous avons besoin.

Téléchargez et lancez le programme.

Glissez-déposez le fichier CUE sur la fenêtre principale.

Fichier -> Découper selon les index

1 - Indiquez le répertoire où vont se placer les fichiers
2 -  Le nom des fichiers générés, je commence par le numéro de la piste, puis le titre de l'album et l'artiste, et enfin l'artiste de la piste et le titre de la piste. 
3 - Enfin, cochez les case ID3v1 et ID3v2 pour tagguer automatiquement les fichiers. 

Cliquez sur Ok pour générer les fichiers.

Et voilà, encore plus simple et plus rapide.

mp3DirectCut peut aussi s’utiliser en ligne de commande. Il y a sans doute moyen d’optimiser encore.

Hotspot Wifi de dépannage avec Linux Mint

Aujourd’hui je suis responsable informatique depuis quelques semaines dans une nouvelle boîte. Depuis quelques jours, le wifi est tombé dans l’une de nos succursales. Nous utilisons des boitiers spéciaux branchés à un firewall Fortinet. Je ne suis pas responsable de l’infrastructure, mais je trouve étrange de passer autant de temps à réparer quelque chose alors que le service est complètement tombé. Voici donc une petite procédure sans prétention pour monter un point d’accès Wifi en deux secondes et quart.


Premièrement attraper un vieux laptop ou n’importe quelle machine qui dispose d’un port Ethernet et d’une carte Wifi. Pour ma part c’est un Dell 5420 datant de mathusalem qui m’a servi de test. Je ne sais pas si toutes les cartes wifi peuvent se mettre en mode AP mais avec ce portable, ça a fonctionné.

Télécharger le dernier Live USB de Mint, genre là https://linuxmint.com/edition.php?id=261

J’ai pris une Cinnamon mais ça importe peu.

Un coup de Rufus pour copier l’ISO sur une clé USB, puis boot sur le le Live.

Cliquez que Network Connections puis cliquez sur le + pour créer une nouvelle connexion.

Choisissez Wifi puis Create

Indiquez le SSID voulu, probablement le même que celui que vous essayez de remplacer.

Dans Wifi Security, choisissez la sécurité que vous aviez précédemment puis le même mot de passe pour éviter que vous utilisateurs n’aient à remettre tout et que vous ayez what mille appels au support.

Vous sauvez le tout puis vous cliquez dans la liste des connection, Connect to Hidden Network (chelou mais bon..)

Choisissez le nom de la connexion que vous venez de créer puis Connect.

Hop, grande magie, vous avez un hotspot tout neuf qui fonctionne. Vous branchez le tout sur le réseau normal et roule ma poule.

Bon c’est pas une grande portée, plus de 10m de rayon c’est chaud mais ça dépanne le temps de régler le vrai problème.

Dernier point, si vous voulez juste un hotspot avec un nouveau nom (mint) et un mot de passe aléatoire, vous n’avez rien à créer. Booter le le Live CD, ouvrez la liste des connexion et cliquez sur Hotspot. C’est tout. Trois clics et c’est réglé. Mint c’est bien.

Enjoy !

Transformer un album complet téléchargé sur Youtube en une suite de fichiers musicaux indépendants

Des fois y’a des chouettes albums sur Youtube et on aimerait bien les télécharger. Des fois, y’a des gens sympas qui mettent même des timecodes correspondant au moment où commence chaque chanson. Ben avec tout çà on peut se faire un chouette album. Attention, cela est probablement illégal si vous ne possédez pas l’album en question.


Commencez par trouver votre album sur Youtube. Téléchargez-le avec Youtube-dl. Exemple avec Monalbumàmoi

youtube-dl -f best -x extract --audio-format mp3 <lien youtube Monalbumàmoi>

Copiez puis coller les timecodes dans un fichier texte quelconque que vous aurez pris soin de renommer en .cue

Modifier le fichier pour qu’il corresponde à ce format.

PERFORMER "<nom de l'artiste>"
 TITLE "<Titre de l'album>" 
 FILE "<nom du fichier.mp3>" MP3
 TRACK    01  AUDIO   
 TITLE    "<Titre du 1er morceau>"  
 PERFORMER    "<Artiste>"    
 INDEX 01    00:00:00
TRACK 02 AUDIO 
et ainsi de suite

EDIT (07/08/19) : Je suis tombé sur plusieurs sites pour aider à la génération du fichier cue
http://cuegenerator.net/
http://www.stutenandy.de/cue.php?lang=en

Téléchargez cuesplitter. La version 1.2 marche très bien.

Lancez cuesplitter et ouvrez le fichier cue créé.

Si le fichier n’est pas formaté correctement, cuesplitter mettra des warning et indiquera ce qu’il y a à corriger.

Ensuite cliquez sur “Séparez!”, selectionnez un répertoire de sortie, et roule ma poule.

Simple et de bon goût.

Télécharger une émission en replay, mais avec Streamlink

Je viens de découvrir une suite d’émission, sur la chaine RTS, appelée “Dans la tête de”. On y parle de différentes personnes, les timides, les surdoués et bien d’autres.

Voulant conserver ces émissions sur mon disque dur plutôt que de dépendre d’une connexion internet capricieuse, j’ai cherché un moyen de les télécharger.


Comme la dernière fois, évidemment pas de dowload possible, ni par le site lui-même, ni par Youtube-DL, ni d’autres solutions connues.

Je vais encore une fois utiliser le mode Inspection de mon navigateur (ici Chrome) pour trouver le fichier manifest. Il s’agit soit d’un fichier manifest.f4m, ou .mpd ou encore .m3u8

Je commence par ouvrir la page d’inspection via un appui sur la touche F12.

Je me rends sur la page en question du site RTS.CH , fait défiler les vidéos et lance celle que je veux récupérer.

Dans l’onglet Network, des adresses défilent. J’arrête la vidéo au bout de quelques secondes et fait une recherche sur les termes manifest, f4m, mpd ou m3u8.

Bingo !

Depuis le dernier article, j’ai découvert l’existence de Streamlink, un logiciel en ligne de commande particulièrement puissant pour jouer ce genre de vidéo. Utile pour une intégration dans un fichier bash par exemple.

Ici, ça devient particulièrement trivial. Après installation du logiciel, j’ouvre un terminal et je lance la commande.

Streamlink est le nom de la commande

Suit l’URL complète copiée précédemment dans l’inspecteur.

Best pour choisir le meilleur format

-o surdoué.mp4 pour écrire le fichier sur le disque dur.

Sans option, ou avec l’option -p en précisant le chemin vers VLC ou MPV, on peut lancer le stream directement dans ces deux players. Pratique pour changer la taille de la fenêtre de rendu, ce qu’on ne peut pas faire sur la page Web.

Quelques minutes après le fichier est téléchargé. C’est d’une simplicité enfantine et je suis étonné de ne pas avoir reperé Streamlink avant. D’ailleurs, je vais sans doute y passer quelques temps à en explorer les possibilités.

Enjoy !

Thunderbird-Lightning 60 / Nexcloud Agenda, synchro ne répond plus

Depuis quelques années, j’utilise un serveur Nextcloud pour gérer mon quotidien administratif, qu’il s’agisse de mes partages de fichiers, de ma galerie de photos ou encore de mes contacts et calendriers. En local, j’utilise Thunderbird ainsi que l’extension Lightning qui synchronise en temps réel avec le serveur. Mon iPhone et lui aussi synchronisé avec le Nextcloud, ce qui me permet de toujours rester à jour.


Je n’avais pas remarqué immédiatement, mais depuis la mise à jour de Thunderbird, la synchronisation ne fonctionnait pas. J’ai mis quelques jours à m’en apercevoir, n’utilisant plus non plus mon iPhone.

Après quelques recherches, il semblerait qu’il s’agisse d’un problème très spécifique lié à un nouveau développement chez Thunderbird, qui ne touche QUE les utilisateurs Nextcloud, autant dire que c’est plutôt précis.

La seule solution actuelle est de désactiver un nouveau paramètre :
network.cookie.same-site.enabled

Dans Thunderbird, cliquez sur Outil, Option. Puis allez dans Avancé, et Éditeur de configuration.

Acceptez l’avertissement qui apparaît.

Enfin, recherchez network.cookie.same-site.enabled et double-cliquez dessus pour le passer à false.

Relancez Thunderbird, la synchronisation devrait fonctionner de nouveau.

Problème de son qui craque sous Linux en HDMI

A chaque fois que je réinstalle un linux sur un Desktop je galère. Pour un laptop, aucun problème mais pour ma machine principale, il y a toujours ici ou là un petit truc énervant qui me fait perdre du temps. Sur le long terme, une fois corrigé, tout va bien, mais cette satanée post-installation m’énerve. 

Aujourd’hui j’ai eu affaire à un petit bug audio. Régulièrement, quand je lançais un son ou une vidéo, j’entendais une sorte de craquement, comme si la carte était réinitialisée à chaque fois. Idem lors le son se terminait, la carte se mettait en pause. J’ai jamais eu ce problème sous Win10, mais systématiquement, sous toutes les versions de Linux que j’ai eue.

Après bien des recherches, j’ai compris que la carte son HDMI se mettait en pause quelques secondes après la fin d’un son. 

Pour corriger cela :

sudo nano /etc/pulse/default.pa

Puis commenter la ligne suivante :

#load-module module-suspend-on-idle

Enregistrer le fichier, puis redémarrer, ou tuer le processus :

$ pulseaudio -k

Si ça peut aider quelqu’un 🙂

Sauvegarder un serveur Linux sur un NAS Synology avec Borg Backup

J’utilise au quotidien un serveur Linux dédié chez OVH sur lequel notamment j’héberge ce blog. Vu le peu de changement, jusqu’à maintenant je sauvegardais manuellement lorsque je jugeais bon de le faire, à coups de SFTP. J’ai décidé récemment d’automatiser cette tâche à l’aide de l’outil BorgBackup.
Il est facile à utiliser (CLI), il gère la déduplication, les sauvegardes incrémentales et différentielle, ainsi que la compression de fichier et le chiffrement.
Mon serveur de sauvegarde sera mon Synology NAS à la maison.


Activer les fonctions nécessaires du NAS et créer la connexion

  • Activer le service SFTP dans l’application Services du fichiers.

  • Vérifier que l’utilisateur a bien les droits sur FTP (oui c’est bizarre).

Le NAS va automatiquement créer un répertoire NetBackup dont je me servirais comme répertoire de sauvegarde. On ne peut le supprimer, alors autant s’en servir.

  • Si le NAS est derrière un routeur, créer la redirection de port qui va bien. Sur ma Freebox, ça donne ça (Athena est le nom de mon NAS)

Nous allons monter le répertoire de sauvegarde dans un répertoire du serveur en SSHFS. Pour éviter d’avoir à taper le mot de passe du NAS à chaque fois, nous allons créer une paire de clé d’authentification.

  • Si ce n’est pas déjà fait, activer le serveur SSH du NAS.

  • Activer le répertoire home des utilisateurs du NAS

  • Depuis le serveur, se connecter en SSH avec le login et le mot de passe. Si la connexion fonctionne, on continue.
ssh orlanth@<ip externe du NAS> -p 40022
  • Depuis le serveur, créer une paire de clé puis copier la clé sur le NAS
ssh-keygen - t rsa
ssh-copy-id -p 40022 orlanth@<ip externe du NAS>

Il va demander une dernière fois le mot de passe.
Une fois cette opération terminée, tentez de vous connecter à nouveau. Le serveur ne doit plus demander de mot de passe.

Installer Borgbackup, créer le répertoire de destination, lancer les sauvegardes

  • Sur le serveur distant, installer borgbackup et sshfs
sudo apt install borgbackup sshfs
  • Créer le répertoire de sauvegarde
sudo mkdir /mnt/BorgRepo && sudo chown <user>: /mnt/BorgRepo
  • Monter le repertoire du NAS sur le serveur
sshfs -p 40022 orlanth@<ip externe du NAS>:/NetBackup /mnt/BorgRepo

De là, vous pouvez tester que tout va bien en créant un fichier dans BorgRepo et en vérifiant qu’il apparait bien des deux côtés, sans problème de droits.

  • Initialiser le répertoire de destination ( à faire une seule fois)
borg init --encryption=none /mnt/BorgRepo
  • Créer une première sauvegarde
borg create -v --stats --progress /mnt/BorgRepo::{now} /var/www

Grâce à {now} la sauvegarde portera un nom créé à partir de l’heure du lancement de la commande.

Et voilà pour la mise en place d’une première sauvegarde.

Si tout fonctionne, il n’y a plus qu’à automatiser, ce qui fera l’objet d’un prochain article.


Références
Sebsauvage
Borg info
Just another blag