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.

#1726 Le 14/12/2012, à 13:30

ragamatrix

Re : [Conky] Alternative à weather.com (2)

jpdipsy a écrit :
ragamatrix a écrit :

Calendrier maya avec draw_bg et images_meteo_lua:
Maya_bg(en anglais...) smile

Joli mais va pas servir longtemps -7 avant l'enfer (j'aurai pas dû payer mon loyer ce mois-ci lol lol )


Quelle chaleur !!
canicule
cool Faut que je retrouve mes lunettes de soleil big_smile

Dernière modification par ragamatrix (Le 14/12/2012, à 13:33)

Hors ligne

#1727 Le 14/12/2012, à 18:48

maan

Re : [Conky] Alternative à weather.com (2)

ragamatrix a écrit :
Didier-T a écrit :

@ maan,

a tu regardé du coté de ce message.

WARNING: gnome-keyring:: couldn't connect to: /tmp/keyring-RVVWP6/pkcs11: No such file or directory

perso, je ne vois pas ce que gnome-keyring vient faire dans le déroulement du conky, mais bon.

tu devrais regarder si le chemin indiqué existe, et si il existe si les droit sont limité a un autre utilisateur que toi (root par exemple)

J'avais eu ce message d'erreur moi aussi au début de l'installation de la distribution et résolu le problème en cherchant de ce coté là :
(sous openbox)post #1034
gnome_keyring

ok merci ragamatrix ça marche nickel, le seul truc qui persiste, mais c'est peut être normal,
car je crois que ça signifie (et oui je suis nul en anglais), que ça se met en transparence avec le fond d'écran, vous confirmer ????

┌─( maan ) - ( 3.2.0-34-generic ) - ( ~/.conky/conky22 )
└─> conky -c Conkyrc_Clock_Meteo
Conky: forked to background, pid is 3067
┌─( maan ) - ( 3.2.0-34-generic ) - ( ~/.conky/conky22 )
└─> 
Conky: desktop window (1200003) is subwindow of root window (158)
Conky: window type - override
Conky: drawing to created window (0x3000001)
Conky: drawing to double buffer
	version = v4.9
...................

Ubuntu_studio 14.04

Hors ligne

#1728 Le 14/12/2012, à 19:20

viper69

Re : [Conky] Alternative à weather.com (2)

bonjour à tous...
j ai un petit problème
lorsque je lance le conky j'ai un retour sur le terminal
Conky: Unable to load image '/tmp/lun.png'
Ce qui a pour conséquence sur l'affichage de ...justement avoir perdu l’icône lune au dessus du texte "gibeuse déscendante".
...
L'affichage joue toujours à cache cache... pas glop ça mais bon...
A vous lire


Viper69
J'ai ouvert les fenêtres - J'ai vu que l'on pouvait être libre
Le manuel disait "Nécessite Windows XP ou mieux". J'ai donc installé Linux.
Ubuntu depuis 7.04 / Laptop: PressarioC60 / Bureau: CQ5335 / Minipc:LDLC Mercure ML1-C1-2-H1

Hors ligne

#1729 Le 14/12/2012, à 19:41

Phyllinux

Re : [Conky] Alternative à weather.com (2)

viper69 a écrit :

bonjour à tous...
j ai un petit problème
lorsque je lance le conky j'ai un retour sur le terminal
Conky: Unable to load image '/tmp/lun.png'
Ce qui a pour conséquence sur l'affichage de ...justement avoir perdu l’icône lune au dessus du texte "gibeuse déscendante".
...
L'affichage joue toujours à cache cache... pas glop ça mais bon...
A vous lire

Petite question bête : Es tu sûr du nom de ton fichier ?
Car, si tu utilises les scripts postés ici, il y a de fortes chances que le fichier de la lune soit nommé 'lune' et non pas 'lun' avec le script.
Aussi, si dans ton conky, tu demandes l'affichage du fichier lun.png, il ne le trouve pas.
Regardes cela, et si tel est le cas, il suffit de corriger dans le conky en rajoutant le petit 'e' qui manque au nom.:D


The ship is sinking normally...

Hors ligne

#1730 Le 15/12/2012, à 16:05

viper69

Re : [Conky] Alternative à weather.com (2)

Phyllinux a écrit :
viper69 a écrit :

bonjour à tous...
j ai un petit problème
lorsque je lance le conky j'ai un retour sur le terminal
Conky: Unable to load image '/tmp/lun.png'
Ce qui a pour conséquence sur l'affichage de ...justement avoir perdu l’icône lune au dessus du texte "gibeuse déscendante".
...
L'affichage joue toujours à cache cache... pas glop ça mais bon...
A vous lire

Petite question bête : Es tu sûr du nom de ton fichier ?
Car, si tu utilises les scripts postés ici, il y a de fortes chances que le fichier de la lune soit nommé 'lune' et non pas 'lun' avec le script.
Aussi, si dans ton conky, tu demandes l'affichage du fichier lun.png, il ne le trouve pas.
Regardes cela, et si tel est le cas, il suffit de corriger dans le conky en rajoutant le petit 'e' qui manque au nom.:D

Si si il y a bien un E...... j'ai envoyer le post trop vite
donc le  retour sur le terminal est bien
Conky: Unable to load image '/tmp/lune.png'
Est il manque l'astre de la nuit dans le conky


Viper69
J'ai ouvert les fenêtres - J'ai vu que l'on pouvait être libre
Le manuel disait "Nécessite Windows XP ou mieux". J'ai donc installé Linux.
Ubuntu depuis 7.04 / Laptop: PressarioC60 / Bureau: CQ5335 / Minipc:LDLC Mercure ML1-C1-2-H1

Hors ligne

#1731 Le 15/12/2012, à 16:07

Didier-T

Re : [Conky] Alternative à weather.com (2)

a tu bien un répertoire /tmp, j'ai cru comprendre que ce n'était pas le cas de toutes les distributions

Hors ligne

#1732 Le 15/12/2012, à 18:43

Phyllinux

Re : [Conky] Alternative à weather.com (2)

viper69 a écrit :
Phyllinux a écrit :
viper69 a écrit :

bonjour à tous...
j ai un petit problème
lorsque je lance le conky j'ai un retour sur le terminal
Conky: Unable to load image '/tmp/lun.png'
Ce qui a pour conséquence sur l'affichage de ...justement avoir perdu l’icône lune au dessus du texte "gibeuse déscendante".
...
L'affichage joue toujours à cache cache... pas glop ça mais bon...
A vous lire

Petite question bête : Es tu sûr du nom de ton fichier ?
Car, si tu utilises les scripts postés ici, il y a de fortes chances que le fichier de la lune soit nommé 'lune' et non pas 'lun' avec le script.
Aussi, si dans ton conky, tu demandes l'affichage du fichier lun.png, il ne le trouve pas.
Regardes cela, et si tel est le cas, il suffit de corriger dans le conky en rajoutant le petit 'e' qui manque au nom.:D

Si si il y a bien un E...... j'ai envoyer le post trop vite
donc le  retour sur le terminal est bien
Conky: Unable to load image '/tmp/lune.png'
Est il manque l'astre de la nuit dans le conky

1/ Peux tu faire une recherche sur ton disque pour voir si tu trouves l'image de la lune
2/ Si tu ne la trouves pas, peux tu poster le script qui est chargé de la télécharger, afin de voir ce qu'il en est


The ship is sinking normally...

Hors ligne

#1733 Le 18/12/2012, à 13:20

ragamatrix

Re : [Conky] Alternative à weather.com (2)

Le dernier ConkyMeteo de l'année:
ok je sors

Hum désolé je sors...

Dernière modification par ragamatrix (Le 18/12/2012, à 13:21)

Hors ligne

#1734 Le 18/12/2012, à 13:30

Didier-T

Re : [Conky] Alternative à weather.com (2)

excellent lol

Hors ligne

#1735 Le 18/12/2012, à 15:06

jpdipsy

Re : [Conky] Alternative à weather.com (2)

Ragamatrix

si tu pouvais nous donner les prévs. du 21 heure par heure que je sache à quel moment je dois sortir ma viande du congel.  lol

Hors ligne

#1736 Le 19/12/2012, à 12:34

ragamatrix

Re : [Conky] Alternative à weather.com (2)

jpdipsy a écrit :

Ragamatrix

si tu pouvais nous donner les prévs. du 21 heure par heure que je sache à quel moment je dois sortir ma viande du congel.  lol

OOOufff bien vu ! va me falloir une formation accelérée et intensive en lua... En tous cas je ne vois pas de signe avant coureur de catastrophe, aujourd'hui il fait jour...  smile

Hors ligne

#1737 Le 20/12/2012, à 08:03

viper69

Re : [Conky] Alternative à weather.com (2)

Re bonjour
Autre chose qui ne fonctionne pas avec mon info météo
Elle ne se remet plus à jour.... je viens de m 'en apercevoir aujourd'hui.
Pourtant la ligne dans le config semble correct.

# Créé par jpdipsy (forum.ubuntu-fr.org)

#Répertoire de sauvegarde
repsauv=~/ConkyJJB/sauv

#Répertoire temporaire
TempShell=/tmp

#Copier votre adresse Accuweather ici
web=http://www.accuweather.com/fr/fr/lyon/171210/weather-forecast/171210

#Prévision sur n jour (de 1 à 15) moyenne pour la journée
periode=5

#Prévision infos sur la matinée (oui, non)
matinée=oui

#Prévision infos sur la Après Midi (oui, non)
am=oui

#Prévision infos sur la Soirée (oui, non)
soiree=oui

#Prévision infos sur la Nuit (oui, non)
nuit=oui

#Prévision à 8 Heures
Prev8heures=oui

#Palier changement de couleur rose des vents (Km/h)
Palier=20

#Temps entre les mises à jour prévision (secondes)
update=300

Et je ne penses pas avoir cassé le conky.

	# -- Conky settings -- #
	background yes
	update_interval 1

	cpu_avg_samples 2
	net_avg_samples 2

	override_utf8_locale yes

	double_buffer yes
	no_buffers yes

	text_buffer_size 2048
	# -- Window specifications -- #

	own_window yes
	own_window_type desktop
	own_window_transparent yes
#	own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below

	border_inner_margin 0
	border_outer_margin 0

	minimum_size 280 100
	maximum_width 310
	

	alignment tm
	gap_x -350
	gap_y 30

	# -- Graphics settings -- #
	draw_shades no
	draw_outline no
	draw_borders no
	draw_graph_borders yes

	# -- Text settings -- #
	use_xft yes
	xftfont MaiandraGD:size=24
	xftalpha 0.4

	uppercase no

	default_color 8b8b8b
	# -- Déclaration template -- #
	template0 ${image ~/ConkyJJB/meteo/images/\1 -p \2 -s \3} # -- images fond -- #
	template1 ${lua Meteo_\1 \2 \3 \4 \5 \6} # -- gestion météo --#
	template2 ${lua_parse Meteo_\1 \2 \3 \4 60 \5} # -- icônes météo -- \2=répertoire icônes \3=position \4=taille \5=jour (pour les prévisions) #
	template3 ${lua Lune_\1} 
	template4 ${lua_parse Images_\1 \2 \3 60 \4} # -- Appelle image -- \2=position \3=taille \4=jour (pour les prévisions) #
	
	lua_load ~/ConkyJJB/script/meteo.lua

	lua_startup_hook init ~/ConkyJJB/meteo/meteo.cfg
	
	
	TEXT
#### Lancement du script récupérant les données météo ####
${template1 Maj}
#### Premier cadre ####
##### Heure #####
${voffset -16}${font LED_mono :style=Medium:size=60}${color 434343}${goto 30}${time %H}${goto 140}${time %M}${font LED_mono :size=25:style=Medium}${color 809980}${goto 235}${time %S}
##### Date #####
${voffset 8}${color yellow}${font URW Chancery L:style=Bold:size=18}${alignc}${exec date "+%A %d %B %Y"|sed 's/^.\| [a-z]/\U&/g'}
##### ville #####
${voffset -10}${goto 5}${color ffe595}${template1 Ville}
##### température actuelle #####
${voffset -10}${goto 15}${font URW Chancery L:style=Bold:size=30}${if_match ${template1 TempAct}<5}${color lightblue}${blink ${template1 TempAct}°}${else}${color white}${template1 TempAct}°${endif}
##### Affichage conditions météo #####
${voffset -25}${font URW Chancery L:style=Bold:size=12}${color white}${alignc}${template1  CondMeteo}
##### Affichage infos vent ######
${voffset -47}${color ffe595}${font Helvetica LT Std:style=Bold:size=10}${alignr}${template1 VentDirP}          
${color ffe595}${font Helvetica LT Std:style=Bold:size=10}${goto 200}${template1 VentForce} km/h
#### Second cadre ####
##### Affichage Probabilité de précipitations Jour/Nuit #####
${voffset 32}${color blue}${font Helvetica LT Std:style=Bold:size=10}${goto 40}${template1 Jour_ProbOrage 1}${goto 220}${template1 Nuit_ProbOrage 1}
##### Affichage temperature #####
${voffset -14}${goto 75}${template1 Jour_Temp 1}°${goto 250}${template1 Nuit_Temp 1}°
##### Affichage conditions météo #####
${voffset 30}${font Bitstream Vera Sans Mono:style=condensed:size=6}${color grey} ${template1  AM_CondMeteo1 1}${goto 170} ${template1  Noct_CondMeteo1 1}
 ${template1  AM_CondMeteo2 1}${goto 170} ${template1  Noct_CondMeteo2 1}
##### Affichage lunaison #####
${voffset -30}${font URW Chancery L:style=Bold:size=10}${color FEEFEF}${alignc}${template3 ephemerides1}
${voffset -5}${alignc}${template3 ephemerides2}
#### troisieme cadre ####
${voffset 12}${font Ubuntu :size=10:style=bold}${color lightwhite}${goto 35}${template1 Jour_ProbOrage 2}${goto 105}${template1 Jour_ProbOrage 3}${goto 170}${template1 Jour_ProbOrage 4}${goto 235}${template1 Jour_ProbOrage 5}
##### Affichage temperature #####
${voffset 14}${goto 27}${font Ubuntu :size=10:style=bold}${color red}${template1 Jour_Temp 2}°${color white}/${color lightblue}${template1 Nuit_Temp 2}°${goto 97}${color red}${template1 Jour_Temp 3}°${color white}/${color lightblue}${template1 Nuit_Temp 3}°${goto 167}${color red}${template1 Jour_Temp 4}°${color white}/${color lightblue}${template1 Nuit_Temp 4}°${goto 237}${color red}${template1 Jour_Temp 5}°${color white}/${color lightblue}${template1 Nuit_Temp 5}°
##### Affichage vitesse du vent #####
${voffset 8}${font Ubuntu :size=9:style=bold}${color ffe595}${goto 27}${template1 Jour_VentForce 2}${font Ubuntu :size=6:style=bold} km/h${goto 97}${voffset -4}${font Ubuntu :size=9:style=bold}${template1 Jour_VentForce 3}${font Ubuntu :size=6:style=bold} km/h${goto 167}${voffset -4}${font Ubuntu :size=9:style=bold}${template1 Jour_VentForce 4}${font Ubuntu :size=6:style=bold} km/h${goto 237}${voffset -4}${font Ubuntu :size=9:style=bold}${template1 Jour_VentForce 5}${font Ubuntu :size=6:style=bold} km/h
##### Affichage Date #####
${voffset 9}${font Ubuntu :size=10:style=bold}${color 522BAF}${goto 20}${template1 Jour %a_%d 2}${goto 90}${template1 Jour %a_%d 3}${goto 155}${template1 Jour %a_%d 4}${goto 220}${template1 Jour %a_%d 5}
#### quatrième cadre ####
##### Heure mise à jour #####
${voffset 20}${color ffe595}${font URW Chancery L:style=Bold:size=16}${alignc}Dernière mise à jour : ${template1 Heure}h${template1 Minute}

#### Affichage des cadres utilisés dans le conky ####
${voffset -600}
#### premier cadre ####
${template0 base.png 0,40 280x170}
${template0 flip_bg.png 24,10 100x100}
${template0 flip_bg.png 134,10 100x100}
#### Second cadre ####
${template0 base.png 0,245 280x50}
#### troisième cadre ####
${template0 base.png 0,320 280x40}
${template0 base180.png 0,358 280x40}
#### quatrieme cadre ####
${template0 base1.png 0,420 280x30}
#### icônes premier cadre ####
${template2 IconeM ~/ConkyJJB/meteo/icones 74,120 132x79}
${template2 IconeV ~/ConkyJJB/meteo/icones/vent 235,130 44x44}
#### icônes Second cadre ####
${template2 AM_IconeM ~/ConkyJJB/meteo/icones -15,205 132x79 1}
${template2 Noct_IconeM ~/ConkyJJB/meteo/icones 160,205 132x79 1}
${image /tmp/lune.png -p 111,210 -s 63x63 -f 60}
#### icônes troisième cadre ####
${template2 AM_IconeM ~/ConkyJJB/meteo/icones 0,295 86x52 2}
${template2 AM_IconeM ~/ConkyJJB/meteo/icones 68,295 86x52 3}
${template2 AM_IconeM ~/ConkyJJB/meteo/icones 133,295 86x52 4}
${template2 AM_IconeM ~/ConkyJJB/meteo/icones 200,295 86x52 5}
${template2 Jour_IconeR ~/ConkyJJB/meteo/icones/vent 0,344 30x30 2}
${template2 Jour_IconeR ~/ConkyJJB/meteo/icones/vent 70,344 30x30 3}
${template2 Jour_IconeR ~/ConkyJJB/meteo/icones/vent 140,344 30x30 4}
${template2 Jour_IconeR ~/ConkyJJB/meteo/icones/vent 210,344 30x30 5}
${template2 Noct_IconeM ~/ConkyJJB/meteo/icones 0,375 86x52 2}
${template2 Noct_IconeM ~/ConkyJJB/meteo/icones 68,375 86x52 3}
${template2 Noct_IconeM ~/ConkyJJB/meteo/icones 133,375 86x52 4}
${template2 Noct_IconeM ~/ConkyJJB/meteo/icones 200,375 86x52 5}

Tant que j y suis je met aussi le meteo.lua

-- Créé par Didier-T (forum.ubuntu-fr.org)
-- Nécessite imagemagick http://apt.ubuntu.com/p/imagemagick



require "io"
require "os"
local Version = "v4.8"
local conditionJour = {}
local conditionNuit = {}
local conditionMatin = {}
local conditionAM = {}
local conditionSoiree = {}
local conditionNoct = {}
local InfoJour = {}
local conditioncourante = {}
local huitHeures = {}
local Rep, cmd, jours, matin, apresmidi, soiree, nuit, delais, r, repsauv, l, fichier_init, MAJ, tc, dermodif, VilleAdresse
local Debug = "Problème Info "
--Liste des accents et carractère non pris en charge par les patterns
local pat="%é%è%à%ä%â%ê%ô%ç%É%È%À%Â%Ä%Ê%Ô%Ç"


--Traduction date
function trad_date(d)
	local date = d
	date = date:gsub("Monday", "Lundi"):gsub("Tuesday", "Mardi"):gsub("Wednesday", "Mercredi"):gsub("Thursday", "Jeudi"):gsub("Friday", "Vendredi"):gsub("Saturday", "Samedi"):gsub("Sunday", "Dimanche")

	date = date:gsub("lun", "Lun"):gsub("mar", "Mar"):gsub("mer", "Mer"):gsub("jeu", "Jeu"):gsub("ven", "Ven"):gsub("sam", "Sam"):gsub("dim", "Dim")

	date = date:gsub("Mon", "Lun"):gsub("Tue", "Mar"):gsub("Wed", "Mer"):gsub("Thu", "Jeu"):gsub("Fri", "Ven"):gsub("Sat", "Sam"):gsub("Sun", "Dim")
	
	date = date:gsub("January", "Janvier"):gsub("February", "Février"):gsub("March", "Mars"):gsub("April", "Avril"):gsub("May", "Mai"):gsub("June", "Juin"):gsub("July", "Juillet"):gsub("August", "Août"):gsub("September", "Septembre"):gsub("October", "Octobre"):gsub("November", "Novembre"):gsub("December", "Décembre")

	date = date:gsub("jan", "Jan"):gsub("fev", "Fév"):gsub("mar", "Mar"):gsub("avr", "Avr"):gsub("mai", "Mai"):gsub("jui", "Jui"):gsub("aou", "Aoû"):gsub("sep", "Sep"):gsub("oct", "Oct"):gsub("nov", "Nov"):gsub("dec", "Déc")
	
	date = date:gsub("Feb", "Fév"):gsub("Apr", "Avr"):gsub("May", "Mai"):gsub("Jun", "Juin"):gsub("Jul", "Juil"):gsub("Aug", "Aoû"):gsub("Dec", "Déc")
		
	return date
end

--Vérifier l'existence d'un fichier
function existe(file) 
  local a = io.open(file, "r")
  local present
  if a then
    present = true
    io.close(a)
  else
    present = false
  end
  return present
end

--Formatage des pages web
function string.formatage(ligne)
ligne = ligne:gsub("&#244;", "ô"):gsub("&#226;", "â"):gsub("&#233;", "é"):gsub("&#232;", "è"):gsub("&#224;", "à"):gsub("&#231;", "ç"):gsub("&#234;", "ê"):gsub("&#246;", "ö"):gsub("&#238;", "î"):gsub("&#239;", "ï"):gsub("&#251;", "û"):gsub("&#252;", "ü"):gsub("&#39;", "'"):gsub("Poudreries", "Bourrasques de neige"):gsub("&#201;", "É"):gsub("&#176;",""):gsub("[\n\r]",""):gsub("&eacute;", "é")
return ligne
end

--Traitement Huit prochaines heures

function Huit_Heures(web)
	local f, i, line, heure1, heure2, heure3, heure4, heure5, heure6, heure7, heure8, icone1, icone2, icone3, icone4, icone5, icone6, icone7, icone8, Temp1, Temp2, Temp3, Temp4, Temp5, Temp6, Temp7, Temp8, TempR1, TempR2, TempR3, TempR4, TempR5, TempR6, TempR7, TempR8, Humi1, Humi2, Humi3, Humi4, Humi5, Humi6, Humi7, Humi8, Pluie1, Pluie2, Pluie3, Pluie4, Pluie5, Pluie6, Pluie7, Pluie8, Neige1, Neige2, Neige3, Neige4, Neige5, Neige6, Neige7, Neige8, Verglas1, Verglas2, Verglas3, Verglas4, Verglas5, Verglas6, Verglas7, Verglas8, Vitesse1, Dir1, Vitesse2, Dir2, Vitesse3, Dir3, Vitesse4, Dir4, Vitesse5, Dir5, Vitesse6, Dir6, Vitesse7, Dir7, Vitesse8, Dir8, UV1, UV2, UV3, UV4, UV5, UV6, UV7, UV8, CouvNuage1, CouvNuage2, CouvNuage3, CouvNuage4, CouvNuage5, CouvNuage6, CouvNuage7, CouvNuage8, Rosee1, Rosee2, Rosee3, Rosee4, Rosee5, Rosee6, Rosee7, Rosee8, h, Dbg
	
	f=assert(io.popen("curl --max-time 60 --retry 3 --silent '"..web.."' | grep -A202 'hourly\"' | sed 's/%//g'"))
	line=f:read()
	i=0
	for line in f:lines() do
		i=i+1
		--Récup. des heures
		if i==8 then
			heure1=line:match("/>(%d*)</")
		elseif i==9 then
			heure2=line:match(">(%d*)</")
		elseif i==10 then
			heure3=line:match(">(%d*)</")
		elseif i==11 then
			heure4=line:match(">(%d*)</")
		elseif i==12 then
			heure5=line:match(">(%d*)</")
		elseif i==13 then
			heure6=line:match(">(%d*)</")
		elseif i==14 then
			heure7=line:match(">(%d*)</")
		elseif i==15 then
			heure8=line:match(">(%d*)</")
		--Récup. des icones
		elseif i==34 then
			icone1=line:match("i%p(%a*)\">")
		elseif i==37 then
			icone2=line:match("i%p(%a*)\">")
		elseif i==40 then
			icone3=line:match("i%p(%a*)\">")
		elseif i==43 then
			icone4=line:match("i%p(%a*)\">")
		elseif i==46 then
			icone5=line:match("i%p(%a*)\">")
		elseif i==49 then
			icone6=line:match("i%p(%a*)\">")
		elseif i==52 then
			icone7=line:match("i%p(%a*)\">")
		elseif i==55 then
			icone8=line:match("i%p(%a*)\">")
		--Températures
		elseif i==60 then
			Temp1=line:match(">([%p%d]*)&")
		elseif i==61 then
			Temp2=line:match(">([%p%d]*)&")
		elseif i==62 then
			Temp3=line:match(">([%p%d]*)&")
		elseif i==63 then
			Temp4=line:match(">([%p%d]*)&")
		elseif i==64 then
			Temp5=line:match(">([%p%d]*)&")
		elseif i==65 then
			Temp6=line:match(">([%p%d]*)&")
		elseif i==66 then
			Temp7=line:match(">([%p%d]*)&")
		elseif i==67 then
			Temp8=line:match(">([%p%d]*)&")
		--Températures ressentie
		elseif i==71 then
			TempR1=line:match(">([%p%d]*)&")
		elseif i==72 then
			TempR2=line:match(">([%p%d]*)&")
		elseif i==73 then
			TempR3=line:match(">([%p%d]*)&")
		elseif i==74 then
			TempR4=line:match(">([%p%d]*)&")
		elseif i==75 then
			TempR5=line:match(">([%p%d]*)&")
		elseif i==76 then
			TempR6=line:match(">([%p%d]*)&")
		elseif i==77 then
			TempR7=line:match(">([%p%d]*)&")
		elseif i==78 then
			TempR8=line:match(">([%p%d]*)&")
		--Humidité
		elseif i==82 then
			Humi1=line:match(">(%d*)<")
		elseif i==83 then
			Humi2=line:match(">(%d*)<")
		elseif i==84 then
			Humi3=line:match(">(%d*)<")
		elseif i==85 then
			Humi4=line:match(">(%d*)<")
		elseif i==86 then
			Humi5=line:match(">(%d*)<")
		elseif i==87 then
			Humi6=line:match(">(%d*)<")
		elseif i==88 then
			Humi7=line:match(">(%d*)<")
		elseif i==89 then
			Humi8=line:match(">(%d*)<")
		--Pluie
		elseif i==109 then
			Pluie1=line:match("v>(%d*)<")
		elseif i==110 then
			Pluie2=line:match("v>(%d*)<")
		elseif i==111 then
			Pluie3=line:match("v>(%d*)<")
		elseif i==112 then
			Pluie4=line:match("v>(%d*)<")
		elseif i==113 then
			Pluie5=line:match("v>(%d*)<")
		elseif i==114 then
			Pluie6=line:match("v>(%d*)<")
		elseif i==115 then
			Pluie7=line:match("v>(%d*)<")
		elseif i==116 then
			Pluie8=line:match("v>(%d*)<")
		--Neige
		elseif i==120 then
			Neige1=line:match("v>(%d*)<")
		elseif i==121 then
			Neige2=line:match("v>(%d*)<")
		elseif i==122 then
			Neige3=line:match("v>(%d*)<")
		elseif i==123 then
			Neige4=line:match("v>(%d*)<")
		elseif i==124 then
			Neige5=line:match("v>(%d*)<")
		elseif i==125 then
			Neige6=line:match("v>(%d*)<")
		elseif i==126 then
			Neige7=line:match("v>(%d*)<")
		elseif i==127 then
			Neige8=line:match("v>(%d*)<")
		--Verglas
		elseif i==131 then
			Verglas1=line:match("v>(%d*)<")
		elseif i==132 then
			Verglas2=line:match("v>(%d*)<")
		elseif i==133 then
			Verglas3=line:match("v>(%d*)<")
		elseif i==134 then
			Verglas4=line:match("v>(%d*)<")
		elseif i==135 then
			Verglas5=line:match("v>(%d*)<")
		elseif i==136 then
			Verglas6=line:match("v>(%d*)<")
		elseif i==137 then
			Verglas7=line:match("v>(%d*)<")
		elseif i==138 then
			Verglas8=line:match("v>(%d*)<")
		--Vent
		elseif i==159 then
			Vitesse1, Dir1=line:gsub("W","O"):match(">(%d*)%s(%a*)<")
			VentP1=vent_plein(Dir1)
		elseif i==160 then
			Vitesse2, Dir2=line:gsub("W","O"):match(">(%d*)%s(%a*)<")
			VentP2=vent_plein(Dir2)
		elseif i==161 then
			Vitesse3, Dir3=line:gsub("W","O"):match(">(%d*)%s(%a*)<")
			VentP3=vent_plein(Dir3)
		elseif i==162 then
			Vitesse4, Dir4=line:gsub("W","O"):match(">(%d*)%s(%a*)<")
			VentP4=vent_plein(Dir4)
		elseif i==163 then
			Vitesse5, Dir5=line:gsub("W","O"):match(">(%d*)%s(%a*)<")
			VentP5=vent_plein(Dir5)
		elseif i==164 then
			Vitesse6, Dir6=line:gsub("W","O"):match(">(%d*)%s(%a*)<")
			VentP6=vent_plein(Dir6)
		elseif i==165 then
			Vitesse7, Dir7=line:gsub("W","O"):match(">(%d*)%s(%a*)<")
			VentP7=vent_plein(Dir7)
		elseif i==166 then
			Vitesse8, Dir8=line:gsub("W","O"):match(">(%d*)%s(%a*)<")
			VentP8=vent_plein(Dir8)
		--Uv
		elseif i==170 then
			UV1=line:match(">(%d*)<")
		elseif i==171 then
			UV2=line:match(">(%d*)<")
		elseif i==172 then
			UV3=line:match(">(%d*)<")
		elseif i==173 then
			UV4=line:match(">(%d*)<")
		elseif i==174 then
			UV5=line:match(">(%d*)<")
		elseif i==175 then
			UV6=line:match(">(%d*)<")
		elseif i==176 then
			UV7=line:match(">(%d*)<")
		elseif i==177 then
			UV8=line:match(">(%d*)<")
		--Couverture nuageuse
		elseif i==181 then
			CouvNuage1=line:match(">(%d*)<")
		elseif i==182 then
			CouvNuage2=line:match(">(%d*)<")
		elseif i==183 then
			CouvNuage3=line:match(">(%d*)<")
		elseif i==184 then
			CouvNuage4=line:match(">(%d*)<")
		elseif i==185 then
			CouvNuage5=line:match(">(%d*)<")
		elseif i==186 then
			CouvNuage6=line:match(">(%d*)<")
		elseif i==187 then
			CouvNuage7=line:match(">(%d*)<")
		elseif i==188 then
			CouvNuage8=line:match(">(%d*)<")
		--Point de rosée
		elseif i==192 then
			Rosee1=line:match(">([%p%d]*)&")
		elseif i==193 then
			Rosee2=line:match(">([%p%d]*)&")
		elseif i==194 then
			Rosee3=line:match(">([%p%d]*)&")
		elseif i==195 then
			Rosee4=line:match(">([%p%d]*)&")
		elseif i==196 then
			Rosee5=line:match(">([%p%d]*)&")
		elseif i==197 then
			Rosee6=line:match(">([%p%d]*)&")
		elseif i==198 then
			Rosee7=line:match(">([%p%d]*)&")
		elseif i==199 then
			Rosee8=line:match(">([%p%d]*)&")
		end
	end
	f:close()

	huitHeures[1] = {Heure=heure1, Icone=icone1, TempMax=Temp1, TempMaxR=TempR1, VentDir=Dir1, VentForce=Vitesse1, Humidite=Humi1, CouvNuage=CouvNuage1, PointRosee=Rosee1, UV=UV1, Pluie=Pluie1, Neige=Neige1, Verglas=Verglas1, VentP=VentP1}
	huitHeures[2] = {Heure=heure2, Icone=icone2, TempMax=Temp2, TempMaxR=TempR2, VentDir=Dir2, VentForce=Vitesse2, Humidite=Humi2, CouvNuage=CouvNuage2, PointRosee=Rosee2, UV=UV2, Pluie=Pluie2, Neige=Neige2, Verglas=Verglas2, VentP=VentP2}
	huitHeures[3] = {Heure=heure3, Icone=icone3, TempMax=Temp3, TempMaxR=TempR3, VentDir=Dir3, VentForce=Vitesse3, Humidite=Humi3, CouvNuage=CouvNuage3, PointRosee=Rosee3, UV=UV3, Pluie=Pluie3, Neige=Neige3, Verglas=Verglas3, VentP=VentP3}
	huitHeures[4] = {Heure=heure4, Icone=icone4, TempMax=Temp4, TempMaxR=TempR4, VentDir=Dir4, VentForce=Vitesse4, Humidite=Humi4, CouvNuage=CouvNuage4, PointRosee=Rosee4, UV=UV4, Pluie=Pluie4, Neige=Neige4, Verglas=Verglas4, VentP=VentP4}
	huitHeures[5] = {Heure=heure5, Icone=icone5, TempMax=Temp5, TempMaxR=TempR5, VentDir=Dir5, VentForce=Vitesse5, Humidite=Humi5, CouvNuage=CouvNuage5, PointRosee=Rosee5, UV=UV5, Pluie=Pluie5, Neige=Neige5, Verglas=Verglas5, VentP=VentP5}
	huitHeures[6] = {Heure=heure6, Icone=icone6, TempMax=Temp6, TempMaxR=TempR6, VentDir=Dir6, VentForce=Vitesse6, Humidite=Humi6, CouvNuage=CouvNuage6, PointRosee=Rosee6, UV=UV6, Pluie=Pluie6, Neige=Neige6, Verglas=Verglas6, VentP=VentP6}
	huitHeures[7] = {Heure=heure7, Icone=icone7, TempMax=Temp7, TempMaxR=TempR7, VentDir=Dir7, VentForce=Vitesse7, Humidite=Humi7, CouvNuage=CouvNuage7, PointRosee=Rosee7, UV=UV7, Pluie=Pluie7, Neige=Neige7, Verglas=Verglas7, VentP=VentP7}
	huitHeures[8] = {Heure=heure8, Icone=icone8, TempMax=Temp8, TempMaxR=TempR8, VentDir=Dir8, VentForce=Vitesse8, Humidite=Humi8, CouvNuage=CouvNuage8, PointRosee=Rosee8, UV=UV8, Pluie=Pluie8, Neige=Neige8, Verglas=Verglas8, VentP=VentP8}
	
	local t = {"VentP", "Heure", "Icone", "TempMax", "TempMaxR", "VentDir", "VentForce", "Humidite", "CouvNuage", "PointRosee", "UV", "Pluie", "Neige", "Verglas"}
	for j = 1, 8 do
		local donee = {}
		donee = huitHeures[j]
		for i = 1,13 do
			if donee[t[i]] == nil then
				local file = assert(io.open(repsauv.."/Debug", "a+"))
				file:write ("\n", Debug,"huitHeures ", t[i]," jour n° ", j)
				donee[t[i]]="N/A"
			end
		end
		huitHeures[j] = donee
	end


	for h = 1,8 do
		if huitHeures[h].VentDir == "CLM" then
			huitHeures[h].VentDir = "Calme"
			huitHeures[h].VentForce = "0"
		end
		huitHeures[h].VentIcone = icone_vent(direction_vent(huitHeures[h].VentDir), huitHeures[h].VentForce)
		huitHeures[h].VentP = vent_plein(huitHeures[h].VentDir)
	end

end
--Traitement information Quart de journée
function Prevision_Quart_T(web)
	local f, i, line, icone, cond, Tmax, Tmin, Tmaxres, Tminres, dirvent, forcevent, Precipitationpourcent, Pluie, Neige, Humidite,Couverture, Pointrosee, Visibilite, Dbg

	f=assert(io.popen("curl --max-time 60 --retry 3 --silent '"..web.."' | grep -A50 '/#detail-' | sed 's/%//g'"))
	line=f:read()
	i=0
	for line in f:lines() do
		i=i+1
		if i==4 then
			icone=line:match("icon i%p(%a*)\">")
		elseif i==5 then
			cond=line:formatage():match("cond\">([%a%p%s"..pat.."]*)</")
		elseif i==6 then
			Tmax=line:match(">([%p%d]*)<s")
		elseif i==7 then
			Tmin=line:match("lo\">%a*%s([%p%d]*)<s")
		elseif i==10 then
			Tmaxres, Tminres=line:formatage():match("&#174; ([%p%d]*) / ([%p%d]*)</")
		elseif i==27 then
			dirvent=line:gsub("W","O"):match("'(%a*)'")
		elseif i==28 then
			forcevent=line:match("'(%d*)[%a%p]*'")
		elseif i==38 then
			Precipitationpourcent=line:match(">(%d*)</")
		elseif i==39 then
			Pluie=line:match(">(%d*) %a*</")
		elseif i==40 then
			Neige=line:match(">(%d*) %a*</")
		elseif i==41 then
			Humidite=line:match(">(%d*)</")
		elseif i==42 then
			Couverture=line:match(">(%d*)</")
		elseif i==43 then
			Pointrosee=line:match(">([%p%d]*)&#")
		elseif i==44 then
			Visibilite=line:match(">(%d*) %a*</")
		end
	end
	f:close()
	

	return {Icone=icone, CondMeteo=cond, TempMax=Tmax, TempMin=Tmin, TempMaxR=Tmaxres, TempMinR=Tminres, VentDir=dirvent, VentForce=forcevent, Humidite=Humidite, CouvNuage=Couverture, PointRosee=Pointrosee, ProbPrec=Precipitationpourcent, Visibilite=Visibilite, QNeige=Neige, QPluie=Pluie}
end


--Prévision
function prevision(web)
	local f, i, line, iconej, Tmax, Tmaxr, ProbPrecj, Vdirj, Vforcej, Vrafalesj, Descriptifj, UV, ProbOragesj, Precj, Pluiej, Neigej, Verglasj, iconen, Tmin, Tminr, ProbPrecn, Vdirn, Vforcen, Vrafalesn, Descriptifn, UVn, ProbOragesn, Precn, Pluien, Neigen, Verglasn, jour,mois, annee, AujoudhuiMax, NormaleMax, RecordMax, Histo_Max, AujoudhuiMin, NormaleMin, RecordMin, Histo_Min,  LeverSoleil, LeverSoleilH, LeverSoleilM, Culmine, CulmineH, CulmineM, CoucherSoleil, CoucherSoleilH, CoucherSoleilM, Datej

	f=assert(io.popen("curl --max-time 60 --retry 3 --silent '"..web.."' | sed 's/%//g' | grep -A193 '/#detail-'"))
	line=f:read()
	i=0
	for line in f:lines() do
		i=i+1
		--jour
		if i==5 then
			iconej=line:match("icon i%p(%a*)\">")
		elseif i==6 then
			Tmax=line:match("temp\">([%p%d]*)<")
		elseif i==7 then
			Tmaxr=line:match("174; ([%p%d]*)&#")
		elseif i==8 then
			ProbPrecj=line:match("feel[%a%p%d]* (%d*)</")
		elseif i==40 then
			Vdirj, Vforcej=line:gsub("W","O"):match(">(%a*) (%d*) [%a%p]*<")
		elseif i==43 then
			Vrafalesj=line:match("> (%d*) [%a%p]*<")
		elseif i==47 then
			Descriptifj=line:formatage():gsub(";",""):match("<p>([%a%p%s"..pat.."]*)</p>")
		elseif i==51 then
			UV=line:match("g>(%d*)</s")
		elseif i==52 then
			ProbOragesj=line:match(">(%d*)</s")
		elseif i==53 then
			Precj=line:match(">(%d*) %a*</s")
		elseif i==54 then
			Pluiej=line:match(">(%d*) %a*</s")
		elseif i==55 then
			Neigej=line:match(">(%d*) %a*</s")
		elseif i==56 then
			Verglasj=line:match(">(%d*) %a*</s")
		--nuit
		elseif i==65 then
			iconen=line:match("icon i%p(%a*)\">")
		elseif i==66 then
			Tmin=line:match("temp\">([%p%d]*)<")
		elseif i==67 then
			Tminr=line:match("174; ([%p%d]*)&#")
		elseif i==68 then
			ProbPrecn=line:match("feel[%a%p%d]* (%d*)</")
		elseif i==101 then
			Vdirn, Vforcen=line:gsub("W","O"):match(">(%a*) (%d*) [%a%p]*<")
		elseif i==104 then
			Vrafalesn=line:match("> (%d*) [%a%p]*<")
		elseif i==108 then
			Descriptifn=line:formatage():gsub(";",""):match("<p>([%a%p%s"..pat.."]*)</p>")
		elseif i==112 then
			UVn=line:match("g>([%a%p%d]*)</s")
		elseif i==113 then
			ProbOragesn=line:match(">(%d*)</s")
		elseif i==114 then
			Precn=line:match(">(%d*) %a*</s")
		elseif i==115 then
			Pluien=line:match(">(%d*) %a*</s")
		elseif i==116 then
			Neigen=line:match(">(%d*) %a*</s")
		elseif i==117 then
			Verglasn=line:match(">(%d*) %a*</s")
		--historique
		elseif i==133 then
			jour,mois,annee=line:match("- (%d*)/(%d*)/(%d*)</")
		elseif i==151 then
			AujoudhuiMax=line:formatage():match(">([%d%a%p]*)</")
		elseif i==153 then
			NormaleMax=line:formatage():match(">([%d%a%p]*)</")
		elseif i==155 then
			RecordMax=line:formatage():match(">([%d%a%p]*)</")
		elseif i==157 then
			Histo_Max=line:formatage():match(">([%d%a%p]*)</")
		elseif i==162 then
			AujoudhuiMin=line:formatage():match(">([%d%a%p]*)</")
		elseif i==164 then
			NormaleMin=line:formatage():match(">([%d%a%p]*)</")
		elseif i==166 then
			RecordMin=line:formatage():match(">([%d%a%p]*)</")
		elseif i==168 then
			Histo_Min=line:formatage():match(">([%d%a%p]*)</")
		--Lever coucher soleil
		elseif i==185 then
			LeverSoleil,LeverSoleilH,LeverSoleilM=line:match(">((%d*):(%d*))<")
		elseif i==188 then
			Culmine, CulmineH, CulmineM=line:match(">((%d*):(%d*))<")
		elseif i==191 then
			CoucherSoleil,CoucherSoleilH,CoucherSoleilM=line:match(">((%d*):(%d*))<")
		end
	end
	f:close()

	Datej = os.time{year=annee, month=mois, day=jour, hour=0}

	return { Icone=iconej, CondMeteo=Descriptifj, Temp=Tmax, TempRes=Tmaxr, ProbPrec=ProbPrecj, VentDir=Vdirj, VentForce=Vforcej, VentRafales=Vrafalesj, Uv=UV, ProbOrage=ProbOragesj, NivPrec=Precj, QPluie=Pluiej, QNeige=Neigej, EVerglas=Verglasj }, { Icone=iconen, CondMeteo=Descriptifn, Temp=Tmin, TempRes=Tminr, ProbPrec=ProbPrecn, VentDir=Vdirn, VentForce=Vforcen, VentRafales=Vrafalesn, ProbOrage=ProbOragesn, NivPrec=Precn, QPluie=Pluien, QNeige=Neigen, EVerglas=Verglasn }, { Jour=Datej, LeverSoleil=LeverSoleil, LeverSoleilH=LeverSoleilH, LeverSoleilM=LeverSoleilM, CoucherSoleil=CoucherSoleil, CoucherSoleilH=CoucherSoleilH, CoucherSoleilM=CoucherSoleilM, Histo_Max=Histo_Max, Histo_Min=Histo_Min }

end


--Infos condition courante
function current(web)
	local f, i, line, ville, lat, lon, icone, cur, temp, tempres, directvent, vitessevent, Humidite, Pression, Couvnuageuse, UV, Pointderosee, Precipitations, Visibilite, jour, mois, annee, Date, Dbg

	f=assert(io.popen("curl --max-time 60 --retry 3 --silent '"..web.."' | sed -e 's/%//g' -e '/var apgWxInfoObj/,/\"detail-now\"/d' | grep -A60 'meta'"))
	line=f:read()
	i=0
	for line in f:lines() do
		i=i+1
		if i==2 then
			ville,lat,lon=line:match("city: '([%w%s%-]*)'[%s%w%p]*lat: '([%d%p]*)'[%s%w%p]*lon: '([%d%p]*)'")
		elseif i==5 then
			icone=line:match("icon i%p(%a*)\">")
		elseif i==6 then
			cur, temp, tempres=line:formatage():match("cond\">([%a%p%s"..pat.."]*)</[%a%p%s]*temp\">([%p%d]*)<s[%w%p%s]*; ([%p%d]*)<s")
		elseif i==22 then
			directvent=line:gsub("W","O"):match("'(%a*)'")
		elseif i==23 then
			vitessevent=line:match("'(%d*)[%a%p]*'")
		elseif i==34 then
			Humidite=line:match("g>(%d*)</s")
		elseif i==35 then
			Pression=line:match("g>(%d*).")
		elseif i==36 then
			Couvnuageuse=line:match("g>(%d*)</s")
		elseif i==37 then
			UV=line:match("g>(%d*)</s")
		elseif i==38 then
			Pointderosee=line:match("g>([%p%d]*)&#176")
		elseif i==39 then
			Precipitations=line:formatage():match("g>(%d*) ")
		elseif i==40 then
			Visibilite=line:match("g>(%d*) ")
		elseif i==57 then
			jour, mois, annee=line:match(">[%a%d%p%s]* (%d*)/(%d*)/(%d*)<")
		end
	end
	f:close()

	Date = os.time{year=annee, month=mois, day=jour, hour=0}

	return {Icone=icone, Cond=cur, Temp=temp, Tempr=tempres, VentDir=directvent, VentForce=vitessevent, Humidite=Humidite, Pression=Pression, CouvNuage=Couvnuageuse, Uv=UV, PointRosee=Pointderosee, QPrec=Precipitations, Visibilite=Visibilite, Date=Date, Ville=ville, latitude=lat, longitude=lon}

end


--Infos lunaison
function lunaison(r)
	local s, web, Lune
	
	web="http://www.calendrier-lunaire.net/"

	f=assert(io.popen("curl --max-time 60 --retry 3 --silent '"..web.."' | grep -A53 'ephemerides\"' | sed 's/%//g'"))
	line=f:read()
	i=0
	for line in f:lines() do
		i=i+1
		if i==3 then
			icone=line:match("src=\"([%w%p]*)\"")
		elseif i==7 then
			ephemerides1, ephemerides2=line:formatage():match(">(%a*)</span> (%a*)<")
		elseif i==11 then
			Visibilite=line:match("\">([%d%p]*) <")
		elseif i==12 then
			Phases, Phases1, Phases2=line:formatage():match("\">(([%a%p%d"..pat.."]*),%s*([%a%p%d"..pat.."]*))</s")
		elseif i==13 then
			Noeud_lunaire=line:match("\">([%a%d%p%s]*)</s")
		elseif i==14 then
			Apogee=line:match("\">([%a%d%p%s]*)</s")
		elseif i==15 then
			Perigee=line:match("\">([%a%d%p%s]*)</s")
		elseif i==16 then
			Distance=line:match("\">(%d*) %a*</s")
		elseif i==18 then
			Age=line:match("\">([%a%d%s]*)</")
		elseif i==19 then
			Lever_LuneHeure, Lever_LuneMinute, Coucher_LuneHeure, Coucher_LuneMinute=line:match("\">([%d%p]*):([%d%p]*)</span>[%a%p%s]*;\">([%d%p]*):([%d%p]*)</")
		elseif i==48 then
			Eclipse_partielle=line:match("\">([%w%s]* <br /> [%d%p]*)</a>")
		elseif i==49 then
			Eclipse_total=line:match("\">([%w%s]* <br /> [%d%p]*)</a>")
		end
	end
	f:close()	if Noeud_lunaire:match("(%d+)") ~= nil then Noeud_lunaire = Noeud_lunaire:match("(%d+)") end

	if Apogee:match("(%d+)") ~= nil then Apogee = Apogee:match("(%d+)") end
	if Perigee:match("(%d+)") ~= nil then Perigee = Perigee:match("(%d+)") end
	ephemerides = ephemerides1.." "..ephemerides2	
	Eclipse_partielle = datelune(Eclipse_partielle)
	Eclipse_total = datelune(Eclipse_total)
	s = "${exec wget --tries=3 -q -O "..r.."/lune.png http://www.calendrier-lunaire.net/"..icone.."}"
	conky_parse( s )
	conky_parse( "${exec convert "..r.."/lune.png -transparent '#091a2a' "..r.."/lune.png}" )

end

function datelune(d)
	local j, m, a, h, min = d:gsub("Janvier", "01"):gsub("Février", "02"):gsub("Mars", "03"):gsub("Avril", "04"):gsub("Mais", "05"):gsub("Juin", "06"):gsub("Juillet", "07"):gsub("Août", "08"):gsub("septembre", "09"):gsub("Octobre", "10"):gsub("Novembre", "11"):gsub("Décembre", "12"):match("(%d+) (%d+) (%d+) <br /> (%d+):(%d+)")
	d = os.time{year=a, month=m, day=j, hour=h, min=min}

	return d
	
end


--Détermine icône vent
function direction_vent(i)

	if i == "Calme" then
		return 0
	elseif i == "N" then
		return 10
	elseif i == "NNE" then
		return 11
	elseif i == "NE" then
		return 12
	elseif i == "ENE" then
		return 13
	elseif i == "E" then
		return 14
	elseif i == "ESE" then
		return 15
	elseif i == "SE" then
		return 16
	elseif i == "SSE" then
		return 17
	elseif i == "S" then
		return 2
	elseif i == "SSO" then
		return 3
	elseif i == "SO" then
		return 4
	elseif i == "OSO" then
		return 5
	elseif i == "O" then
		return 6
	elseif i == "ONO" then
		return 7
	elseif i == "NO" then
		return 8
	elseif i == "NNO" then
		return 9
	else
		return 1
	end

end


--Renvoi vent direction pleine en toute lettre
function vent_plein(d)

	local b

	if string.len(d) == 1 then
		if string.find(d, "N") ~= nil then 
			b = string.gsub(d, "N", "Nord") 
		elseif string.find(d, "S") ~= nil then 
			b = string.gsub(d, "S", "Sud") 
		elseif string.find(d, "E") ~= nil then
			b = string.gsub(d, "E", "Est") 
		elseif string.find(d, "O") ~= nil then
			b = string.gsub(d, "O", "Ouest")
		end
	else
		b = d
	end

	return b

end


--Détermine l'icône vent en tenant conte de la force du vent
function icone_vent(d, fo)

	local f = tonumber(fo)
	local n

	if f <= Palier then
		n = d
	elseif f <= Palier*2 then
		n = d + 17
	elseif f <= Palier*3 then
		n = d + 34
	elseif f >= (Palier*3)+1 then
		n = d + 51
	end

	if n <= 9 then 
		n = "0"..n
	end

	return n..".png"

end


--Découpage descriptions sur deux lignes
function decoupage(d)

	local l1, l2, n, p1, p2, n1, n2, l1b, l2b, dm, dp
	if string.len(d) >= 22 then
		n = math.ceil(string.len(d)/2)
		dm = string.sub(d, 1, n)
		dp = string.sub(d, n)
		p1 = string.find(dp, " ")
		local b = 1
		p2 = nil
		if string.find(dm, ' ') then
			while p2 == nil do
				b = b+1
				p2 = string.find(dm, ' ', -b)
			end
		end
		if p1 ~= nil then p1 = n+p1-1 end
		
		if p1 == nil and p2 == nil then p1 = string.find(d, " ") end
		if p2 == nil then p2 = p1 end
		if p1 == nil then p1 = p2 end
		if p1-n >= n-p2 then
			l1b = string.sub(d, 1, p2-1)
			l2b = string.sub(d, p2+1)
		else
			l1b = string.sub(d, 1, p1-1)
			l2b = string.sub(d, p1+1)
		end
	else
		l1b = d
		l2b = " "
	end
	n1 = math.ceil((22 - string.len(l1b))/2)
	l1 = string.rep(" ", n1)..l1b 
	n2 = math.ceil((22 - string.len(l2b))/2)
	l2 = string.rep(" ", n2)..l2b 

--Retour information avec espaces ligne 1 & 2 et sans espaces ligne 1 & 2
	return l1, l2, l1b, l2b

end


--Information Matin
function Prevision_Matin(a, j, x)
	local i = j+x
	conditionMatin[j] = Prevision_Quart_T(a..'?day='..i)
	
	local t = {"Icone", "CondMeteo", "TempMax", "TempMin", "TempMaxR", "TempMinR", "VentDir", "VentForce", "Humidite", "CouvNuage", "PointRosee", "ProbPrec", "Visibilite", "QNeige", "QPluie"}
		
	local donee = {}
	donee = conditionMatin[j]
	for i = 1,15 do
		if donee[t[i]] == nil then
			local file = assert(io.open(repsauv.."/Debug", "a+"))
			file:write ("\n", Debug, "conditionMatin ", t[i]," jour n° ", j)
			donee[t[i]]="N/A"
		end
	end
	conditionMatin[j]=donee
	
	if conditionMatin[j].VentDir == "CLM" then
		conditionMatin[j].VentDir = "Calme"
		conditionMatin[j].VentForce = "0"
	end
	conditionMatin[j].VentIcone = icone_vent(direction_vent(conditionMatin[j].VentDir), conditionMatin[j].VentForce)
	conditionMatin[j].VentP = vent_plein(conditionMatin[j].VentDir)
	conditionMatin[j].CondMeteo1, conditionMatin[j].CondMeteo2, conditionMatin[j].CondMeteo1se, conditionMatin[j].CondMeteo2se = decoupage(conditionMatin[j].CondMeteo)
	print("Matin "..j.." Ok")
end


--Information Après-midi
function Prevision_AM(a, j, x)
	local i = j+x
	conditionAM[j] = Prevision_Quart_T(a..'?day='..i)
	
	local t = {"Icone", "CondMeteo", "TempMax", "TempMin", "TempMaxR", "TempMinR", "VentDir", "VentForce", "Humidite", "CouvNuage", "PointRosee", "ProbPrec", "Visibilite", "QNeige", "QPluie"}
		
	local donee = {}
	donee = conditionAM[j]
	for i = 1,15 do
		if donee[t[i]] == nil then
			local file = assert(io.open(repsauv.."/Debug", "a+"))
			file:write ("\n", Debug, "conditionAM ", t[i]," jour n° ", j)
			donee[t[i]]="N/A"
		end
	end
	conditionAM[j]=donee

	if conditionAM[j].VentDir == "CLM" then
		conditionAM[j].VentDir = "Calme"
		conditionAM[j].VentForce = "0"
	end
	conditionAM[j].VentIcone = icone_vent(direction_vent(conditionAM[j].VentDir), conditionAM[j].VentForce)
	conditionAM[j].VentP = vent_plein(conditionAM[j].VentDir)
	conditionAM[j].CondMeteo1, conditionAM[j].CondMeteo2, conditionAM[j].CondMeteo1se, conditionAM[j].CondMeteo2se = decoupage(conditionAM[j].CondMeteo)
	print("Apres Midi "..j.." Ok")
end


--Information Soirée
function Prevision_Soiree(a, j, x)
	local i = j+x
	conditionSoiree[j] = Prevision_Quart_T(a..'?day='..i)
	
	local t = {"Icone", "CondMeteo", "TempMax", "TempMin", "TempMaxR", "TempMinR", "VentDir", "VentForce", "Humidite", "CouvNuage", "PointRosee", "ProbPrec", "Visibilite", "QNeige", "QPluie"}
		
	local donee = {}
	donee = conditionSoiree[j]
	for i = 1,15 do
		if donee[t[i]] == nil then
			local file = assert(io.open(repsauv.."/Debug", "a+"))
			file:write ("\n", Debug, "conditionSoiree ", t[i]," jour n° ", j)
			donee[t[i]]="N/A"
		end
	end
	conditionSoiree[j]=donee

	if conditionSoiree[j].VentDir == "CLM" then
		conditionSoiree[j].VentDir = "Calme"
		conditionSoiree[j].VentForce = "0"
	end
	conditionSoiree[j].VentIcone = icone_vent(direction_vent(conditionSoiree[j].VentDir), conditionSoiree[j].VentForce)
	conditionSoiree[j].VentP = vent_plein(conditionSoiree[j].VentDir)
	conditionSoiree[j].CondMeteo1, conditionSoiree[j].CondMeteo2, conditionSoiree[j].CondMeteo1se, conditionSoiree[j].CondMeteo2se = decoupage(conditionSoiree[j].CondMeteo)
	print("Soiree "..j.." Ok")
end


--Information Nuit
function Prevision_Nuit(a, j, x)
	local i = j+x
	conditionNoct[j] = Prevision_Quart_T(a..'?day='..i)
	
	local t = {"Icone", "CondMeteo", "TempMax", "TempMin", "TempMaxR", "TempMinR", "VentDir", "VentForce", "Humidite", "CouvNuage", "PointRosee", "ProbPrec", "Visibilite", "QNeige", "QPluie"}
		
	local donee = {}
	donee = conditionNoct[j]
	for i = 1,15 do
		if donee[t[i]] == nil then
			local file = assert(io.open(repsauv.."/Debug", "a+"))
			file:write ("\n", Debug, "conditionNoct ", t[i]," jour n° ", j)
			donee[t[i]]="N/A"
		end
	end
	conditionNoct[j]=donee

	if conditionNoct[j].VentDir == "CLM" then
		conditionNoct[j].VentDir = "Calme"
		conditionNoct[j].VentForce = "0"
	end
	conditionNoct[j].VentIcone = icone_vent(direction_vent(conditionNoct[j].VentDir), conditionNoct[j].VentForce)
	conditionNoct[j].VentP = vent_plein(conditionNoct[j].VentDir)
	conditionNoct[j].CondMeteo1, conditionNoct[j].CondMeteo2, conditionNoct[j].CondMeteo1se, conditionNoct[j].CondMeteo2se = decoupage(conditionNoct[j].CondMeteo)
	print("Nuit "..j.." Ok")
end

--Information Huit heures
function Prevision_Huit_Heures(a)
	Huit_Heures(a)
	
	
	print("Huit prochaines heures Ok")

end 

--Traitement infos prévisions (15 jours max) jour 1 = aujourd'hui
function jour_n(a, j, x)

	local i = j+x
	conditionJour[j], conditionNuit[j], InfoJour[j] = prevision(a..'?day='..i)

	local t = { "Icone", "CondMeteo", "Temp", "TempRes", "ProbPrec", "VentDir", "VentForce", "VentRafales", "Uv", "ProbOrage", "NivPrec", "QPluie", "QNeige", "EVerglas" }
	local donee = {}
	donee = conditionJour[j]
	for i = 1,14 do
		if donee[t[i]] == nil then
			local file = assert(io.open(repsauv.."/Debug", "a+"))
			file:write ("\n", Debug, "conditionJour ", t[i]," jour n° ", j)
			donee[t[i]]="N/A"
		end
	end
	conditionJour[j]=donee
	
	local t = { "Icone", "CondMeteo", "Temp", "TempRes", "ProbPrec", "VentDir", "VentForce", "VentRafales", "ProbOrage", "NivPrec", "QPluie", "QNeige", "EVerglas" }
	donee = conditionNuit[j]
	for i = 1,13 do
		if donee[t[i]] == nil then
			local file = assert(io.open(repsauv.."/Debug", "a+"))
			file:write ("\n", Debug, "conditionNuit ", t[i]," jour n° ", j)
			donee[t[i]]="N/A"
		end
	end
	conditionNuit[j]=donee
	
	local t = { "Jour", "LeverSoleil", "LeverSoleilH", "LeverSoleilM", "CoucherSoleil", "CoucherSoleilH", "CoucherSoleilM", "Histo_Max", "Histo_Min" }
	donee = InfoJour[j]
	for i = 1,9 do
		if donee[t[i]] == nil then
			local file = assert(io.open(repsauv.."/Debug", "a+"))
			file:write ("\n", Debug, "InfoJour ", t[i]," jour n° ", j)
			donee[t[i]]="N/A"
		end
	end
	InfoJour[j]=donee

	if conditionJour[j].VentDir == "CLM" then
		conditionJour[j].VentDir = "Calme"
		conditionJour[j].VentForce = "0"
	end
	conditionJour[j].VentIcone = icone_vent(direction_vent(conditionJour[j].VentDir), conditionJour[j].VentForce)
	conditionJour[j].RafalesIcone = icone_vent(direction_vent(conditionJour[j].VentDir), conditionJour[j].VentRafales)
	conditionJour[j].VentP = vent_plein(conditionJour[j].VentDir)
	conditionJour[j].CondMeteo1, conditionJour[j].CondMeteo2, conditionJour[j].CondMeteo1se, conditionJour[j].CondMeteo2se = decoupage(conditionJour[j].CondMeteo)

	if conditionNuit[j].VentDir == "Calme" then
		conditionNuit[j].VentForce = "0"
	end
	conditionNuit[j].VentIcone = icone_vent(direction_vent(conditionNuit[j].VentDir), conditionNuit[j].VentForce)
	conditionNuit[j].RafalesIcone = icone_vent(direction_vent(conditionNuit[j].VentDir), conditionNuit[j].VentRafales)
	conditionNuit[j].VentP = vent_plein(conditionNuit[j].VentDir)
	conditionNuit[j].CondMeteo1, conditionNuit[j].CondMeteo2, conditionNuit[j].CondMeteo1se, conditionNuit[j].CondMeteo2se = decoupage(conditionNuit[j].CondMeteo)
	print("Prévision "..j.." Ok")

end

--initialisation paramètres
function conky_init(cfg)

	local cmd1, pos1
	local home = os.getenv("HOME")
	cfg = string.gsub(cfg, "~", home)
	cfg = string.gsub(cfg, "$HOME", home)
	fichier_init = cfg
	
	local file = assert(io.open(cfg, "rb") )
	local line = file:read()
	for line in file:lines() do
		pos1 = string.find(line, '#')
		if pos1 ~= nil then
			line = string.sub(line, 1, pos1-1)
		end
		pos1 = string.find(line, '=')
		if string.find(line, 'repsauv=') ~= nil then
			repsauv = string.sub(line, pos1+1)
		elseif string.find(line, 'TempShell=') ~= nil then
			r = string.sub(line, pos1+1)
		elseif string.find(line, 'web=') ~= nil then
			cmd1 = string.sub(line, pos1+1)
		elseif string.find(line, 'periode=') ~= nil then
			jours = string.sub(line, pos1+1)
		elseif string.find(line, 'matinée=') ~= nil then
			matin = string.sub(line, pos1+1)
		elseif string.find(line, 'am=') ~= nil then
			apresmidi = string.sub(line, pos1+1)
		elseif string.find(line, 'soiree=') ~= nil then
			soiree = string.sub(line, pos1+1)
		elseif string.find(line, 'nuit=') ~= nil then
			nuit = string.sub(line, pos1+1)
		elseif string.find(line, 'Prev8heures=') ~= nil then
			huit = string.sub(line, pos1+1)
		elseif string.find(line, 'Palier=') ~= nil then
			Palier = tonumber(string.sub(line, pos1+1))
		elseif string.find(line, 'update=') ~= nil then
			delais = string.sub(line, pos1+1)
		end
	end
	io.close(file)	
	r = r:gsub("~", home):gsub("$HOME", home)
	repsauv = repsauv:gsub("~", home):gsub("$HOME", home)
	VilleAdresse=string.match(cmd1, ".com/%a*/%a*/([%w%p%s]*)/%d*/%a*")
	
print("", "version = "..Version.."\n", "web = "..cmd1.."\n", "Pévision Nb jours = "..jours.."\n", "Pévision Matin = "..matin.."\n", "Pévision Après Midi = "..apresmidi.."\n", "Pévision Soirée = "..soiree.."\n", "Pévision Nuit = "..nuit.."\n","Prévision sur 8 heures = "..huit.."\n", "Délais = "..delais.."\n", "Chemin de travail = "..r.."\n","Palier = "..Palier.."\n", "Chemin de sauvegarde = "..repsauv)

--Création répertoire de travail
	l = cmd1:match("/(%d+)")
	if string.find(cmd1, 'forecast') ~= nil then
		pos1 = string.find(cmd1, '/weather')
		cmd = string.sub(cmd1, 0, pos1-1)
	else
		pos1 = string.find(cmd1, '/current')
		cmd = string.sub(cmd1, 0, pos1-1)
	end

	local bar, bar1
	local l1 = string.gsub(cmd, '/'..l, "" )
	local b = 1
	while bar1 == nil do
		b = b+1
		bar1 = string.find(l1, '/', -b)
	end
	l1 = string.sub(l1, bar1+1)
	Rep = r.."/"..l1.."/"..l
	if os.execute("cd "..Rep) ~= 0 then
		os.execute("mkdir "..r.."/"..l1.."&& mkdir "..Rep)
	end
	
--initialisation compteurs
	t = os.time()-delais
	tc = t
	start = 1
	
--Vérification existence repsauv

	if os.execute("cd "..repsauv) ~= 0 then
--création de repsauv si inexistant
		local pos1 = 1
		local chemin = nil
		local cheminsup = nil
		while pos1 ~= nil do
			pos1 = string.find(repsauv, '/', pos1+1)
			if pos1 ~= nil then
				cheminsup = string.sub(repsauv, pos1)
				chemin = string.gsub(repsauv, cheminsup, "")
			else
				cheminsup = ""
				chemin = repsauv
			end
			if os.execute("cd "..chemin) ~= 0 then
				os.execute("mkdir "..chemin)
			end
		end
	end
	
	if not existe(repsauv.."/CondCour") then
		conky_Meteo_enligne()
	end
	
	MAJ ="0"
	
end

--Mise à jour météo
function conky_Meteo_Maj()

	local s = '${if_gw}${lua conky_Meteo_enligne}${else}${lua conky_Meteo_horsligne}${endif}'
	conky_parse( s )
	return " "
end

--hors ligne récupération de données
function conky_Meteo_horsligne()

	if dermodif == nil or dermodif ~= conky_parse("${exec date -r "..repsauv.."/CondCour '+%s'}") then
		dermodif=conky_parse("${exec date -r "..repsauv.."/CondCour '+%s'}")
--Récupération dernière condition courante
		local file = assert(io.open(repsauv.."/CondCour", "r") )
		local line = file:read()
		local i = 0
		local donee = {}
		for line in file:lines() do
			i = i+1
			donee[i] = line
		end
		local t = {"Icone", "Tempr", "Temp", "Cond", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "VentDir", "VentPlein", "VentForce", "VentIcone", "Humidite", "PointRosee", "Pression", "Visibilite", "Date", "Ville", "CouvNuage", "Uv", "QPrec", "latitude", "longitude"}
		for i = 1,23 do
			conditioncourante[t[i]] = donee[i]
		end
		time = donee[24]
		io.close(file)
		
--Récupération prévision
		
		for j = 1,jours do
			local file = assert(io.open(repsauv.."/prevision"..j, "r"))
			local line = file:read()
			local i = 0
			local donee = {}
			for line in file:lines() do
				i = i+1
				donee[i] = line
			end
			local info = {}
			local t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "Temp", "TempRes", "ProbPrec", "VentDir", "VentP", "VentForce", "VentRafales", "Uv", "ProbOrage", "NivPrec", "QPluie", "QNeige", "Icone", "VentIcone", "RafalesIcone", "EVerglas"}
			conditionJour[j] = {}
			for i = 1, 21 do
				info[t[i]] = donee[i]
			end
			conditionJour[j] = info
			local info1 = {}
			t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "Temp", "TempRes", "ProbPrec", "VentDir", "VentP", "VentForce", "VentRafales", "ProbOrage", "NivPrec", "QPluie", "QNeige", "Icone", "VentIcone", "RafalesIcone", "EVerglas"}
			conditionNuit[j] = {}
			for i = 22, 41 do
				info1[t[i-21]] = donee[i]
			end
			conditionNuit[j] = info1
			local info2 = {}
			t= {"Jour", "LeverSoleilH", "LeverSoleilM", "CoucherSoleilH", "CoucherSoleilM", "Histo_Max", "Histo_Min"}
			InfoJour[j] = {}
			for i = 42, 48 do
				info2[t[i-41]] = donee[i]
			end
			InfoJour[j] = info2
			io.close(file)
			
			if matin == "oui" then
				local file = assert(io.open(repsauv.."/matin"..j, "r"))
				local line = file:read()
				local i = 0
				local donee = {}
				for line in file:lines() do
					i = i+1
					donee[i] = line
				end
				local t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "TempMax", "TempMin", "TempMaxR", "TempMinR", "ProbPrec", "VentDir", "VentP", "VentForce", "QPluie", "QNeige", "Humidite", "CouvNuage", "PointRosee", "Visibilite", "Icone", "VentIcone"}
				conditionMatin[j] = {}
				local info3 = {}
				for i = 1, 21 do
					info3[t[i]] = donee[i]
				end
				conditionMatin[j] = info3
				io.close(file)
			end

			if apresmidi == "oui" then
				local file = assert(io.open(repsauv.."/ApresMidi"..j, "r"))
				local line = file:read()
				local i = 0
				local donee = {}
				for line in file:lines() do
					i = i+1
					donee[i] = line
				end
				local t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "TempMax", "TempMin", "TempMaxR", "TempMinR", "ProbPrec", "VentDir", "VentP", "VentForce", "QPluie", "QNeige", "Humidite", "CouvNuage", "PointRosee", "Visibilite", "Icone", "VentIcone"}
				conditionAM[j] = {}
				local info3 = {}
				for i = 1, 21 do
					info3[t[i]] = donee[i]
				end
				conditionAM[j] = info3
				io.close(file)
			end

			if soiree == "oui" then
				local file = assert(io.open(repsauv.."/Soiree"..j, "r"))
				local line = file:read()
				local i = 0
				local donee = {}
				for line in file:lines() do
					i = i+1
					donee[i] = line
				end
				local t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "TempMax", "TempMin", "TempMaxR", "TempMinR", "ProbPrec", "VentDir", "VentP", "VentForce", "QPluie", "QNeige", "Humidite", "CouvNuage", "PointRosee", "Visibilite", "Icone", "VentIcone"}
				conditionSoiree[j] = {}
				local info3 = {}
				for i = 1, 21 do
					info3[t[i]] = donee[i]
				end
				conditionSoiree[j] = info3
				io.close(file)
			end

			if nuit == "oui" then
				local file = assert(io.open(repsauv.."/Nuit"..j, "r"))
				local line = file:read()
				local i = 0
				local donee = {}
				for line in file:lines() do
					i = i+1
					donee[i] = line
				end
				local t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "TempMax", "TempMin", "TempMaxR", "TempMinR", "ProbPrec", "VentDir", "VentP", "VentForce", "QPluie", "QNeige", "Humidite", "CouvNuage", "PointRosee", "Visibilite", "Icone", "VentIcone"}
				conditionNoct[j] = {}
				local info3 = {}
				for i = 1, 21 do
					info3[t[i]] = donee[i]
				end
				conditionNoct[j] = info3
				io.close(file)
			end
		end
		
		if huit == "oui" then
			for j = 1,8 do
				local file = assert(io.open(repsauv.."/huitHeures"..j, "r"))
				local line = file:read()
				local i = 0
				local donee = {}
				for line in file:lines() do
					i = i+1
					donee[i] = line
				end
				local t = {"Heure", "Icone", "TempMax", "TempMaxR", "VentDir", "VentForce", "Humidite", "CouvNuage", "PointRosee", "UV", "Pluie", "Neige", "Verglas", "VentP", "VentIcone"}
				huitHeures[j] = {}
				local info3 = {}
				for i = 1, 15 do
					info3[t[i]] = donee[i]
				end
				huitHeures[j] = info3
				io.close(file)
			end
		end			


--Récupération lunaison
		local file = assert(io.open(repsauv.."/lunaison", "r"))
		local line = file:read()
		local i = 0
		local donee = {}
		for line in file:lines() do
			i = i+1
			donee[i] = line
		end
		ephemerides = donee[1]
		ephemerides1 = donee[2]
		ephemerides2 = donee[3]
		Visibilite = donee[4]
		Phases = donee[5]
		Phases1 = donee[6]
		Phases2 = donee[7]
		Noeud_lunaire = donee[8]
		Apogee = donee[9]
		Perigee = donee[10]
		Distance = donee[11]
		Age = donee[12]
		Lever_LuneHeure = donee[13]
		Lever_LuneMinute = donee[14]
		Coucher_LuneHeure = donee[15]
		Coucher_LuneMinute = donee[16]
		Eclipse_partielle = donee[17]
		Eclipse_total = donee[18]
		io.close(file)

		
		if MAJ == "0" then
			MAJ = "1"
		else
			MAJ = "0"
		end

		
		collectgarbage()
	end
	return ""
end

--en ligne mise à jour
function conky_Meteo_enligne()
	local i
	if tonumber(delais) <= os.difftime(os.time(), t) then
		t = os.time()
		time = t

			conditioncourante.Date = nil
			while conditioncourante.Date == nil do

				conditioncourante = current(cmd..'/current-weather/'..l)
				
					local y = {"Icone", "Cond", "Temp", "Tempr", "VentDir", "VentForce", "Humidite", "Pression", "CouvNuage", "Uv", "PointRosee", "QPrec", "Visibilite", "Ville", "latitude","Date", "longitude"}
					local donee = conditioncourante
					
					for i = 1,17 do
						if donee[y[i]] == nil then
							local file = assert(io.open(repsauv.."/Debug", "a+"))
							file:write ("\n", Debug, "conditioncourante ", y[i])
							donee[y[i]]="N/A"
						end
					end
					conditioncourante=donee

				if conditioncourante.VentDir == "CLM" then
					conditioncourante.VentDir = "Calme"
					conditioncourante.VentForce = "0"
				end
				if conditioncourante.Ville == "" then
					conditioncourante.Ville = VilleAdresse
				end
				conditioncourante.VentIcone = icone_vent(direction_vent(conditioncourante.VentDir), conditioncourante.VentForce)
				conditioncourante.VentPlein = vent_plein(conditioncourante.VentDir)
				conditioncourante.CondMeteo1, conditioncourante.CondMeteo2, conditioncourante.CondMeteo1se, conditioncourante.CondMeteo2se = decoupage(conditioncourante.Cond)
				print("Condition courante Ok")

				if 14400 <= os.difftime(os.time(), tc) or start == 1 then
					start = 2
					tc = t

					local addr_week = cmd..'/daily-weather-forecast/'..l
					jour_n(addr_week, 1, 0)

					if conditioncourante.Date == InfoJour[1].Jour then
						for i = 2,jours do jour_n(addr_week, i, 0) end
					else
						for i = 1,jours do jour_n(addr_week, i, 1) end
					end

--infos matin si demandée
					if matin == "oui" then
						addr_week = cmd..'/morning-weather-forecast/'..l

						if conditioncourante.Date == InfoJour[1].Jour then
							for i = 1,jours do Prevision_Matin(addr_week, i, 0) end
						else
							for i = 1,jours do Prevision_Matin(addr_week, i, 1) end
						end
					end

--infos Après Midi si demandée
					if apresmidi == "oui" then
						addr_week = cmd..'/afternoon-weather-forecast/'..l

						if conditioncourante.Date == InfoJour[1].Jour then
							for i = 1,jours do Prevision_AM(addr_week, i, 0) end
						else
							for i = 1,jours do Prevision_AM(addr_week, i, 1) end
						end
					end

--infos Soirée si demandée
					if soiree == "oui" then
						addr_week = cmd..'/evening-weather-forecast/'..l

						if conditioncourante.Date == InfoJour[1].Jour then
							for i = 1,jours do Prevision_Soiree(addr_week, i, 0) end
						else
							for i = 1,jours do Prevision_Soiree(addr_week, i, 1) end
						end
					end

--infos Nuit si demandée
					if nuit == "oui" then
						addr_week = cmd..'/overnight-weather-forecast/'..l

						if conditioncourante.Date == InfoJour[1].Jour then
							for i = 1,jours do Prevision_Nuit(addr_week, i, 0) end
						else
							for i = 1,jours do Prevision_Nuit(addr_week, i, 1) end
						end
					end
					
				end -- fin mise à jour compète
			end
			
			if huit == "oui" then
				addr_week = cmd..'/hourly-weather-forecast/'..l
				Prevision_Huit_Heures(addr_week)
			end
			
			lunaison(r)
			print("lunaison Ok")
--lancement sauvegarde
		if repsauv ~= nil then
			sauvegarde()
		end
		
		
		if MAJ == "0" then
			MAJ = "1"
		else
			MAJ = "0"
		end

		
		collectgarbage()
		print(os.difftime(os.time(), t).." seconde(s)")
	end
	return " "
end


--Retour d'information météo

--Condition courrante

function conky_Meteo_IconeM(r, p, s, f)
	if os.date("%H%M", os.time()) <= InfoJour[1].CoucherSoleilH..InfoJour[1].CoucherSoleilM and os.date("%H%M", os.time()) >= InfoJour[1].LeverSoleilH..InfoJour[1].LeverSoleilM then
		return "${image "..r.."/jour/"..conditioncourante.Icone..".png -p "..p.." -s "..s.." -f "..f.."}"
	else
		return "${image "..r.."/nuit/"..conditioncourante.Icone..".png -p "..p.." -s "..s.." -f "..f.."}"
	end
end

function conky_Meteo_TempRes()
	return conditioncourante.Tempr
end

function conky_Meteo_TempAct()
	return conditioncourante.Temp
end

function conky_Meteo_CondMeteo()
	return conditioncourante.Cond
end

function conky_Meteo_CondMeteo1()
	return conditioncourante.CondMeteo1
end

function conky_Meteo_CondMeteo2()
	return conditioncourante.CondMeteo2
end

function conky_Meteo_CondMeteo1se()
	return conditioncourante.CondMeteo1se
end

function conky_Meteo_CondMeteo2se()
	return conditioncourante.CondMeteo2se
end

function conky_Meteo_VentDir()
	return conditioncourante.VentDir
end

function conky_Meteo_VentDirP()
	return conditioncourante.VentPlein
end

function conky_Meteo_VentForce()
	return conditioncourante.VentForce
end

function conky_Meteo_IconeV(r, p, s, f)
	return "${image "..r.."/"..conditioncourante.VentIcone.." -p "..p.." -s "..s.." -f "..f.."}"
end

function conky_Meteo_Humidite()
	return tonumber(conditioncourante.Humidite)
end

function conky_Meteo_Rose()
	return tonumber(conditioncourante.PointRosee)
end

function conky_Meteo_Pression()
	return tonumber(conditioncourante.Pression)
end

function conky_Meteo_Visibilite()
	return tonumber(conditioncourante.Visibilite)
end

function conky_Meteo_Date(format)
	format = string.gsub(format, "_", " ")
	return trad_date(os.date(format, conditioncourante.Date))
end

function conky_Meteo_Ville()
	return conditioncourante.Ville
end

function conky_Meteo_CouvNuage()
	return tonumber(conditioncourante.CouvNuage)
end

function conky_Meteo_Uv()
	return conditioncourante.Uv
end

function conky_Meteo_QPrec()
	return conditioncourante.QPrec
end

function conky_Meteo_latitude()
	return conditioncourante.latitude
end

function conky_Meteo_longitude()
	return conditioncourante.longitude
end

function conky_Meteo_Heure()
	return os.date("%H", time)
end

function conky_Meteo_Minute()
	return os.date("%M", time)
end


--Prévision Météo

--Jour

function conky_Meteo_Jour_CondMeteo(j)
	return conditionJour[tonumber(j)].CondMeteo
end

function conky_Meteo_Jour_CondMeteo1(j)
	return conditionJour[tonumber(j)].CondMeteo1
end

function conky_Meteo_Jour_CondMeteo2(j)
	return conditionJour[tonumber(j)].CondMeteo2
end

function conky_Meteo_Jour_CondMeteo1se(j)
	return conditionJour[tonumber(j)].CondMeteo1se
end

function conky_Meteo_Jour_CondMeteo2se(j)
	return conditionJour[tonumber(j)].CondMeteo2se
end

function conky_Meteo_Jour_Temp(j)
	return tonumber(conditionJour[tonumber(j)].Temp)
end

function conky_Meteo_Jour_TempRes(j)
	return tonumber(conditionJour[tonumber(j)].TempRes)
end

function conky_Meteo_Jour_ProbPrec(j)
	return tonumber(conditionJour[tonumber(j)].ProbPrec)
end

function conky_Meteo_Jour_VentDir(j)
	return conditionJour[tonumber(j)].VentDir
end

function conky_Meteo_Jour_VentDirP(j)
	return conditionJour[tonumber(j)].VentP
end

function conky_Meteo_Jour_VentForce(j)
	return tonumber(conditionJour[tonumber(j)].VentForce)
end

function conky_Meteo_Jour_VentRafales(j)
	return tonumber(conditionJour[tonumber(j)].VentRafales)
end

function conky_Meteo_Jour_Uv(j)
	return tonumber(conditionJour[tonumber(j)].Uv)
end

function conky_Meteo_Jour_ProbOrage(j)
	return tonumber(conditionJour[tonumber(j)].ProbOrage)
end

function conky_Meteo_Jour_NivPrec(j)
	return tonumber(conditionJour[tonumber(j)].NivPrec)
end

function conky_Meteo_Jour_QPluie(j)
	return tonumber(conditionJour[tonumber(j)].QPluie)
end

function conky_Meteo_Jour_QNeige(j)
	return tonumber(conditionJour[tonumber(j)].QNeige)
end

function conky_Meteo_Jour_EVerglas(j)
	return tonumber(conditionJour[tonumber(j)].EVerglas)
end

function conky_Meteo_Jour_IconeM(r, p, s, f, j)
	return "${image "..r.."/jour/"..conditionJour[tonumber(j)].Icone..".png -p "..p.." -s "..s.." -f "..f.."}"
end

function conky_Meteo_Jour_IconeV(r, p, s, f, j)
	return "${image "..r.."/"..conditionJour[tonumber(j)].VentIcone.." -p "..p.." -s "..s.." -f "..f.."}"
end

function conky_Meteo_Jour_IconeR(r, p, s, f, j)
	return "${image "..r.."/"..conditionJour[tonumber(j)].RafalesIcone.." -p "..p.." -s "..s.." -f "..f.."}"
end


--Nuit

function conky_Meteo_Nuit_CondMeteo(j)
	return conditionNuit[tonumber(j)].CondMeteo
end

function conky_Meteo_Nuit_CondMeteo1(j)
	return conditionNuit[tonumber(j)].CondMeteo1
end

function conky_Meteo_Nuit_CondMeteo2(j)
	return conditionNuit[tonumber(j)].CondMeteo2
end

function conky_Meteo_Nuit_CondMeteo1se(j)
	return conditionNuit[tonumber(j)].CondMeteo1se
end

function conky_Meteo_Nuit_CondMeteo2se(j)
	return conditionNuit[tonumber(j)].CondMeteo2se
end

function conky_Meteo_Nuit_Temp(j)
	return tonumber(conditionNuit[tonumber(j)].Temp)
end

function conky_Meteo_Nuit_TempRes(j)
	return tonumber(conditionNuit[tonumber(j)].TempRes)
end

function conky_Meteo_Nuit_ProbPrec(j)
	return tonumber(conditionNuit[tonumber(j)].ProbPrec)
end

function conky_Meteo_Nuit_VentDir(j)
	return conditionNuit[tonumber(j)].VentDir
end

function conky_Meteo_Nuit_VentDirP(j)
	return conditionNuit[tonumber(j)].VentP
end

function conky_Meteo_Nuit_VentForce(j)
	return tonumber(conditionNuit[tonumber(j)].VentForce)
end

function conky_Meteo_Nuit_VentRafales(j)
	return tonumber(conditionNuit[tonumber(j)].VentRafales)
end

function conky_Meteo_Nuit_ProbOrage(j)
	return tonumber(conditionNuit[tonumber(j)].ProbOrage)
end

function conky_Meteo_Nuit_NivPrec(j)
	return tonumber(conditionNuit[tonumber(j)].NivPrec)
end

function conky_Meteo_Nuit_QPluie(j)
	return tonumber(conditionNuit[tonumber(j)].QPluie)
end

function conky_Meteo_Nuit_QNeige(j)
	return tonumber(conditionNuit[tonumber(j)].QNeige)
end

function conky_Meteo_Nuit_EVerglas(j)
	return tonumber(conditionNuit[tonumber(j)].EVerglas)
end

function conky_Meteo_Nuit_IconeM(r, p, s, f, j)
	return "${image "..r.."/nuit/"..conditionNuit[tonumber(j)].Icone..".png -p "..p.." -s "..s.." -f "..f.."}"
end

function conky_Meteo_Nuit_IconeV(r, p, s, f, j)
	return "${image "..r.."/"..conditionNuit[tonumber(j)].VentIcone.." -p "..p.." -s "..s.." -f "..f.."}"
end

function conky_Meteo_Nuit_IconeR(r, p, s, f, j)
	return "${image "..r.."/"..conditionNuit[tonumber(j)].RafalesIcone.." -p "..p.." -s "..s.." -f "..f.."}"
end


--Infos sur la journée

function conky_Meteo_Jour(format, j)
	format = string.gsub(format, "_", " ")
	return trad_date(os.date(format, InfoJour[tonumber(j)].Jour))
end

function conky_Meteo_HLeverSoleil(j)
	return InfoJour[tonumber(j)].LeverSoleilH
end

function conky_Meteo_MLeverSoleil(j)
	return InfoJour[tonumber(j)].LeverSoleilM
end

function conky_Meteo_LeverSoleil(j)
	return tonumber((InfoJour[tonumber(j)].LeverSoleilH*60)+InfoJour[tonumber(j)].LeverSoleilM)
end

function conky_Meteo_HCoucherSoleil(j)
	return InfoJour[tonumber(j)].CoucherSoleilH
end

function conky_Meteo_MCoucherSoleil(j)
	return InfoJour[tonumber(j)].CoucherSoleilM
end

function conky_Meteo_CoucherSoleil(j)
	return tonumber((InfoJour[tonumber(j)].CoucherSoleilH*60)+InfoJour[tonumber(j)].CoucherSoleilM)
end

function conky_Meteo_HDureeJour(j)
	return InfoJour[tonumber(j)].CoucherSoleilH-InfoJour[tonumber(j)].LeverSoleilH
end

function conky_Meteo_MDureeJour(j)
	return os.date("%M", ((((InfoJour[tonumber(j)].CoucherSoleilH*3600)-3600)+(InfoJour[tonumber(j)].CoucherSoleilM*60))-(((InfoJour[tonumber(j)].LeverSoleilH*3600))+(InfoJour[tonumber(j)].LeverSoleilM*60))))
end

function conky_Meteo_Histo_Min(j)
	return InfoJour[tonumber(j)].Histo_Min
end

function conky_Meteo_Histo_Max(j)
	return InfoJour[tonumber(j)].Histo_Max
end


--Matin

function conky_Meteo_Matin_CondMeteo(j)
	return conditionMatin[tonumber(j)].CondMeteo
end

function conky_Meteo_Matin_CondMeteo1(j)
	return conditionMatin[tonumber(j)].CondMeteo1
end

function conky_Meteo_Matin_CondMeteo2(j)
	return conditionMatin[tonumber(j)].CondMeteo2
end

function conky_Meteo_Matin_CondMeteo1se(j)
	return conditionMatin[tonumber(j)].CondMeteo1se
end

function conky_Meteo_Matin_CondMeteo2se(j)
	return conditionMatin[tonumber(j)].CondMeteo2se
end

function conky_Meteo_Matin_TempMax(j)
	return tonumber(conditionMatin[tonumber(j)].TempMax)
end

function conky_Meteo_Matin_TempMin(j)
	return tonumber(conditionMatin[tonumber(j)].TempMin)
end

function conky_Meteo_Matin_TempMaxRes(j)
	return tonumber(conditionMatin[tonumber(j)].TempMaxR)
end

function conky_Meteo_Matin_TempMinRes(j)
	return tonumber(conditionMatin[tonumber(j)].TempMinR)
end

function conky_Meteo_Matin_ProbPrec(j)
	return tonumber(conditionMatin[tonumber(j)].ProbPrec)
end

function conky_Meteo_Matin_VentDir(j)
	return conditionMatin[tonumber(j)].VentDir
end

function conky_Meteo_Matin_VentDirP(j)
	return conditionMatin[tonumber(j)].VentP
end

function conky_Meteo_Matin_VentForce(j)
	return tonumber(conditionMatin[tonumber(j)].VentForce)
end

function conky_Meteo_Matin_QPluie(j)
	return tonumber(conditionMatin[tonumber(j)].QPluie)
end

function conky_Meteo_Matin_QNeige(j)
	return tonumber(conditionMatin[tonumber(j)].QNeige)
end

function conky_Meteo_Matin_Humidite(j)
	return tonumber(conditionMatin[tonumber(j)].Humidite)
end

function conky_Meteo_Matin_CouvNuage(j, r)
	if r == nil then r = 100 end
	local Couv = (tonumber(conditionMatin[tonumber(j)].CouvNuage) / 100) * r
	if Couv - math.floor(Couv) <= 0.5 then 
		Couv = math.floor(Couv)
	else
		Couv = math.ceil(Couv)
	end
	return Couv
end

function conky_Meteo_Matin_Rose(j)
	return tonumber(conditionMatin[tonumber(j)].PointRosee)
end

function conky_Meteo_Matin_Visibilite(j)
	return tonumber(conditionMatin[tonumber(j)].Visibilite)
end

function conky_Meteo_Matin_IconeM(r, p, s, f, j)
	return "${image "..r.."/jour/"..conditionMatin[tonumber(j)].Icone..".png -p "..p.." -s "..s.." -f "..f.."}"
end

function conky_Meteo_Matin_IconeV(r, p, s, f, j)
	return "${image "..r.."/"..conditionMatin[tonumber(j)].VentIcone.." -p "..p.." -s "..s.." -f "..f.."}"
end


--Après Midi

function conky_Meteo_AM_CondMeteo(j)
	return conditionAM[tonumber(j)].CondMeteo
end

function conky_Meteo_AM_CondMeteo1(j)
	return conditionAM[tonumber(j)].CondMeteo1
end

function conky_Meteo_AM_CondMeteo2(j)
	return conditionAM[tonumber(j)].CondMeteo2
end

function conky_Meteo_AM_CondMeteo1se(j)
	return conditionAM[tonumber(j)].CondMeteo1se
end

function conky_Meteo_AM_CondMeteo2se(j)
	return conditionAM[tonumber(j)].CondMeteo2se
end

function conky_Meteo_AM_TempMax(j)
	return tonumber(conditionAM[tonumber(j)].TempMax)
end

function conky_Meteo_AM_TempMin(j)
	return tonumber(conditionAM[tonumber(j)].TempMin)
end

function conky_Meteo_AM_TempMaxRes(j)
	return tonumber(conditionAM[tonumber(j)].TempMaxR)
end

function conky_Meteo_AM_TempMinRes(j)
	return tonumber(conditionAM[tonumber(j)].TempMinR)
end

function conky_Meteo_AM_ProbPrec(j)
	return tonumber(conditionAM[tonumber(j)].ProbPrec)
end

function conky_Meteo_AM_VentDir(j)
	return conditionAM[tonumber(j)].VentDir
end

function conky_Meteo_AM_VentDirP(j)
	return conditionAM[tonumber(j)].VentP
end

function conky_Meteo_AM_VentForce(j)
	return tonumber(conditionAM[tonumber(j)].VentForce)
end

function conky_Meteo_AM_QPluie(j)
	return tonumber(conditionAM[tonumber(j)].QPluie)
end

function conky_Meteo_AM_QNeige(j)
	return tonumber(conditionAM[tonumber(j)].QNeige)
end

function conky_Meteo_AM_Humidite(j)
	return tonumber(conditionAM[tonumber(j)].Humidite)
end

function conky_Meteo_AM_CouvNuage(j, r)
	if r == nil then r = 100 end
	local Couv = (tonumber(conditionAM[tonumber(j)].CouvNuage) / 100) * r
	if Couv - math.floor(Couv) <= 0.5 then 
		Couv = math.floor(Couv)
	else
		Couv = math.ceil(Couv)
	end
	return Couv
end

function conky_Meteo_AM_Rose(j)
	return tonumber(conditionAM[tonumber(j)].PointRosee)
end

function conky_Meteo_AM_Visibilite(j)
	return tonumber(conditionAM[tonumber(j)].Visibilite)
end

function conky_Meteo_AM_IconeM(r, p, s, f, j)
	return "${image "..r.."/jour/"..conditionAM[tonumber(j)].Icone..".png -p "..p.." -s "..s.." -f "..f.."}"
end

function conky_Meteo_AM_IconeV(r, p, s, f, j)
	return "${image "..r.."/"..conditionAM[tonumber(j)].VentIcone.." -p "..p.." -s "..s.." -f "..f.."}"
end


--Soirée

function conky_Meteo_Soiree_CondMeteo(j)
	return conditionSoiree[tonumber(j)].CondMeteo
end

function conky_Meteo_Soiree_CondMeteo1(j)
	return conditionSoiree[tonumber(j)].CondMeteo1
end

function conky_Meteo_Soiree_CondMeteo2(j)
	return conditionSoiree[tonumber(j)].CondMeteo2
end

function conky_Meteo_Soiree_CondMeteo1se(j)
	return conditionSoiree[tonumber(j)].CondMeteo1se
end

function conky_Meteo_Soiree_CondMeteo2se(j)
	return conditionSoiree[tonumber(j)].CondMeteo2se
end

function conky_Meteo_Soiree_TempMax(j)
	return tonumber(conditionSoiree[tonumber(j)].TempMax)
end

function conky_Meteo_Soiree_TempMin(j)
	return tonumber(conditionSoiree[tonumber(j)].TempMin)
end

function conky_Meteo_Soiree_TempMaxRes(j)
	return tonumber(conditionSoiree[tonumber(j)].TempMaxR)
end

function conky_Meteo_Soiree_TempMinRes(j)
	return tonumber(conditionSoiree[tonumber(j)].TempMinR)
end

function conky_Meteo_Soiree_ProbPrec(j)
	return tonumber(conditionSoiree[tonumber(j)].ProbPrec)
end

function conky_Meteo_Soiree_VentDir(j)
	return conditionSoiree[tonumber(j)].VentDir
end

function conky_Meteo_Soiree_VentDirP(j)
	return conditionSoiree[tonumber(j)].VentP
end

function conky_Meteo_Soiree_VentForce(j)
	return tonumber(conditionSoiree[tonumber(j)].VentForce)
end

function conky_Meteo_Soiree_QPluie(j)
	return tonumber(conditionSoiree[tonumber(j)].QPluie)
end

function conky_Meteo_Soiree_QNeige(j)
	return tonumber(conditionSoiree[tonumber(j)].QNeige)
end

function conky_Meteo_Soiree_Humidite(j)
	return tonumber(conditionSoiree[tonumber(j)].Humidite)
end

function conky_Meteo_Soiree_CouvNuage(j, r)
	if r == nil then r = 100 end
	local Couv = (tonumber(conditionSoiree[tonumber(j)].CouvNuage) / 100) * r
	if Couv - math.floor(Couv) <= 0.5 then 
		Couv = math.floor(Couv)
	else
		Couv = math.ceil(Couv)
	end
	return Couv
end

function conky_Meteo_Soiree_Rose(j)
	return tonumber(conditionSoiree[tonumber(j)].PointRosee)
end

function conky_Meteo_Soiree_Visibilite(j)
	return tonumber(conditionSoiree[tonumber(j)].Visibilite)
end

function conky_Meteo_Soiree_IconeM(r, p, s, f, j)
	return "${image "..r.."/jour/"..conditionSoiree[tonumber(j)].Icone..".png -p "..p.." -s "..s.." -f "..f.."}"
end

function conky_Meteo_Soiree_IconeV(r, p, s, f, j)
	return "${image "..r.."/"..conditionSoiree[tonumber(j)].VentIcone.." -p "..p.." -s "..s.." -f "..f.."}"
end


--Nuit

function conky_Meteo_Noct_CondMeteo(j)
	return conditionNoct[tonumber(j)].CondMeteo
end

function conky_Meteo_Noct_CondMeteo1(j)
	return conditionNoct[tonumber(j)].CondMeteo1
end

function conky_Meteo_Noct_CondMeteo2(j)
	return conditionNoct[tonumber(j)].CondMeteo2
end

function conky_Meteo_Noct_CondMeteo1se(j)
	return conditionNoct[tonumber(j)].CondMeteo1se
end

function conky_Meteo_Noct_CondMeteo2se(j)
	return conditionNoct[tonumber(j)].CondMeteo2se
end

function conky_Meteo_Noct_TempMax(j)
	return tonumber(conditionNoct[tonumber(j)].TempMax)
end

function conky_Meteo_Noct_TempMin(j)
	return tonumber(conditionNoct[tonumber(j)].TempMin)
end

function conky_Meteo_Noct_TempMaxRes(j)
	return tonumber(conditionNoct[tonumber(j)].TempMaxR)
end

function conky_Meteo_Noct_TempMinRes(j)
	return tonumber(conditionNoct[tonumber(j)].TempMinR)
end

function conky_Meteo_Noct_ProbPrec(j)
	return tonumber(conditionNoct[tonumber(j)].ProbPrec)
end

function conky_Meteo_Noct_VentDir(j)
	return conditionNoct[tonumber(j)].VentDir
end

function conky_Meteo_Noct_VentDirP(j)
	return conditionNoct[tonumber(j)].VentP
end

function conky_Meteo_Noct_VentForce(j)
	return tonumber(conditionNoct[tonumber(j)].VentForce)
end

function conky_Meteo_Noct_QPluie(j)
	return tonumber(conditionNoct[tonumber(j)].QPluie)
end

function conky_Meteo_Noct_QNeige(j)
	return tonumber(conditionNoct[tonumber(j)].QNeige)
end

function conky_Meteo_Noct_Humidite(j)
	return tonumber(conditionNoct[tonumber(j)].Humidite)
end

function conky_Meteo_Noct_CouvNuage(j, r)
	if r == nil then r = 100 end
	local Couv = (tonumber(conditionNoct[tonumber(j)].CouvNuage) / 100) * r
	if Couv - math.floor(Couv) <= 0.5 then 
		Couv = math.floor(Couv)
	else
		Couv = math.ceil(Couv)
	end
	return Couv
end

function conky_Meteo_Noct_Rose(j)
	return tonumber(conditionNoct[tonumber(j)].PointRosee)
end

function conky_Meteo_Noct_Visibilite(j)
	return tonumber(conditionNoct[tonumber(j)].Visibilite)
end

function conky_Meteo_Noct_IconeM(r, p, s, f, j)
	return "${image "..r.."/nuit/"..conditionNoct[tonumber(j)].Icone..".png -p "..p.." -s "..s.." -f "..f.."}"
end

function conky_Meteo_Noct_IconeV(r, p, s, f, j)
	return "${image "..r.."/"..conditionNoct[tonumber(j)].VentIcone.." -p "..p.." -s "..s.." -f "..f.."}"
end

--Huit prochaines heures


function conky_Meteo_huitHeures_VentDirP(j)
	return huitHeures[tonumber(j)].VentP
end

function conky_Meteo_huitHeures_IconeV(r, p, s, f, j)
	return "${image "..r.."/"..huitHeures[tonumber(j)].VentIcone.." -p "..p.." -s "..s.." -f "..f.."}"
end

function conky_Meteo_huitHeures_Heure(j)
	return tonumber(huitHeures[tonumber(j)].Heure)
end

function conky_Meteo_huitHeures_IconeM(r, p, s, f, j)
	if huitHeures[tonumber(j)].Heure <= InfoJour[1].CoucherSoleilH and huitHeures[tonumber(j)].Heure >= InfoJour[1].LeverSoleilH then
		return "${image "..r.."/jour/"..huitHeures[tonumber(j)].Icone..".png -p "..p.." -s "..s.." -f "..f.."}"
	else
		return "${image "..r.."/nuit/"..huitHeures[tonumber(j)].Icone..".png -p "..p.." -s "..s.." -f "..f.."}"
	end
end

function conky_Meteo_huitHeures_Temp(j)
	return tonumber(huitHeures[tonumber(j)].TempMax)
end

function conky_Meteo_huitHeures_TempR(j)
	return tonumber(huitHeures[tonumber(j)].TempMaxR)
end

function conky_Meteo_huitHeures_VentDir(j)
	return huitHeures[tonumber(j)].VentDir
end

function conky_Meteo_huitHeures_VentForce(j)
	return tonumber(huitHeures[tonumber(j)].VentForce)
end

function conky_Meteo_huitHeures_Humidite(j)
	return tonumber(huitHeures[tonumber(j)].Humidite)
end

function conky_Meteo_huitHeures_CouvNuage(j)
	return tonumber(huitHeures[tonumber(j)].CouvNuage)
end

function conky_Meteo_huitHeures_Rose(j)
	return tonumber(huitHeures[tonumber(j)].PointRosee)
end

function conky_Meteo_huitHeures_ProbPluie(j)
	return tonumber(huitHeures[tonumber(j)].Pluie)
end

function conky_Meteo_huitHeures_ProbNeige(j)
	return tonumber(huitHeures[tonumber(j)].Neige)
end

function conky_Meteo_huitHeures_ProbVerglas(j)
	return tonumber(huitHeures[tonumber(j)].Verglas)
end

function conky_Meteo_huitHeures_Uv(j)
	return tonumber(huitHeures[tonumber(j)].UV)
end

--Lunaison

function conky_Lune_ephemerides()
	return ephemerides
end

function conky_Lune_ephemerides1()
	return ephemerides1
end

function conky_Lune_ephemerides2()
	return ephemerides2
end

function conky_Lune_Visibilite()
	return Visibilite
end

function conky_Lune_Phases()
	return Phases
end

function conky_Lune_Phases1()
	return Phases1
end

function conky_Lune_Phases2()
	return Phases2
end

function conky_Lune_Noeudlunaire()
	return Noeud_lunaire
end

function conky_Lune_Apogee()
	return Apogee
end

function conky_Lune_Perigee()
	return Perigee
end

function conky_Lune_Distance()
	return Distance
end

function conky_Lune_Age()
	return Age
end

function conky_Lune_HLeverLune()
	return Lever_LuneHeure
end

function conky_Lune_MLeverLune()
	return Lever_LuneMinute
end

function conky_Lune_HCoucherLune()
	return Coucher_LuneHeure
end

function conky_Lune_MCoucherLune()
	return Coucher_LuneMinute
end

function conky_Lune_EclipsePartielle(format)
	if format == nil then format = "%A_%d_%B_%Y_à_%H:%M" end
	format = string.gsub(format, "_", " ")
	return trad_date(os.date(format, Eclipse_partielle))
end

function conky_Lune_EclipseTotal()
	if format == nil then format = "%A_%d_%B_%Y_à_%H:%M" end
	format = string.gsub(format, "_", " ")
	return trad_date(os.date(format, Eclipse_total))
end


--Informations sur le lua
function conky_Version()
	return Version
end

function conky_Meteo_fichier_init()
	return fichier_init
end

function conky_Meteo_etat_MAJ()
	return MAJ
end


--Sauvegarde des données
function sauvegarde()

--sauvegarde prévision
	for j = 1,jours do
		local file = assert(io.open(repsauv.."/prevision"..j, "w+"))
		file:write ("\n")
		local t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "Temp", "TempRes", "ProbPrec", "VentDir", "VentP", "VentForce", "VentRafales", "Uv", "ProbOrage", "NivPrec", "QPluie", "QNeige", "Icone", "VentIcone", "RafalesIcone", "EVerglas"}
		for i = 1, 21 do
			file:write (conditionJour[j][t[i]], "\n")
		end
		t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "Temp", "TempRes", "ProbPrec", "VentDir", "VentP", "VentForce", "VentRafales", "ProbOrage", "NivPrec", "QPluie", "QNeige", "Icone", "VentIcone", "RafalesIcone", "EVerglas"}
		for i = 1, 20 do
			file:write (conditionNuit[j][t[i]], "\n")
		end
		t= {"Jour", "LeverSoleilH", "LeverSoleilM", "CoucherSoleilH", "CoucherSoleilM", "Histo_Max", "Histo_Min"}
		for i = 1, 7 do
			file:write (InfoJour[j][t[i]], "\n")
		end
		io.close(file)

		if matin == "oui" then
			local file = assert(io.open(repsauv.."/matin"..j, "w+"))
			file:write ("\n")
			local t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "TempMax", "TempMin", "TempMaxR", "TempMinR", "ProbPrec", "VentDir", "VentP", "VentForce", "QPluie", "QNeige", "Humidite", "CouvNuage", "PointRosee", "Visibilite", "Icone", "VentIcone"}
			for i = 1, 21 do
				file:write (conditionMatin[j][t[i]], "\n")
			end
			io.close(file)
		end
		if apresmidi == "oui" then
			local file = assert(io.open(repsauv.."/ApresMidi"..j, "w+"))
			file:write ("\n")
			local t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "TempMax", "TempMin", "TempMaxR", "TempMinR", "ProbPrec", "VentDir", "VentP", "VentForce", "QPluie", "QNeige", "Humidite", "CouvNuage", "PointRosee", "Visibilite", "Icone", "VentIcone"}
			for i = 1, 21 do
				file:write (conditionAM[j][t[i]], "\n")
			end
			io.close(file)
		end
		if soiree == "oui" then
			local file = assert(io.open(repsauv.."/Soiree"..j, "w+"))
			file:write ("\n")
			local t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "TempMax", "TempMin", "TempMaxR", "TempMinR", "ProbPrec", "VentDir", "VentP", "VentForce", "QPluie", "QNeige", "Humidite", "CouvNuage", "PointRosee", "Visibilite", "Icone", "VentIcone"}
			for i = 1, 21 do
				file:write (conditionSoiree[j][t[i]], "\n")
			end
			io.close(file)
		end
		if nuit == "oui" then
			local file = assert(io.open(repsauv.."/Nuit"..j, "w+"))
			file:write ("\n")
			local t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "TempMax", "TempMin", "TempMaxR", "TempMinR", "ProbPrec", "VentDir", "VentP", "VentForce", "QPluie", "QNeige", "Humidite", "CouvNuage", "PointRosee", "Visibilite", "Icone", "VentIcone"}
			for i = 1, 21 do
				file:write (conditionNoct[j][t[i]], "\n")
			end
			io.close(file)
		end
	end

	if huit == "oui" then
		for j = 1,8 do
			local file = assert(io.open(repsauv.."/huitHeures"..j, "w+"))
			file:write ("\n")
			local t = {"Heure", "Icone", "TempMax", "TempMaxR", "VentDir", "VentForce", "Humidite", "CouvNuage", "PointRosee", "UV", "Pluie", "Neige", "Verglas", "VentP", "VentIcone"}
			for i = 1, 15 do
				file:write (huitHeures[j][t[i]], "\n")
			end
			io.close(file)
		end
	end			

--sauvegarde lunaison
	local file = assert(io.open(repsauv.."/lunaison", "w+"))
	file:write ("\n", ephemerides, "\n")
	file:write (ephemerides1, "\n")
	file:write (ephemerides2, "\n")
	file:write (Visibilite, "\n")
	file:write (Phases, "\n")
	file:write (Phases1, "\n")
	file:write (Phases2, "\n")
	file:write (Noeud_lunaire, "\n")
	file:write (Apogee, "\n")
	file:write (Perigee, "\n")
	file:write (Distance, "\n")
	file:write (Age, "\n")
	file:write (Lever_LuneHeure, "\n")
	file:write (Lever_LuneMinute, "\n")
	file:write (Coucher_LuneHeure, "\n")
	file:write (Coucher_LuneMinute, "\n")
	file:write (Eclipse_partielle, "\n")
	file:write (Eclipse_total, "\n")
	io.close(file)
	
--Sauvegarde condition courante
	local file = assert(io.open(repsauv.."/CondCour", "w+") )
	file:write ("\n")
	local t = {"Icone", "Tempr", "Temp", "Cond", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "VentDir", "VentPlein", "VentForce", "VentIcone", "Humidite", "PointRosee", "Pression", "Visibilite", "Date", "Ville", "CouvNuage", "Uv", "QPrec", "latitude", "longitude"}
	for i = 1,23 do
		file:write (conditioncourante[t[i]], "\n")
	end
	file:write (time, "\n")
	io.close(file)

--modification des droits utilisateur
	os.execute('chmod o+rw- '..r..'/*lun*')
	os.execute('chmod -R o+rw- '..repsauv)
	os.execute('chmod -R o+rw- '..Rep)
end

Il  va chercher que celui qui est "sauvé" depuis le 3 décembre sans jamais remettre à jours les données météo.... Et là j avoue ne plus rien comprendre...
merci pour l aide


Viper69
J'ai ouvert les fenêtres - J'ai vu que l'on pouvait être libre
Le manuel disait "Nécessite Windows XP ou mieux". J'ai donc installé Linux.
Ubuntu depuis 7.04 / Laptop: PressarioC60 / Bureau: CQ5335 / Minipc:LDLC Mercure ML1-C1-2-H1

Hors ligne

#1738 Le 20/12/2012, à 09:06

jpdipsy

Re : [Conky] Alternative à weather.com (2)

viper69 a écrit :

Re bonjour
Autre chose qui ne fonctionne pas avec mon info météo
Elle ne se remet plus à jour.... je viens de m 'en apercevoir aujourd'hui.
Pourtant la ligne dans le config semble correct.

Hello

Passer à la version 4.9 sera la solution mais à quoi bon pour si peu de temps restant !  sad


lol lol lol

Hors ligne

#1739 Le 21/12/2012, à 15:45

viper69

Re : [Conky] Alternative à weather.com (2)

Merci
Parfais tout est rentré dans l ordre....

meme un certain 21 12 12 ;-)


Viper69
J'ai ouvert les fenêtres - J'ai vu que l'on pouvait être libre
Le manuel disait "Nécessite Windows XP ou mieux". J'ai donc installé Linux.
Ubuntu depuis 7.04 / Laptop: PressarioC60 / Bureau: CQ5335 / Minipc:LDLC Mercure ML1-C1-2-H1

Hors ligne

#1740 Le 23/12/2012, à 11:52

daniel38100

Re : [Conky] Alternative à weather.com (2)

Bonjour a tous

Didier-T
je tien a te signaler un problème sur le meteo.lua v4.9 au niveau des latitudes et longitudes.
voila ce que j'ai


Latitude: 5.72557
Longitude:1356255892
si quelqu'un peut m'aider ce serai gentil

Dernière modification par daniel38100 (Le 23/12/2012, à 12:38)

Hors ligne

#1741 Le 24/12/2012, à 08:53

Didier-T

Re : [Conky] Alternative à weather.com (2)

daniel38100 a écrit :

Bonjour a tous

Didier-T
je tien a te signaler un problème sur le meteo.lua v4.9 au niveau des latitudes et longitudes.
voila ce que j'ai


Latitude: 5.72557
Longitude:1356255892
si quelqu'un peut m'aider ce serai gentil

c'est étrange ta Longitude ressemble a une date, et ta Latitude a une longitude, a moins que tu soit très proche de l'équateur.

Je vais regarder, mais pourrais tu me fournir une copie d'écrans ainsi que le script conky que tu utilise.

Problème corrigé, en fait il s'agissait d'un problème dans le mode hors ligne, je n'avais pas mis a jour les champs suite a la disparition de quantité précipitation sur accuweather.

nouvelle version 4.9b

Dernière modification par Didier-T (Le 24/12/2012, à 09:14)

Hors ligne

#1742 Le 24/12/2012, à 11:26

daniel38100

Re : [Conky] Alternative à weather.com (2)

bonjour Didier-T merci pour ta réponse
je viens d’essayer la nouvelle version mais le problème persiste
conky

Hors ligne

#1743 Le 24/12/2012, à 11:35

Didier-T

Re : [Conky] Alternative à weather.com (2)

tu peut poster le contenu de ton conky.
et le retour en terminal

Hors ligne

#1744 Le 24/12/2012, à 11:44

daniel38100

Re : [Conky] Alternative à weather.com (2)

voila pour mon conky

# -- Conky settings -- #
    ############################### Mode fond ecran 
    background yes
    update_interval 1
    double_buffer yes
    own_window yes
    own_window_type override
    own_window_transparent yes
    own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
    alignment tl
    maximum_width 1  
    gap_x -10
    gap_y -30
    # scripts lua à charger ##################################### changer ~/conky par votre rep si vous n'avez pas le mme
    lua_load  ~/conky/Meteo-Lua/scripts/meteo.lua               # ces quatres scripts sont obligatoires
    lua_load  ~/conky/Meteo-Lua/scripts/images_meteo.lua        #
    lua_load  ~/conky/Meteo-Lua/scripts/LoadAll.lua
    lua_startup_hook init  ~/conky/Meteo-Lua/configs/meteo.cfg  #
    lua_draw_hook_pre main1
    lua_shutdown_hook extinction                                #

TEXT
    #############################################################
        # TEXT
#### Lancement des scripts récupérant les données météo  ##
#Important si vous avez un conky lançant déja meteo.lua
# utilisez ${lua Meteo_horsligne}
#--------------------------------------------------------------
#--------------------  changer ~/conky par votre rep si vous n'avez pas le mme
#${lua Meteo_horsligne}${lua Images_MAJ ~/conky/Meteo-Lua/configs/fondecran.cfg}
${lua Meteo_Maj}${lua Images_MAJ ~/conky/Meteo-Lua/configs/fondecran.cfg}
###############################################################
# lancement du script qui vérifie à interval régulier que votre fond d'écran
# n'a pas changé (ici 10s à augmenter si vous avez des prob de double affichage)
# il doit être lancé suivit du nom du modules que vous avez édité
# si vous ne changez jamais de fond d'écran vous pouvez vous en passer
${execi 10 ~/conky/Meteo-Lua/scripts/fond-gestion.sh verification creationmodules-fondecran}
############## N'ajoutez rien #################################

et en retour de terminal il y a rien d’anormal

daniel@daniel-Pavilion-dv8000-EK774EA-ABF:~$ 
Conky: desktop window (1600003) is subwindow of root window (150)
Conky: window type - override
Conky: drawing to created window (0x2a00001)
Conky: drawing to double buffer
	version = v4.9b
	web = http://www.accuweather.com/fr/fr/grenoble/136555/weather-forecast/136555
	Pévision Nb jours = 15
	Pévision Matin = non
	Pévision Après Midi = non
	Pévision Soirée = oui
	Pévision Nuit = oui
	Prévision sur 8 heures = non
	Délais = 600
	Chemin de travail = /tmp
	Palier = 10
	Chemin de sauvegarde = /home/daniel/conky/Meteo-Lua/sauvegardes
Condition courante Ok
Prévision 1 Ok
Prévision 2 Ok
Prévision 3 Ok
Prévision 4 Ok
Prévision 5 Ok
Prévision 6 Ok
Prévision 7 Ok
Prévision 8 Ok
Prévision 9 Ok
Prévision 10 Ok
Prévision 11 Ok
Prévision 12 Ok
Prévision 13 Ok
Prévision 14 Ok
Prévision 15 Ok
Soiree 1 Ok
Soiree 2 Ok
Soiree 3 Ok
Soiree 4 Ok
Soiree 5 Ok
Soiree 6 Ok
Soiree 7 Ok
Soiree 8 Ok
Soiree 9 Ok
Soiree 10 Ok
Soiree 11 Ok
Soiree 12 Ok
Soiree 13 Ok
Soiree 14 Ok
Soiree 15 Ok
Nuit 1 Ok
Nuit 2 Ok
Nuit 3 Ok
Nuit 4 Ok
Nuit 5 Ok
Nuit 6 Ok
Nuit 7 Ok
Nuit 8 Ok
Nuit 9 Ok
Nuit 10 Ok
Nuit 11 Ok
Nuit 12 Ok
Nuit 13 Ok
Nuit 14 Ok
Nuit 15 Ok
lunaison Ok
26 seconde(s)
	Mode = fondecran
Condition courante Ok
lunaison Ok
1 seconde(s)
	Mode = fondecran
Condition courante Ok
lunaison Ok
1 seconde(s)
	Mode = fondecran

mon conky

Dernière modification par daniel38100 (Le 24/12/2012, à 11:46)

Hors ligne

#1745 Le 24/12/2012, à 12:11

Didier-T

Re : [Conky] Alternative à weather.com (2)

Un utilisateur de meteo_images.lua, je comprend mieux pourquoi sa n'allais pas en modifiant meteo.lua

Le pack en page de garde est corrigé version 2.2b

Hors ligne

#1746 Le 24/12/2012, à 12:45

daniel38100

Re : [Conky] Alternative à weather.com (2)

marche pas moi j'ai la version 2.3 de images_meteo.lua

Dernière modification par daniel38100 (Le 26/12/2012, à 11:02)

Hors ligne

#1747 Le 24/12/2012, à 13:55

Didier-T

Re : [Conky] Alternative à weather.com (2)

tient j'en ai raté un, oups.
la je suis sur mon téléphone pour répondre.
il faudrait donc attendre demain que je retrouve mon pc

Hors ligne

#1748 Le 25/12/2012, à 06:39

Didier-T

Re : [Conky] Alternative à weather.com (2)

Trop mangé hier soir,
j'ai fais la modif depuis le pc Windows du beaux père, donc les pack ne sont pour le moment pas a jour.

meteo-images.lua V2.3b

-- Créé par Didier-T (forum.ubuntu-fr.org), pour jpdipsy
-- Nécessite imagemagick http://apt.ubuntu.com/p/imagemagick



require "io"
require "os"


local Version = "v2.3b"
local conditionJour = {}
local conditionNuit = {}
local conditionMatin = {}
local conditionAM = {}
local conditionSoiree = {}
local conditionNoct = {}
local InfoJour = {}
local conditioncourante = {}
local Thermometre = {}
local ThermometresRond = {}
local init_thermo = {}
local init_thermo_res = {}
local init_rose = {}
local init_rose_raf = {}
local lunaison = {}
local Barometre = {}
local Rep, cmd, jours, matin, apresmidi, soiree, nuit, delais, r, repsauv, l, Rep_Therm, Rep_Rose, Palier, t1, MAJHold, maj1, Nb_Thermo, Rep_Lune, Rep_Barometre, Rep_ThermRond, Nb_ThermRond, palier1, palier2, palier3, palier4, mise_en_page,  fich_creationmodule
local boucle, imagecfg,meteocfg
boucle = tonumber("0")

-- Création rose des vent par jpdipsy
function Rose(i, dp, v, nom, taille, opacite)
    local angle, couleur, f ,couleurfont
    local vitesse = "'"..v.." km/h'"
    
    if v ~= nil then
        f = tonumber(v)
    else
        f = 0
    end
    
    if f <= Palier then
        couleur = palier1
        couleurfont = palier1coulfont
    elseif f <= Palier*2 then
        couleur = palier2
        couleurfont = palier2coulfont
    elseif f <= Palier*3 then
        couleur = palier3
        couleurfont = palier3coulfont
    elseif f >= (Palier*3)+1 then
        couleur = palier4
        couleurfont = palier4coulfont
    end


    if i == "Calme" then
        angle = nil
    elseif i == "N" then
        angle = 0
    elseif i == "NNE" then
        angle = 22.5
    elseif i == "NE" then
        angle = 45
    elseif i == "ENE" then
        angle = 67.5
    elseif i == "E" then
        angle = 90
    elseif i == "ESE" then
        angle = 112.5
    elseif i == "SE" then
        angle = 135
    elseif i == "SSE" then
        angle = 157.5
    elseif i == "S" then
        angle = 180
    elseif i == "SSO" then
        angle = 202.5
    elseif i == "SO" then
        angle = 225
    elseif i == "OSO" then
        angle = 247.5
    elseif i == "O" then
        angle = 270
    elseif i == "ONO" then
        angle = 292.5
    elseif i == "NO" then
        angle = 315
    elseif i == "NNO" then
        angle = 337.5
    else
        angle = nil
    end

    if angle ~= nil then

       os.execute(' convert -background transparent '..Rep_Rose..'/'..couleur..' -rotate '..angle..' '..Rep..'/dir_rot.png && composite -compose Over  -gravity Center '..Rep..'/dir_rot.png '..Rep_Rose..'/base.png '..Rep..'/'..nom..'.png')
   --os.execute(' convert -background transparent '..Rep_Rose..'/Calme.png -rotate -'..angle..' '..Rep..'/dir_rot.png && composite -compose Over  -gravity Center '..Rep..'/dir_rot.png '..Rep_Rose..'/'..couleur..' '..Rep..'/'..nom..'.png')
    else
        os.execute(' composite -compose Over  -gravity Center '..Rep_Rose..'/Calme.png '..Rep_Rose..'/base.png '..Rep..'/'..nom..'.png')
    end
    os.execute(' convert '..Rep..'/'..nom..'.png -font '..repfonts..'/AlteHaasGroteskBold.ttf   -fill '..couleurfont..' -pointsize 40 -gravity center -annotate +0+0 '..vitesse..' '..Rep..'/'..nom..'.png && mogrify -resize '..taille..'! '..Rep..'/'..nom..'.png && composite -blend 0x'..opacite..' null: '..Rep..'/'..nom..'.png -matte '..Rep..'/'..nom..'.png')
		os.execute('chmod -R o+rw- '..Rep)
		
end

-- Récupération des infos à afficher
function Recup(info)
    local num = info:match("%d+")
    if num ~= nil then
        info = string.gsub(info, num, "")
        num = tonumber(num)
    end
    info = string.gsub(info, " ", "")

    
    if info == "TempRes" then
        T1 =  conditioncourante.Tempr
    elseif info == "TempAct" then
        T1 =  conditioncourante.Temp
    elseif info == "Rose" then
        T1 =  conditioncourante.PointRosee
    elseif info == "Pression" then
        T1 =  conditioncourante.Pression
    elseif info == "Jour_Temp" then
        T1 =  conditionJour[num].Temp
    elseif info == "Jour_TempRes" then
        T1 =  conditionJour[num].TempRes
    elseif info == "Nuit_Temp" then
        T1 =  conditionNuit[num].Temp
    elseif info == "Nuit_TempRes" then
        T1 =  conditionNuit[num].TempRes
    elseif info == "Histo_Max" then
        T1 =  InfoJour[num].Histo_Max
    elseif info == "Histo_Min" then
        T1 =  InfoJour[num].Histo_Min
    elseif info == "Matin_TempMax" then
        T1 =  conditionMatin[num].TempMax
    elseif info == "Matin_TempMin" then
        T1 =  conditionMatin[num].TempMin
    elseif info == "Matin_TempMaxRes" then
        T1 =  conditionMatin[num].TempMaxR
    elseif info == "Matin_TempMinRes" then
        T1 =  conditionMatin[num].TempMinR
    elseif info == "Matin_Rose" then
        T1 =  conditionMatin[num].PointRosee
    elseif info == "AM_TempMax" then
        T1 =  conditionAM[num].TempMax
    elseif info == "AM_TempMin" then
        T1 =  conditionAM[num].TempMin
    elseif info == "AM_TempMaxRes" then
        T1 =  conditionAM[num].TempMaxR
    elseif info == "AM_TempMinRes" then
        T1 =  conditionAM[num].TempMinR
    elseif info == "AM_Rose" then
        T1 =  conditionAM[num].PointRosee
    elseif info == "Soiree_TempMax" then
        T1 =  conditionSoiree[num].TempMax
    elseif info == "Soiree_TempMin" then
        T1 =  conditionSoiree[num].TempMin
    elseif info == "Soiree_TempMaxRes" then
        T1 =  conditionSoiree[num].TempMaxR
    elseif info == "Soiree_TempMinRes" then
        T1 =  conditionSoiree[num].TempMinR
    elseif info == "Soiree_Rose" then
        T1 =  conditionSoiree[num].PointRosee
    elseif info == "Noct_TempMax" then
        T1 =  conditionNoct[num].TempMax
    elseif info == "Noct_TempMin" then
        T1 =  conditionNoct[num].TempMin
    elseif info == "Noct_TempMaxRes" then
        T1 =  conditionNoct[num].TempMaxR
    elseif info == "Noct_TempMinRes" then
        T1 =  conditionNoct[num].TempMinR
    elseif info == "Noct_Rose" then
        T1 =  conditionNoct[num].PointRosee
    end
    
    T1 = tonumber(T1)
    if T1 <= -30 then
        T1 = -30
    elseif T1 >= 50 then
        T1 = 50
    end

    return T1
    
end


-- Création thermomètre par jpdipsy
function CreaThermometre(TherNb)

    local NbPlot
    local Tbase = Thermometre[TherNb].base
    local Alcool = Thermometre[TherNb].mercure
    Alcool = string.gsub(Alcool, " ", "")
    local InfoAlcool = Recup(Thermometre[TherNb].mercure_info)
    local Plot = {}
    local InfoPlot = {}
    
    if Thermometre[TherNb].plot ~= "" then
        local PlotCherche = Thermometre[TherNb].plot
        PlotCherche = string.gsub(PlotCherche, " ", "")
        local InfoPlotCherche = Thermometre[TherNb].plot_info

        local pos1 = 0
        NbPlot = 0
        while pos1 ~= nil do
            local pos2 = string.find(PlotCherche, ",", pos1+1)
            NbPlot = NbPlot+1
            if pos2 ~= nil then
                Plot[NbPlot] = string.sub(PlotCherche, pos1+1, pos2-1)
            else
                Plot[NbPlot] = string.sub(PlotCherche, pos1+1)
            end
            pos1 = pos2
        end
    
        pos1 = 0
        NbPlot = 0
        while pos1 ~= nil do
            local pos2 = string.find(InfoPlotCherche, ",", pos1+1)
            NbPlot = NbPlot+1
            if pos2 ~= nil then
                InfoPlot[NbPlot] = Recup(string.sub(InfoPlotCherche, pos1+1, pos2-1))
            else
                InfoPlot[NbPlot] = Recup(string.sub(InfoPlotCherche, pos1+1))
            end
            pos1 = pos2
        end
    end    
    

    if InfoAlcool > -30 then
      local T1 = (InfoAlcool*5)+150
      os.execute( "convert "..Rep_Therm.."/"..Alcool.." -resize 20x"..T1.."! "..Rep.."/colonne.png  && composite -compose Over -geometry -0+108 -gravity South "..Rep.."/colonne.png "..Rep_Therm.."/"..Tbase.." "..Rep.."/Thermo"..TherNb..".png" )
    else
        os.execute( "cp "..Rep_Therm.."/"..Tbase.." "..Rep.."/Thermo"..TherNb..".png" )
    end

    if NbPlot ~= nil then
        for i = 1, NbPlot do
            T2 = InfoPlot[i]
            local pos_T2 = (T2*5) +258
            os.execute("composite -compose Over  -geometry -0+"..pos_T2.."  -gravity South   "..Rep_Therm.."/"..Plot[i].." "..Rep.."/Thermo"..TherNb..".png  "..Rep.."/Thermo"..TherNb..".png")
        end
    end
    os.execute('mogrify -resize '..Thermometre[TherNb].taille..'! '..Rep..'/Thermo'..TherNb..'.png && composite -blend 0x'..Thermometre[TherNb].opacite..' null: '..Rep..'/Thermo'..TherNb..'.png -matte '..Rep..'/Thermo'..TherNb..'.png')
		os.execute('chmod -R o+rw- '..Rep)
end


function CreaThermometreRond(TherNb)
    local val
    os.execute(' cp '..Rep_ThermRond..'/base.png '..Rep..'/Thermorond'..TherNb..'.png')
    
    if ThermometresRond[TherNb].bleu ~= nil then
        val = Recup(ThermometresRond[TherNb].bleu)
        val = string.gsub(val, " ", "")
        cree("ind-bleu", val, TherNb)
    end
    if ThermometresRond[TherNb].rouge ~= nil then
        val = Recup(ThermometresRond[TherNb].rouge)
        val = string.gsub(val, " ", "")
        cree("ind-rouge", val, TherNb)
    end
    if ThermometresRond[TherNb].vert ~= nil then
        val = Recup(ThermometresRond[TherNb].vert)
        val = string.gsub(val, " ", "")
        cree("ind-vert", val, TherNb)
    end
    if ThermometresRond[TherNb].jaune ~= nil then
        val = Recup(ThermometresRond[TherNb].jaune)
        val = string.gsub(val, " ", "")
        cree("ind-jaune", val, TherNb)
    end
   if ThermometresRond[TherNb].blanc ~= nil then
        val = Recup(ThermometresRond[TherNb].blanc)
        val = string.gsub(val, " ", "")
        cree("ind-blanc", val, TherNb)
    end

    if ThermometresRond[TherNb].aiguille ~= nil then
        val = Recup(ThermometresRond[TherNb].aiguille)
        val = string.gsub(val, " ", "")
        cree("aiguille", val, TherNb)
    end
    os.execute('mogrify -resize '..ThermometresRond[TherNb].taille..'! '..Rep..'/Thermorond'..TherNb..'.png && composite -blend 0x'..ThermometresRond[TherNb].opacite..' null: '..Rep..'/Thermorond'..TherNb..'.png -matte '..Rep..'/Thermorond'..TherNb..'.png')
		os.execute('chmod -R o+rw- '..Rep)
end

function cree(aiguille, angle, TherNb)
    angle = (angle*4)-40
    os.execute(' convert -background transparent '..Rep_ThermRond..'/'..aiguille..'.png -rotate '..angle..' '..Rep..'/direction_rot.png && composite -compose Over  -gravity Center '..Rep..'/direction_rot.png '..Rep..'/Thermorond'..TherNb..'.png '..Rep..'/Thermorond'..TherNb..'.png')
		
end


function lune()
    
    local j, h, m = Age:match("(%d+) Jours (%d+)h (%d+)m")
    if j == nil then
        j, h, m = Age:match("(%d+) Jour (%d+)h (%d+)m")
        if j == nil then
            h, m = Age:match("(%d+)h (%d+)m")
            j = 0
        end
    end
    
    local angle = ((360/42524)*((((j*24)+h)*60)+m))+180

    os.execute(' convert -background transparent '..Rep_Lune..'/indicateur.png -rotate '..angle..' '..Rep..'/indicateur_rot.png && composite -compose Over  -gravity Center '..Rep..'/indicateur_rot.png '..Rep_Lune..'/lune-base.png '..Rep..'/lune.png && mogrify -resize '..lunaison.taille..'! '..Rep..'/lune.png && composite -blend 0x'..lunaison.opacite..' null: '..Rep..'/lune.png -matte '..Rep..'/lune.png')
    os.execute('chmod -R o+rw- '..Rep)
    
end


function Baro()
    
    local angle = ((conditioncourante.Pression-980)*4.5)-135

    ---- Aiguille
     os.execute('convert -background transparent '..Rep_Barometre..'/aiguille.png -rotate '..angle..' '..Rep..'/aiguille_rot.png && composite -compose Over  -gravity Center '..Rep..'/aiguille_rot.png '..Rep_Barometre..'/base.png '..Rep..'/Barometre.png && mogrify -resize '..Barometre.taille..'! '..Rep..'/Barometre.png && composite -blend 0x'..Barometre.opacite..' null: '..Rep..'/Barometre.png -matte '..Rep..'/Barometre.png')
    os.execute('chmod -R o+rw- '..Rep)
end


-- initialisation création rose des sables
function fonc_init_rose()

    for j = 1,jours do
        init_rose[j] = {CondCour=nil, Jour=nil, Nuit=nil, Matin=nil, AM=nil, Soiree=nil, Noct=nil}
        init_rose_raf[j]= {CondCour=nil, Jour=nil, Nuit=nil, Matin=nil, AM=nil, Soiree=nil, Noct=nil}
    end
    
end


-----Affichage Barometre
function conky_Images_Barometre(p, s, f, o)

    if Barometre.taille == nil then 
        Barometre.opacite = o
        Barometre.taille = s
        Baro()
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/Barometre.png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/Barometre.png "
    end
end


-----Affichage lune
function conky_Images_Lunaison(p, s, f, o)
    if lunaison.taille == nil then 
        lunaison.opacite = o
        lunaison.taille = s
        lune()
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/lune.png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/lune.png "
    end
end


-----Affichage Thermometre
function conky_Images_Thermo(p, s, f, n, o)


  n = tonumber(n)
    if Thermometre[n].opacite == nil then
        Thermometre[n].opacite = o
        Thermometre[n].taille = s
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/Thermo"..n..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/Thermo"..n..".png"
    end
end

function conky_Images_ThermoRond(p, s, f, n, o, a, b, c, d)

--p=position s=taille f=frequence de rafraichissement n=num therm o=opacité a=info 1 b=info 2 c=info 3 d=info 4
    n = tonumber(n)
    if ThermometresRond[n] == nil then
        ThermometresRond[n] = {}
        Nb_ThermRond = n
        local pos
        if a ~= nil then
            a = string.gsub(a, "-", " ")
            if string.find(a, 'a=') ~= nil then
                pos = string.find(a, '=')
                ThermometresRond[n].aiguille = string.sub(a, pos+1)
            elseif string.find(a, 'b=') ~= nil then
                pos = string.find(a, '=')
                ThermometresRond[n].bleu = string.sub(a, pos+1)
            elseif string.find(a, 'r=') ~= nil then
                pos = string.find(a, '=')
                ThermometresRond[n].rouge = string.sub(a, pos+1)
            elseif string.find(a, 'v=') ~= nil then
                pos = string.find(a, '=')
                ThermometresRond[n].vert = string.sub(a, pos+1)
	    elseif string.find(a, 'j=') ~= nil then
                pos = string.find(a, '=')
                ThermometresRond[n].jaune = string.sub(a, pos+1)
	    elseif string.find(a, 'w=') ~= nil then
                pos = string.find(a, '=')
                ThermometresRond[n].blanc = string.sub(a, pos+1)
            end
        end
        if b ~= nil then
            b = string.gsub(b, "-", " ")
            if string.find(b, 'a=') ~= nil then
                pos = string.find(b, '=')
                ThermometresRond[n].aiguille = string.sub(b, pos+1)
            elseif string.find(b, 'b=') ~= nil then
                pos = string.find(b, '=')
                ThermometresRond[n].bleu = string.sub(b, pos+1)
            elseif string.find(b, 'r=') ~= nil then
                pos = string.find(b, '=')
                ThermometresRond[n].rouge = string.sub(b, pos+1)
            elseif string.find(b, 'v=') ~= nil then
                pos = string.find(b, '=')
                ThermometresRond[n].vert = string.sub(b, pos+1)
	    elseif string.find(b, 'j=') ~= nil then
                pos = string.find(b, '=')
                ThermometresRond[n].jaune = string.sub(b, pos+1)
	    elseif string.find(b, 'w=') ~= nil then
                pos = string.find(b, '=')
                ThermometresRond[n].blanc = string.sub(b, pos+1)
            end
        end
        if c ~= nil then
            c = string.gsub(c, "-", " ")
            if string.find(c, 'a=') ~= nil then
                pos = string.find(c, '=')
                ThermometresRond[n].aiguille = string.sub(c, pos+1)
            elseif string.find(c, 'b=') ~= nil then
                pos = string.find(c, '=')
                ThermometresRond[n].bleu = string.sub(c, pos+1)
            elseif string.find(c, 'r=') ~= nil then
                pos = string.find(c, '=')
                ThermometresRond[n].rouge = string.sub(c, pos+1)
            elseif string.find(c, 'v=') ~= nil then
                pos = string.find(c, '=')
                ThermometresRond[n].vert = string.sub(c, pos+1)
	    elseif string.find(c, 'j=') ~= nil then
                pos = string.find(c, '=')
                ThermometresRond[n].jaune = string.sub(c, pos+1)
	    elseif string.find(c, 'w=') ~= nil then
                pos = string.find(c, '=')
                ThermometresRond[n].blanc = string.sub(c, pos+1)
            end
        end
        if d ~= nil then
            d = string.gsub(d, "-", " ")
            if string.find(d, 'a=') ~= nil then
                pos = string.find(d, '=')
                ThermometresRond[n].aiguille = string.sub(d, pos+1)
            elseif string.find(d, 'b=') ~= nil then
                pos = string.find(d, '=')
                ThermometresRond[n].bleu = string.sub(d, pos+1)
            elseif string.find(d, 'r=') ~= nil then
                pos = string.find(d, '=')
                ThermometresRond[n].rouge = string.sub(d, pos+1)
            elseif string.find(d, 'v=') ~= nil then
                pos = string.find(d, '=')
                ThermometresRond[n].vert = string.sub(d, pos+1)
	    elseif string.find(a, 'j=') ~= nil then
                pos = string.find(d, '=')
                ThermometresRond[n].jaune = string.sub(d, pos+1)
	    elseif string.find(d, 'w=') ~= nil then
                pos = string.find(d, '=')
                ThermometresRond[n].blanc = string.sub(d, pos+1)
            end
        end
        ThermometresRond[n].taille = s
        ThermometresRond[n].opacite = o
        CreaThermometreRond(n)
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/Thermorond"..n..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/Thermorond"..n..".png"
    end
end


-----Affichage rose des sables
--Condition courante
function conky_Images_Rose(p, s, f, o)
    j = 1

    if init_rose[j].CondCour == nil then
        Rose(conditioncourante.VentDir, conditioncourante.VentPlein, conditioncourante.VentForce, "Rose", s, o)
        init_rose[j].CondCour = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/Rose.png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/Rose.png"
    end
end


--Prévision sur la journée
function conky_Images_Jour_Rose(p, s, f, j, o)
    j = tonumber(j)

    if init_rose[j].Jour == nil then
        Rose(conditionJour[j].VentDir, conditionJour[j].VentP, conditionJour[j].VentForce, "RoseJour"..j, s, o)
        init_rose[j].Jour = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseJour"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseJour"..j..".png"
    end
end

function conky_Images_Jour_RoseR(p, s, f, j, o)
    j = tonumber(j)

    if init_rose_raf[j].Jour == nil then
        Rose(conditionJour[j].VentDir, conditionJour[j].VentP, conditionJour[j].VentRafales, "RoseJourR"..j, s, o)
        init_rose_raf[j].Jour = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseJourR"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseJourR"..j..".png"
    end
end


--Prévision sur la nuit
function conky_Images_Nuit_Rose(p, s, f, j, o)
    j = tonumber(j)

    if init_rose[j].Nuit == nil then
        Rose(conditionNuit[j].VentDir, conditionNuit[j].VentP, conditionNuit[j].VentForce, "RoseNuit"..j, s, o)
        init_rose[j].Nuit = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseNuit"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseNuit"..j..".png"
    end
end

function conky_Images_Nuit_RoseR(p, s, f, j, o)
    j = tonumber(j)

    if init_rose_raf[j].Nuit == nil then
        Rose(conditionNuit[j].VentDir, conditionNuit[j].VentP, conditionNuit[j].VentRafales, "RoseNuitR"..j, s, o)
        init_rose_raf[j].Nuit = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseNuitR"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseNuitR"..j..".png"
    end
end


--Condition Matinée
function conky_Images_Matin_Rose(p, s, f, j, o)
    j = tonumber(j)

    if init_rose[j].Matin == nil then
        Rose(conditionMatin[j].VentDir, conditionMatin[j].VentP, conditionMatin[j].VentForce, "RoseMatin"..j, s, o)
        init_rose[j].Matin = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseMatin"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseMatin"..j..".png"
    end
end


--Condition Après midi
function conky_Images_AM_Rose(p, s, f, j, o)
    j = tonumber(j)

    if init_rose[j].AM == nil then
        Rose(conditionAM[j].VentDir, conditionAM[j].VentP, conditionAM[j].VentForce, "RoseAM"..j, s, o)
        init_rose[j].AM = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseAM"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseAM"..j..".png"
    end
end


--Condition soirée
function conky_Images_Soiree_Rose(p, s, f, j, o)
    j = tonumber(j)

    if init_rose[j].Soiree == nil then
        Rose(conditionSoiree[j].VentDir, conditionSoiree[j].VentP, conditionSoiree[j].VentForce, "RoseSoiree"..j, s, o)
        init_rose[j].Soiree = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseSoiree"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseSoiree"..j..".png"
    end
end

--Condition Nuit
function conky_Images_Noct_Rose(p, s, f, j, o)
    j = tonumber(j)

    if init_rose[j].Noct == nil then
        Rose(conditionNoct[j].VentDir, conditionNoct[j].VentP, conditionNoct[j].VentForce, "RoseNoct"..j, s, o)
        init_rose[j].Noct = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseNoct"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseNoct"..j..".png"
    end
end




--Récupération de données
function conky_Images_MAJ(cfg)


	local s = '${lua Meteo_etat_MAJ}'
	local MAJ = conky_parse( s )
		
	
	if maj1 == nil then
		init(cfg)
		maj1 = "ok"
		MAJHold = MAJ+1
		
	end
	
	if MAJ ~= MAJHold then

		MAJHold = MAJ
--Récupération dernière condition courante
		local file = assert(io.open(repsauv.."/CondCour", "r") )
		local line = file:read()
		local i = 0
		local donee = {}
		for line in file:lines() do
			i = i+1
			donee[i] = line
		end
		local t = {"Icone", "Tempr", "Temp", "Cond", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "VentDir", "VentPlein", "VentForce", "VentIcone", "Humidite", "PointRosee", "Pression", "Visibilite", "Date", "Ville", "CouvNuage", "Uv", "latitude", "longitude"}
		for i = 1,22 do
			conditioncourante[t[i]] = donee[i]
		end
		time = donee[23]
		io.close(file)
		
--Récupération prévision
		
		for j = 1,jours do
			local file = assert(io.open(repsauv.."/prevision"..j, "r"))
			local line = file:read()
			local i = 0
			local donee = {}
			for line in file:lines() do
				i = i+1
				donee[i] = line
			end
			local info = {}
			local t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "Temp", "TempRes", "ProbPrec", "VentDir", "VentP", "VentForce", "VentRafales", "Uv", "ProbOrage", "NivPrec", "QPluie", "QNeige", "Icone", "VentIcone", "RafalesIcone", "EVerglas"}
			conditionJour[j] = {}
			for i = 1, 21 do
				info[t[i]] = donee[i]
			end
			conditionJour[j] = info
			local info1 = {}
			t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "Temp", "TempRes", "ProbPrec", "VentDir", "VentP", "VentForce", "VentRafales", "ProbOrage", "NivPrec", "QPluie", "QNeige", "Icone", "VentIcone", "RafalesIcone", "EVerglas"}
			conditionNuit[j] = {}
			for i = 22, 41 do
				info1[t[i-21]] = donee[i]
			end
			conditionNuit[j] = info1
			local info2 = {}
			t= {"Jour", "LeverSoleilH", "LeverSoleilM", "CoucherSoleilH", "CoucherSoleilM", "Histo_Max", "Histo_Min"}
			InfoJour[j] = {}
			for i = 42, 48 do
				info2[t[i-41]] = donee[i]
			end
			InfoJour[j] = info2
			io.close(file)
			
			if matin == "oui" then
				local file = assert(io.open(repsauv.."/matin"..j, "r"))
				local line = file:read()
				local i = 0
				local donee = {}
				for line in file:lines() do
					i = i+1
					donee[i] = line
				end
				local t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "TempMax", "TempMin", "TempMaxR", "TempMinR", "ProbPrec", "VentDir", "VentP", "VentForce", "QPluie", "QNeige", "Humidite", "CouvNuage", "PointRosee", "Visibilite", "Icone", "VentIcone"}
				conditionMatin[j] = {}
				local info3 = {}
				for i = 1, 21 do
					info3[t[i]] = donee[i]
				end
				conditionMatin[j] = info3
				io.close(file)
			end

			if apresmidi == "oui" then
				local file = assert(io.open(repsauv.."/ApresMidi"..j, "r"))
				local line = file:read()
				local i = 0
				local donee = {}
				for line in file:lines() do
					i = i+1
					donee[i] = line
				end
				local t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "TempMax", "TempMin", "TempMaxR", "TempMinR", "ProbPrec", "VentDir", "VentP", "VentForce", "QPluie", "QNeige", "Humidite", "CouvNuage", "PointRosee", "Visibilite", "Icone", "VentIcone"}
				conditionAM[j] = {}
				local info3 = {}
				for i = 1, 21 do
					info3[t[i]] = donee[i]
				end
				conditionAM[j] = info3
				io.close(file)
			end

			if soiree == "oui" then
				local file = assert(io.open(repsauv.."/Soiree"..j, "r"))
				local line = file:read()
				local i = 0
				local donee = {}
				for line in file:lines() do
					i = i+1
					donee[i] = line
				end
				local t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "TempMax", "TempMin", "TempMaxR", "TempMinR", "ProbPrec", "VentDir", "VentP", "VentForce", "QPluie", "QNeige", "Humidite", "CouvNuage", "PointRosee", "Visibilite", "Icone", "VentIcone"}
				conditionSoiree[j] = {}
				local info3 = {}
				for i = 1, 21 do
					info3[t[i]] = donee[i]
				end
				conditionSoiree[j] = info3
				io.close(file)
			end

			if nuit == "oui" then
				local file = assert(io.open(repsauv.."/Nuit"..j, "r"))
				local line = file:read()
				local i = 0
				local donee = {}
				for line in file:lines() do
					i = i+1
					donee[i] = line
				end
				local t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "TempMax", "TempMin", "TempMaxR", "TempMinR", "ProbPrec", "VentDir", "VentP", "VentForce", "QPluie", "QNeige", "Humidite", "CouvNuage", "PointRosee", "Visibilite", "Icone", "VentIcone"}
				conditionNoct[j] = {}
				local info3 = {}
				for i = 1, 21 do
					info3[t[i]] = donee[i]
				end
				conditionNoct[j] = info3
				io.close(file)
			end

		end

		--Récupération lunaison
		local file = assert(io.open(repsauv.."/lunaison", "r"))
		local line = file:read()
		local i = 0
		local donee = {}
		for line in file:lines() do
			i = i+1
			donee[i] = line
		end
		ephemerides = donee[1]
		ephemerides1 = donee[2]
		ephemerides2 = donee[3]
		Visibilite = donee[4]
		Phases = donee[5]
		Phases1 = donee[6]
		Phases2 = donee[7]
		Noeud_lunaire = donee[8]
		Apogee = donee[9]
		Perigee = donee[10]
		Distance = donee[11]
		Age = donee[12]
		Lever_LuneHeure = donee[13]
		Lever_LuneMinute = donee[14]
		Coucher_LuneHeure = donee[15]
		Coucher_LuneMinute = donee[16]
		Eclipse_partielle = donee[17]
		Eclipse_total = donee[18]
		io.close(file)
			

		if Barometre.taille ~= nil then Baro() end
		if lunaison.taille ~= nil then lune() end
		fonc_init_rose()
		
		local i = 0
		while i ~= Nb_Thermo do
			i = i+1
			CreaThermometre(i)
		end
		i = 0
		while i ~= Nb_ThermRond do
			i = i+1
			CreaThermometreRond(i)
		end




		if Mode == "fondecran" then
			FondEcran_init()
		end
		if Mode == "fondinactif" then
			FondInactif_init()
		end
		
		collectgarbage()
		
	end			

	return ""
end



--initialisation paramètres
function init(cfg)
	
	local home = os.getenv("HOME")
	cfg = string.gsub(cfg, "~", home)
	cfg = string.gsub(cfg, "$HOME", home)
	imagecfg = cfg

	Nb_Thermo = 0
	Nb_ThermRond = 0
	local Thermo = false
	local ThermRond = false

	local file = assert(io.open(cfg, "rb") )

	local line = file:read()
	for line in file:lines() do
		local pos1 = string.find(line, '#')
		if pos1 ~= nil then
			line = string.sub(line, 1, pos1-1)
		end
		pos1 = string.find(line, '=')
		if string.find(line, 'Therm=') ~= nil then
			Rep_Therm = string.sub(line, pos1+1)
		elseif string.find(line, 'repfonts=') ~= nil then
			repfonts = string.sub(line, pos1+1)
		elseif string.find(line, 'ThermRond=') ~= nil then
			Rep_ThermRond = string.sub(line, pos1+1)
		elseif string.find(line, 'Rose=') ~= nil then
			Rep_Rose = string.sub(line, pos1+1)
		elseif string.find(line, 'palier1=') ~= nil then
			palier1 = string.sub(line, pos1+1)
		elseif string.find(line, 'palier2=') ~= nil then
			palier2 = string.sub(line, pos1+1)
		elseif string.find(line, 'palier3=') ~= nil then
			palier3 = string.sub(line, pos1+1)
		elseif string.find(line, 'palier4=') ~= nil then
			palier4 = string.sub(line, pos1+1)
		elseif string.find(line, 'palier1coulfont=') ~= nil then
			palier1coulfont = string.sub(line, pos1+1)
		elseif string.find(line, 'palier2coulfont=') ~= nil then
			palier2coulfont = string.sub(line, pos1+1)
		elseif string.find(line, 'palier3coulfont=') ~= nil then
			palier3coulfont = string.sub(line, pos1+1)
		elseif string.find(line, 'palier4coulfont=') ~= nil then
			palier4coulfont = string.sub(line, pos1+1)
		elseif string.find(line, 'Lune=') ~= nil then
			Rep_Lune = string.sub(line, pos1+1)
		elseif string.find(line, 'Barometre=') ~= nil then
			Rep_Barometre = string.sub(line, pos1+1)
		elseif string.find(line, 'repmeteo=') ~= nil then
			repmeteo = string.sub(line, pos1+1)
		elseif string.find(line, 'IconesRep=') ~= nil then
			IconesRep = string.sub(line, pos1+1)
		elseif string.find(line, 'Mode=') ~= nil then
			Mode = string.sub(line, pos1+1)
		elseif string.find(line, 'MiseEnPage=') ~= nil then
			mise_en_page = string.sub(line, pos1+1)
			mise_en_page = string.gsub(mise_en_page, "~", home)
			mise_en_page = string.gsub(mise_en_page, "$HOME", home)
			pos = string.find(mise_en_page, "creationmodules")
			fich_creationmodule =  string.sub(mise_en_page, pos)..".sh"
		end
		
		--debut thermomètre	mercure	
		if string.find(line, 'Thermometres=') ~= nil then
			Thermo = true
			Nb_Thermo = Nb_Thermo+1
			Thermometre[tonumber(Nb_Thermo)] = {}
		end
		
		if Thermo ~= false then
			if string.find(line, 'base=') ~= nil then
				Thermometre[Nb_Thermo].base = string.sub(line, pos1+1)
			elseif string.find(line, 'mercure=') ~= nil then
				Thermometre[Nb_Thermo].mercure = string.sub(line, pos1+1)
			elseif string.find(line, 'mercure_info=') ~= nil then
				local pos2 = string.find(line, '}')
				if pos2 ~= nil then
					Thermometre[Nb_Thermo].mercure_info = string.sub(line, pos1+1, pos2-1)
				else
					Thermometre[Nb_Thermo].mercure_info = string.sub(line, pos1+1)
				end
			elseif string.find(line, 'plot=') ~= nil then
				Thermometre[Nb_Thermo].plot = string.sub(line, pos1+1)
			elseif string.find(line, 'plot_info=') ~= nil then
				local pos2 = string.find(line, '}')
				Thermometre[Nb_Thermo].plot_info = string.sub(line, pos1+1, pos2-1)
			end
	
			pos1 = string.find(line, '}')
			if pos1 ~= nil then
				line = string.sub(line, pos1)
				if string.find(line, ',') == nil then
					Thermo = false
				else
					Nb_Thermo = Nb_Thermo+1
					Thermometre[Nb_Thermo] = {}
				end
			end
		end
		--fin thermomètre

		
	end
	io.close(file)

	
	local fichier_init = conky_parse( "${lua Meteo_fichier_init}" )
	meteocfg=fichier_init
	local file = assert(io.open(fichier_init, "rb") )
	local line = file:read()
	for line in file:lines() do
		local pos1 = string.find(line, '#')
		if pos1 ~= nil then
			line = string.sub(line, 1, pos1-1)
		end
		pos1 = string.find(line, '=')
		if string.find(line, 'repsauv=') ~= nil then
			repsauv = string.sub(line, pos1+1)
		elseif string.find(line, 'TempShell=') ~= nil then
			r = string.sub(line, pos1+1)
		elseif string.find(line, 'web=') ~= nil then
			cmd1 = string.sub(line, pos1+1)
		elseif string.find(line, 'periode=') ~= nil then
			jours = string.sub(line, pos1+1)
		elseif string.find(line, 'matinée=') ~= nil then
			matin = string.sub(line, pos1+1)
		elseif string.find(line, 'am=') ~= nil then
			apresmidi = string.sub(line, pos1+1)
		elseif string.find(line, 'soiree=') ~= nil then
			soiree = string.sub(line, pos1+1)
		elseif string.find(line, 'nuit=') ~= nil then
			nuit = string.sub(line, pos1+1)
		elseif string.find(line, 'Therm=') ~= nil then
			Rep_Therm = string.sub(line, pos1+1)
		elseif string.find(line, 'Rose=') ~= nil then
			Rep_Rose = string.sub(line, pos1+1)
		elseif string.find(line, 'Palier=') ~= nil then
			Palier = tonumber(string.sub(line, pos1+1))
		elseif string.find(line, 'update=') ~= nil then
			delais = string.sub(line, pos1+1)
		end
	end
	io.close(file)	
	r = string.gsub(r, "~", home)
	r = string.gsub(r, "$HOME", home)
	repsauv = string.gsub(repsauv, "~", home)
	repsauv = string.gsub(repsauv, "$HOME", home)


--Création répertoire de travail
	l = cmd1:match("/(%d+)")
	if string.find(cmd1, 'forecast') ~= nil then
		pos1 = string.find(cmd1, '/weather')
		cmd = string.sub(cmd1, 0, pos1-1)
	else
		pos1 = string.find(cmd1, '/current')
		cmd = string.sub(cmd1, 0, pos1-1)
	end

	local bar, bar1
	local l1 = string.gsub(cmd, '/'..l, "" )
	local b = 1
	while bar1 == nil do
		b = b+1
		bar1 = string.find(l1, '/', -b)
	end
	l1 = string.sub(l1, bar1+1)
	Rep = r.."/"..l1.."/"..l

	MAJHold = "10"
	
	return ""
end

------------------------------------------------------------- Fond ecran --------------------------------------------------

function FondEcran_init()


if not existe(repsauv.."/fond-meteo.png") then
	boucle = boucle+1
end

if boucle ~= 0 then
	print("","Mode = "..Mode)
	-- sauvegarde fond ecran
	os.execute(repmeteo..'/scripts/fond-gestion.sh sauvegarde')
	-- creation des modules externes
	creation_module(mise_en_page)
	-- Maj du fond d'écran	
	os.execute(repmeteo..'/scripts/fond-gestion.sh integration ')

end
	boucle = boucle+1
end

function FondInactif_init()

	print("","Mode = "..Mode)
	-- creation des modules externes
	creation_module(mise_en_page)

end

function conky_extinction()
-- remise en place fond ecran-ori
os.execute(repmeteo..'/scripts/fond-gestion.sh restauration')	
end

function mise_en_forme(x)
	local pos = string.find(x, "{{")
	local Nb = 0
	local info, pos1
	while pos ~= nil do
		Nb = Nb+1
		if Nb == 1 then
			code = string.sub(x, 0, pos-1)
		else
			code = code..string.sub(x, pos1+2, pos-1)
		end
		pos1 = string.find(x, "}}", pos+2)
		info = string.sub(x, pos+2, pos1-1)
		code = code..Recup_info(info)
		pos = string.find(x, "{{", pos1+2)
	end
	if pos1 ~= nil then
		code = code..string.sub(x, pos1+2)
	else
		code = x
	end

	return code
end


function creation_module(creationmodules)
------------copie et recuperation du fichier  

	local file = io.open(creationmodules)
	local line = file:read()
	local file1 =  io.open(Rep.."/"..fich_creationmodule, "w+" )
	------------- mise en place fichier + entête 

	file1:write ("#!/bin/bash \n\n##########################################\ncheminref="..repmeteo.."\nsource "..imagecfg.." 2>/dev/null\nsource "..meteocfg.." 2>/dev/null\n")
	------------------------------------------------------------------------
		for line in file:lines() do
	---------------------------------------------------------
			file1:write (mise_en_forme(line), "\n")
	---------------------------------------------------------
		end
	------ fermeture et ecriture
	io.close(file1)
	io.close(file)
	------ execution du fichier bash
	os.execute('chmod +x '..Rep..'/'..fich_creationmodule..' && '..Rep..'/'..fich_creationmodule)
	
	
end
function Recup_info(x)
	local info, pos1, pos
	pos = string.find(x, " ")
	if pos ~= nil then
		info = string.sub(x, 0, pos-1)
		pos1 = string.find(x, " ", pos+1)
	else
		info = x
	end
	if pos ~= nil then
		if pos1 ~= nil then
			arg1 = string.sub(x, pos+1, pos1-1)
			pos = string.find(x, " ", pos1+1)
		else
			arg1 = string.sub(x, pos+1)
		end
		if pos1 ~= nil then
			if pos ~= nil then
				arg2 = string.sub(x, pos1+1, pos-1)
				pos1 = string.find(x, " ", pos+1)
			else
				arg2 = string.sub(x, pos1+1)
			end
			if pos ~= nil then
				if pos1 ~= nil then
					arg3 = string.sub(x, pos+1, pos1-1)
					pos = string.find(x, " ", pos1+1)
				else
					arg3 = string.sub(x, pos+1)
				end
				if pos1 ~= nil then
					if pos ~= nil then
						arg4 = string.sub(x, pos1+1, pos-1)
						pos1 = string.find(x, " ", pos+1)
					else
						arg4 = string.sub(x, pos1+1)
					end
					if pos ~= nil then
						if pos1 ~= nil then
							arg5 = string.sub(x, pos+1, pos1-1)
							pos = string.find(x, " ", pos1+1)
						else
							arg5 = string.sub(x, pos+1)
						end
						if pos1 ~= nil then
							if pos ~= nil then
								arg6 = string.sub(x, pos1+1, pos-1)
								pos1 = string.find(x, " ", pos+1)
							else
								arg6 = string.sub(x, pos1+1)
							end
							if pos ~= nil then
								if pos1 ~= nil then
									arg7 = string.sub(x, pos+1, pos1-1)
									pos = string.find(x, " ", pos1+1)
								else
									arg7 = string.sub(x, pos+1)
								end
								if pos1 ~= nil then
									if pos ~= nil then
										arg8 = string.sub(x, pos1+1, pos-1)
										pos1 = string.find(x, " ", pos+1)
									else
										arg8 = string.sub(x, pos1+1)
									end
									if pos ~= nil then
										if pos1 ~= nil then
											arg9 = string.sub(x, pos+1, pos1-1)
											pos = string.find(x, " ", pos1+1)
										else
											arg9 = string.sub(x, pos+1)
										end
										if pos1 ~= nil then
											if pos ~= nil then
												arg10 = string.sub(x, pos1+1, pos-1)
												pos1 = string.find(x, " ", pos+1)
											else
												arg10 = string.sub(x, pos1+1)
											end
											if pos ~= nil then
												if pos1 ~= nil then
													arg11 = string.sub(x, pos+1, pos1-1)
													pos = string.find(x, " ", pos1+1)
												else
													arg11 = string.sub(x, pos+1)
												end
											end
										end
									end
								end
							end
						end
					end
				end
			end
		end
	end
	
		
	if info == "Meteo_TempRes" then
		return conditioncourante.Tempr
	elseif info == "Meteo_TempAct" then
		return conditioncourante.Temp
	elseif info == "Meteo_CondMeteo" then
		return conditioncourante.Cond
	elseif info == "Meteo_CondMeteo1" then
		return conditioncourante.CondMeteo1
	elseif info == "Meteo_CondMeteo2" then
		return conditioncourante.CondMeteo2
	elseif info == "Meteo_CondMeteo1se" then
		return conditioncourante.CondMeteo1se
	elseif info == "Meteo_CondMeteo2se" then
		return conditioncourante.CondMeteo2se
	elseif info == "Meteo_VentDir" then
		return conditioncourante.VentDir
	elseif info == "Meteo_VentDirP" then
		return conditioncourante.VentPlein
	elseif info == "Meteo_VentForce" then
		return conditioncourante.VentForce
	elseif info == "Meteo_Humidite" then
		return conditioncourante.Humidite
	elseif info == "Meteo_Rose" then
		return conditioncourante.PointRosee
	elseif info == "Meteo_Pression" then
		return conditioncourante.Pression
	elseif info == "Meteo_Visibilite" then
		return conditioncourante.Visibilite
	elseif info == "Meteo_CouvNuage" then
		return conditioncourante.CouvNuage
	elseif info == "Meteo_Uv" then
		return conditioncourante.Uv
	elseif info == "Meteo_IconeM" then
		if os.date("%H%M", os.time()) <= InfoJour[1].CoucherSoleilH..InfoJour[1].CoucherSoleilM and os.date("%H%M", os.time()) >= InfoJour[1].LeverSoleilH..InfoJour[1].LeverSoleilM then
			return arg1.."/jour/"..conditioncourante.Icone..".png"
		else
			return arg1.."/nuit/"..conditioncourante.Icone..".png"
		end
	elseif info == "Meteo_IconeV" then
		return arg1.."/"..conditioncourante.VentIcone
	elseif info == "Meteo_Ville" then
		return conditioncourante.Ville
	elseif info == "Meteo_latitude" then
		return conditioncourante.latitude
	elseif info == "Meteo_longitude" then
		return conditioncourante.longitude
	elseif info == "Image_version" then
		return Version
	--prévision journée
	elseif info == "Meteo_Jour_CondMeteo" then
		return conditionJour[tonumber(arg1)].CondMeteo
	elseif info == "Meteo_Jour_CondMeteo1" then
		return conditionJour[tonumber(arg1)].CondMeteo1
	elseif info == "Meteo_Jour_CondMeteo2" then
		return conditionJour[tonumber(arg1)].CondMeteo2
	elseif info == "Meteo_Jour_CondMeteo1se" then
		return conditionJour[tonumber(arg1)].CondMeteo1se
	elseif info == "Meteo_Jour_CondMeteo2se" then
		return conditionJour[tonumber(arg1)].CondMeteo2se
	elseif info == "Meteo_Jour_Temp" then
		return conditionJour[tonumber(arg1)].Temp
	elseif info == "Meteo_Jour_TempRes" then
		return conditionJour[tonumber(arg1)].TempRes
	elseif info == "Meteo_Jour_ProbPrec" then
		return conditionJour[tonumber(arg1)].ProbPrec
	elseif info == "Meteo_Jour_VentDir" then
		return conditionJour[tonumber(arg1)].VentDir
	elseif info == "Meteo_Jour_VentDirP" then
		return conditionJour[tonumber(arg1)].VentP
	elseif info == "Meteo_Jour_VentForce" then
		return conditionJour[tonumber(arg1)].VentForce
	elseif info == "Meteo_Jour_VentRafales" then
		return conditionJour[tonumber(arg1)].VentRafales
	elseif info == "Meteo_Jour_Uv" then
		return conditionJour[tonumber(arg1)].Uv
	elseif info == "Meteo_Jour_ProbOrage" then
		return conditionJour[tonumber(arg1)].ProbOrage
	elseif info == "Meteo_Jour_NivPrec" then
		return conditionJour[tonumber(arg1)].NivPrec
	elseif info == "Meteo_Jour_QPluie" then
		return conditionJour[tonumber(arg1)].QPluie
	elseif info == "Meteo_Jour_QNeige" then
		return conditionJour[tonumber(arg1)].QNeige
	elseif info == "Meteo_Jour_EVerglas" then
		return conditionJour[tonumber(arg1)].EVerglas
	elseif info == "Meteo_Jour_IconeM" then
		return arg1.."/jour/"..conditionJour[tonumber(arg5)].Icone..".png"
	elseif info == "Meteo_Jour_IconeV" then
		return arg1.."/"..conditionJour[tonumber(arg5)].VentIcone
	elseif info == "Meteo_Jour_IconeR" then
		return arg1.."/"..conditionJour[tonumber(arg5)].RafalesIcone
	--prévision Nuit
	elseif info == "Meteo_Nuit_CondMeteo" then
		return conditionNuit[tonumber(arg1)].CondMeteo
	elseif info == "Meteo_Nuit_CondMeteo1" then
		return conditionNuit[tonumber(arg1)].CondMeteo1
	elseif info == "Meteo_Nuit_CondMeteo2" then
		return conditionNuit[tonumber(arg1)].CondMeteo2
	elseif info == "Meteo_Nuit_CondMeteo1se" then
		return conditionNuit[tonumber(arg1)].CondMeteo1se
	elseif info == "Meteo_Nuit_CondMeteo2se" then
		return conditionNuit[tonumber(arg1)].CondMeteo2se
	elseif info == "Meteo_Nuit_Temp" then
		return conditionNuit[tonumber(arg1)].Temp
	elseif info == "Meteo_Nuit_TempRes" then
		return conditionNuit[tonumber(arg1)].TempRes
	elseif info == "Meteo_Nuit_ProbPrec" then
		return conditionNuit[tonumber(arg1)].ProbPrec
	elseif info == "Meteo_Nuit_VentDir" then
		return conditionNuit[tonumber(arg1)].VentDir
	elseif info == "Meteo_Nuit_VentDirP" then
		return conditionNuit[tonumber(arg1)].VentP
	elseif info == "Meteo_Nuit_VentForce" then
		return conditionNuit[tonumber(arg1)].VentForce
	elseif info == "Meteo_Nuit_VentRafales" then
		return conditionNuit[tonumber(arg1)].VentRafales
	elseif info == "Meteo_Nuit_Uv" then
		return conditionNuit[tonumber(arg1)].Uv
	elseif info == "Meteo_Nuit_ProbOrage" then
		return conditionNuit[tonumber(arg1)].ProbOrage
	elseif info == "Meteo_Nuit_NivPrec" then
		return conditionNuit[tonumber(arg1)].NivPrec
	elseif info == "Meteo_Nuit_QPluie" then
		return conditionNuit[tonumber(arg1)].QPluie
	elseif info == "Meteo_Nuit_QNeige" then
		return conditionNuit[tonumber(arg1)].QNeige
	elseif info == "Meteo_Nuit_EVerglas" then
		return conditionNuit[tonumber(arg1)].EVerglas
	elseif info == "Meteo_Nuit_IconeM" then
		return arg1.."/nuit/"..conditionNuit[tonumber(arg5)].Icone..".png"
	elseif info == "Meteo_Nuit_IconeV" then
		return arg1.."/"..conditionNuit[tonumber(arg5)].VentIcone
	elseif info == "Meteo_Nuit_IconeR" then
		return arg1.."/"..conditionNuit[tonumber(arg5)].RafalesIcone
	----Prévision quart de journée
	--Matin
	elseif info == "Meteo_Matin_CondMeteo " then
		return conditionMatin[tonumber(arg1)].CondMeteo
	elseif info == "Meteo_Matin_CondMeteo1" then
		return conditionMatin[tonumber(arg1)].CondMeteo1
	elseif info == "Meteo_Matin_CondMeteo2" then
		return conditionMatin[tonumber(arg1)].CondMeteo2
	elseif info == "Meteo_Matin_CondMeteo1se" then
		return conditionMatin[tonumber(arg1)].CondMeteo1se
	elseif info == "Meteo_Matin_CondMeteo2se" then
		return conditionMatin[tonumber(arg1)].CondMeteo2se
	elseif info == "Meteo_Matin_TempMax" then
		return conditionMatin[tonumber(arg1)].TempMax
	elseif info == "Meteo_Matin_TempMin" then
		return conditionMatin[tonumber(arg1)].TempMin
	elseif info == "Meteo_Matin_TempMaxRes" then
		return conditionMatin[tonumber(arg1)].TempMaxR
	elseif info == "Meteo_Matin_TempMinRes" then
		return conditionMatin[tonumber(arg1)].TempMinR
	elseif info == "Meteo_Matin_ProbPrec" then
		return conditionMatin[tonumber(arg1)].ProbPrec
	elseif info == "Meteo_Matin_VentDir" then
		return conditionMatin[tonumber(arg1)].VentDir
	elseif info == "Meteo_Matin_VentP" then
		return conditionMatin[tonumber(arg1)].VentP
	elseif info == "Meteo_Matin_VentForce" then
		return conditionMatin[tonumber(arg1)].VentForce
	elseif info == "Meteo_Matin_QPluie" then
		return conditionMatin[tonumber(arg1)].QPluie
	elseif info == "Meteo_Matin_QNeige" then
		return conditionMatin[tonumber(arg1)].QNeige
	elseif info == "Meteo_Matin_Humidite" then
		return conditionMatin[tonumber(arg1)].Humidite
	elseif info == "Meteo_Matin_CouvNuage" then
		return conditionMatin[tonumber(arg1)].CouvNuage
	elseif info == "Meteo_Matin_Rose" then
		return conditionMatin[tonumber(arg1)].PointRosee
	elseif info == "Meteo_Matin_Visibilite" then
		return conditionMatin[tonumber(arg1)].Visibilite
	elseif info == "Meteo_Matin_IconeM" then
		return arg1.."/jour/"..conditionMatin[tonumber(arg5)].Icone..".png"
	elseif info == "Meteo_Matin_IconeV" then
		return arg1.."/"..conditionMatin[tonumber(arg5)].VentIcone
	--Après midi
	elseif info == "Meteo_AM_CondMeteo " then
		return conditionAM[tonumber(arg1)].CondMeteo
	elseif info == "Meteo_AM_CondMeteo1" then
		return conditionAM[tonumber(arg1)].CondMeteo1
	elseif info == "Meteo_AM_CondMeteo2" then
		return conditionAM[tonumber(arg1)].CondMeteo2
	elseif info == "Meteo_AM_CondMeteo1se" then
		return conditionAM[tonumber(arg1)].CondMeteo1se
	elseif info == "Meteo_AM_CondMeteo2se" then
		return conditionAM[tonumber(arg1)].CondMeteo2se
	elseif info == "Meteo_AM_TempMax" then
		return conditionAM[tonumber(arg1)].TempMax
	elseif info == "Meteo_AM_TempMin" then
		return conditionAM[tonumber(arg1)].TempMin
	elseif info == "Meteo_AM_TempMaxRes" then
		return conditionAM[tonumber(arg1)].TempMaxR
	elseif info == "Meteo_AM_TempMinRes" then
		return conditionAM[tonumber(arg1)].TempMinR
	elseif info == "Meteo_AM_ProbPrec" then
		return conditionAM[tonumber(arg1)].ProbPrec
	elseif info == "Meteo_AM_VentDir" then
		return conditionAM[tonumber(arg1)].VentDir
	elseif info == "Meteo_AM_VentP" then
		return conditionAM[tonumber(arg1)].VentP
	elseif info == "Meteo_AM_VentForce" then
		return conditionAM[tonumber(arg1)].VentForce
	elseif info == "Meteo_AM_QPluie" then
		return conditionAM[tonumber(arg1)].QPluie
	elseif info == "Meteo_AM_QNeige" then
		return conditionAM[tonumber(arg1)].QNeige
	elseif info == "Meteo_AM_Humidite" then
		return conditionAM[tonumber(arg1)].Humidite
	elseif info == "Meteo_AM_CouvNuage" then
		return conditionAM[tonumber(arg1)].CouvNuage
	elseif info == "Meteo_AM_Rose" then
		return conditionAM[tonumber(arg1)].PointRosee
	elseif info == "Meteo_AM_Visibilite" then
		return conditionAM[tonumber(arg1)].Visibilite
	elseif info == "Meteo_AM_IconeM" then
		return arg1.."/jour/"..conditionAM[tonumber(arg5)].Icone..".png"
	elseif info == "Meteo_AM_IconeV" then
		return arg1.."/"..conditionAM[tonumber(arg5)].VentIcone
	--Soirée
	elseif info == "Meteo_Soiree_CondMeteo " then
		return conditionSoiree[tonumber(arg1)].CondMeteo
	elseif info == "Meteo_Soiree_CondMeteo1" then
		return conditionSoiree[tonumber(arg1)].CondMeteo1
	elseif info == "Meteo_Soiree_CondMeteo2" then
		return conditionSoiree[tonumber(arg1)].CondMeteo2
	elseif info == "Meteo_Soiree_CondMeteo1se" then
		return conditionSoiree[tonumber(arg1)].CondMeteo1se
	elseif info == "Meteo_Soiree_CondMeteo2se" then
		return conditionSoiree[tonumber(arg1)].CondMeteo2se
	elseif info == "Meteo_Soiree_TempMax" then
		return conditionSoiree[tonumber(arg1)].TempMax
	elseif info == "Meteo_Soiree_TempMin" then
		return conditionSoiree[tonumber(arg1)].TempMin
	elseif info == "Meteo_Soiree_TempMaxRes" then
		return conditionSoiree[tonumber(arg1)].TempMaxR
	elseif info == "Meteo_Soiree_TempMinRes" then
		return conditionSoiree[tonumber(arg1)].TempMinR
	elseif info == "Meteo_Soiree_ProbPrec" then
		return conditionSoiree[tonumber(arg1)].ProbPrec
	elseif info == "Meteo_Soiree_VentDir" then
		return conditionSoiree[tonumber(arg1)].VentDir
	elseif info == "Meteo_Soiree_VentP" then
		return conditionSoiree[tonumber(arg1)].VentP
	elseif info == "Meteo_Soiree_VentForce" then
		return conditionSoiree[tonumber(arg1)].VentForce
	elseif info == "Meteo_Soiree_QPluie" then
		return conditionSoiree[tonumber(arg1)].QPluie
	elseif info == "Meteo_Soiree_QNeige" then
		return conditionSoiree[tonumber(arg1)].QNeige
	elseif info == "Meteo_Soiree_Humidite" then
		return conditionSoiree[tonumber(arg1)].Humidite
	elseif info == "Meteo_Soiree_CouvNuage" then
		return conditionSoiree[tonumber(arg1)].CouvNuage
	elseif info == "Meteo_Soiree_Rose" then
		return conditionSoiree[tonumber(arg1)].PointRosee
	elseif info == "Meteo_Soiree_Visibilite" then
		return conditionSoiree[tonumber(arg1)].Visibilite
	elseif info == "Meteo_Soiree_IconeM" then
		return arg1.."/nuit/"..conditionSoiree[tonumber(arg5)].Icone..".png"
	elseif info == "Meteo_Soiree_IconeV" then
		return arg1.."/"..conditionSoiree[tonumber(arg5)].VentIcone
	--nuit
	elseif info == "Meteo_Noct_CondMeteo " then
		return conditionNoct[tonumber(arg1)].CondMeteo
	elseif info == "Meteo_Noct_CondMeteo1" then
		return conditionNoct[tonumber(arg1)].CondMeteo1
	elseif info == "Meteo_Noct_CondMeteo2" then
		return conditionNoct[tonumber(arg1)].CondMeteo2
	elseif info == "Meteo_Noct_CondMeteo1se" then
		return conditionNoct[tonumber(arg1)].CondMeteo1se
	elseif info == "Meteo_Noct_CondMeteo2se" then
		return conditionNoct[tonumber(arg1)].CondMeteo2se
	elseif info == "Meteo_Noct_TempMax" then
		return conditionNoct[tonumber(arg1)].TempMax
	elseif info == "Meteo_Noct_TempMin" then
		return conditionNoct[tonumber(arg1)].TempMin
	elseif info == "Meteo_Noct_TempMaxRes" then
		return conditionNoct[tonumber(arg1)].TempMaxR
	elseif info == "Meteo_Noct_TempMinRes" then
		return conditionNoct[tonumber(arg1)].TempMinR
	elseif info == "Meteo_Noct_ProbPrec" then
		return conditionNoct[tonumber(arg1)].ProbPrec
	elseif info == "Meteo_Noct_VentDir" then
		return conditionNoct[tonumber(arg1)].VentDir
	elseif info == "Meteo_Noct_VentP" then
		return conditionNoct[tonumber(arg1)].VentP
	elseif info == "Meteo_Noct_VentForce" then
		return conditionNoct[tonumber(arg1)].VentForce
	elseif info == "Meteo_Noct_QPluie" then
		return conditionNoct[tonumber(arg1)].QPluie
	elseif info == "Meteo_Noct_QNeige" then
		return conditionNoct[tonumber(arg1)].QNeige
	elseif info == "Meteo_Noct_Humidite" then
		return conditionNoct[tonumber(arg1)].Humidite
	elseif info == "Meteo_Noct_CouvNuage" then
		return conditionNoct[tonumber(arg1)].CouvNuage
	elseif info == "Meteo_Noct_Rose" then
		return conditionNoct[tonumber(arg1)].PointRosee
	elseif info == "Meteo_Noct_Visibilite" then
		return conditionNoct[tonumber(arg1)].Visibilite
	elseif info == "Meteo_Noct_IconeM" then
		return arg1.."/nuit/"..conditionNoct[tonumber(arg5)].Icone..".png"
	elseif info == "Meteo_Noct_IconeV" then
		return arg1.."/"..conditionNoct[tonumber(arg5)].VentIcone
	--lunaison
	elseif info == "Lune_ephemerides" then
		return ephemerides
	elseif info == "Lune_ephemerides1" then
		return ephemerides1
	elseif info == "Lune_ephemerides2" then
		return ephemerides2
	elseif info == "Lune_Visibilite" then
		return Visibilite
	elseif info == "Lune_Phases" then
		return Phases
	elseif info == "Lune_Phases1" then
		return Phases1
	elseif info == "Lune_Phases2" then
		return Phases2
	elseif info == "Lune_Noeudlunaire" then
		return Noeud_lunaire
	elseif info == "Lune_Apogee" then
		return Apogee
	elseif info == "Lune_Perigee" then
		return Perigee
	elseif info == "Lune_Distance" then
		return Distance
	elseif info == "Lune_Age" then
		return Age
	elseif info == "Lune_HLeverLune" then
		return Lever_LuneHeure
	elseif info == "Lune_MLeverLune" then
		return Lever_LuneMinute
	elseif info == "Lune_HCoucherLune" then
		return Coucher_LuneHeure
	elseif info == "Lune_MCoucherLune" then
		return Coucher_LuneMinute
	elseif info == "Lune_EclipsePartielle" then
		return Eclipse_partielle
	elseif info == "Lune_EclipseTotal" then
		return Eclipse_total
	elseif info == "Images_Barometre" then
		return conky_Images_Barometre(arg1, arg2, arg3, arg4)
	elseif info == "Images_Lunaison" then
		return conky_Images_Lunaison(arg1, arg2, arg3, arg4)
	elseif info == "Images_Thermo" then
		return conky_Images_Thermo(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_ThermoRond" then
		return conky_Images_ThermoRond(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11)
	elseif info == "Images_Rose" then
		return conky_Images_Rose(arg1, arg2, arg3, arg4)
	elseif info == "Images_Jour_Rose" then
		return conky_Images_Jour_Rose(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_Jour_RoseR" then
		return conky_Images_Jour_RoseR(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_Nuit_Rose" then
		return conky_Images_Nuit_Rose(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_Nuit_RoseR" then
		return conky_Images_Nuit_RoseR(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_Matin_Rose" then
		return conky_Images_Matin_Rose(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_AM_Rose" then
		return conky_Images_AM_Rose(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_Soiree_Rose" then
		return conky_Images_Soiree_Rose(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_Noct_Rose" then
		return conky_Images_Noct_Rose(arg1, arg2, arg3, arg4, arg5)
	else
		return conky_parse( "${lua "..x.."}" )
	end
end

cette modification de code sous Windows ma permis de découvrir un outils très intéressent note pad ++, excellent pour les scripts de grande taille.

Hors ligne

#1749 Le 25/12/2012, à 10:49

daniel38100

Re : [Conky] Alternative à weather.com (2)

merci a toi Didier-T ca marche nikel tu m'as sauver mon noel

1356425435.png

bon noel a tous !!!

Dernière modification par daniel38100 (Le 25/12/2012, à 10:51)

Hors ligne

#1750 Le 25/12/2012, à 16:58

Didier-T

Re : [Conky] Alternative à weather.com (2)

Mise a jour du pack images_meteo.lua en page de garde.

Bon maintenant que sa c'est fait, je vais pouvoir retirer mon costume de lutin. big_smile

Hors ligne