Aller au contenu principal
Bienvenue sur Forum Puppy Linux - Toutou Linux - Astuces - Aides !
Lorsque vous n'êtes pas connectés vous pouvez visiter la totalité du forum mais avec certaines restrictions : cf le règlement pour les visiteurs non connectés. Vous êtes chaleureusement conviés à vous inscrire afin de bénéficier de toutes les fonctionnalités du forum et de participer aux échanges.
Messages récents
3
Scripts / Comment obtenir des prévisions météorologiques grâce à Météo-France ?
Dernier message par Polo l’asticot -
Comme dit arpinux : « Pour connaître la météo du jour, ouvrez votre fenêtre ! »
Moi je dis, si on n'est pas sûr, on peut utiliser son ordinateur…

Le problème
Pour connaître le temps à venir, l'auteur a d'abord essayé de télécharger la page de Météo-France correspondant à son village pour ensuite en extraire les renseignements qui lui semblaient utiles. Malheureusement, ces données se téléchargent une fois sur deux et, certains jours, le site ne veut rien savoir : pas de météo pour l'auteur aujourd'hui. C'est ballot ! (En plus, il ne semble pas légal de s'approprier des données du site sans autorisation.)

Il a ensuite lu la documentation correspondant aux API proposées par le service public. Mais il n'a pas compris grand-chose. Il veut juste une prévision de base, pas l'évolution à la demi-heure d'une quarantaine de facteurs. Pas envie, non plus, d'apprendre à programmer.

Il est tombé ensuite par hasard sur le site https://open-meteo.com/ en pas français comme dirait quelqu'un. Ce site utilise les services météo d'une quinzaine de pays pour fournir gratuitement des renseignements « unifiés ». Oh, miracle, il y a Météo-France dans le panel. Et il suffit de cocher quelques cases pour avoir un résultat. Un service pour les nuls, c'est ce qu'il nous faut.

Avertissement
Pour la suite, on a besoin d'une connexion Internet, des utilitaires curl et jq et d'un minimum de curiosité.

Mise en pratique
On a d'abord besoin de sa localisation (latitude, longitude).
Sur https://www.coordonnees-gps.fr/, on cherche son adresse, par exemple « Place de la Mairie, 81190 Mirandol-Bourgnounac ».
Pourquoi cette adresse ? Parce que ce nom sonne super bien avec l'accent du Sud-ouest.
Donc Mirandol-Bourgnounac, c'est 44.1432866 pour la latitude et 2.1686849 pour la longitude. (C'est en français avec un séparateur anglais pour les décimales).
Petite remarque : le modèle de Météo-France le plus élaboré a une résolution de 1,5 km. Si on n'habite pas en plaine, il est important de ne pas utiliser une ville située à 10 km de son lieu d'habitation, mais de fournir une localisation précise.

On va ensuite sur le site en choisissant le modèle Météo-France soit : https://open-meteo.com/en/docs/meteofrance-api
Après quelques secondes de réflexion, Open-meteo crée une page par défaut avec l'évolution de la température prévue par le modèle AROME sur quatre jours avec un pas d'une heure. On change la latitude et la longitude pour celles de son lieu d'habitation. Pour Time Zone, on choisit Automatically detect.
On décoche la température qui se trouve dans les prévisions horaires.
On descend plus bas sur Current Weather (Météo du jour) et on coche ce qu'on désire obtenir. Par exemple on coche Temperature (température), Wind Speed (vitesse du vent), Wind Guts (rafales), Rain (pluie). (Ceux qui ont du mal avec l'anglais peuvent s'aider du site https://www.deepl.com/fr/translator qui est très performant.)
Plus bas sur la page du site à API Response on peut copier la requête dans le champ API URL soit pour cet exemple :
https://api.open-meteo.com/v1/forecast?latitude=44.1432866&longitude=2.1686849&models=meteofrance_seamless¤t=temperature_2m,wind_speed_10m,wind_gusts_10m,rain&timezone=auto&forecast_days=4
Le service est gratuit, mais on doit se limiter à moins de 10 000 requêtes par jour. Sachant que les paramètres sont actualisés toutes les heures, cela fait vingt-quatre données différentes dans la journée. Avec quatre paramètres, on reste en dessous de cent. Il y a de la marge.

On se lance ?
Dans un terminal, on tape :
curl -s --retry 5 --retry-max-time 30 --url  "https://api.open-meteo.com/v1/forecast?latitude=44.1432866&longitude=2.1686849&models=meteofrance_seamless¤t=temperature_2m,wind_speed_10m,wind_gusts_10m,rain&timezone=auto&forecast_days=4"

On récupère presque immédiatement :
{"latitude":44.14,"longitude":2.17,"generationtime_ms":0.10287761688232422,"utc_offset_seconds":7200,"timezone":"Europe/Paris","timezone_abbreviation":"GMT+2","elevation":402.0,"current_units":{"time":"iso8601","interval":"seconds","temperature_2m":"°C","wind_speed_10m":"km/h","wind_gusts_10m":"km/h","rain":"mm"},"current":{"time":"2026-06-10T09:30","interval":900,"temperature_2m":14.8,"wind_speed_10m":13.5,"wind_gusts_10m":26.6,"rain":0.00}}

Magie de l'informatique : qui se serait douté que Mirandol-Bourgnounac était situé pile-poil à 402 mètres au-dessus du niveau de la mer ?
Plus sérieusement, on voit qu'on est bien à l'heure de Paris, en France (GMT+2 en été) et qu'on utilise des unités françaises (sauf le séparateur décimal qui n'est toujours pas une virgule, coquins d'anglophones).
L'affichage reste un peu brouillon.
Et si on veut afficher seulement la température ?
curl -s --retry 5 --retry-max-time 30 --url  "https://api.open-meteo.com/v1/forecast?latitude=44.1432866&longitude=2.1686849&models=meteofrance_seamless¤t=temperature_2m,wind_speed_10m,wind_gusts_10m,rain&timezone=auto&forecast_days=4" | jq -r '.current.temperature_2m'
On obtient :
14.8

Pas trop mal, mais on peut remplacer le point par une virgule (j'y tiens) ?
curl -s --retry 5 --retry-max-time 30 --url  "https://api.open-meteo.com/v1/forecast?latitude=44.1432866&longitude=2.1686849&models=meteofrance_seamless¤t=temperature_2m,wind_speed_10m,wind_gusts_10m,rain&timezone=auto&forecast_days=4" | jq -r '.current.temperature_2m' | sed 's/./,/g'
On obtient enfin :
14,8 (Pas très chaud pour un mois de juin à 9h 30.)

Une petite synthèse
On va faire un petit script Bash pour afficher nos données proprement.
#!/usr/bin/env bash
#
# Affichage de la météo de Mirandol-Bourgnounac
# Quand on n'est pas Mirandolais,  on change latitude et longitude
# dans la requête et on adapte éventuellement les données à récupérer.

brut=$( curl -s --retry 5 --retry-max-time 30 --url  "https://api.open-meteo.com/v1/forecast?latitude=44.1432866&longitude=2.1686849&models=meteofrance_seamless¤t=temperature_2m,wind_speed_10m,wind_gusts_10m,rain&timezone=auto&forecast_days=4" )

echo "Météo du jour pour Mirandol-Bourgnounac"
echo
echo "Température        : "$( echo $brut | jq -r '.current.temperature_2m' | sed 's/./,/g' )"°C"
echo "Vitesse du vent    : "$( echo $brut | jq -r '.current.wind_speed_10m' | sed 's/./,/g' )" km/h"
echo "Avec des rafales à : "$( echo $brut | jq -r '.current.wind_gusts_10m' | sed 's/./,/g' )" km/h"
pluie=$( echo $brut | jq -r '.current.rain' | sed 's/./,/g' )
if [ "$pluie" == "0" ]
 then
 pluie="   Pas de pluie"; echo $pluie
 else
 echo "Pluie             : "$pluie" mm"
fi

sleep 15

On peut placer le script meteo_france.sh dans un répertoire ~/bin et le rendre exécutable.
Avec rxvt, on peut ouvrir une simple fenêtre par :
rxvt -geometry 40x8 -bl +sb -e /root/bin/meteo_france.sh

Si on a roxterm, je propose :
roxterm --geometry=40x8 --hide-menubar -z 2 -T "Météo du jour" -e /root/bin/meteo_france.sh
(Si quelqu'un sait cacher la barre de défilement du terminal, cela serait plus joli…)

On peut mettre cela dans les raccourcis clavier de JWM pour lancer la prévision au clavier (Super+m) :
<Key mask="4" key="m">exec: rxvt -geometry 40x8 -bl +sb -e /root/bin/meteo_france.sh</Key>

C'est le petit programme que j'utilise quand mon village (ou mon ordinateur) est bloqué par le site de Météo-France. On peut ajouter assez facilement de nombreux paramètres, le plus long étant de les interpréter ensuite.

En espérant vous avoir donné envie d'aller plus loin, je vous laisse jouer avec vos claviers. Moi par ma fenêtre, pas un nuage : ça va encore taper sévère aujourd'hui !
4
Sécurité / Re : SuperGenPass de Polo l'asticot
Dernier message par Polo l’asticot -
Ola Rantanplan et l'univers,

J'ai cherché désespérément à différencier chiffres, minuscules et majuscules dans le mot de passe généré. Les comparaisons directes en Bash ne fonctionnaient pas même quand elles étaient préconisées par certains sites (créations par IA ???, IA de m…). J'ai bien perdu mon temps là-dessus.
Je me suis souvenu du bon temps où je faisais de la programmation en Basic. (Il ne rigole pas le jeunot, s'il ne veut pas se prendre un coup de canne sur la tête !) Il y avait une fonction de conversion en code ASCII qui donnait de bons résultats. Je suis parti sur cette piste. Le programme est beaucoup plus lourd et codé à l'arrache mais cela fonctionne.
#!/usr/bin/env bash

#Code dérivé de celui de Mihail Milushev (lanzz : https://github.com/lanzz/bash-supergenpass/blob/master/supergenpass.sh) sous licence MIT

################################################################################
default_password_length="16"
### 16 par défault. Peut être remplacé au cas par cas en ajoutant la longueur
### personnalisée comme deuxième argument après le domaine lors du lancement du script.

default_hashing_algorithm="md5"
### "md5" par défaut. Une valeur alternative serait « sha512 » qui peut être donnée
### au cas par cas comme troisième argument.
################################################################################

domain=$(echo $1 | tr A-Z a-z)
length=${2:-$default_password_length}
hashing_algorithm=${3:-$default_hashing_algorithm}
mpd=""
chiffre=0
maj=0
min=0
cumul=0

master_password="&'èàarupä‘üö"

hash=$master_password:$domain

i=0
while true
do
 hash=$(echo -n "$hash" | openssl "$hashing_algorithm" -binary | base64 | tr -d '\n' | tr +/= 98A)
 i=$(($i + 1))
 if [ $i -lt 10 ]
 then
 continue
 fi
 valid=$(echo "${hash:0:$length}" | grep -E '^[[:lower:]]' | grep -E '.[[:upper:]]' | grep -E '.[[:digit:]]')
 if [ "$valid" != "" ]
 then
 break
 fi
done

mdp=${hash:0:$length}
echo $mdp

i=0
while true
do
car=${mdp:$i:1} ; ascii=$(printf "%d" "'$car'")

if [ $ascii -lt 58 ] ; then
 chiffre=$(($chiffre + 1))
 if [ $chiffre -gt 3 ] ; then
 car=$(echo $car | tr '[:digit:]' '&(_)+#]{|[')
 mdp=${mdp:0:$i}$car${mdp:"(($i + 1))"}
 cumul=$(($cumul + 1)) ; chiffre=0
 fi
elif [ $ascii -lt 91 ] ; then
 maj=$(($maj + 1))
 if [ $maj -gt 2 ] ; then
 car=$(echo $car | tr '[:upper:]' '&(_)+#{[|]}>?/<!:^&![+<)#]')
 mdp=${mdp:0:$i}$car${mdp:"(($i + 1))"}
 cumul=$(($cumul + 1)) ; maj=0
 fi
else
 min=$(($min + 1))
 if [ $min -gt 1 ] ; then
 car=$(echo $car | tr '[:lower:]' '&(_)+#{[|]}?>/<!:^&![+<)#]')
 mdp=${mdp:0:$i}$car${mdp:"(($i + 1))"}
 cumul=$(($cumul + 1)) ; min=0
 fi
fi

if [ $cumul -gt 2 ] ; then break ; fi

i=$(($i + 1))

done

if [ -n "$WAYLAND_DISPLAY" ] && command -v wl-copy >/dev/null; then
 echo -n $mdp | wl-copy
 echo "Mot de passe copié dans le presse-papiers Wayland"
elif [ -n "$DISPLAY" ] && command -v xclip >/dev/null; then
 echo $mdp | xclip -r -selection "clipboard"
 echo $mdp
 echo "Le mot de passe est copié dans le presse-papiers de X"
else
 echo $mdp
fi
C'est toujours en développement. Le mot de passe général est toujours en dur dans le script et cela affiche le mot de passe généré sans caractères spéciaux puis en dessous, avec.

Petite explication :
Le script compte les chiffres et remplace le quatrième par un caractère spécial.
Pour les majuscules, c'est la troisième qui est remplacée.
Avec les minuscules, c'est toutes les deux occurrences que le remplacement a lieu.
Pourquoi ? Parce que pourquoi pas.
Quand il y a eu trois remplacements, on s'arrête et on donne le résultat.

L'avantage, c'est que les caractères spéciaux apparaissent n'importe où, sans régularité. (J'ai réduit l'ensemble des caractères à ceux de code inférieur à 128, les autres provoquant un affichage incorrect avec des points d'interrogation.)

 Si tu peux tester et faire un retour, quand tu as du temps.

¡Que la fuerza acompañe a España y a los españoles!




5
Internet / Re : Marque-page scripté LeRobert (bookmarklet)
Dernier message par Polo l’asticot -
Bonjour le monde !

La remarque de augras m'a fait prendre conscience de la présence d'une page supplémentaire dans le script. À ma décharge, il doit tenir sur une seule ligne, les caractères spéciaux étant convertis en codes hexadécimaux. Pour une personne qui n'a pas l'habitude, c'est aussi facile à déchiffrer que de l'araméen.
J'ai donc transformé cette page, en aide pour mal voyant. (J'ai les yeux qui pleurent au bout de quelques heures.)

Nouvelle version du script entièrement en français donc, avec paternité en évidence et Google ayant disparu des radars.

Bonne journée

PS : Ceux qui ne voient pas la page d'aide, pas de stress : c'est simplement qu'ils n'en ont pas besoin.
6
Internet / Re : Marque-page scripté LeRobert (bookmarklet)
Dernier message par augras -
Parfait : ça marche :) .
C'est une excellente  fonctionnalité.
En fait je n'avais pas compris la «subtilité» de sélectionner un mot puis ensuite de cliquer sur le marque-pages… je cliquais sur le marque-page et attendais une page pour saisir un mot.
Et c'est parfaitement logique de sélectionner un mot avant.
MERCI,
7
Internet / Re : Marque-page scripté LeRobert (bookmarklet)
Dernier message par Polo l’asticot -
@augras‍

C'est bien le contenu du script que tu dois mettre, pas le lien. Tu enregistres le marque-page.
Puis tu sélectionnes un mot à la souris (mis simplement en surbrillance) dans ton navigateur. Tu cliques sur ton marque-page.

Cela doit ouvrir une nouvelle page sur LeRobert avec des synonymes de ta sélection. Tu fermes la fenêtre. Tu fais une autre surbrillance. Tu cliques sur ton marque-page…

Il faut que le navigateur accepte le JavaScript. Chez moi, avec Firefox, il n'y a pas de problèmes.

Dis-moi si tu y arrives.
8
Les Toutous / Re : Triton-10 - Infos - Suivi - Corrections...
Dernier message par augras -
Bonjour,
j'ai donc installé desktop-file-utils et le message correspondant a disparu : mais pourquoi il est demandé chez moi et pas chez les autres, mystère.
Toujours est-il que malgré le fait que les permissions d'exécution soient toutes cochées mini-diary refuse toujours de s'exécuter avec le message
APPIMAGE env is not defined, current application is not an AppImage.
Il y a toujours le message fontconfig mais celui-là n'est pas bloquant.
Je n'ai pas modifié l'installation de base de Triton, juste installé les App+.
9
Internet / Re : Marque-page scripté LeRobert (bookmarklet)
Dernier message par augras -
Bonjour @Polo l’asticot‍ ,
Merci pour ce script, mais je n’ai pas compris la façon de l’utiliser, désolé.
Dans le champ url si je colle le script de cette façon file:///C:/Users/philippe/Downloads/lerobertsynonymes.js et bien ça m’affiche le contenu du script.
Si je mets dans le champ url le contenu du script j’obtiens le résultat d’une recherche sur ce contenu.
Quelque chose m’échappe.
Philippe
10
Internet / Marque-page scripté LeRobert (bookmarklet)
Dernier message par Polo l’asticot -
Pour palier à mes insuffisances à utiliser un vocabulaire riche, j'essaie de mettre en place des béquilles informatiques. Utiliser le bon mot est souvent difficile, c'est pour cela que j'utilise un marque-page scripté qui m'ouvre LeRobert en ligne.

Pourquoi LeRobert ?
Parce que c'est une édition française, gratuite, avec un vocabulaire simple.
Parce qu'on peut basculer sur la définition du mot pour s'aider dans la rédaction.
Parce que l'autre édition française que j'utilisais beaucoup comme étudiant est maintenant détenue par un milliardaire dont l'idéologie est capable de déformer même des définitions de dictionnaire. Je ne lui fais pas confiance.

J'ai donc utilisé un script JavaScript créé par Peter Coles pour Google et j'ai juste changé le site pour la recherche. Cela fonctionne. (Je ne comprends pas du tout le programme.)

Comment l'utiliser ?
On crée un nouveau marque-page dans son navigateur.
Pour le titre, j'ai mis Synonymes LeRobert. Dans le champ URL, on colle le script téléchargé. On enregistre.

Il suffit ensuite de sélectionner un mot et de cliquer sur ce marque-page.

Par exemple avec « utiliser », j'obtiens dans la nouvelle fenêtre qui s'ouvre :
  • employer, s'aider de, avoir recours à, manier, recourir à, se servir de, user de
  • exploiter, faire appel à, jouer de, jouer la carte de, mettre à profit, mettre en jeu, profiter de, tirer parti de, tirer profit de
  • faire feu, flèche de tout bois

J'espère que vous allez utiliser ce nouvel outil sans modération et, si vous n'avez rien à faire, je vous propose d'essayer d'enlever au moins six « utiliser » dans ce texte. Vous verrez, c'est tellement plus agréable à lire ensuite.

PS : Je ne suis pas rémunéré par LeRobert (mais je le regrette) et je veux bien essayer d'adapter le script à un autre dictionnaire européen, autre que celui évoqué, si vous pensez qu'il donne de bien meilleures suggestions.
Simple Audio Video Embedder