Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 16/12/2011, à 01:04

frafa

Météo en fond d'ecran

Bonjour,
Je viens de coder pour le fun dans mon soft de facturation FACTURAUTO
http://forum.ubuntu-fr.org/viewtopic.php?id=744921
une fonction météo, qui récupère la météo sur www.accuweather.com/ et construit un fichier en html...
Et du coup je me suis dit que ca le ferait bien aussi en script indépendant pour avoir la météo en fond d'ecran.
Alors voilou, je vous livre le script ...

Téléchargement: http://liveusb.info/gtkdialog/meteo/meteo.tar.bz2
exemple du fichier ./meteo.png généré
http://liveusb.info/gtkdialog/meteo/meteo.png

c'est modifiable facilement si vous avez quelques bases en style css...

Pour l'utiliser, soit vous lancez le script manuellement .../meteo.sh
et si vous êtes sous gnome, normalement le fond d'ecran change au lancement du script.


Pour le mettre à jour, genre toutes les X minutes, ajoutez une ligne à votre crontab...
Editez votre crontab avec gedit (remplacez frafa par votre user):

sudo EDITOR=$(which gedit)  crontab  -e -u frafa

Dans cet exemple le script est mis à jour toute les 5 minutes
Chaque entrée de la table (chaque ligne) correspond à une tâche à exécuter et est notée de la façon suivante :
mm hh jj MMM JJJ tâche > log
Ajoutez cette ligne en remplacant frafa par votre user et modifiez aussi le chemin du script et aussi celui du fichier de log

*/5 * * * * /home/frafa/bin/meteo/meteo.sh >/home/frafa/bin/meteo/log 2>&1

Pour vérifier que cron est ok (remplacez frafa par votre user):

crontab -l -u frafa

J'oubliai pour chamger la ville , ben modifiez ces 2 variables dans le script .../meteo.sh

pp_ville="paris"
pp_pays="france"


EDIT: j'oubliai aussi les dépendances, il vous faut instaler xmlstarlet et cutycapt

sudo apt-get install xmlstarlet cutycapt

EDIT2: le code du script (il manque les images, donc téléchargez les sources)

#!/bin/bash
chemin="$(cd "$(dirname "$0")";pwd)/$(basename "$0")";
dossier="$(dirname "$chemin")"
export chemin dossier
cd "${dossier}"

###Editer crontab avec gedit (remplacez frafa par votre user):
#sudo EDITOR=$(which gedit)  crontab  -e -u frafa

###Dans cet exemple le script est mis à jour toute les 5 minutes
###Ajoutez cette ligne en remplacant frafa par votre user et modifiez aussi le chemin du script
###et aussi celui du fichier de log
#Chaque entrée de la table (chaque ligne) correspond à une tâche à exécuter et est notée de la façon suivante :
#mm hh jj MMM JJJ tâche > log
#*/5 * * * * /home/frafa/bin/meteo/meteo.sh >/home/frafa/bin/meteo/log 2>&1

###Pour vérifier que cron est ok (remplacez frafa par votre user):
#crontab -l -u frafa

#■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■RÉGLAGES■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
#xmlstarlet cutycapt ==> sudo apt-get install xmlstarlet cutycapt
pp_ville="paris"
pp_pays="france"

#Determines how the image set by wallpaper_filename is rendered. Possible values are 
#"none", "wallpaper", "centered", "scaled", "stretched", "zoom", "spanned".
picture_options="scaled"

#Couleur de gauche ou du haut quand on dessine des dégradés, ou la couleur unie.
primary_color="#73A3FF"

#Couleur de droite ou du bas quand on dessine des dégradés, non utilisée pour la couleur unie.
secondary_color="#73A3FF"

#Opacité avec laquelle dessiner l'image d'arrière-plan.
picture_opacity="100"

#Méthode de rendu de la couleur d'arrière-plan. Les valeurs possibles sont « horizontal-gradient » 
#(dégradé horizontal), « vertical-gradient » (dégradé vertical) et « solid » (uni).
#horizontal-gradient|vertical-gradient|solid
color_shading_type="solid"

STYLES='<style type="text/css">
body {
    width:1024px;
    font-size: 14px; 
    font-family: Arial, Verdana;
    font-style: normal;
    margin-left: auto;
    margin-right: auto;
    padding:20px 50px 20px 50px; /* haut droite bas gauche */
    color:#00205D;
/*
-webkit-gradient(<type>, <point> [, <radius>]?, <point> [, <radius>]? [, <stop>]*)
*/
    background-image: -webkit-gradient(radial,left center,100,center center,480,from(#FB7629),to(#73A3FF));
    background-repeat: no-repeat;
    background-attachment:fixed;
/*
    background-color:#FB7629;
    background-repeat:no-repeat;
    background-attachment:fixed;
    background-position:20% 80%; 
    background-image:url(./logo.png);
    background-repeat:no-repeat;
*/
}
div.logo {
/*    display:none; */
    position:absolute;
    top:280px;
    left:120px;

}
table.meteo1 {
    float:left;
    padding:3px;
    text-transform:capitalize;
}
table.meteo1 th {
    text-align:left;
}
table.meteo2 {
    float:left;
    padding:3px;
    text-transform:capitalize;
}
table.meteo3 {
    float:left;
    padding:3px;
    text-transform:capitalize;
}
</style>'
#■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■/RÉGLAGES■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

#Partie Pompé pour fonctionnement de gconftool-2 et cron sur http://forums.fedoraforum.org/archive/index.php/t-83656.html
#Partie Pompé pour fonctionnement de gconftool-2 et cron sur http://forums.fedoraforum.org/archive/index.php/t-83656.html
# ================================================== ====
function export_variables
{
user=$( whoami )
pid=$( pgrep -u $user gnome-panel )

for dbusenv in $pid; do
DBUS_SESSION_BUS_ADDRESS=$( grep -z DBUS_SESSION_BUS_ADDRESS /proc/$pid/environ | sed -e 's/DBUS_SESSION_BUS_ADDRESS=//' )

data="DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS"
eval " export $data"
done
}
# ================================================== ====
export_variables
# ================================================== ====

#Export display pour cutycapt, car si executé par crom, il ne le trouve pas.
export DISPLAY=:0.0

#Verif dépendances...
listdependances="xmlstarlet
cutycapt
wget"
for i in $(grep -v "^#" <<<"${listdependances}" | xargs)
do
if [ ! "$(which $i 2>/dev/null)" ]; then
errorlist="${errorlist}Erreur: Erreur: il manque $i\n"
fi
done
if [ "${errorlist}" ]; then
echo -e "${errorlist[*]}"
exit 0
fi
#Meteo
function FCT_Meteo()
{
listevar="$(grep -i "${pp_ville}.*${pp_pays}" ./accuweather/WeatherLocationDatabase.txt)"
eval "${listevar}"
if [ "${Location}" ]; then
echo
#Récupérer données
wget "http://forecastfox.accuweather.com/adcbin/forecastfox/weather_data.asp?metric=1&location=${Location}" \
-O "./accuweather.xml"
#Créer fichier xml de currentconditions
xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:currentconditions" \
-c '.' "./accuweather.xml" \
>"./currentconditions.xml"
#
xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:day[@number='1']" \
-c '.' "./accuweather.xml" \
>"./day1.xml"
#Boucle
for ((i=1; i<=9; i++))
do
#
xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:day[@number='"${i}"']" \
-c '.' "./accuweather.xml" \
>"./day${i}.xml"
#
xmlstarlet sel \
-N var="http://www.accuweather.com" number="{i}" \
-t -m "//var:daytime" \
-c '.' \
"./day${i}.xml" \
>"./day${i}daytime.xml"
#
xmlstarlet sel \
-N var="http://www.accuweather.com" number="{i}" \
-t -m "//var:nighttime" \
-c '.' \
"./day${i}.xml" \
>"./day${i}nighttime.xml"
done #Fin Boucle
fi
#Relever temp
temp="$(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:temp" -v '.' "./accuweather.xml")"
#Relever pres
pres="$(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:pres" -v '.' "./accuweather.xml")"
#Relever lat
lat="$(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:lat" -v '.' "./accuweather.xml")"
#Relever lon
lon="$(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:lon" -v '.' "./accuweather.xml")"
#Relever time
time="$(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:time" -v '.' "./accuweather.xml")"
#Relever windgusts
windgusts="$(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:windgusts" -v '.' "./accuweather.xml")"
#Relever speed
speed="$(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:speed" -v '.' "./accuweather.xml")"
#__________________________________
#Relever weathericon
weathericon="$(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:weathericon" -v '.' "./currentconditions.xml")"
#Relever windspeed
windspeed="$(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:windspeed" -v '.' "./currentconditions.xml")"
#Relever weathertext
weathertext="$(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:weathertext" -v '.' "./currentconditions.xml")"
#Haut de page
echo -e '
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Météo</title>
'"${STYLES}"'
</head>
<body>' >./meteo.html
#Table1
cat <<EOF >>./meteo.html
<table class="meteo1">
<tbody>
<tr>
<th>
$(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:city" -v '.' "./accuweather.xml") $(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:state" -v '.' "./accuweather.xml") (relevé à ${time})<br />
latitude :${lat} longitude: ${lon}<br />
Temp: ${weathertext}<br />
Température: $(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:temperature" -v '.' "./currentconditions.xml")°${temp}<br />
Pression atmosphérique: $(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:pressure" -v '.' "./currentconditions.xml") ${pres}<br />
Humidité: $(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:humidity" -v '.' "./currentconditions.xml")<br />
Direction du vent: $(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:winddirection" -v '.' "./currentconditions.xml"), Vitesse: ${windspeed}${speed}<br />
<img src="./accuweather/${weathericon}_int.png" alt="weathericon" border="0">
</th>
</tr>
</tbody>
</table>
EOF
#Table2
cat <<EOF >>./meteo.html
<table class="meteo2">
<tbody>
<tr>
<td>
<img src="$(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:radarlarge" -v '.' "./accuweather.xml")" alt="radarlarge" border="0"><br />
</td>
</tr>
</tbody>
</table>
EOF
#Table3
cat <<EOF >>./meteo.html
<table class="meteo3">
<tbody>
EOF
for ((i=1; i<=9; i++))
do
obsdate="$(xmlstarlet sel -N var="http://www.accuweather.com" number="${i}" -t -m "//var:obsdate" -v '.' "./day${i}.xml")"
daycode="$(xmlstarlet sel -N var="http://www.accuweather.com" number="${i}" -t -m "//var:daycode" -v '.' "./day${i}.xml")"
url="$(xmlstarlet sel -N var="http://www.accuweather.com" number="${i}" -t -m "//var:url" -v '.' "./day${i}.xml")"
sunrise="$(xmlstarlet sel -N var="http://www.accuweather.com" number="${i}" -t -m "//var:sunrise" -v '.' "./day${i}.xml")"
sunset="$(xmlstarlet sel -N var="http://www.accuweather.com" number="${i}" -t -m "//var:sunset" -v '.' "./day${i}.xml")"
weathericon_daytime="$(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:weathericon" -v '.' "./day${i}daytime.xml")"
weathericon_nighttime="$(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:weathericon" -v '.' "./day${i}nighttime.xml")"
cat <<EOF >>./meteo.html
<tr>
<th>
$(date -d "${daycode}" "+%A")<br />
$(date -d "${obsdate}" "+%x")<br />
Levé: ${sunrise}<br />
Couché: ${sunset}
</th>
<td>
<img src="./accuweather/${weathericon_daytime}_int.png" alt="daytime" border="0">
</td>
<td>
<img src="./accuweather/${weathericon_nighttime}_int.png" alt="nighttime" border="0"><br />
</td>
</tr>
EOF
done


#Logo
cat <<EOF >>./meteo.html
<div class="logo"><img src="./logo.png" alt="logo" border="0"></div>
EOF


#Bas de page
cat <<EOF >>./meteo.html
</tbody>
</table>
EOF
}
FCT_Meteo
#Ménage...
rm ./day* ./accuweather* ./currentconditions* 2>/dev/null
#Convertir...
#cutycapt --out-format="pdf" --url="file:///${dossier}/meteo.html" --out="./meteo.pdf"
cutycapt --out-format="png" --url="file:///${dossier}/meteo.html" --out="./meteo.png"
#rm ./meteo.html
#xdg-open ./meteo.html
#xdg-open ./meteo.pdf
#xdg-open ./meteo.png
#Mettre en fond ecran pour gnome, pas testé sur unity ...

#Fichier à utiliser comme image d'arrière-plan.
gconftool-2 -t str -s /desktop/gnome/background/picture_filename "${dossier}/meteo.png"

#Determines how the image set by wallpaper_filename is rendered. Possible values are 
#"none", "wallpaper", "centered", "scaled", "stretched", "zoom", "spanned".
gconftool-2 -t str -s /desktop/gnome/background/picture_options "${picture_options}"

#Couleur de gauche ou du haut quand on dessine des dégradés, ou la couleur unie.
gconftool-2 -t str -s /desktop/gnome/background/primary_color "${primary_color}"

#Couleur de droite ou du bas quand on dessine des dégradés, non utilisée pour la couleur unie.
gconftool-2 -t str -s /desktop/gnome/background/secondary_color "${secondary_color}"

#Opacité avec laquelle dessiner l'image d'arrière-plan.
gconftool-2 -t str -s /desktop/gnome/background/picture_opacity "${picture_opacity}"

#Méthode de rendu de la couleur d'arrière-plan. Les valeurs possibles sont « horizontal-gradient » 
#(dégradé horizontal), « vertical-gradient » (dégradé vertical) et « solid » (uni).
#horizontal-gradient|vertical-gradient|solid
gconftool-2 -t str -s /desktop/gnome/background/color_shading_type "${color_shading_type}"

exit 0

Dernière modification par frafa (Le 16/12/2011, à 15:35)

Hors ligne

#2 Le 16/12/2011, à 14:02

mikedafunk

Re : Météo en fond d'ecran

Très belle initiative Frafa !
Merci pour la communauté wink


Lubuntu 22.04 sur Lenovo AX81 et pas mal d'Amiga
Mon blog : http://mikedafunk.over-blog.org

Hors ligne

#3 Le 16/12/2011, à 18:51

frafa

Re : Météo en fond d'ecran

@mikedafunk  smile

Un autre petit exemple qui met les éléments css en "position:absolute;"
et qui permet donc de les placer ou l'on souhaite,
ca donne par exemple ça: http://liveusb.info/gtkdialog/meteo/meteo2.png

Le code:

#!/bin/bash
chemin="$(cd "$(dirname "$0")";pwd)/$(basename "$0")";
dossier="$(dirname "$chemin")"
export chemin dossier
cd "${dossier}"

###Editer crontab avec gedit (remplacez frafa par votre user):
#sudo EDITOR=$(which gedit)  crontab  -e -u frafa

###Dans cet exemple le script est mis à jour toute les 5 minutes
###Ajoutez cette ligne en remplacant frafa par votre user et modifiez aussi le chemin du script
###et aussi celui du fichier de log
#Chaque entrée de la table (chaque ligne) correspond à une tâche à exécuter et est notée de la façon suivante :
#mm hh jj MMM JJJ tâche > log
#*/5 * * * * /home/frafa/bin/meteo/meteo.sh >/home/frafa/bin/meteo/log 2>&1

###Pour vérifier que cron est ok (remplacez frafa par votre user):
#crontab -l -u frafa

#■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■RÉGLAGES■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
#xmlstarlet cutycapt ==> sudo apt-get install xmlstarlet cutycapt
pp_ville="paris"
pp_pays="france"

#Determines how the image set by wallpaper_filename is rendered. Possible values are 
#"none", "wallpaper", "centered", "scaled", "stretched", "zoom", "spanned".
picture_options="scaled"

#Couleur de gauche ou du haut quand on dessine des dégradés, ou la couleur unie.
primary_color="#000000"

#Couleur de droite ou du bas quand on dessine des dégradés, non utilisée pour la couleur unie.
secondary_color="#000000"

#Opacité avec laquelle dessiner l'image d'arrière-plan.
picture_opacity="100"

#Méthode de rendu de la couleur d'arrière-plan. Les valeurs possibles sont « horizontal-gradient » 
#(dégradé horizontal), « vertical-gradient » (dégradé vertical) et « solid » (uni).
#horizontal-gradient|vertical-gradient|solid
color_shading_type="solid"

STYLES='<style type="text/css">
body {
    width:1024px;
    font-size: 14px; 
    font-family: Arial, Verdana;
    font-style: normal;
    margin-left: auto;
    margin-right: auto;
    padding:20px 50px 20px 50px; /* haut droite bas gauche */
    color:#FFFFFF;
/*
-webkit-gradient(<type>, <point> [, <radius>]?, <point> [, <radius>]? [, <stop>]*)
*/

background: -webkit-gradient( radial, 900 50%, 20, 400 50%, 400, from(red), color-stop(0.2, orange), color-stop(0.4, yellow), color-stop(0.6, green), color-stop(0.8, blue), to(#000000) );

    background-repeat: no-repeat;
    background-attachment:fixed;
/*
    background-color:#FB7629;
    background-repeat:no-repeat;
    background-attachment:fixed;
    background-position:20% 80%; 
    background-image:url(./logo.png);
    background-repeat:no-repeat;
*/
}
div.logo { /* le logo */
/*    display:none; */
    position:absolute;
    top:290px;
    left:560px;

}
table.meteo1 { /* la météo du jour */
    position:absolute;
    top:20px;
    left:360px;
    padding:3px;
    text-transform:capitalize;
}
table.meteo1 th {
    text-align:right;
    vertical-align:top;
}
table.meteo2 { /* image radar */
    position:absolute;
    top:20px;
    left:120x;
}
table.meteo3 { /* la météo sur 9 jours */
    position:absolute;
    top:20px;
    left:800px;
    padding:3px;
    text-transform:capitalize;
}
table.meteo3 th {
    text-align:right;
    vertical-align:top;
}
</style>'
#■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■/RÉGLAGES■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

#Partie Pompé pour fonctionnement de gconftool-2 et cron sur http://forums.fedoraforum.org/archive/index.php/t-83656.html
#Partie Pompé pour fonctionnement de gconftool-2 et cron sur http://forums.fedoraforum.org/archive/index.php/t-83656.html
# ================================================== ====
function export_variables
{
user=$( whoami )
pid=$( pgrep -u $user gnome-panel )

for dbusenv in $pid; do
DBUS_SESSION_BUS_ADDRESS=$( grep -z DBUS_SESSION_BUS_ADDRESS /proc/$pid/environ | sed -e 's/DBUS_SESSION_BUS_ADDRESS=//' )

data="DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS"
eval " export $data"
done
}
# ================================================== ====
export_variables
# ================================================== ====

#Export display pour cutycapt, car si executé par crom, il ne le trouve pas.
export DISPLAY=:0.0

#Verif dépendances...
listdependances="xmlstarlet
cutycapt
wget"
for i in $(grep -v "^#" <<<"${listdependances}" | xargs)
do
if [ ! "$(which $i 2>/dev/null)" ]; then
errorlist="${errorlist}Erreur: Erreur: il manque $i\n"
fi
done
if [ "${errorlist}" ]; then
echo -e "${errorlist[*]}"
exit 0
fi
#Meteo
function FCT_Meteo()
{
listevar="$(grep -i "${pp_ville}.*${pp_pays}" ./accuweather/WeatherLocationDatabase.txt)"
eval "${listevar}"
if [ "${Location}" ]; then
echo
#Récupérer données
wget "http://forecastfox.accuweather.com/adcbin/forecastfox/weather_data.asp?metric=1&location=${Location}" \
-O "./accuweather.xml"
#Créer fichier xml de currentconditions
xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:currentconditions" \
-c '.' "./accuweather.xml" \
>"./currentconditions.xml"
#
xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:day[@number='1']" \
-c '.' "./accuweather.xml" \
>"./day1.xml"
#Boucle
for ((i=1; i<=9; i++))
do
#
xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:day[@number='"${i}"']" \
-c '.' "./accuweather.xml" \
>"./day${i}.xml"
#
xmlstarlet sel \
-N var="http://www.accuweather.com" number="{i}" \
-t -m "//var:daytime" \
-c '.' \
"./day${i}.xml" \
>"./day${i}daytime.xml"
#
xmlstarlet sel \
-N var="http://www.accuweather.com" number="{i}" \
-t -m "//var:nighttime" \
-c '.' \
"./day${i}.xml" \
>"./day${i}nighttime.xml"
done #Fin Boucle
fi
#Relever temp
temp="$(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:temp" -v '.' "./accuweather.xml")"
#Relever pres
pres="$(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:pres" -v '.' "./accuweather.xml")"
#Relever lat
lat="$(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:lat" -v '.' "./accuweather.xml")"
#Relever lon
lon="$(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:lon" -v '.' "./accuweather.xml")"
#Relever time
time="$(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:time" -v '.' "./accuweather.xml")"
#Relever windgusts
windgusts="$(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:windgusts" -v '.' "./accuweather.xml")"
#Relever speed
speed="$(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:speed" -v '.' "./accuweather.xml")"
#__________________________________
#Relever weathericon
weathericon="$(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:weathericon" -v '.' "./currentconditions.xml")"
#Relever windspeed
windspeed="$(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:windspeed" -v '.' "./currentconditions.xml")"
#Relever weathertext
weathertext="$(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:weathertext" -v '.' "./currentconditions.xml")"


#Haut de page
echo -e '
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Météo</title>
'"${STYLES}"'
</head>
<body>' >./meteo.html


#Table1
cat <<EOF >>./meteo.html
<table class="meteo1">
<tbody>
<tr>
<th>
$(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:city" -v '.' "./accuweather.xml") $(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:state" -v '.' "./accuweather.xml") (relevé à ${time})<br />
latitude :${lat} longitude: ${lon}<br />
Temp: ${weathertext}<br />
Température: $(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:temperature" -v '.' "./currentconditions.xml")°${temp}<br />
Pression atmosphérique: $(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:pressure" -v '.' "./currentconditions.xml") ${pres}<br />
Humidité: $(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:humidity" -v '.' "./currentconditions.xml")<br />
Direction du vent: $(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:winddirection" -v '.' "./currentconditions.xml"), Vitesse: ${windspeed}${speed}<br />
<img src="./accuweather/${weathericon}_int.png" alt="weathericon" border="0">
</th>
</tr>
</tbody>
</table>
EOF


#Table2
cat <<EOF >>./meteo.html
<table class="meteo2">
<tbody>
<tr>
<td>
<img src="$(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:radarlarge" -v '.' "./accuweather.xml")" alt="radarlarge" border="0"><br />
</td>
</tr>
</tbody>
</table>
EOF


#Table3
cat <<EOF >>./meteo.html
<table class="meteo3">
<tbody>
EOF
for ((i=1; i<=9; i++))
do
obsdate="$(xmlstarlet sel -N var="http://www.accuweather.com" number="${i}" -t -m "//var:obsdate" -v '.' "./day${i}.xml")"
daycode="$(xmlstarlet sel -N var="http://www.accuweather.com" number="${i}" -t -m "//var:daycode" -v '.' "./day${i}.xml")"
url="$(xmlstarlet sel -N var="http://www.accuweather.com" number="${i}" -t -m "//var:url" -v '.' "./day${i}.xml")"
sunrise="$(xmlstarlet sel -N var="http://www.accuweather.com" number="${i}" -t -m "//var:sunrise" -v '.' "./day${i}.xml")"
sunset="$(xmlstarlet sel -N var="http://www.accuweather.com" number="${i}" -t -m "//var:sunset" -v '.' "./day${i}.xml")"
weathericon_daytime="$(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:weathericon" -v '.' "./day${i}daytime.xml")"
weathericon_nighttime="$(xmlstarlet sel -N var="http://www.accuweather.com" -t -m "//var:weathericon" -v '.' "./day${i}nighttime.xml")"
cat <<EOF >>./meteo.html
<tr>
<th>
$(date -d "${daycode}" "+%A")<br />
$(date -d "${obsdate}" "+%x")<br />
Levé: ${sunrise}<br />
Couché: ${sunset}
</th>
<td>
<img src="./accuweather/${weathericon_daytime}_int.png" alt="daytime" border="0">
</td>
<td>
<img src="./accuweather/${weathericon_nighttime}_int.png" alt="nighttime" border="0"><br />
</td>
</tr>
EOF
done


#Logo
cat <<EOF >>./meteo.html
<div class="logo"><img src="./logo.png" alt="logo" border="0"></div>
EOF


#Bas de page
cat <<EOF >>./meteo.html
</tbody>
</table>
EOF
}
FCT_Meteo
#Ménage...
rm ./day* ./accuweather* ./currentconditions* 2>/dev/null
#Convertir...
#cutycapt --out-format="pdf" --url="file:///${dossier}/meteo.html" --out="./meteo.pdf"
cutycapt --out-format="png" --url="file:///${dossier}/meteo.html" --out="./meteo.png"
#rm ./meteo.html
#xdg-open ./meteo.html
#xdg-open ./meteo.pdf
#xdg-open ./meteo.png
#Mettre en fond ecran pour gnome, pas testé sur unity ...

#Fichier à utiliser comme image d'arrière-plan.
gconftool-2 -t str -s /desktop/gnome/background/picture_filename "${dossier}/meteo.png"

#Determines how the image set by wallpaper_filename is rendered. Possible values are 
#"none", "wallpaper", "centered", "scaled", "stretched", "zoom", "spanned".
gconftool-2 -t str -s /desktop/gnome/background/picture_options "${picture_options}"

#Couleur de gauche ou du haut quand on dessine des dégradés, ou la couleur unie.
gconftool-2 -t str -s /desktop/gnome/background/primary_color "${primary_color}"

#Couleur de droite ou du bas quand on dessine des dégradés, non utilisée pour la couleur unie.
gconftool-2 -t str -s /desktop/gnome/background/secondary_color "${secondary_color}"

#Opacité avec laquelle dessiner l'image d'arrière-plan.
gconftool-2 -t str -s /desktop/gnome/background/picture_opacity "${picture_opacity}"

#Méthode de rendu de la couleur d'arrière-plan. Les valeurs possibles sont « horizontal-gradient » 
#(dégradé horizontal), « vertical-gradient » (dégradé vertical) et « solid » (uni).
#horizontal-gradient|vertical-gradient|solid
gconftool-2 -t str -s /desktop/gnome/background/color_shading_type "${color_shading_type}"

exit 0

Hors ligne