Le fichier script Python est généré directement depuis le bloc code du scenario
L’exemple récupère la vitesse du vent actuel sur Météoblue
prérequis :
cet exemple nécéssite l’installation de la librairie BeautifulSoup, en ssh faire : pip3 install bs4
changer le lieu en modifiant :
https://www.meteoblue.com/fr/meteo/semaine/villecresnes_france_2968823
(Ce n’est qu’un exemple n’importe quel script python peut s’inscrire entre <<<'EOD
et EOD;
Le bloc code :
$script = 'monpython.py'; //Nom du fichier python
$chemin = '/var/www/html/python'; // Dossier à utiliser
if (1){ //metre à 1 la 1er fois, une fois que le fichier existe et n'est plus modifier mettre a 0
// Script python
$python = <<<'EOD'
#! /usr/bin/env python3
import requests
from sys import argv
from bs4 import BeautifulSoup
res = requests.get("https://www.meteoblue.com/fr/meteo/semaine/villecresnes_france_2968823")
soupe=BeautifulSoup(res.content, "html.parser")
print(soupe.find_all(class_ ="current_description")[0].span.next.next.next.next.split()[0],end='')
#fin du script python3
EOD;
mkdir($chemin); // creation du dossier
file_put_contents($chemin.'/'.$script, $python); // Ecriture du fichier
}
$reponse = shell_exec('python3 '.$chemin.'/'.$script); // execution du script
$scenario->setLog('Vitesse du vent : '.$reponse.' Kmh'); // recuperation des paramètres de retour du script
// cet exemple nécéssite l'installation de la librairie BeautifulSoup, en ssh faire : pip3 install bs4
Le résultat est juste mis dans le log du scenario
a vous de l’exploiter dans un ou des tag’s selon votre propre script
[2021-03-15 16:52:53][SCENARIO] Start : Scenario lance manuellement.
[2021-03-15 16:52:53][SCENARIO] Exécution du sous-élément de type [action] : code
[2021-03-15 16:52:53][SCENARIO] Exécution d'un bloc code
[2021-03-15 16:52:54][SCENARIO] Vitesse du vent : 28 Kmh
[2021-03-15 16:52:54][SCENARIO] Fin correcte du scénario
Mise en tag pour cet exemple, ajouter a la fin du bloc code
$tags['#reponse#'] = $reponse;
$scenario->setTags($tags);
Amusez-vous bien !