Archives par mot-clé : script

Rapport d’activité orgmode et statistiques de tâches en nodejs

et hop, avec org-report-stats c’est facile d’avoir un export json de ses tâches orgmode qui contient des statistiques d’activité.

https://forge.chapril.org/tykayn/org-report-stats

N’étant pas très ravi de la fonction d’export en JSON native d’Emacs, j’ai créé un parser en nodejs qui produit des statistiques en JSON. il suffit de faire un make convert dans un clone de ce dépot. Modifiez le chemin vers vos fichiers orgmode dans le Makefile.

Vous aurez un beau json qui contient vos tâches, ainsi qu’une partie statistiques détaillant les tâches crées et cloturées sur différents intervalles de temps.

Si vous voulez tester à partir d’un export json de l’exportateur par défaut, c’est aussi possible, il faudra lancer le projet après avoir copié dedans votre export json, et faire un npm start pour voir sur un serveur local une feuille d’activité html.

 

Si vous aimez ce que nous faisons à Cipher Bliss, vous pouvez nous soutenir de plusieurs façons: en faisant un micro don sur liberapay , ou en cryptomonnaies. Le plus simple nous pour nous faire connaître étant de partager cet article.
Suivez moi sur Mastodon @tykayn@mastodon.cipherbliss.com.
Ce site restera libre comme un gnou dans la nature et sans pubs, parce qu'on vous aime. Que la source soit avec vous!

Lister tous ses dossiers photos avec nodejs

Pour avoir une rétrospective des évènements auquels j’ai pris des photos, rien de tel qu’un bon listing récursif de dossiers photos.

Il se trouve que pendant un moment j’ai séparé mes photos dans des dossiers correspondant aux dates des évènements, ce qui est loin d’être optimal en terme de navigation et d’information associées. Depuis que j’ai mis en place un système de tags sur les noms de fichiers je fais en sorte de sortir de ce principe d’informations localisées dans le chemin du fichier.

la commande tree permet de faire un listing récursif de tous ses dossiers, mais c’est plus marrant de voir comment faire ça en nodejs.

Voici donc un script pour faire ça sur 3 niveaux de profondeur à partir d’un chemin prédéfini, celui de la base de nos photos:

https://forge.chapril.org/tykayn/scripts/src/branch/master/folder-listing-node/index.mjs

plus qu’à faire le lancement du script et sauvegarder la sortie de console dans un fichier texte pour voir ce que l’on a fait comme sous dossiers d’évènements.

node index.mjs > dossiers_liste.txt

on pourrait ensuite s’amuser à créer des tâches orgmode avec la date prise dans la hiérarchie de fichiers afin de les faire apparaître dans notre agenda, ou dans un rapport annuel utilisant nos fichiers orgmode, mais ça demande à ce que le cheminement des évènements ait été décrit de façon cohérente.

Havez fun!

Si vous aimez ce que nous faisons à Cipher Bliss, vous pouvez nous soutenir de plusieurs façons: en faisant un micro don sur liberapay , ou en cryptomonnaies. Le plus simple nous pour nous faire connaître étant de partager cet article.
Suivez moi sur Mastodon @tykayn@mastodon.cipherbliss.com.
Ce site restera libre comme un gnou dans la nature et sans pubs, parce qu'on vous aime. Que la source soit avec vous!

Renommer des photos selon leur nom de dossier parent

C’est pas le tout d’avoir plein de photos rangées selon leur évènement dans une liste de dossiers décrivant ces évènements, si on veut que les informations de ces évènements soient dans le nom de fichier et que ça soit tagué correctement pour pouvoir les retrouver facilement, il faut de bons outils pour ça.

J’ai ceci:

/photos/2023/01 evènement bidule/0001.jpg
/photos/2023/01 evènement bidule/0002.jpg
/photos/2023/01 evènement bidule/0003.jpg
/photos/2023/02 festival truc/0001.jpg
/photos/2023/02 festival truc/0002.jpg
/photos/2023/02 festival truc/0003.jpg

Et je souhaite avoir cela:

/photos/2023/01 evènement bidule 0001.jpg
/photos/2023/01 evènement bidule 0002.jpg
/photos/2023/01 evènement bidule 0003.jpg
/photos/2023/02 festival truc 0001.jpg
/photos/2023/02 festival truc 0002.jpg
/photos/2023/02 festival truc 0003.jpg

Voici justement un petit script pour ça confectionné dans ma cuisine: Rename File Folder.

Pour l’appeler facilement, un petit alias bash et zou, rff fera le taf dans tout le dossier courant de votre terminal.

Dans votre fichier ~/.bash_aliases:

alias rff="python /home/Nextcloud/ressources/workflow_nextcloud/files_management/rename_photo_folder.py" # mettez votre script où vous voulez

https://forge.chapril.org/tykayn/scripts/src/branch/master/bash/file_management/rename_photo_folder.sh

https://forge.chapril.org/tykayn/scripts/src/branch/master/bash/file_management/rename_photo_folder.py

et tadam, vous aurez votre renommage en masse.

Comme toujours, il vaut mieux tester les renommages de fichiers en masse sur de petites portions de copie de fichiers.

 

Si vous aimez ce que nous faisons à Cipher Bliss, vous pouvez nous soutenir de plusieurs façons: en faisant un micro don sur liberapay , ou en cryptomonnaies. Le plus simple nous pour nous faire connaître étant de partager cet article.
Suivez moi sur Mastodon @tykayn@mastodon.cipherbliss.com.
Ce site restera libre comme un gnou dans la nature et sans pubs, parce qu'on vous aime. Que la source soit avec vous!

Fabriquer des bots pour Mastodon

C’est assez simple de faire des bots pour Mastodon, il existe des tas de bibliothèques pour le faire dans des tas de langages différents.
On peut s’en servir pour accueillir les nouveaux inscrits, stimuler les découvertes de comptes, mettre en avant certaines thématiques en particulier, parler d’actualités, se lancer des défis, publier des images de memes, faire des rapports d’activité, détecter des activités potentiellement problématiques, et répondre à des questions en se faisant passer pour une intelligence artificielle.

Avant de se lancer dans l’aventure il faut faire en sorte de respecter certaines règles pour éviter de juste produire du spam ou de harceler des comptes.
Certaines entreprises sont spécialisées dans ces activités de spam à des fins politiques ou de nuisances en tout genre, tel que Cambridge Analytica et les fermes de trolls.
On peut donc créer des messages de bot très simples pour avoir un flux d’actu reflétant l’activité sur un jeu de données ouvertes, faire de la veille, enrichir ses connaissances et apporter de la vie et des échanges sur son média social. Mais chacune de ces tâches ne demande pas le même niveau de compétences techniques pour se faire.
Dans votre boîte à outils vous aurez besoin de:
– un carnet de notes pour savoir ce que vous voulez réaliser, et de faire en sorte que les publications que vous aller engendrer apportent quelque chose.
– avoir un compte Mastodon qui serve uniquement à cela. L’instance botsin.space est ouverte à ce type d’utilisation et encourage à y faire des essais, mais aussi de la mise en production.
– d’enregistrer votre application de bot auprès d’un compte Mastodon.
– de bibliothèques pour aller gratter des données qui vous seront utiles, dans vos langages de programmation favoris.
– de sources de données utiles. Sites web, textes, images, médias, documentation d’API.
– de fabriquer des utilitaires codés maison pour faire marcher tout ça ensemble et détecter les problèmes lors des publications.
– de documenter le tout pour maintenir vos scripts de bots.
– de pas mal de temps pour faire des essais et erreurs.
– de regarder quels services vous proposent de faire des publications qui pourraient vous intéresser sans avoir à coder vous même.



À propos de complexité:
Simple, basique:
– dire Bonjour, Monde!
– publier quelque chose à heure fixe
– faire un résumé des articles d’un flux rss

Modéré:
– accueillir les nouveaux inscrits depuis 24h avec un message privé mentionnant leur pseudo.
– publier une image au hasard prise dans un dossier et la déplacer dans un dossier d’images catégorisées comme publiées
– publier les infos de journées mondiales lors de la dite journée mondiale
– republier certains posts lors de l’apparition d’un post contenant certains termes
Complexe:
– faire un jeu dont on est le héros dont l’histoire avance selon un sondage publié auquel les autres gens participent.
– simuler la publication de quelqu’un d’autre en apprenant comment cette personne s’exprime
– réagir à une question en faisant une réponse pertinente
– créer un bot sur mesure ayant ses propres cycles de publication
– évaluer les penchants conspirationnistes d’un compte en fonction des analyses des comptes qu’il suit (analyse-ception)
– analyser les toots publiés et détecter des messages problématiques pour en faire un rapport aux modérateurs du site
– jouer et gagner à snake and ladders

Quelques exemples dans lesquels vous pouvez puiser de l’inspiration et copier les sources:
– Ananas en Python :  ananas · PyPI


Ce que j’ai réalisé comme scripts jusqu’ici:


– Republier un article de blog wordpress au hasard parmi une liste de tous les articles d’un blog, avec son titre et son résumé, avec la première image trouvée dans le corps de l’article. Beaucoup de publications passent à la trappe car elles sont captives d’un filtre sur les sites des GAFAM qui décident à votre place de qui sont les amis dignes de votre attention. Spoil: ceux qui permettent à la plateforme de maximiser ses gains. Rien de tout cela sur Mastodon qui est designé de sorte à ne pas capter entièrement votre attention.
Un meme au hasard dans un dossier de sélection, un certain nombre de fois par jour, et sans jamais republier la même image.
Publier une page présentant un tag du wiki openstreetmap en ne sélectionnant que son premier paragraphe, parmi les pages en français, et seulement si la page du wiki est en ligne, avec l’image attitrée du tag prise dans le wiki.
Publier les articles de l’AFIS sortis au cours des 7 derniers jours.
Publier les évènements dédiés à openstreetmap qui vont se produire dans les 7 prochains jours, à partir du flux RSS de l’agenda du libre, localisés uniquement en île de France.

Chacune de ces publications m’a permis de me constituer quelques utilitaires bien pratiques.
*** Quelques limites
Les choses trop datées, les informations débunkées, les liens publiés morts, les sources à gratter qui changent de structure, les scripts qui plantent sont autant de points d’attention à surveiller lors de la vie de vos scripts.

** Va chercher!
Un accès à un compte par script permet de publier des choses, mais aussi de récupérer des informations de ces comptes, et notamment des messages privées et des notifications.

Ayant à gérer plusieurs comptes, je me suis heurté à l’ergonomie de Mastodon qui n’est pas faite pour la gestion de multi comptes. Ainsi, le seul moyen d’avoir une vue d’ensemble des interactions de différents comptes consistait à faire le tour avec différents logins, à utiliser une application mobile, ou un proxy en ligne en faisant confiance à je ne sais qui pour gérer mes accès. Et le logiciel Rambox qui semblait faire le café n’est pas si pratique. D’ailleurs je n’apprécie pas du tout qu’il demande maintenant d’avoir un compte pour l’utiliser, alors qu’il pouvait parfaitement s’en passer l’an dernier.

Je me suis donc lancé dans un petit projet de gestion multi compte qui permet d’interagir parmi plusieurs comptes dont j’aurai défini les accès en fichier de configuration.
Actuellement je peux cliquer sur l’avatar de plusieurs comptes pour changer l’identité qui publiera le message, écrire le message et l’envoyer.
J’ai aussi la possibilité d’avoir un rapport de tous les messages directs destinés à ces comptes, afin d’y répondre.

** Y’a pas que pour Mastodon
Développer des choses pour faire des bots c’est bien beau, mais ça vous permet de réutiliser des données ailleurs et de contribuer au cycle de vie de la donnée ouverte. C’est un enjeu crucial pour la science reproductible, pour la cueillette et le jardinage dans OSM et ailleurs, mais c’est aussi super marrant.
Have fun!

 

https://forge.chapril.org/tykayn/multi-account-post-schedule-mastodon

https://forge.chapril.org/tykayn/scripts

Si vous aimez ce que nous faisons à Cipher Bliss, vous pouvez nous soutenir de plusieurs façons: en faisant un micro don sur liberapay , ou en cryptomonnaies. Le plus simple nous pour nous faire connaître étant de partager cet article.
Suivez moi sur Mastodon @tykayn@mastodon.cipherbliss.com.
Ce site restera libre comme un gnou dans la nature et sans pubs, parce qu'on vous aime. Que la source soit avec vous!

woman in black dress playing violin

Récupérer de la musique libre de l’émission « Libre à vous ! »

Je vous ai dit que j’étais membre de l’April et du CHATONS qui y est associé, le Chapril ? ça c’est fait.

logo de l'aprilIl se trouve que cette association de défense du logiciel libre, qui est aussi à l’origine du très utile Agenda du libre,  a près de 4000 membres et diffuse une nouvelle émission tous les Mardis après midi, intitulée « Libre à vous ! ».

libre a vous - april.org

Prenez le contrôle de vos libertés informatiques et suivez l’actualité du Libre. Retrouvez les dossiers politiques et juridiques traités par l’April, les échanges avec des personnes invitées, et bien entendu de la musique sous licence libre. Libre à vous ! c’est en direct chaque mardi de 15 h 30 à 17 h, sur les ondes de la radio Cause Commune, « la voix des possibles », 93.1 FM en Île-de-France, partout dans le monde sur le site de la radio. (Comme diraient les Fatals Picards, C’EST UN JEU DMOT! cause comme discutailler, mais aussi comme comme cause à défendre! Habile!) Le podcast de l’émission et les podcasts par sujets traitées sont disponibles dès que possible, quelques jours après l’émission en général.

 

Qui dit radio libre dit aussi musique libre

C’est aussi une émission qui diffuse des artistes publiant leur musique sous une licence libre, ce qui signifie que sous certaines conditions vous pouvez l’écouter et vous en servir dans vos créations (vidéos par exemple) sans avoir à débourser le moindre euro, du moment que vous créditez les artistes correctement. En causant sur le canal IRC -chapril j’ai appris que l’on peut retrouver la liste des musiques par ici pour les télécharger:

https://media.april.org/audio/radio-cause-commune/libre-a-vous/emissions/musiques/

Aussi, au lieu de cliquer sur les nombreux liens un par un j’ai réalisé un petit script qui va s’occuper de récupérer la liste des liens fournis par cette page et les télécharger ensuite dans un dossier dédié grâce à la puissance des scripts bash. Il existe sûrement des moyens plus facile de faire cela mais voici une recette assez rapide issue de plusieurs recherches sur Saint Stack Overflow.

D’abord on récupère la page html présentant la liste de liens, on scanne ensuite le fichier html pour extraire les liens dans les ancres html, on remplit un fichier listant ces liens, et ensuite on scanne ce fichier de liens en demandant de télécharger chacun de ces liens dans un dossier.

#/bin/bash
cd ~
mkdir musique-libre-a-vous && cd musique-libre-a-vous

wget https://media.april.org/audio/radio-cause-commune/libre-a-vous/emissions/musiques/
sed -n 's/.*href="\([^"]*\).*/\1/p' index.html > liste_de_liens.txt
cat liste_de_liens.txt
cat output.txt| wc -l

une fois que vous avez fait le ménage dans votre liste de liens en ne gardant que les fichiers audio, vous pouvez lancer le téléchargement de la liste de fichiers ainsi:

xargs -i wget 'https://media.april.org/audio/radio-cause-commune/libre-a-vous/emissions/musiques/{}'  < liste_de_liens.txt

Bon ce serait plus simple si l’asso mettait à disposition des fichiers torrents listant les musiques par paquet, ça permettrait de faire techniquement du partage entre les personnes interessés par les téléchargement au lieu de tout demander depuis un seul serveur, mais ça sera pour une prochaine fois 😉

Si vous avez aussi de bonnes ressources pour récupérer de la musique libre de droits et faire découvrir des artistes de qualitay, faites passer les astuces dans les commentaires!

oh d’ailleurs vous pouvez leur parler de Funkwhale si vous connaissez des artistes.

Funkwhale, Une plateforme sociale pour apprécier et partager la musique

Funkwhale est un projet communautaire qui vous permet d’écouter et de partager de la musique et des contenus audio au sein d’un réseau décentralisé et ouvert.

j’en ai mis un en place ici: https://music.cipherbliss.com/

En attendant, profitez bien de la musique, et si vous voulez en savoir plus sur l’April c’est par ici:

Depuis 1996, l’April est animée par une ambition : « logiciel libre, société libre ».

Pionnière du logiciel libre en France, l’April, constituée de 3968 adhérents (3666 personnes physiques, 302 entreprises, associations et organisations), est depuis 1996 un acteur majeur de la démocratisation et de la diffusion du logiciel libre et des standards ouverts auprès du grand public, des professionnels et des institutions dans l’espace francophone. En savoir plus….

 

Si vous aimez ce que nous faisons à Cipher Bliss, vous pouvez nous soutenir de plusieurs façons: en faisant un micro don sur liberapay , ou en cryptomonnaies.

Le plus simple nous pour nous faire connaître étant de partager cet article.

Suivez moi sur Mastodon
@tykayn@mastodon.cipherbliss.com.

Ce site restera libre comme un gnou dans la nature et sans pubs, parce qu'on vous aime. Que la source soit avec vous!

black bicycle on gray concrete floor

Comment intégrer un front end Angular sur un site web en Symfony

Tuto express pour intégrer un front end compilé avec un framework javascript dans un site web dynamiquement généré par un framework backend en PHP / Symfony (la version 6 vient de sortir).

On initie un projet git pour le front, et un autre pour le back symfony.

On range notre multi projet à coup de git submodule.

On compile les sources du front dans un dossier accessible à symfony.

On insère le js compilé dans un template twig en faisant en sorte que le JS soit toujours compilé avec le même nom de fichier de sortie.

Et hop, on peut voir le tout intégré dans l’app symfony en local.

Pour faciliter le flux de travail, on réalise un script de mise à jour qui s’occupe de réaliser ces étapes, comme ici pour le projet auquel j’ai grandement contribué de date-poll-api qui intègre le front end funky framadate.

On déploie une démo qui permet de tester et de montrer que ça fonctionne.

landing page framadate funky

On documente tout ce fonctionnement afin de permettre une contribution pérenne, et on a plus qu’à contribuer à plusieurs, parfois juste en donnant un peu de temps ou d’argent à des gens qui peuvent apporter plus que nous ici et maintenant.

Roulez jeunesse!

Si vous aimez ce que nous faisons à Cipher Bliss, vous pouvez nous soutenir de plusieurs façons: en faisant un micro don sur liberapay , ou en cryptomonnaies.

Le plus simple nous pour nous faire connaître étant de partager cet article.

Suivez moi sur Mastodon
@tykayn@mastodon.cipherbliss.com.

Ce site restera libre comme un gnou dans la nature et sans pubs, parce qu'on vous aime. Que la source soit avec vous!