API + BOT = RTE_color_bot (@RTE_color@piaille.fr)

Parfois, un post en entraîne un autre... Ainsi, tu t'es mis à coder un BOT presque par inadvertance - avec les difficultés qu'on connaît - et tu le partages parce qu'il n'y a pas de raison que l'auteur soit le seul à pleurer... pis t'as un copain qui te lit et qui prend le truc au sérieux... en tout cas suffisamment pour te proposer d'en faire un autre !

Non, c'est vrai ?!    T'AS TROUVÉ ÇA BIEN ?!

Donc, me v'la reparti pour un tour...

Objectif de la demande: récupérer les données de l'API RTE tempo ( https://data.rte-france.com/catalog/-/api/consumption/Tempo-Like-Supply-Contract/v1.1 ) pour dire la couleur du jour et celle du lendemain et les poster sur un bot mastodon (mais pouvoir appeler le script comme une API aussi)

Je suis donc parti pour tester ladite API: pour la faire courte, ça m'a permis - après les galères d'usage - de comprendre comment tout ça fonctionnait (en particulier la demande d'un token, l'appel d'une api en php etc)

J'en suis arrivé à un script qui produit un texte donnant la couleur du jour et celle du lendemain.

«Oui, mais ce serait cool...»

Le texte c'est bien, mais ce serait mieux si on pouvait récup les données en HTML et intégrer ça avec une Iframe, comme un code d'intégration.

Pis éventuellement en RSS aussi...

Bon, tant que j'y étais, j'ai aussi fait un mode json, au cas où on voudrait ça dans un frontend à soi...

Du coup, mon API s'appelle de plusieurs façons différentes:

  • URL seule ➜ retour en texte RAW (prêt à poster)
  • URL?html ➜ retourne le code HTML
  • URL?json ➜ renvoie les données en JSON
  • URL?rss ➜ le flux RSS de l'API
  • (cadeau bonux) URL?embed_code ➜ retourne le code pour mettre ça sur son site avec une iframe.

Pour faire bonne mesure

Le script produit un fichier pour chaque type de retour et ne le régénère qu'une fois par jour afin d'éviter de se faire «hammerer» comme dit @parigotmanchot

Jusque là, tout va à peu près dans un monde couci, couça

À ce stade, le script fonctionne même si le code est un peu sale et pas bien rangé... il fait ce qu'on lui demande. A part que parfois, il ne donne pas la couleur du lendemain... mais pas en local... juste en distant. Je n'ai pas encore vraiment cherché pourquoi, mais je pense que c'est dû au moment où l'on appelle l'API de RTE.

Pourquoi s'en tenir là ?

Tant que j'y étais, j'ai regardé l'API ECOWATT ( https://data.rte-france.com/catalog/-/api/consumption/Ecowatt/v4.0 ) qui donne une couleur et un message décrivant le niveau de stress du réseau.

Du coup, le script appelle les deux API et retourne les données cumulées des deux.

ce qui donne ça

Capture du 2022-12-11 10-47-34.png

Capture du 2022-12-11 10-49-23.png

J'en veux j'en veux...

Si ça vous intéresse, le zip est là : RTETempo.zip et il est distribué sous stricte licence faites-en ce que vous voulez. 😅

Les constantes au début permettent de configurer un peu:

  • TOKEN_BASE64 : pour mettre votre propre jeton si vous voulez vous inscrire sur RTE (qui accepte les emails jetables type yopmail, je dis ça je dis rien 😬)
  • TEMPO_BEFORE_TODAY, TEMPO_BEFORE_TOMORROW, ECOWATT_BEFORE_TODAY, ECOWATT_BEFORE_TOMORROW : pour définir le texte renvoyé avant la couleur.
  • HTML_STYLE : pour changer le style du HTML généré
  • TEMPO_HTML_TEMPLATE, ECOWATT_HTML_TEMPLATE : pour changer le code HTML à utiliser en cas de retour HTML
  • ECOWATT, TEMPO : deux booléens permettant de débrayer l'un ou l'autre des appels (si vous ne voulez que ECOWATT ou que TEMPO)

Et le BOT ?!

Ben j'ai fait un autre BOT pour poster les couleurs du réseau une fois par jour... https://piaille.fr/@RTE_color ( @RTE_color@piaille.fr )

Capture du 2022-12-11 11-01-14.png

Optipic: une «api» pour optimiser les images

Le cadeau du jour: un script qui permet d'automatiser l'optimisation d'une image pour le ouaibe sans passer par une appli quelconque.

Le problème

Tout le monde est d'accord pour affirmer qu'il est indispensable de minimiser le poids des pages web et que dans cette optique, le premier geste - après avoir viré les bibliothèques inutiles bien entendu - reste l'optimisation des images.

J'avais vu passer un article fort bien écrit sur ce sujet mais hélas, j'ai omis de le bookmarker et paf: le voilà perdu dans les méandres de mon historique sur un des ordinateurs que j'utilise.

Tout le monde est d'accord sur le principe mais souvent, c'est comme l'écriture de la doc ou les tests unitaires: on a la flemme de s'y coller...

J'ai parfaitement conscience  de la déferlante de commentaires  que cette comparaison risque  de me valoir !

Ze solution

L'idéal serait bien sûr que l'optimisation soit transparente et automatique... genre: tu te contentes de passer à la balise img l'URL de l'API avec celle de l'image et POF, tu as l'image en version optimisée.

Comment ça   «t'es pas cap' ?»

Optipic est donc un script auquel on passe l'URL d'une image, le format souhaité, le niveau de qualité et -éventuellement - la largeur maximum pour obtenir en retour l'image transformée.

Les paramètres sont les suivants:

  • i ➜ l'url de l'image
  • maxwidth ➜ la largeur maximum de l'image (opt.)
  • format ➜ le format de sortie de l'image : jpg,gif,png,webp,avif (PHP 8 minimum pour l'avif)
  • quality ➜ la qualité (niveau de compression) de 0 à 100

Le script renvoie directement l'image transformée avec le header adéquat et du coup, c'est transparent pour HTML/CSS.

Notez que l'image optimisée est sauvée dans le dossier rendered/ afin d'éviter une charge inutile: si une image a déjà été optimisée, le script la sert directement au lieu de la refaire à chaque fois.

But there's more !

Même si ce script est déjà à ce stade absolument fabuleux (si, si !), je me suis dit que les paramètres risquaient de se répéter et qu'il pouvait s'avérer fastidieux de retaper le tout à chaque fois. Par conséquent, j'ai ajouté la possibilité de créer des scripts d'optimisation - un peu comme dans scriptopic.

Ainsi, si vous placez un fichier PHP contenant les paramètres dans le dossier scripts/ , vous pouvez l'appeler via le paramètre $_GET script:

Exemple: je cree scripts/webp.php et je mets dedans:


// webp  50%
$params=[
    'format'        =>'webp',
    'quality'       =>50,
    'maxwidth'      =>null
];

Puis je l'appelle en faisant : api.url/?script=webp&i=http:/image.url/pic.jpg

Pour le moment, il y a quatre scripts: jpg80,jpg70,avif,webp... à vous de créer les vôtres en fonction de vos besoins...

Et ça marche ?

Ben j'ai fait un test dans ce blog pour voir avec mon image de titre LOL:

version originale

qui pèse 113 ko en jpg

Puis avec son optimisation via le script webp ci-dessus:

version optimisée

qui ne pèse plus que... 18 ko en webp 50%

Et ça juste en rajoutant https://api.warriordudimanche.net/optipic/?script=webp&i= dans le chemin de l'image.

la classe

En cas d'erreur ?

Si Optipic ne parvient pas à créer l'image, il crée une image d'erreur à la place, histoire de voir le souci quand même...

la classe

Ce comportement peut être débrayé avec la constante ERROR_PIC ligne 29.

Test, téléchargement pis tout ça

Comme pour toutes les api de ma page, le script est téléchargeable via le ?download : https://api.warriordudimanche.net/optipic/?download et testable au même endroit: https://api.warriordudimanche.net/optipic/?i=...

Nota bene

  1. Pensez bien à mettre le paramètre d'URL (i) en dernier car sinon, php inclura les paramètres dans l'URL passée
  2. Même avec un script vous pouvez toujours changer un paramètre. Exemple: ?script=webp&quality=30&i=xxx permet de changer la qualité précisée dans le script (50).
  3. Par défaut, le format de sortie est le jpeg mais c'est configurable dans la constante DEFAULT_FORMAT ligne 28

Au passage, ce script utilise une classe que j'avais codée pour scriptopic: pictools. Grâce à elle, le travail d'optimisation tient en


    $picture=new pictool($params);
    $picture->load($url);
    if (!empty($params['maxwidth'])){
        $picture->resize($params['maxwidth']);
    }
    $picture->save($generated_picture_path);
    $picture->display();

Cadeau !

Merci qui ?!
Qui a dit   jacky et michel ?!

YoutubeRSS

Hier, je me suis aperçu que le bookmarklet que j'avais fait pour trouver le flux RSS d'une chaîne youtube ne fonctionnait pas toujours 🤬: en effet, si l'URL de la chaîne n'est pas du type www.youtube.com/channel/xxxCHANNEL_IDxxx ça ne fonctionne pas... Or, les chaînes peuvent être aussi sous une forme dans laquelle le channel_id n'apparaît pas.

zut flûte et cacaboudin

Du coup, je m'y mets

Au lieu de laisser youtube me chier dans les bottes, je me suis dit que, si le channel_id n'est pas dans l'URL, il doit être planqué quelque part dans le html de la page.

En fouillant un peu, twingo bongo jannielongo bingo 🥳 J'ai trouvé ça en parsant avec (presque) la même regex que pour l'URL.

con.jpeg

J'ai donc codé vite fait une «api» qui renvoie l'URL du flux RSS d'une chaîne Youtube dont on fournit l'adresse.

On peut l'utiliser avec le frontend minimaliste prévu, en faisant une requête GET ou via le bookmarklet qui va bien.

Le tout est bien entendu utilisable, autohébergeable et modifiable, comme d'habitude

Allez !

MAJ Metabook - search ebooks on multiple websites [EDIT]

J'ai mis à jour les regex de metabook pour supprimer fourtoutici (trop de déboires et une recherche désormais en POST) et pour y ajouter la nouvelle adresse de zlibrary

Finalement, j'ai remis fourtoutici qui semble avoir remis la recherche via GET: j'ai ajouté le lien direct vers la page de download.

http://slurp.warriordudimanche.net/?p=ebook

Release Upscayl v1.5.5 · upscayl/upscayl · GitHub

Jusque là, j'utilisais un service en ligne pour upscaler proprement des images: waifu2x

J'en avais parlé à deux reprises: lors d'un test puis pour le comparer à d'autres services identiques.

J'ai toujours été très satisfait de waifu qui produit un rendu très propre et élimine vraiment bien les saletés du jpeg.

Comme Seb a repartagé Uspscayl, je me suis dit que je pouvais tester et comparer avec mon favori.

J'ai donc repris les images utilisées dans les tests précédents et je les ai passées dans Upscayl... Verdict.

TLDR; Upscayl winner

Globalement, cette appli s'en sort encore mieux que waifux2: meilleure suppression des artefacts, meilleur lissage, meilleur rendu de certains détails.

Test 1 : la fleur

Le rendu est meilleur, plus détaillé et les à-plats semblent plus lisses.


originale 200x200 - 26ko


waifu 800x800


Upscayl 800x800 - 431ko

Test 2 : la fête

Rendu équivalent mais deux fois plus grand.


originale 709x510 - 145ko


waifu x2

Capture du 2022-10-03 17-05-36.jpg
Upscayl 2800x2000 - 6.9 Mo
(redimensionnée pour le poids ici, voir image réelle)

Test 3 : le chat

Bien meilleur rendu, moins de pixels parasites et de bruit, meilleure netteté, aspect Fluffy mieux rendu.


originale 374x346


waifu x2

1611657689-eavybreathing upscayl 4x realesrgan-x4plus.jpg
Upscayl 1496x1384 - 1,1Mo

Test 4 : la photo

Image bien plus fine et lissée mais au prix d'une perte de détails: l'image peut paraître «trop» lisse; de plus, l'IA semble parfois «surinterpréter» certaines parties de l'image, comme ce mouvement entre les sourcils qui n'est pas dans l'image d'origine ou les cheveux en haut à gauche dont on voit que l'IA a comblé avec ce qu'elle «sait» des cheveux...


originale 236x300 - 26.6ko


waifu 472x600 - 389ko

1611657999-face upscayl 4x realesrgan-x4plus.jpg
Upscayl 944x1200 - 825,4 ko - 1,1Mo

Conclusion:

Upscayl fait mieux que waifu dans tous les domaines: la qualité est meilleure, le rendu plus net, les artefacts absents... en plus Upscayl multiplie par 4 (voire 8 !) d'un coup là où waifu se contente d'un x2 au mieux. Par contre, certaines parties des images peuvent donner lieu à une interprétation un peu artificielle. Mais ne jetons pas le bébé avec l'eau du bain: Upscayl s'en sort vraiment très bien !

Via https://sebsauvage.net/links/

Liste d'alternatives libres aux interfaces des GAFAM

Un fil que l'on doit à LutinDiscret sur les interfaces alternatives pour les services divers du ouaibe. J'en fais un résumé ici que je compléterai au fur et à mesure.

TWITTER

alternative: nitter

on remplace le nom de domaine twitter par celui du service. twitter.com/Snowden ➜ nitter.42l.fr/Snowden

YOUTUBE

1- Piped

une interface minimaliste et propre

2- Invidio.us

Sans doute le plus célèbre

3- Cloudtube

très ressemblant

4- BeatBump

Pour écouter de la musique

TIKTOK

proxitok

REDDIT

teddit

un frontend ultra léger et minimaliste

libredd

Interface très propre et sobre

IMGUR

Rimgo

INSTAGRAM

Bibliogram

MEDIUM

Scribe

EXTENSIONS

Privacy redirect (abandonné ?)

Redirige les requêtes des GAFAM vers leurs alternatives de façon transparente.

https://addons.mozilla.org/fr/firefox/addon/privacy-redirect/

LibRedirect

autre version de PrivacyRedireect

https://addons.mozilla.org/fr/firefox/addon/libredirect

B64: outil + API

En passant, je vous mets le lien vers un petit outil pour convertie en et de Base64.

Bon, yen a plein, hein, en particulier celui de Timo ... J'en ai quand même refait un from scratch pour pouvoir l'utiliser comme une appli online (le front end ci-dessous) ou bien comme une «API» utilisable via un bookmarklet par exemple: ainsi, en sélectionnant du texte puis en lançant le bookmarklet qui va bien, on peut encoder/décoder en un clic...

Capture du 2022-03-10 13-50-08.png

Comme d'habitude, si ça intéresse quelqu'un, on sait jamais... https://api.warriordudimanche.net/b64/ et pour télécharger

Install – Nextcloud

Bon, j'ai enfin pris le temps de regarder sérieusement nextcloud à la faveur de l'arrêt de la version proposée en demo dans l'académie de Rouen et que mon épouse utilisait beaucoup.

Mazette !

J'en étais resté à mes tentatives d'install qui foiraient sur mon O2switch: une fois à l'époque où il apparaissait dans les applis softaculous du Cpanel, puis une autre quand il avait disparu de là.

Pas un bon  souvenir

J'avais galéré pour à peu près tout, en bon poissard.

Et là...

j'étais obligé de m'y coller vu que j'avais fanfaronné en disant à mon épouse que son «renata» c'était «juste du nextcloud» et que j'allais te me lui résoudre, moi, le problème...

Après quelques déboires avec une install que je passe parce qu'elle serait fastidieuse et hors de propos, je me suis aperçu que mon hébergeur, o2switch, propose toujours ce service, mais à part: il est accessible en un clic depuis l'espace client (et pas le Cpanel): je sens bien l'équipe qui en avait marre de dépanner des bidouilleurs qui avaient planté leur nextcloud en faisant joujou avec depuis le cpanel.

LOL

Bref, une fois le service demandé par le biais du lien qui va bien idoine à mon propos, je reçois un mail de confirmation une grosse paire de minutes plus tard. Dans le mail, mes identifiants et le lien vers mon nextcloud...

Ça marche et c'est   configuré automatiquement  avec les dépendances  la base de données tout !
Mais l'URL est à chier, pitin !  à quoi ça sert d'avoir un nom  de domaine si c'est pour se  retrouver avec une URL à la  mords-moi le zboub impossible  à mémoriser...pfff !
Ferme ta yueule, ça fonctionne   sans que j'y passe trois plombes.    On va faire une URL de redirection  pis c'est marre.

Les applis

Autre avantage de Nextcloud, ya des applis pour tous les systèmes, je récupère donc celle pour linux et celle d'Android.

Si l'adresse de téléchargement pour linux ne fonctionne pas, en voici une autre: https://download.nextcloud.com/desktop/daily/Linux/

On lance, on se connecte, on clique sur autoriser pis ça fonctionne. Une fois qu'on a spécifié un dossier local avec lequel synchroniser le claoude, ça fait le job direct.

J'ai procédé de même sur Android en passant par F-droid, rien à dire à part que c'est über simple. Vraiment.

tropcalme.jpg

Nextcloud: l'UI

Rien à redire, même si on a parfois des problèmes pour retrouver où sont les choses, c'est propre. par contre, la pitin de popup pour «nextcloub hub», ça fait biiiieeeennnn chier de la revoir à tous les chargements de page. donc, pour la virer, direction l'icône de votre profil->applications puis désactiver «first run wizard»

Super intuitif, les gars...  Si,si, vraiment...

Conclusion

Ben, ça fait le job, ça synchronise impec, on peut partager des dossiers temporairement, en écriture ou en lecture seule, ajouter des applis et des users, ya des applis desktop et mobiles...

C'est tellement bien que je ne vois vraiment pas pourquoi je continuerais à bosser sur BoZoN !

Franchement, je suis en train de faire à peu près la même chose de mon côté. Sérieux, ça vaut pas tellement le coup de bosser autant pour faire sans doute moins bien (en particulier du point de vue de la sécurité).

Allez, hop: Bozon aux archives...

Un éditeur hexadécimal en ligne: hex-works

J'aime bien ce genre de trucs: t'as un besoin inhabituel et subit d'un logiciel et t'as pas envie d'installer un truc ? Il existe peut-être un truc en ligne qui fera le job !

La preuve ? Je voulais éditer des fichiers de sauvegarde pour MicroMachines v4 afin que tous mes gamins aient toutes les voitures et circuits dispo... avec hex-works, ça m'a pris une grosse minute...

Broncomic : Un coup d'oeil sur mon appli dédiée à la fabrication des BD de ce site - Warrior du Dimanche - dukeart

@Duke : Effeectivement, c'est le souci de base, le risque de retrouver mon Bronco à toutes les sauces

Toutefois, si Broncomic intéresse vraiment, je réfléchirai à l'adapter pour un usage plus général:

  • en créant des graphismes plus génériques
  • en prévoyant la possibilité d'importer ses propres graphismes simplement
  • en travaillant peut-être aussi la maquette pour qu'elle soit plus mobile friendly (gros taf )
  • en isolant le code spécifique de l'appli car pour le moment, elle fait partie d'un ensemble basé sur mon framework perso
  • en refactorisant le code pour permettre à des gens sains d'esprit de le reprendre sans se retrouver en PLS avec un pompier qui leur demande combien il a de doigts...

Mais bon, ça, c'est si ça intéresse des gens

YouMème

«Vous avez un mème un peu pourri MAIS vous n'avez pas utilisé une page de 10Mb pour à peu près le même fun. »

EXACTEMENT ! Pas besoin d'appli à installer, de libs à la mords-moi le zboub, de paramètres obscurs...

Tu veux un meme simple, vite-fait-sur-le-gaz, depuis n'importe quel support et sans te prendre la tête ?

kiss.jpg

(comme avec https://api.warriordudimanche.net/mematic/ )

Comment saboter une visio conférence ? – Korben

Un moyen de mettre le bran dans les visoconférences zoom en ajoutant des sons et des effets sur l'entrée son.

Ainsi vous pourrez rajouter de l’écho, des bruits de mauvaise connexion, un bébé qui pleure, le bruit d’un homme qui pleure, du vent, des aboiements de chiens, des bruits de travaux ou encore un bon vieux bruit de pipi qui n’en finit pas. Le tout avec plus ou moins d’intensité.

RIGOUREUSEMENT INDISPENSABLE !

Par contre, Korben, sans déconner, c'est plus un site que t'as c'est un abri bus de JCDecaux...

Fil RSS des articles