#376 Le 20/12/2011, à 12:35
- destroyedlolo
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Salut Didier,
Cool que tu t'essaie a LUA
De mon cote, j'ai fini mon script myweather depuis quelques temps deja et il fonctionne pas mal. Mais :
Comme je l'ai dit, les informations sont vraiment limitees
je leur ai envoye un mail car les docs indiquent que je devrais avoir plus mais pas de reponse (2eme tentative aujourd'hui)
Je le publierai peut etre ce soir si tu veux t'en inspire (celui la est vraiment chaide par rapport au precedent).
Je n'ai pas eu encore le temps car je n'ai pas acces aux hebergeurs d'images depuis le taf et ... ben la neige est la et ce W.E. etait totalement STRATOSPHERIQUE spatulairement parlant
Dernière modification par destroyedlolo (Le 20/12/2011, à 12:36)
Hors ligne
#377 Le 20/12/2011, à 20:11
- Didier-T
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Bonjour à tous,
Nous y voici le script en lua fonctionne impec (du moins pour ce que j'utilise sur mon conky)
je vous joint les scripts.
meteo.lua
-- Créé par Didier-T (forum.ubuntu-fr.org)
require "io"
function lune(r)
s = "${exec wget -q -O "..r.."/cal_lunaire http://www.calendrier-lunaire.net/}"
conky_parse( s )
local file = assert(io.open(r..'/cal_lunaire', "rb") )
local line = file:read()
for line in file:lines() do
local pos1 = string.find(line, '">')
local pos2 = string.find(line, "</", pos1)
if string.find(line, "ephemerides_1") ~= nil then
pos1 = string.find(line, 'src="')
pos2 = string.find(line, '" /')
s = "${exec wget -q -O "..r.."/lune.png http://www.calendrier-lunaire.net/"..string.sub(line, pos1+5, pos2-1).."}"
conky_parse( s )
conky_parse( "${exec convert "..r.."/lune.png -transparent '#091a2a' "..r.."/lune.png}" )
elseif string.find(line, "<h2>") ~= nil then
ephemerides1 = string.sub(line, pos1+2, pos2-1)
local pos3 = string.find(line, 'n>', pos2)
local pos4 = string.find(line, "</", pos2+3)
ephemerides2 = string.sub(line, pos3+3, pos4-1)
ephemerides = ephemerides1.." "..ephemerides2
elseif string.find(line, "Visibilit") ~= nil then
Visibilite = string.sub(line, pos1+2, pos2-3)
elseif string.find(line, "Phases") ~= nil then
Phases = string.gsub(string.sub(line, pos1+2, pos2-1), "é", "é")
local pos3 = string.find(Phases, ',')
Phases1 = string.sub(Phases, 0, pos3-1)
Phases2 = string.sub(Phases, pos3+2)
elseif string.find(line, "Noeud lunaire") ~= nil then
local a = string.gsub(string.sub(line, pos1+2, pos2-1), "Dans ", "")
Noeud_lunaire = string.gsub(a, " Jours", "")
elseif string.find(line, "Apog") ~= nil then
local a = string.gsub(string.sub(line, pos1+2, pos2-1), "Dans ", "")
Apogee = string.gsub(a, " Jours", "")
elseif string.find(line, "Perig") ~= nil then
local a = string.gsub(string.sub(line, pos1+2, pos2-1), "Dans ", "")
Perigee = string.gsub(a, " Jours", "")
elseif string.find(line, "Distance") ~= nil then
Distance = string.sub(line, pos1+2, pos2-4)
elseif string.find(line, "Age de la Lune") ~= nil then
Age = string.sub(line, pos1+2, pos2-1)
elseif string.find(line, "La Lune se") ~= nil then
local a = string.sub(line, pos1+2, pos2-1)
pos3 = string.find(a, ":")
Lever_LuneHeure = string.sub(a, 0, pos3-1)
Lever_LuneMinute = string.sub(a, pos3+1)
local pos3 = string.find(line, '">', pos2)
local pos4 = string.find(line, "</", pos3+3)
a = string.sub(line, pos3+2, pos4-1)
local pos5 = string.find(a, ":")
Coucher_LuneHeure = string.sub(a, 0, pos5-1)
Coucher_LuneMinute = string.sub(a, pos5+1)
elseif string.find(line, "eclipse_partielle") ~= nil then
local pos3 = string.find(line, '">', pos1+3)
local a = string.gsub(string.sub(line, pos3+2, pos2-1), "<br />", "à")
Eclipse_partielle = a
elseif string.find(line, "eclipse_totale") ~= nil then
local pos3 = string.find(line, '">', pos1+3)
local a = string.gsub(string.sub(line, pos3+2, pos2-1), "<br />", "à")
Eclipse_total = a
end
end
io.close(file)
end
function test_image(i)
if i == "1" then
return "1su.png"
elseif i == "2" then
return "2msu.png"
elseif i == "3" then
return "3psu.png"
elseif i == "4" then
return "4ic.png"
elseif i == "5" then
return "5h.png"
elseif i == "6" then
return "6mc.png"
elseif i == "7" then
return "7c.png"
elseif i == "8" then
return "8d.png"
elseif i == "11" then
return "9f.png"
elseif i == "12" then
return "10s.png"
elseif i == "13" then
return "11mcs.png"
elseif i == "14" then
return "12psus.png"
elseif i == "15" then
return "13t.png"
elseif i == "16" then
return "14mct.png"
elseif i == "17" then
return "15psut.png"
elseif i == "18" then
return "16r.png"
elseif i == "19" then
return "17fl.png"
elseif i == "20" then
return "18mcfl.png"
elseif i == "21" then
return "19psfl.png"
elseif i == "22" then
return "20sn.png"
elseif i == "23" then
return "21mcsn.png"
elseif i == "24" then
return "22i.png"
elseif i == "25" then
return "23sl.png"
elseif i == "26" then
return "24fr.png"
elseif i == "29" then
return "25rsn.png"
elseif i == "30" then
return "27ho.png"
elseif i == "31" then
return "28co.png"
elseif i == "32" then
return "26w.png"
elseif i == "33" then
return "29cl.png"
elseif i == "34" then
return "31mcl.png"
elseif i == "35" then
return "32pc.png"
elseif i == "36" then
return "33ic.png"
elseif i == "37" then
return "34h.png"
elseif i == "38" then
return "35mc.png"
elseif i == "39" then
return "36pcs.png"
elseif i == "40" then
return "37mcs.png"
elseif i == "41" then
return "38pct.png"
elseif i == "42" then
return "39mct.png"
elseif i == "43" then
return "40mcfl.png"
elseif i == "44" then
return "41mcsn.png"
end
end
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
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
function icone_vent(d, fo)
local f = tonumber(fo)
local n
if f <= 25 then
n = d
elseif f <= 50 then
n = d + 17
elseif f <= 75 then
n = d + 34
elseif f >= 76 then
n = d + 51
end
if n <= 9 then
n = "0"..n
end
return n..".png"
end
function decoupage(d)
local l1, l2, n, p1, p2, n1, n2, l1b, l2b
if string.len(d) >= 21 then
n = math.ceil(string.len(d)/2)
p1 = string.find(d, " ", n)
p2 = string.find(d, " ", -n)
if p1 >= 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((21 - string.len(l1b))/2)
l1 = string.rep(" ", n1)..l1b
n2 = math.ceil((21 - string.len(l2b))/2)
l2 = string.rep(" ", n2)..l2b
return l1, l2
end
function jour_n(a, j)
local s = '${exec wget -q --load-cookies '..Rep..'/cookie -O '..Rep..'/details'..j..' '..a..'details'..j..'.aspx}'
conky_parse( s )
local file = assert(io.open(Rep..'/details'..j, "rb") )
local line = file:read()
local pos3, iconej,Jour, CondMeteoj, CondMeteoj1, CondMeteoj2, Temp, TempjRes, Vent, VentDirj, VentForcej, iconev, VentP, Uv, ProbOrage, NivPrec, QPluie, QNeige, DPrecHeure, DPluieHeure, DPrecNuit, DPluieNuit, niconej, nCondMeteoj, nCondMeteoj1, nCondMeteoj2, nTemp, nTempjRes, nVent, nVentDirj, nVentForcej, niconev, nVentP, nUv, nProbOrage, nNivPrec, nQPluie, nQNeige, nDPrecHeure, nDPluieHeure, nDPrecMinute, nDPluieMinute, LeverSoleilHeure, CoucherSoleilHeure, LeverLuneHeure, CoucherLuneHeure, DureeJourHeure, DureeNuitHeure, LeverSoleilMinute, CoucherSoleilMinute, LeverLuneMinute, CoucherLuneMinute, DureeJourMinute, DureeNuitMinute
for line in file:lines() do
line = string.gsub(line, ",", ".")
local pos1 = string.find(line, '">', 40)
local pos2 = string.find(line, "</")
if string.find(line, "imgDayIcon") ~= nil then
pos1 = string.find(line, 'blue/')
pos2 = string.find(line, "_int")
iconej = test_image(string.sub(line, pos1+5, pos2-1))
elseif string.find(line, "lblDetails") ~= nil then
pos3 = string.find(line, "pour")
Jour = string.sub(line, pos3+5, pos2-1)
elseif string.find(line, "lblDayText") ~= nil then
CondMeteoj = string.sub(line, pos1+2, pos2-1)
CondMeteoj1, CondMeteoj2 = decoupage(CondMeteoj)
elseif string.find(line, "lblHighValue") ~= nil then Temp = string.sub(line, pos1+2, pos2-7)
elseif string.find(line, "lblRealFeelValue") ~= nil then TempjRes = string.sub(line, pos1+2, pos2-7)
elseif string.find(line, "lblWindsValue") ~= nil then
Vent = string.sub(line, pos1+2, pos2-1)
pos3 = string.find(Vent, " ")
VentDirj = string.gsub(string.sub(Vent, 1, pos3-1), "W", "O")
VentForcej = string.sub(Vent, pos3+1)
iconev = icone_vent(direction_vent(VentDirj), VentForcej)
VentP = vent_plein(VentDirj)
elseif string.find(line, "lblMaxUVValue") ~= nil then Uv = string.sub(line, pos1+2, pos2-1)
elseif string.find(line, "lblTStormProbValue") ~= nil then ProbOrage = string.sub(line, pos1+2, pos2-2)
elseif string.find(line, "lblPrecipValue") ~= nil then NivPrec = string.sub(line, pos1+2, pos2-1)
elseif string.find(line, "lblRainValue") ~= nil then QPluie = string.sub(line, pos1+2, pos2-1)
elseif string.find(line, "lblSnowValue") ~= nil then QNeige = string.sub(line, pos1+2, pos2-1)
elseif string.find(line, "lblHoursPrecipValue") ~= nil then
DPrecHeure = string.sub(line, pos1+2, pos2-8)
DPrecMinute = "00"
elseif string.find(line, "lblHoursOfRainValue") ~= nil then
DPluieHeure = string.sub(line, pos1+2, pos2-8)
DPluieMinute = "00"
elseif string.find(line, "imgNightIcon") ~= nil then
pos1 = string.find(line, 'blue/')
pos2 = string.find(line, "_int")
niconej = test_image(string.sub(line, pos1+5, pos2-1))
elseif string.find(line, "lblNightText") ~= nil then
nCondMeteoj = string.sub(line, pos1+2, pos2-1)
nCondMeteoj1, nCondMeteoj2 = decoupage(nCondMeteoj)
elseif string.find(line, "lblLowValue") ~= nil then nTemp = string.sub(line, pos1+2, pos2-7)
elseif string.find(line, "lblRealFeelNValue") ~= nil then nTempjRes = string.sub(line, pos1+2, pos2-7)
elseif string.find(line, "lblWindsNValue") ~= nil then
nVent = string.sub(line, pos1+2, pos2-1)
pos3 = string.find(Vent, " ")
nVentDirj = string.gsub(string.sub(Vent, 1, pos3-1), "W", "O")
nVentForcej = string.sub(Vent, pos3+1)
niconev = icone_vent(direction_vent(VentDirj), VentForcej)
nVentP = vent_plein(VentDirj)
elseif string.find(line, "lblTStormProbNValue") ~= nil then nProbOrage = string.sub(line, pos1+2, pos2-2)
elseif string.find(line, "lblPrecipNValue") ~= nil then nNivPrec = string.sub(line, pos1+2, pos2-1)
elseif string.find(line, "lblRainNValue") ~= nil then nQPluie = string.sub(line, pos1+2, pos2-1)
elseif string.find(line, "lblSnowNValue") ~= nil then nQNeige = string.sub(line, pos1+2, pos2-1)
elseif string.find(line, "lblHoursPrecipNValue") ~= nil then
nDPrecHeure = string.sub(line, pos1+2, pos2-8)
nDPrecMinute = "00"
elseif string.find(line, "lblHoursOfRainNValue") ~= nil then
nDPluieHeure = string.sub(line, pos1+2, pos2-8)
nDPluieMinute = "00"
end
pos1 = string.find(line, ': ')
if string.find(line, "lblSunrise") ~= nil then
local a = string.sub(line, pos1+2, pos2-1)
pos3 = string.find(a, ":")
LeverSoleilHeure = string.sub(a, 0, pos3-1)
LeverSoleilMinute = string.sub(a, pos3+1)
elseif string.find(line, "lblSunset") ~= nil then
local a = string.sub(line, pos1+2, pos2-1)
pos3 = string.find(a, ":")
CoucherSoleilHeure = string.sub(a, 0, pos3-1)
CoucherSoleilMinute = string.sub(a, pos3+1)
elseif string.find(line, "lblMoonrise") ~= nil then
local a = string.sub(line, pos1+2, pos2-1)
pos3 = string.find(a, ":")
LeverLuneHeure = string.sub(a, 0, pos3-1)
LeverLuneMinute = string.sub(a, pos3+1)
elseif string.find(line, "lblMoonset") ~= nil then
local a = string.sub(line, pos1+2, pos2-1)
pos3 = string.find(a, ":")
CoucherLuneHeure = string.sub(a, 0, pos3-1)
CoucherLuneMinute = string.sub(a, pos3+1)
elseif string.find(line, "lblDaylight") ~= nil then
DureeJourHeure = string.sub(line, pos1+2, pos2-1)
DureeJourMinute = "00"
elseif string.find(line, "lblDarkness") ~= nil then
DureeNuitHeure = string.sub(line, pos1+2, pos2-1)
DureeNuitMinute = "00"
end
end
conditionJour[j] = { CondMeteo=CondMeteoj, Temp=Temp, TempRes=TempjRes, VentDir=VentDirj, VentForce=VentForcej, Uv=Uv, ProbOrage=ProbOrage, NivPrec=NivPrec, QPluie=QPluie, QNeige=QNeige, DPrecHeure=DPrecHeure, DPluieHeure=DPluieHeure, DPrecMinute=DPrecMinute, DPluieMinute=DPluieMinute, IconeM=iconej, IconeV=iconev, VentP=VentP, CondMeteo1=CondMeteoj1, CondMeteo2=CondMeteoj2 }
conditionNuit[j] = { CondMeteo=nCondMeteoj, Temp=nTemp, TempRes=nTempjRes, VentDir=nVentDirj, VentForce=nVentForcej, ProbOrage=nProbOrage, NivPrec=nNivPrec, QPluie=nQPluie, QNeige=nQNeige, DPrecHeure=nDPrecHeure, DPluieHeure=nDPluieHeure, DPrecMinute=nDPrecMinute, DPluieMinute=nDPluieMinute, IconeM=niconej, IconeV=niconev, VentP=nVentP, CondMeteo1=nCondMeteoj1, CondMeteo2=nCondMeteoj2 }
InfoJour[j] = { Jour=Jour, LeverSoleilHeure=LeverSoleilHeure, CoucherSoleilHeure=CoucherSoleilHeure, LeverLuneHeure=LeverLuneHeure, CoucherLuneHeure=CoucherLuneHeure, DureeJourHeure=DureeJourHeure, DureeNuitHeure=DureeNuitHeure, LeverSoleilMinute=LeverSoleilMinute, CoucherSoleilMinute=CoucherSoleilMinute, LeverLuneMinute=LeverLuneMinute, CoucherLuneMinute=CoucherLuneMinute, DureeJourMinute=DureeJourMinute, DureeNuitMinute=DureeNuitMinute }
io.close(file)
end
function conky_Meteo_Maj(cmd, jours, delais, r)
if t == nil then
local bar, bar1
local l = string.sub(cmd, 0, string.find(cmd, '/quick.')-1)
local a = 1
while bar == nil do
a = a+1
bar = string.find(l, '/', -a)
end
local l1 = string.sub(cmd, 0, bar-1)
local b = 1
while bar1 == nil do
b = b+1
bar1 = string.find(l1, '/', -b)
end
l = string.sub(cmd, bar1, string.find(cmd, '/quick.')-1)
Rep = r..l
if os.execute("cd "..Rep) ~= 0 then
os.execute("mkdir "..r..string.sub(cmd, bar1, bar-1))
os.execute("mkdir "..Rep)
end
t = os.time()-delais
start = 1
end
if tonumber(delais) <= os.difftime(os.time(), t) then
if os.execute("ping -c 1 www.google.com") == 0 then
Heure = nil
while Heure == nil do
local s = '${exec wget -q --save-cookies '..Rep..'/cookie -O '..Rep..'/curr_cond_raw '..cmd..'}'
local addr_week = string.sub(cmd, 0, string.find(cmd, 'quick.')-1)
conky_parse( s )
if not conditionJour then
conditionJour = {}
conditionNuit = {}
InfoJour= {}
end
local file = assert(io.open(Rep.."/curr_cond_raw", "rb") )
local line = file:read()
for line in file:lines() do
local pos1 = string.find(line, '">')
local pos2 = string.find(line, "</")
if string.find(line, "imgCurConCondition") ~= nil then
pos1 = string.find(line, 'blue/')
pos2 = string.find(line, "_int")
icone = test_image(string.sub(line, pos1+5, pos2-1))
elseif string.find(line, "lblRealFeelValue") ~= nil then TempRes = string.sub(line, pos1+2, pos2-7)
elseif string.find(line, "lblCurrentTemp") ~= nil then TempAct = string.sub(line, pos1+2, pos2-7)
elseif string.find(line, "lblCurrentTime") ~= nil then
local a = string.sub(line, pos1+2, pos2-1)
local pos3 = string.find(a, ":")
Heure = string.sub(a, 0, pos3-1)
Minute = string.sub(a, pos3+1)
elseif string.find(line, "lblCurrentText") ~= nil then
CondMeteo = string.sub(line, pos1+2, pos2-1)
CondMeteo1, CondMeteo2 = decoupage(CondMeteo)
elseif string.find(line, "lblWindsValue") ~= nil then
local Vent = string.sub(line, pos1+2, pos2-1)
local pos3 = string.find(Vent, " ")
VentDir = string.gsub(string.sub(Vent, 1, pos3-1), "W", "O")
VentForce = string.sub(Vent, pos3+1, -6)
IconeV = icone_vent(direction_vent(VentDir), VentForce)
VentPlein = vent_plein(VentDir)
elseif string.find(line, "lblHumidityValue") ~= nil then Humidite = string.sub(line, pos1+2, pos2-2)
elseif string.find(line, "lblDewPointValue") ~= nil then Rose = string.sub(line, pos1+2, pos2-7)
elseif string.find(line, "lblPressureValue") ~= nil then Pression = string.sub(line, pos1+2, pos2-4)
elseif string.find(line, "lblPressureTenValue") ~= nil then EvoPression = string.sub(line, pos1+2, pos2-2)
elseif string.find(line, "lblVisibilityValue") ~= nil then Visibilite = string.sub(line, pos1+2, pos2-4)
elseif string.find(line, "lblSunRiseValue") ~= nil then
local a = string.sub(line, pos1+2, pos2-1)
local pos3 = string.find(a, ":")
LeverSoleilHeure = string.sub(a, 0, pos3-1)
LeverSoleilMinute = string.sub(a, pos3+1)
elseif string.find(line, "lblSunSetValue") ~= nil then
local a = string.sub(line, pos1+2, pos2-1)
local pos3 = string.find(a, ":")
CoucherSoleilHeure = string.sub(a, 0, pos3-1)
CoucherSoleilMinute = string.sub(a, pos3+1)
elseif string.find(line, "lblDate") ~= nil then Date = string.sub(line, pos1+2, pos2-1)
elseif string.find(line, "lnkLocation") ~= nil then Ville = string.sub(line, pos1+2, pos2-9)
end
end
io.close(file)
if 14400 <= os.difftime(os.time(), t) or start == 1 then
for i = 1,jours do jour_n(addr_week, i) end
start = 2
end
t = os.time()
end
lune(r)
end
collectgarbage()
end
return " "
end
--Retour d'information météo
--Condition courrante
function conky_Meteo_IconeM(r, p, s, f)
return "${image "..r.."/"..icone.." -p "..p.." -s "..s.." -f "..f.."}"
end
function conky_Meteo_TempRes()
return tonumber(TempRes)
end
function conky_Meteo_TempAct()
return tonumber(TempAct)
end
function conky_Meteo_Heure()
return Heure
end
function conky_Meteo_Minute()
return Minute
end
function conky_Meteo_CondMeteo()
return CondMeteo
end
function conky_Meteo_CondMeteo1()
return CondMeteo1
end
function conky_Meteo_CondMeteo2()
return CondMeteo2
end
function conky_Meteo_VentDir()
return VentDir
end
function conky_Meteo_VentDirP()
return VentPlein
end
function conky_Meteo_VentForce()
return tonumber(VentForce)
end
function conky_Meteo_IconeV(r, p, s, f)
return "${image "..r.."/"..IconeV.." -p "..p.." -s "..s.." -f "..f.."}"
end
function conky_Meteo_Humidite()
return tonumber(Humidite)
end
function conky_Meteo_Rose()
return tonumber(Rose)
end
function conky_Meteo_Pression()
return tonumber(Pression)
end
function conky_Meteo_EvoPression()
return EvoPression
end
function conky_Meteo_Visibilite()
return tonumber(Visibilite)
end
function conky_Meteo_HLeverSoleilC()
return LeverSoleilHeure
end
function conky_Meteo_MLeverSoleilC()
return LeverSoleilMinute
end
function conky_Meteo_HCoucherSoleilC()
return CoucherSoleilHeure
end
function conky_Meteo_MCoucherSoleilC()
return CoucherSoleilMinute
end
function conky_Meteo_Date()
return Date
end
function conky_Meteo_Ville()
return Ville
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_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_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_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_HDureePrec(j)
return conditionJour[tonumber(j)].DPrecHeure
end
function conky_Meteo_Jour_MDureePrec(j)
return conditionJour[tonumber(j)].DPrecMinute
end
function conky_Meteo_Jour_HDureePluie(j)
return conditionJour[tonumber(j)].DPluieHeure
end
function conky_Meteo_Jour_MDureePluie(j)
return conditionJour[tonumber(j)].DPluieMinute
end
function conky_Meteo_Jour_IconeM(r, p, s, f, j)
return "${image "..r.."/"..conditionJour[tonumber(j)].IconeM.." -p "..p.." -s "..s.." -f "..f.."}"
end
function conky_Meteo_Jour_IconeV(r, p, s, f, j)
return "${image "..r.."/"..conditionJour[tonumber(j)].IconeV.." -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_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_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_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_HDureePrec(j)
return conditionNuit[tonumber(j)].DPrecHeure
end
function conky_Meteo_Nuit_MDureePrec(j)
return conditionNuit[tonumber(j)].DPrecMinute
end
function conky_Meteo_Nuit_HDureePluie(j)
return conditionNuit[tonumber(j)].DPluieHeure
end
function conky_Meteo_Nuit_MDureePluie(j)
return conditionNuit[tonumber(j)].DPluieMinute
end
function conky_Meteo_Nuit_IconeM(r, p, s, f, j)
return "${image "..r.."/"..conditionNuit[tonumber(j)].IconeM.." -p "..p.." -s "..s.." -f "..f.."}"
end
function conky_Meteo_Nuit_IconeV(r, p, s, f, j)
return "${image "..r.."/"..conditionNuit[tonumber(j)].IconeV.." -p "..p.." -s "..s.." -f "..f.."}"
end
--Infos sur la journée
function conky_Meteo_Jour(j)
return InfoJour[tonumber(j)].Jour
end
function conky_Meteo_HLeverSoleil(j)
return InfoJour[tonumber(j)].LeverSoleilHeure
end
function conky_Meteo_MLeverSoleil(j)
return InfoJour[tonumber(j)].LeverSoleilMinute
end
function conky_Meteo_HCoucherSoleil(j)
return InfoJour[tonumber(j)].CoucherSoleilHeure
end
function conky_Meteo_MCoucherSoleil(j)
return InfoJour[tonumber(j)].CoucherSoleilMinute
end
function conky_Meteo_HLeverLune(j)
return InfoJour[tonumber(j)].LeverLuneHeure
end
function conky_Meteo_MLeverLune(j)
return InfoJour[tonumber(j)].LeverLuneMinute
end
function conky_Meteo_HCoucherLune(j)
return InfoJour[tonumber(j)].CoucherLuneHeure
end
function conky_Meteo_MCoucherLune(j)
return InfoJour[tonumber(j)].CoucherLuneMinute
end
function conky_Meteo_HDureeJour(j)
return InfoJour[tonumber(j)].DureeJourHeure
end
function conky_Meteo_MDureeJour(j)
return InfoJour[tonumber(j)].DureeJourMinute
end
function conky_Meteo_HDureeNuit(j)
return InfoJour[tonumber(j)].DureeNuitHeure
end
function conky_Meteo_MDureeNuit(j)
return InfoJour[tonumber(j)].DureeNuitMinute
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()
return Eclipse_partielle
end
function conky_Lune_EclipseTotal()
return Eclipse_total
end
Conkyrc_meteo_lua
# -- 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
# imlib_cache_size 0
# -- Window specifications -- #
own_window yes
own_window_type override
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 0
gap_y 20
# -- 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
# -- Declaration template -- #
template0 ${image ~/conky/script/images/\1 -p \2 -s \3} # -- images fond -- #
template1 ${lua Meteo_\1 \2 \3 \4 \5} # -- gestion météo --#
template2 ${lua_parse Meteo_\1 \2 \3 \4 60 \5} # -- icones météo -- \2=repertoir icones \3=position \4=taille \5=jour (pour les prévisions) #
template3 ${lua Lune_\1}
lua_load /home/didier/conky/script/meteo.lua
TEXT
#### Lancement du script récupérant les données météo ####
${template1 Maj http://www.accuweather.com/fr/fr/île-de-france/argenteuil/quick-look.aspx 5 1800 /tmp}
#### 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 808080}${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 -60}${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 47}${color lightwhite}${font Helvetica LT Std:style=Bold:size=10}${goto 40}${template1 Jour_ProbOrage 1}${goto 220}${template1 Nuit_ProbOrage 1}
##### Affichage temperature #####
${voffset 8}${goto 75}${template1 Jour_Temp 1}°${goto 250}${template1 Nuit_Temp 1}°
##### Affichage conditions météo #####
${voffset -8}${font Bitstream Vera Sans Mono:style=condensed:size=6}${color grey} ${template1 Jour_CondMeteo1 1}${goto 170} ${template1 Nuit_CondMeteo1 1}
${template1 Jour_CondMeteo2 1}${goto 170} ${template1 Nuit_CondMeteo2 1}
##### Affichage lunaison #####
${voffset -65}${font URW Chancery L:style=Bold:size=10}${color white}${alignc}${template3 ephemerides1}
${voffset -5}${alignc}${template3 ephemerides2}
#### troisieme cadre ####
${voffset 52}${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 3}${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
#### quatrième cadre ####
##### Heure mise à jour #####
${voffset 44}${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 -935}
#### 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}
#### troisieme cadre ####
${template0 base.png 0,320 280x40}
${template0 base180.png 0,358 280x40}
#### quatrieme cadre ####
${template0 base1.png 0,420 280x30}
#### icones premier cadre ####
${template2 IconeM ~/conky/meteo+lune/icones/base 74,120 132x79}
${template2 IconeV ~/conky/meteo+lune/icones/base/vent 235,130 44x44}
#### icones Second cadre ####
${template2 Jour_IconeM ~/conky/meteo+lune/icones/base -15,205 132x79 1}
${template2 Nuit_IconeM ~/conky/meteo+lune/icones/base 160,205 132x79 1}
${image /tmp/lune.png -p 116,215 -s 53x53 -f 60}
#### icones troisieme cadre ####
${template2 Jour_IconeM ~/conky/meteo+lune/icones/base 0,295 86x52 2}
${template2 Jour_IconeM ~/conky/meteo+lune/icones/base 68,295 86x52 3}
${template2 Jour_IconeM ~/conky/meteo+lune/icones/base 133,295 86x52 4}
${template2 Jour_IconeM ~/conky/meteo+lune/icones/base 200,295 86x52 5}
${template2 Jour_IconeV ~/conky/meteo+lune/icones/base/vent 0,344 30x30 2}
${template2 Jour_IconeV ~/conky/meteo+lune/icones/base/vent 70,344 30x30 3}
${template2 Jour_IconeV ~/conky/meteo+lune/icones/base/vent 140,344 30x30 4}
${template2 Jour_IconeV ~/conky/meteo+lune/icones/base/vent 210,344 30x30 5}
${template2 Nuit_IconeM ~/conky/meteo+lune/icones/base 0,375 86x52 2}
${template2 Nuit_IconeM ~/conky/meteo+lune/icones/base 68,375 86x52 3}
${template2 Nuit_IconeM ~/conky/meteo+lune/icones/base 133,375 86x52 4}
${template2 Nuit_IconeM ~/conky/meteo+lune/icones/base 200,375 86x52 5}
Vous remarquerez l'utisation de template.
ainsi que les apelles lua et lua_parse.
Au fait il faut dans l'adresse internet mettre les caractère accentué en normal par exemple pour moi "île-de-france" à la place de "%c3%aele-de-france"
Les plus courageux pouront tester cher eux moi je tourne déjà avec et pas de soucis.
P.S. : un truc qui m'a pas mal bloqué il faut installer lua5.1 (et oui il est neuneu le monsieur)
P.S.2. : destroyedlolo, ce serais sympa de voir ton script, je suis certain que se sera instructif.
Edit : Toutes les fonctions sont vérifiées et fonctionnent (il y avait des petits soucis qui sont réglés)
Edit2 : Correction fonction vent direction pleine
Edit3 : Séparation Heure Minute pour tous ce qui est horaire (mise à jour, lever soleil ...)
Edit4 : Mise à jour prévision toutes les 4 heures
Edit5 : Ajout sous rep "région/ville"
Edit6 : Ajout d'une collecte d'ordure
Dernière modification par Didier-T (Le 24/12/2011, à 08:20)
Hors ligne
#378 Le 21/12/2011, à 01:28
- destroyedlolo
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Voici donc le resultat :
Il faut donc :
1/ L'installation
Il faut creer son compte dans http://www.myweather2.com : c'est gratuit
aller dans "Developer Zone / Ski Resort Snow Report and 6 Day Weather API" pour indiquer la station dont on souhaite avoir la meteo ... 1 seule station par compte.
Ca donne une URL contenant votre id perso et une clef ... c'est l'URL qui permet d'acceder au flux XML. Attention, c'est perso, il ne faut pas la partageraller dans "Services / Weather API / Ski Resort Snow Report and Weather Forecast API" : on se tape des infos qu'ils donnent car elles sont fausses (malheureusement ), mais il faut recuperer les fichiers du cadre "Weather Code and Icons". Le fichier CSV contient une cross reference entre les codes de conditions meteo et les icones, le zip contient les dits icones. On les placera dans un sous repertoire nome Resources. (on unzipera les icones qui iront dans Resources/Icons).
2/ Le script LUA.
require "lxp"
-- Configuration
HOME="." -- Test : répertoire courant
ans_s = "pas encore remplis" -- Dernière réponse traitée
--[[ Convertie une ligne CSV
Depuis http://www.lua.org/pil/20.4.html
]]
function fromCSV (s)
s = s .. ',' -- ending comma
local t = {} -- table to collect fields
local fieldstart = 1
repeat -- next field is quoted? (start with `"'?)
if string.find(s, '^"', fieldstart) then
local a, c
local i = fieldstart
repeat -- find closing quote
a, i, c = string.find(s, '"("?)', i+1)
until c ~= '"' -- quote not followed by quote?
if not i then error('unmatched "') end
local f = string.sub(s, fieldstart+1, i-1)
table.insert(t, (string.gsub(f, '""', '"')))
fieldstart = string.find(s, ',', i) + 1
else -- unquoted; find next comma
local nexti = string.find(s, ',', fieldstart)
table.insert(t, string.sub(s, fieldstart, nexti-1))
fieldstart = nexti + 1
end
until fieldstart > string.len(s)
return t
end
--[[ Maj des données depuis les données XML ]]
function conky_MyWeather_maj( cmd )
if not icnXref then -- Table de correspondance des icônes
icnXref = {}
for l in io.lines(HOME .. "/Resources/WebService_WeatherCondition.csv") do
local t = fromCSV(l)
if string.find(t[1], "^%d") then -- ignore les entetes
icnXref[t[1]] = { DayWeatherText=t[2], NightWeatherText=t[3], DayIcon=t[4], NightIcon=t[5] }
end
end
--for i,v in pairs(icnXref["0"]) do print(i,v) end
--print(icnXref["0"].DayIcon)
end
s = conky_parse( cmd )
if s == "" then -- Pas de reponse
return ""
end
if s == ans_s then -- la reponse n'a pas changée
return "inchangee" -- on garde les valeurs precedentes
end
ans_s = s
-- construit la reponse
meteo = {}
local stack = {}
nb_forcast = 0
callbacks = {
StartElement = function (parser, name, attrs)
if name == "forecast" then
nb_forcast = nb_forcast + 1
name = name .. nb_forcast
end
table.insert(stack, name)
end,
EndElement = function (parser, name)
local closed = table.remove(stack) -- supprime le dernier element
if closed ~= name then
if name ~= "forecast" or string.sub(closed,1,8)~= "forecast" then
error("Fermeture de '".. name .."' alors qu'est attendu '".. closed .."'")
end
end
end,
CharacterData = function (parser, string)
local var = "meteo"
for i,v in ipairs(stack) do var = var ..'.'..v end
meteo[var] = string
end
}
p = lxp.new(callbacks)
p:parse(s)
p:parse()
p:close()
-- for k,v in pairs(meteo ) do print(k,v) end
-- Formate la date des conditions
local a,m,j,h,mi = string.match(meteo["meteo.weather.snow_report.report_date"],"(%d+)-(%d+)-(%d+) (%d+):(%d+)")
meteo["meteo.weather.snow_report.report_date"] = os.time{year=a, month=m, day=j, hour=h, min=mi}
-- Et celles des forcast
for i=1, nb_forcast do
local a,m,j = string.match(meteo["meteo.weather.forecast".. i ..".date"],"(%d+)-(%d+)-(%d+)")
meteo["meteo.weather.forecast".. i ..".date"] = os.time{year=a, month=m, day=j, hour=0 }
end
return "ok"
end
function conky_MyWeather_reportDate()
return os.date("%a %d %b %Y, %H:%M", meteo["meteo.weather.snow_report.report_date"])
end
function conky_MyWeather_reportLowDepth()
return meteo["meteo.weather.snow_report.lower_snow_depth"]
end
function conky_MyWeather_reportHighDepth()
return meteo["meteo.weather.snow_report.upper_snow_depth"]
end
function conky_MyWeather_reportLast()
return meteo["meteo.weather.snow_report.last_snow_date"]
end
function conky_MyWeather_reportCondition()
return meteo["meteo.weather.snow_report.conditions"]
end
function conky_MyWeather_fDate( num )
return os.date("%a %d %b %Y", meteo["meteo.weather.forecast".. num ..".date"])
end
function conky_MyWeather_fMin(num)
return meteo["meteo.weather.forecast".. num ..".night_min_temp"]
end
function conky_MyWeather_fMax(num)
return meteo["meteo.weather.forecast".. num ..".day_max_temp"]
end
function conky_MyWeather_fDayIcon( num )
return '${image ' .. HOME .."/Resources/Icons/".. icnXref[meteo["meteo.weather.forecast".. num ..".day.weather_code"]].DayIcon ..' -p 9,' .. 16 + tonumber(num)*69 ..'}'
end
function conky_MyWeather_fNightIcon( num )
return '${image ' .. HOME .."/Resources/Icons/".. icnXref[meteo["meteo.weather.forecast".. num ..".night.weather_code"]].NightIcon ..' -p 125,' .. 16 + tonumber(num)*69 ..'}'
end
function conky_MyWeather_fDayWSpeed( num )
return meteo["meteo.weather.forecast".. num ..".day.wind.speed"]
end
function conky_MyWeather_fDayWDirection( num )
return meteo["meteo.weather.forecast".. num ..".day.wind.dir"]
end
function conky_MyWeather_fNightWSpeed( num )
return meteo["meteo.weather.forecast".. num ..".night.wind.speed"]
end
function conky_MyWeather_fNightWDirection( num )
return meteo["meteo.weather.forecast".. num ..".night.wind.dir"]
end
Alors ce script est encore plus optimise que le precedent car je me suis rendu compte que les variables globales sont concervees d'un run a l'autre. Cool, donc je ne charge qu'une fois le contenu du fichier de cross references (lignes 37 a 44).
Idem avec la reponse XML : on ne met a jour que si la reponse a changee (lignes 55 a 58).
L'un dans l'autre, ce script est donc totalement indolore meme sur des machines tres tres peu puissante
3/ la config conky.
alignment top_left
double_buffer yes
default_color black
background no
update_interval 1.0 # Sera changé dans le script une fois les données récupérées
out_to_console no
out_to_stderr no
own_window yes
own_window_class Conky
own_window_type normal
#own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
own_window_transparent no
own_window_colour eeeeee
default_shade_color dddddd
lua_load MyWeather.lua
# text_buffer_size 312
# Les templates ne prennent pas en compte text_buffer_size donc j'ai ete oblige de les coupe en 2 ...
template0 ${color Grey}$hr\n${color BlueViolet}Prévision pour : $color${lua MyWeather_fDate \1}
template1 ${color BlueViolet}Températures : $color${lua MyWeather_fMin \1}${color BlueViolet}/$color${lua MyWeather_fMax \1}${color BlueViolet}°C\n${lua_parse MyWeather_fDayIcon \1}${lua_parse MyWeather_fNightIcon \1}\n${voffset 18} $color${lua MyWeather_fDayWDirection \1} ${lua MyWeather_fDayWSpeed \1}${color BlueViolet} km/h${offset 50}$color${lua MyWeather_fNightWDirection \1} ${lua MyWeather_fNightWSpeed \1}${color BlueViolet} km/h
TEXT
${if_empty ${lua MyWeather_maj ${curl http://localhost/~laurent/weather.ashx }}}
En attente ...
${else}${iconv_start UTF-8 ISO_8859-1} ${color DarkGreen}La Clusaz${offset 8}$color${voffset -2}${hr}
${color BlueViolet}Condition au : $color${lua MyWeather_reportDate}
${color BlueViolet}Couche de neige : ${color orange}${lua MyWeather_reportLowDepth}${color BlueViolet}/${color orange}${lua MyWeather_reportHighDepth} ${color BlueViolet}cm
${color BlueViolet}Dernière chute : $color${lua MyWeather_reportLast}
${lua MyWeather_reportCondition}
${template0 1}
${template1 1}
${template0 2}
${template1 2}
${iconv_stop}$endif
A la ligne 25, mettre dans le curl l'URL que myweather vous aura donne. Ici, ce n'est qu'une copie locale pour ne pas me faire blackliste durant les testes.
Comme vous pouvez le voire, conky ouvrira sa propre fenetre ... car les icones fournis par le site sont mal decoupes donc on voit d'horribles points blancs sur un fond sombre (en plus, ils ne sont pas tres beau mais bon ... ils sont fournis et c'est deja sympa).
Je ne pense pas que j'irai plus loin avec ce site car :
deja ... ils ne repondent pas
une seule station, c'est trop leger
ensuite, il me manque des informations CRUCIALES : par exemple, c'est bien qu'ils donnent l'epaisseur de la couche de neige ... mais ca serait encore mieux qu'ils donnent aussi l'epaisseur de poudre, le risque d'avalanche, ...
enfin et surtout : 2 jours y compris aujourd'hui, c'est vraiment trop leger
Mais bon, je suis assez content de ce script surtout pour les optimisations apportees. Maintenant, je vais voir sur les forums si qq'un connaitrait un flux publique plus complet. Au pire, j'extrairais les infos directement sur des sites comme l'excellentissime skiinfo.fr ... mais c'est moins fun
Hors ligne
#379 Le 22/12/2011, à 08:40
- Didier-T
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Pour le fun toutes les infos récupérable sur 1 journée.
Hors ligne
#380 Le 22/12/2011, à 09:29
- jpdipsy
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Pour le fun toutes les infos récupérable sur 1 journée.
Joli mais pour le moment chez moi ton scripts en lua et ton conky (en l'état avec ton adresse) ne fonctionnent pas (du moins ne récupère rien) malgré l'installation de lua 5.1. Tu n'as pas installé autre chose par hasard parce que là je suis dans le flou.
Sinon bravo pour le boulot .
Hors ligne
#381 Le 22/12/2011, à 11:24
- Didier-T
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Didier-T a écrit :Pour le fun toutes les infos récupérable sur 1 journée.
Joli mais pour le moment chez moi ton scripts en lua et ton conky (en l'état avec ton adresse) ne fonctionnent pas (du moins ne récupère rien) malgré l'installation de lua 5.1. Tu n'as pas installé autre chose par hasard parce que là je suis dans le flou.
Sinon bravo pour le boulot .
Non, à part lua5.1 je n'ai rien installé.
A tu bien un répertoire /tmp (si tu n'as rien changé, je vois que ça)
Hors ligne
#382 Le 22/12/2011, à 16:38
- jpdipsy
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Non, à part lua5.1 je n'ai rien installé.
A tu bien un répertoire /tmp (si tu n'as rien changé, je vois que ça)
ça fonctionne désolé pour le bruit j'avais mal orthographié le nom du script lua . Ach! la vieillesse !
Donc du coup tout se retrouve dans /tmp et, ce qui à mon avis serais bien c'est "/tmp/nom de la ville" ou "/tmp/meteo/nom de la ville" pour ceux qui voudrais avoir plusieurs suivis météo.Quand à avoir scinder les heures et minutes c'est impec.
Bon j'ai plus qu'a étudier lua maintenant.
A+
Hors ligne
#383 Le 22/12/2011, à 16:55
- Didier-T
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Didier-T a écrit :Non, à part lua5.1 je n'ai rien installé.
A tu bien un répertoire /tmp (si tu n'as rien changé, je vois que ça)ça fonctionne désolé pour le bruit j'avais mal orthographié le nom du script lua . Ach! la vieillesse !
Donc du coup tout se retrouve dans /tmp et, ce qui à mon avis serais bien c'est "/tmp/nom de la ville" ou "/tmp/meteo/nom de la ville" pour ceux qui voudrais avoir plusieurs suivis météo.Quand à avoir scinder les heures et minutes c'est impec.
Bon j'ai plus qu'a étudier lua maintenant.A+
Je vais regarder comment créer des répertoires avec lua, les docs sont rares et souvent en anglais , dans le pire des cas je tricherai un peut en appelant une fonction système.
Hors ligne
#384 Le 22/12/2011, à 17:58
- jpdipsy
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Je vais regarder comment créer des répertoires avec lua, les docs sont rares et souvent en anglais , dans le pire des cas je tricherai un peut en appelant une fonction système.
peut-être çà 22.2 – Other System Calls
Hors ligne
#385 Le 22/12/2011, à 19:17
- Didier-T
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Didier-T a écrit :Je vais regarder comment créer des répertoires avec lua, les docs sont rares et souvent en anglais , dans le pire des cas je tricherai un peut en appelant une fonction système.
peut-être çà 22.2 – Other System Calls
Parfais, la doc lua le dit, il faut tricher en appelant une fonction système.
Merci jpdipsy
Hors ligne
#386 Le 22/12/2011, à 21:06
- Didier-T
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
...
ce qui à mon avis serais bien c'est "/tmp/nom de la ville"
...
C'est fait
A+
Edit : j'ai réalisé qu'il y avait plusieurs ville en France portant le même nom donc ce sera "/tmp/région/ville"
Pour simplifier les choses l’icône lune reste dans "/tmp"
Dernière modification par Didier-T (Le 23/12/2011, à 07:00)
Hors ligne
#387 Le 30/12/2011, à 23:52
- Chokapic
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Salut à tous ,
Après moultes essais, j'ai fini par comprendre comment çà fonctionnait. Un grand merci à la communauté de ce forum et plus particulièrement à DidierT & adama88 pour leurs config sur lesquelles je me suis appuyé pour faire la mienne.
Je vous livre donc la météo via conky et accuweather telle que je la conçois pour l'instant. Ce n'est qu'une ébauche mais çà contribuera à aider les newbies qui pédalent encore à ce sujet.
Une petite capture d'écran pour commencer :
Et ma config ici : https://skydrive.live.com/redir.aspx?ci … parid=root
Bonne Année à tous !
Le plus grand pouvoir de décision dans ce monde, c'est le nombre de personnes qui pensent et agissent de concert au même moment...il est temps de s'en servir pour rétablir les valeurs fondamentales de et pour l'Humanité Une.
Crunchbang sur du 64 bits et 4 core c'est comme un TGV sur une autoroute : sécurité et vitesse ! ;-)
Hors ligne
#388 Le 04/01/2012, à 11:15
- destroyedlolo
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Salut et bonne annee.
Pour ceux qui seraient interesse par LUA, j'ai trouvé un tuto en Francais
Bon, c'est visiblement une mauvaise traduction de l'anglais et ce n'est pas toujours compréhensible mais c'est mieux que rien ... (perso, je reste sur la doc anglaise ...).
J'ai adopté ma météo Google qui suffit a mes besoins. Pour la neige ... je laisse tomber pour le moment, j'y reviendrais sans doute quand j'aurai plus de temps.
Maintenant que je maîtrise a peu pret LUA, je m'attaque a la supervision des disques amovibles (ajoute les infos d'un disque pas forcement toujours monte), et surtout de systèmes distants par SNMP.
Si j'arrive a qq chose, je le publirait sur mon site.
Bye.
Hors ligne
#389 Le 05/01/2012, à 22:29
- TrucSarret
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Bonjour à tous,
Je fais mes premiers essais avec conky, et depuis peu sous linux-mint (soyez indulgents)
J'ai installé le package de Didier-T avec les scripts .sh et .lua et suivi tant bien que mal la notice
Le lancement de conkyrc_meteo_lua dans un terminal me renvoie les messages :
Conky: invalid configuration file 'conkyrc_meteo_lua'
Conky: desktop window (1200023) is subwindow of root window (19c)
Conky: window type - desktop
Conky: drawing to created window (0x1a00001)
Conky: drawing to single buffer
Est-ce que c'est grave docteur ?
Que cela ne vous empêche pas de passer une excellente année !
http://eaudolle.over-blog.com
Hors ligne
#390 Le 05/01/2012, à 22:36
- Didier-T
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Bonjour à tous,
Je fais mes premiers essais avec conky, et depuis peu sous linux-mint (soyez indulgents)
J'ai installé le package de Didier-T avec les scripts .sh et .lua et suivi tant bien que mal la noticeLe lancement de conkyrc_meteo_lua dans un terminal me renvoie les messages :
Conky: invalid configuration file 'conkyrc_meteo_lua'Conky: desktop window (1200023) is subwindow of root window (19c)
Conky: window type - desktop
Conky: drawing to created window (0x1a00001)
Conky: drawing to single buffer
Est-ce que c'est grave docteur ?Que cela ne vous empêche pas de passer une excellente année !
tu peu nous montrer ton script conky, merci
Au fait bonne année @ tous !!!
Hors ligne
#391 Le 05/01/2012, à 22:45
- TrucSarret
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Voilà le contenu de mon .conkyrc_meteo_lua
# -- 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
#imlib_cache_size 0
# -- Window specifications -- #
own_window yes
own_window_type override
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 0
gap_y 20
# -- 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
# -- Declaration template -- #
template0 ${image ~/conky/script/images/\1 -p \2 -s \3} # -- images fond -- #
template1 ${lua Meteo_\1 \2 \3 \4 \5} # -- gestion météo --#
template2 ${lua_parse Meteo_\1 \2 \3 \4 60 \5} # -- icones météo -- \2=repertoir icones \3=position \4=taille \5=jour (pour les prévisions) #
template3 ${lua Lune_\1}
lua_load /home/trucsarret/conky/script/meteo.lua
TEXT
#### Lancement du script récupérant les données météo ####
${template1 Maj http://www.accuweather.com/fr/fr/rhône-alpes/valence/quick-look.aspx 5 1800 /tmp}
#### 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 808080}${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 -60}${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 47}${color lightwhite}${font Helvetica LT Std:style=Bold:size=10}${goto 40}${template1 Jour_ProbOrage 1}${goto 220}${template1 Nuit_ProbOrage 1}
##### Affichage temperature #####
${voffset 8}${goto 75}${template1 Jour_Temp 1}°${goto 250}${template1 Nuit_Temp 1}°
##### Affichage conditions météo #####
${voffset -8}${font Bitstream Vera Sans Mono:style=condensed:size=6}${color grey} ${template1 Jour_CondMeteo1 1}${goto 170} ${template1 Nuit_CondMeteo1 1}
${template1 Jour_CondMeteo2 1}${goto 170} ${template1 Nuit_CondMeteo2 1}
##### Affichage lunaison #####
${voffset -65}${font URW Chancery L:style=Bold:size=10}${color white}${alignc}${template3 ephemerides1}
${voffset -5}${alignc}${template3 ephemerides2}
#### troisieme cadre ####
${voffset 52}${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 3}${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
#### quatrième cadre ####
##### Heure mise à jour #####
${voffset 44}${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 -935}
#### 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}
#### troisieme cadre ####
${template0 base.png 0,320 280x40}
${template0 base180.png 0,358 280x40}
#### quatrieme cadre ####
${template0 base1.png 0,420 280x30}
#### icones premier cadre ####
${template2 IconeM ~/conky/meteo+lune/icones/base 74,120 132x79}
${template2 IconeV ~/conky/meteo+lune/icones/base/vent 235,130 44x44}
#### icones Second cadre ####
${template2 Jour_IconeM ~/conky/meteo+lune/icones/base -15,205 132x79 1}
${template2 Nuit_IconeM ~/conky/meteo+lune/icones/base 160,205 132x79 1}
${image /tmp/lune.png -p 116,215 -s 53x53 -f 60}
#### icones troisieme cadre ####
${template2 Jour_IconeM ~/conky/meteo+lune/icones/base 0,295 86x52 2}
${template2 Jour_IconeM ~/conky/meteo+lune/icones/base 68,295 86x52 3}
${template2 Jour_IconeM ~/conky/meteo+lune/icones/base 133,295 86x52 4}
${template2 Jour_IconeM ~/conky/meteo+lune/icones/base 200,295 86x52 5}
${template2 Jour_IconeV ~/conky/meteo+lune/icones/base/vent 0,344 30x30 2}
${template2 Jour_IconeV ~/conky/meteo+lune/icones/base/vent 70,344 30x30 3}
${template2 Jour_IconeV ~/conky/meteo+lune/icones/base/vent 140,344 30x30 4}
${template2 Jour_IconeV ~/conky/meteo+lune/icones/base/vent 210,344 30x30 5}
${template2 Nuit_IconeM ~/conky/meteo+lune/icones/base 0,375 86x52 2}
${template2 Nuit_IconeM ~/conky/meteo+lune/icones/base 68,375 86x52 3}
${template2 Nuit_IconeM ~/conky/meteo+lune/icones/base 133,375 86x52 4}
${template2 Nuit_IconeM ~/conky/meteo+lune/icones/base 200,375 86x52 5}
Merci pour la rapidité !!
http://eaudolle.over-blog.com
Hors ligne
#392 Le 05/01/2012, à 23:00
- TrucSarret
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Avec en bonus mon fichier meteo.cfg car je ne suis pas sûr de l'indication du repertoire TempShell
# Créé par jpdipsy (forum.ubuntu-fr.org)
#Répertoire de travail
DirShell="$HOME/conky/meteo+lune"
#Répertoire temporaire (si pas de disque ram pareil que DirShell)
TempShell="/tmp"
#Copier votre adresse Accuweather ici
address="http://www.accuweather.com/fr/fr/rhône-alpes/valence/quick-look.aspx"
#Prévision sur n jour (de 1 à 15)
periode=5
#Temps entre les mises à jour prévision (en heure+minute)
update=300
http://eaudolle.over-blog.com
Hors ligne
#393 Le 06/01/2012, à 06:33
- Didier-T
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
bonjour TrucSarret,
Alors tu utilise le script conky pour lua, mais a tu créer le script en meteo.lua qui vas avec ?
Tu le trouveras ici, ce script fonctionne pleinement, mais je n'ai pas encore fais de pack ni de notice.
Hors ligne
#394 Le 06/01/2012, à 06:37
- jpdipsy
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Hello toutes et tous meilleurs voeux
Didier (et all) sauf erreur de ma part le script lua ne permettait pas d'afficher les jours en abrégé alors je me suis permis de l'ajouter ce qui donne :
-- Créé par Didier-T (forum.ubuntu-fr.org)
require "io"
function lune(r)
s = "${exec wget -q -O "..r.."/cal_lunaire http://www.calendrier-lunaire.net/}"
conky_parse( s )
local file = assert(io.open(r..'/cal_lunaire', "rb") )
local line = file:read()
for line in file:lines() do
local pos1 = string.find(line, '">')
local pos2 = string.find(line, "</", pos1)
if string.find(line, "ephemerides_1") ~= nil then
pos1 = string.find(line, 'src="')
pos2 = string.find(line, '" /')
s = "${exec wget -q -O "..r.."/lune.png http://www.calendrier-lunaire.net/"..string.sub(line, pos1+5, pos2-1).."}"
conky_parse( s )
conky_parse( "${exec convert "..r.."/lune.png -transparent '#091a2a' "..r.."/lune.png}" )
elseif string.find(line, "<h2>") ~= nil then
ephemerides1 = string.sub(line, pos1+2, pos2-1)
local pos3 = string.find(line, 'n>', pos2)
local pos4 = string.find(line, "</", pos2+3)
ephemerides2 = string.sub(line, pos3+3, pos4-1)
ephemerides = ephemerides1.." "..ephemerides2
elseif string.find(line, "Visibilit") ~= nil then
Visibilite = string.sub(line, pos1+2, pos2-3)
elseif string.find(line, "Phases") ~= nil then
Phases = string.gsub(string.sub(line, pos1+2, pos2-1), "é", "é")
local pos3 = string.find(Phases, ',')
Phases1 = string.sub(Phases, 0, pos3-1)
Phases2 = string.sub(Phases, pos3+2)
elseif string.find(line, "Noeud lunaire") ~= nil then
local a = string.gsub(string.sub(line, pos1+2, pos2-1), "Dans ", "")
Noeud_lunaire = string.gsub(a, " Jours", "")
elseif string.find(line, "Apog") ~= nil then
local a = string.gsub(string.sub(line, pos1+2, pos2-1), "Dans ", "")
Apogee = string.gsub(a, " Jours", "")
elseif string.find(line, "Perig") ~= nil then
local a = string.gsub(string.sub(line, pos1+2, pos2-1), "Dans ", "")
Perigee = string.gsub(a, " Jours", "")
elseif string.find(line, "Distance") ~= nil then
Distance = string.sub(line, pos1+2, pos2-4)
elseif string.find(line, "Age de la Lune") ~= nil then
Age = string.sub(line, pos1+2, pos2-1)
elseif string.find(line, "La Lune se") ~= nil then
local a = string.sub(line, pos1+2, pos2-1)
pos3 = string.find(a, ":")
Lever_LuneHeure = string.sub(a, 0, pos3-1)
Lever_LuneMinute = string.sub(a, pos3+1)
local pos3 = string.find(line, '">', pos2)
local pos4 = string.find(line, "</", pos3+3)
a = string.sub(line, pos3+2, pos4-1)
local pos5 = string.find(a, ":")
Coucher_LuneHeure = string.sub(a, 0, pos5-1)
Coucher_LuneMinute = string.sub(a, pos5+1)
elseif string.find(line, "eclipse_partielle") ~= nil then
local pos3 = string.find(line, '">', pos1+3)
local a = string.gsub(string.sub(line, pos3+2, pos2-1), "<br />", "à")
Eclipse_partielle = a
elseif string.find(line, "eclipse_totale") ~= nil then
local pos3 = string.find(line, '">', pos1+3)
local a = string.gsub(string.sub(line, pos3+2, pos2-1), "<br />", "à")
Eclipse_total = a
end
end
io.close(file)
end
function test_image(i)
if i == "1" then
return "1su.png"
elseif i == "2" then
return "2msu.png"
elseif i == "3" then
return "3psu.png"
elseif i == "4" then
return "4ic.png"
elseif i == "5" then
return "5h.png"
elseif i == "6" then
return "6mc.png"
elseif i == "7" then
return "7c.png"
elseif i == "8" then
return "8d.png"
elseif i == "11" then
return "9f.png"
elseif i == "12" then
return "10s.png"
elseif i == "13" then
return "11mcs.png"
elseif i == "14" then
return "12psus.png"
elseif i == "15" then
return "13t.png"
elseif i == "16" then
return "14mct.png"
elseif i == "17" then
return "15psut.png"
elseif i == "18" then
return "16r.png"
elseif i == "19" then
return "17fl.png"
elseif i == "20" then
return "18mcfl.png"
elseif i == "21" then
return "19psfl.png"
elseif i == "22" then
return "20sn.png"
elseif i == "23" then
return "21mcsn.png"
elseif i == "24" then
return "22i.png"
elseif i == "25" then
return "23sl.png"
elseif i == "26" then
return "24fr.png"
elseif i == "29" then
return "25rsn.png"
elseif i == "30" then
return "27ho.png"
elseif i == "31" then
return "28co.png"
elseif i == "32" then
return "26w.png"
elseif i == "33" then
return "29cl.png"
elseif i == "34" then
return "31mcl.png"
elseif i == "35" then
return "32pc.png"
elseif i == "36" then
return "33ic.png"
elseif i == "37" then
return "34h.png"
elseif i == "38" then
return "35mc.png"
elseif i == "39" then
return "36pcs.png"
elseif i == "40" then
return "37mcs.png"
elseif i == "41" then
return "38pct.png"
elseif i == "42" then
return "39mct.png"
elseif i == "43" then
return "40mcfl.png"
elseif i == "44" then
return "41mcsn.png"
end
end
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
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
function icone_vent(d, fo)
local f = tonumber(fo)
local n
if f <= 25 then
n = d
elseif f <= 50 then
n = d + 17
elseif f <= 75 then
n = d + 34
elseif f >= 76 then
n = d + 51
end
if n <= 9 then
n = "0"..n
end
return n..".png"
end
function decoupage(d)
local l1, l2, n, p1, p2, n1, n2, l1b, l2b
if string.len(d) >= 21 then
n = math.ceil(string.len(d)/2)
p1 = string.find(d, " ", n)
p2 = string.find(d, " ", -n)
if p1 >= 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((21 - string.len(l1b))/2)
l1 = string.rep(" ", n1)..l1b
n2 = math.ceil((21 - string.len(l2b))/2)
l2 = string.rep(" ", n2)..l2b
return l1, l2
end
function jour_n(a, j)
local s = '${exec wget -q --load-cookies '..Rep..'/cookie -O '..Rep..'/details'..j..' '..a..'details'..j..'.aspx}'
conky_parse( s )
local file = assert(io.open(Rep..'/details'..j, "rb") )
local line = file:read()
local pos3, iconej,Jour, CondMeteoj, CondMeteoj1, CondMeteoj2, Temp, TempjRes, Vent, VentDirj, VentForcej, iconev, VentP, Uv, ProbOrage, NivPrec, QPluie, QNeige, DPrecHeure, DPluieHeure, DPrecNuit, DPluieNuit, niconej, nCondMeteoj, nCondMeteoj1, nCondMeteoj2, nTemp, nTempjRes, nVent, nVentDirj, nVentForcej, niconev, nVentP, nUv, nProbOrage, nNivPrec, nQPluie, nQNeige, nDPrecHeure, nDPluieHeure, nDPrecMinute, nDPluieMinute, LeverSoleilHeure, CoucherSoleilHeure, LeverLuneHeure, CoucherLuneHeure, DureeJourHeure, DureeNuitHeure, LeverSoleilMinute, CoucherSoleilMinute, LeverLuneMinute, CoucherLuneMinute, DureeJourMinute, DureeNuitMinute, ABJour
for line in file:lines() do
line = string.gsub(line, ",", ".")
local pos1 = string.find(line, '">', 40)
local pos2 = string.find(line, "</")
if string.find(line, "imgDayIcon") ~= nil then
pos1 = string.find(line, 'blue/')
pos2 = string.find(line, "_int")
iconej = test_image(string.sub(line, pos1+5, pos2-1))
elseif string.find(line, "lblDetails") ~= nil then
pos3 = string.find(line, "pour")
Jour = string.sub(line, pos3+5, pos2-1)
ABJour = string.sub(line, pos3+5, pos3+7) --jour abrege
elseif string.find(line, "lblDayText") ~= nil then
CondMeteoj = string.sub(line, pos1+2, pos2-1)
CondMeteoj1, CondMeteoj2 = decoupage(CondMeteoj)
elseif string.find(line, "lblHighValue") ~= nil then Temp = string.sub(line, pos1+2, pos2-7)
elseif string.find(line, "lblRealFeelValue") ~= nil then TempjRes = string.sub(line, pos1+2, pos2-7)
elseif string.find(line, "lblWindsValue") ~= nil then
Vent = string.sub(line, pos1+2, pos2-1)
pos3 = string.find(Vent, " ")
VentDirj = string.gsub(string.sub(Vent, 1, pos3-1), "W", "O")
VentForcej = string.sub(Vent, pos3+1)
iconev = icone_vent(direction_vent(VentDirj), VentForcej)
VentP = vent_plein(VentDirj)
elseif string.find(line, "lblMaxUVValue") ~= nil then Uv = string.sub(line, pos1+2, pos2-1)
elseif string.find(line, "lblTStormProbValue") ~= nil then ProbOrage = string.sub(line, pos1+2, pos2-2)
elseif string.find(line, "lblPrecipValue") ~= nil then NivPrec = string.sub(line, pos1+2, pos2-1)
elseif string.find(line, "lblRainValue") ~= nil then QPluie = string.sub(line, pos1+2, pos2-1)
elseif string.find(line, "lblSnowValue") ~= nil then QNeige = string.sub(line, pos1+2, pos2-1)
elseif string.find(line, "lblHoursPrecipValue") ~= nil then
DPrecHeure = string.sub(line, pos1+2, pos2-8)
DPrecMinute = "00"
elseif string.find(line, "lblHoursOfRainValue") ~= nil then
DPluieHeure = string.sub(line, pos1+2, pos2-8)
DPluieMinute = "00"
elseif string.find(line, "imgNightIcon") ~= nil then
pos1 = string.find(line, 'blue/')
pos2 = string.find(line, "_int")
niconej = test_image(string.sub(line, pos1+5, pos2-1))
elseif string.find(line, "lblNightText") ~= nil then
nCondMeteoj = string.sub(line, pos1+2, pos2-1)
nCondMeteoj1, nCondMeteoj2 = decoupage(nCondMeteoj)
elseif string.find(line, "lblLowValue") ~= nil then nTemp = string.sub(line, pos1+2, pos2-7)
elseif string.find(line, "lblRealFeelNValue") ~= nil then nTempjRes = string.sub(line, pos1+2, pos2-7)
elseif string.find(line, "lblWindsNValue") ~= nil then
nVent = string.sub(line, pos1+2, pos2-1)
pos3 = string.find(Vent, " ")
nVentDirj = string.gsub(string.sub(Vent, 1, pos3-1), "W", "O")
nVentForcej = string.sub(Vent, pos3+1)
niconev = icone_vent(direction_vent(VentDirj), VentForcej)
nVentP = vent_plein(VentDirj)
elseif string.find(line, "lblTStormProbNValue") ~= nil then nProbOrage = string.sub(line, pos1+2, pos2-2)
elseif string.find(line, "lblPrecipNValue") ~= nil then nNivPrec = string.sub(line, pos1+2, pos2-1)
elseif string.find(line, "lblRainNValue") ~= nil then nQPluie = string.sub(line, pos1+2, pos2-1)
elseif string.find(line, "lblSnowNValue") ~= nil then nQNeige = string.sub(line, pos1+2, pos2-1)
elseif string.find(line, "lblHoursPrecipNValue") ~= nil then
nDPrecHeure = string.sub(line, pos1+2, pos2-8)
nDPrecMinute = "00"
elseif string.find(line, "lblHoursOfRainNValue") ~= nil then
nDPluieHeure = string.sub(line, pos1+2, pos2-8)
nDPluieMinute = "00"
end
pos1 = string.find(line, ': ')
if string.find(line, "lblSunrise") ~= nil then
local a = string.sub(line, pos1+2, pos2-1)
pos3 = string.find(a, ":")
LeverSoleilHeure = string.sub(a, 0, pos3-1)
LeverSoleilMinute = string.sub(a, pos3+1)
elseif string.find(line, "lblSunset") ~= nil then
local a = string.sub(line, pos1+2, pos2-1)
pos3 = string.find(a, ":")
CoucherSoleilHeure = string.sub(a, 0, pos3-1)
CoucherSoleilMinute = string.sub(a, pos3+1)
elseif string.find(line, "lblMoonrise") ~= nil then
local a = string.sub(line, pos1+2, pos2-1)
pos3 = string.find(a, ":")
LeverLuneHeure = string.sub(a, 0, pos3-1)
LeverLuneMinute = string.sub(a, pos3+1)
elseif string.find(line, "lblMoonset") ~= nil then
local a = string.sub(line, pos1+2, pos2-1)
pos3 = string.find(a, ":")
CoucherLuneHeure = string.sub(a, 0, pos3-1)
CoucherLuneMinute = string.sub(a, pos3+1)
elseif string.find(line, "lblDaylight") ~= nil then
DureeJourHeure = string.sub(line, pos1+2, pos2-1)
DureeJourMinute = "00"
elseif string.find(line, "lblDarkness") ~= nil then
DureeNuitHeure = string.sub(line, pos1+2, pos2-1)
DureeNuitMinute = "00"
end
end
conditionJour[j] = { CondMeteo=CondMeteoj, Temp=Temp, TempRes=TempjRes, VentDir=VentDirj, VentForce=VentForcej, Uv=Uv, ProbOrage=ProbOrage, NivPrec=NivPrec, QPluie=QPluie, QNeige=QNeige, DPrecHeure=DPrecHeure, DPluieHeure=DPluieHeure, DPrecMinute=DPrecMinute, DPluieMinute=DPluieMinute, IconeM=iconej, IconeV=iconev, VentP=VentP, CondMeteo1=CondMeteoj1, CondMeteo2=CondMeteoj2 }
conditionNuit[j] = { CondMeteo=nCondMeteoj, Temp=nTemp, TempRes=nTempjRes, VentDir=nVentDirj, VentForce=nVentForcej, ProbOrage=nProbOrage, NivPrec=nNivPrec, QPluie=nQPluie, QNeige=nQNeige, DPrecHeure=nDPrecHeure, DPluieHeure=nDPluieHeure, DPrecMinute=nDPrecMinute, DPluieMinute=nDPluieMinute, IconeM=niconej, IconeV=niconev, VentP=nVentP, CondMeteo1=nCondMeteoj1, CondMeteo2=nCondMeteoj2 }
InfoJour[j] = { Jour=Jour, LeverSoleilHeure=LeverSoleilHeure, CoucherSoleilHeure=CoucherSoleilHeure, LeverLuneHeure=LeverLuneHeure, CoucherLuneHeure=CoucherLuneHeure, DureeJourHeure=DureeJourHeure, DureeNuitHeure=DureeNuitHeure, LeverSoleilMinute=LeverSoleilMinute, CoucherSoleilMinute=CoucherSoleilMinute, LeverLuneMinute=LeverLuneMinute, CoucherLuneMinute=CoucherLuneMinute, DureeJourMinute=DureeJourMinute, DureeNuitMinute=DureeNuitMinute,ABJour=ABJour }
io.close(file)
end
function conky_Meteo_Maj(cmd, jours, delais, r)
if t == nil then
local bar, bar1
local l = string.sub(cmd, 0, string.find(cmd, '/quick.')-1)
local a = 1
while bar == nil do
a = a+1
bar = string.find(l, '/', -a)
end
local l1 = string.sub(cmd, 0, bar-1)
local b = 1
while bar1 == nil do
b = b+1
bar1 = string.find(l1, '/', -b)
end
l = string.sub(cmd, bar1, string.find(cmd, '/quick.')-1)
Rep = r..l
if os.execute("cd "..Rep) ~= 0 then
os.execute("mkdir "..r..string.sub(cmd, bar1, bar-1))
os.execute("mkdir "..Rep)
end
t = os.time()-delais
start = 1
end
if tonumber(delais) <= os.difftime(os.time(), t) then
if os.execute("ping -c 1 www.google.com") == 0 then
Heure = nil
while Heure == nil do
local s = '${exec wget -q --save-cookies '..Rep..'/cookie -O '..Rep..'/curr_cond_raw '..cmd..'}'
local addr_week = string.sub(cmd, 0, string.find(cmd, 'quick.')-1)
conky_parse( s )
if not conditionJour then
conditionJour = {}
conditionNuit = {}
InfoJour= {}
end
local file = assert(io.open(Rep.."/curr_cond_raw", "rb") )
local line = file:read()
for line in file:lines() do
local pos1 = string.find(line, '">')
local pos2 = string.find(line, "</")
if string.find(line, "imgCurConCondition") ~= nil then
pos1 = string.find(line, 'blue/')
pos2 = string.find(line, "_int")
icone = test_image(string.sub(line, pos1+5, pos2-1))
elseif string.find(line, "lblRealFeelValue") ~= nil then TempRes = string.sub(line, pos1+2, pos2-7)
elseif string.find(line, "lblCurrentTemp") ~= nil then TempAct = string.sub(line, pos1+2, pos2-7)
elseif string.find(line, "lblCurrentTime") ~= nil then
local a = string.sub(line, pos1+2, pos2-1)
local pos3 = string.find(a, ":")
Heure = string.sub(a, 0, pos3-1)
Minute = string.sub(a, pos3+1)
elseif string.find(line, "lblCurrentText") ~= nil then
CondMeteo = string.sub(line, pos1+2, pos2-1)
CondMeteo1, CondMeteo2 = decoupage(CondMeteo)
elseif string.find(line, "lblWindsValue") ~= nil then
local Vent = string.sub(line, pos1+2, pos2-1)
local pos3 = string.find(Vent, " ")
VentDir = string.gsub(string.sub(Vent, 1, pos3-1), "W", "O")
VentForce = string.sub(Vent, pos3+1, -6)
IconeV = icone_vent(direction_vent(VentDir), VentForce)
VentPlein = vent_plein(VentDir)
elseif string.find(line, "lblHumidityValue") ~= nil then Humidite = string.sub(line, pos1+2, pos2-2)
elseif string.find(line, "lblDewPointValue") ~= nil then Rose = string.sub(line, pos1+2, pos2-7)
elseif string.find(line, "lblPressureValue") ~= nil then Pression = string.sub(line, pos1+2, pos2-4)
elseif string.find(line, "lblPressureTenValue") ~= nil then EvoPression = string.sub(line, pos1+2, pos2-2)
elseif string.find(line, "lblVisibilityValue") ~= nil then Visibilite = string.sub(line, pos1+2, pos2-4)
elseif string.find(line, "lblSunRiseValue") ~= nil then
local a = string.sub(line, pos1+2, pos2-1)
local pos3 = string.find(a, ":")
LeverSoleilHeure = string.sub(a, 0, pos3-1)
LeverSoleilMinute = string.sub(a, pos3+1)
elseif string.find(line, "lblSunSetValue") ~= nil then
local a = string.sub(line, pos1+2, pos2-1)
local pos3 = string.find(a, ":")
CoucherSoleilHeure = string.sub(a, 0, pos3-1)
CoucherSoleilMinute = string.sub(a, pos3+1)
elseif string.find(line, "lblDate") ~= nil then Date = string.sub(line, pos1+2, pos2-1)
elseif string.find(line, "lnkLocation") ~= nil then Ville = string.sub(line, pos1+2, pos2-9)
end
end
io.close(file)
if 14400 <= os.difftime(os.time(), t) or start == 1 then
for i = 1,jours do jour_n(addr_week, i) end
start = 2
end
t = os.time()
end
lune(r)
end
collectgarbage()
end
return " "
end
--Retour d'information météo
--Condition courrante
function conky_Meteo_IconeM(r, p, s, f)
return "${image "..r.."/"..icone.." -p "..p.." -s "..s.." -f "..f.."}"
end
function conky_Meteo_TempRes()
return tonumber(TempRes)
end
function conky_Meteo_TempAct()
return tonumber(TempAct)
end
function conky_Meteo_Heure()
return Heure
end
function conky_Meteo_Minute()
return Minute
end
function conky_Meteo_CondMeteo()
return CondMeteo
end
function conky_Meteo_CondMeteo1()
return CondMeteo1
end
function conky_Meteo_CondMeteo2()
return CondMeteo2
end
function conky_Meteo_VentDir()
return VentDir
end
function conky_Meteo_VentDirP()
return VentPlein
end
function conky_Meteo_VentForce()
return tonumber(VentForce)
end
function conky_Meteo_IconeV(r, p, s, f)
return "${image "..r.."/"..IconeV.." -p "..p.." -s "..s.." -f "..f.."}"
end
function conky_Meteo_Humidite()
return tonumber(Humidite)
end
function conky_Meteo_Rose()
return tonumber(Rose)
end
function conky_Meteo_Pression()
return tonumber(Pression)
end
function conky_Meteo_EvoPression()
return EvoPression
end
function conky_Meteo_Visibilite()
return tonumber(Visibilite)
end
function conky_Meteo_HLeverSoleilC()
return LeverSoleilHeure
end
function conky_Meteo_MLeverSoleilC()
return LeverSoleilMinute
end
function conky_Meteo_HCoucherSoleilC()
return CoucherSoleilHeure
end
function conky_Meteo_MCoucherSoleilC()
return CoucherSoleilMinute
end
function conky_Meteo_Date()
return Date
end
function conky_Meteo_Ville()
return Ville
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_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_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_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_HDureePrec(j)
return conditionJour[tonumber(j)].DPrecHeure
end
function conky_Meteo_Jour_MDureePrec(j)
return conditionJour[tonumber(j)].DPrecMinute
end
function conky_Meteo_Jour_HDureePluie(j)
return conditionJour[tonumber(j)].DPluieHeure
end
function conky_Meteo_Jour_MDureePluie(j)
return conditionJour[tonumber(j)].DPluieMinute
end
function conky_Meteo_Jour_IconeM(r, p, s, f, j)
return "${image "..r.."/"..conditionJour[tonumber(j)].IconeM.." -p "..p.." -s "..s.." -f "..f.."}"
end
function conky_Meteo_Jour_IconeV(r, p, s, f, j)
return "${image "..r.."/"..conditionJour[tonumber(j)].IconeV.." -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_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_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_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_HDureePrec(j)
return conditionNuit[tonumber(j)].DPrecHeure
end
function conky_Meteo_Nuit_MDureePrec(j)
return conditionNuit[tonumber(j)].DPrecMinute
end
function conky_Meteo_Nuit_HDureePluie(j)
return conditionNuit[tonumber(j)].DPluieHeure
end
function conky_Meteo_Nuit_MDureePluie(j)
return conditionNuit[tonumber(j)].DPluieMinute
end
function conky_Meteo_Nuit_IconeM(r, p, s, f, j)
return "${image "..r.."/"..conditionNuit[tonumber(j)].IconeM.." -p "..p.." -s "..s.." -f "..f.."}"
end
function conky_Meteo_Nuit_IconeV(r, p, s, f, j)
return "${image "..r.."/"..conditionNuit[tonumber(j)].IconeV.." -p "..p.." -s "..s.." -f "..f.."}"
end
--Infos sur la journée
function conky_Meteo_Jour(j)
return InfoJour[tonumber(j)].Jour
end
function conky_Meteo_ABJour(j)
return InfoJour[tonumber(j)].ABJour --jour abrege
end
function conky_Meteo_HLeverSoleil(j)
return InfoJour[tonumber(j)].LeverSoleilHeure
end
function conky_Meteo_MLeverSoleil(j)
return InfoJour[tonumber(j)].LeverSoleilMinute
end
function conky_Meteo_HCoucherSoleil(j)
return InfoJour[tonumber(j)].CoucherSoleilHeure
end
function conky_Meteo_MCoucherSoleil(j)
return InfoJour[tonumber(j)].CoucherSoleilMinute
end
function conky_Meteo_HLeverLune(j)
return InfoJour[tonumber(j)].LeverLuneHeure
end
function conky_Meteo_MLeverLune(j)
return InfoJour[tonumber(j)].LeverLuneMinute
end
function conky_Meteo_HCoucherLune(j)
return InfoJour[tonumber(j)].CoucherLuneHeure
end
function conky_Meteo_MCoucherLune(j)
return InfoJour[tonumber(j)].CoucherLuneMinute
end
function conky_Meteo_HDureeJour(j)
return InfoJour[tonumber(j)].DureeJourHeure
end
function conky_Meteo_MDureeJour(j)
return InfoJour[tonumber(j)].DureeJourMinute
end
function conky_Meteo_HDureeNuit(j)
return InfoJour[tonumber(j)].DureeNuitHeure
end
function conky_Meteo_MDureeNuit(j)
return InfoJour[tonumber(j)].DureeNuitMinute
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()
return Eclipse_partielle
end
function conky_Lune_EclipseTotal()
return Eclipse_total
end
ajout fonction ABJour extraction ABJour = string.sub(line, pos3+5, pos3+7) --jour abrege
et donc pour appeler dans conky : ${template1 ABJour 3} par exemple
Attention à ceux qui ne l'avaient pas remarqué les prévisions des jours suivant ne commencent qu'à details3 donc pour une prévision des 5 jours suivants par exemple la MAJ doit être de 7 (${template1 Maj http://www.accuweather.com/fr/fr/franch … yid=133341 7 1800 /tmp}).
Encore une fois le script fonctionne super bien.
A+
Hors ligne
#395 Le 06/01/2012, à 07:13
- Didier-T
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
...
Attention à ceux qui ne l'avaient pas remarqué les prévisions des jours suivant ne commencent qu'à details3
...
Encore une fois le script fonctionne super bien.
Bien vu le coup du détails3, mais du coups sa fonctionne pas comme il faudrait, detail1 devrait être aujourd’hui et pas hier.
Je modifie sa tout de suite, en reprenant la modif pour les jours court que tu a effectué.
c'est fait.
script meteo.lua
-- Créé par Didier-T (forum.ubuntu-fr.org) require "io" function lune(r) s = "${exec wget -q -O "..r.."/cal_lunaire http://www.calendrier-lunaire.net/}" conky_parse( s ) local file = assert(io.open(r..'/cal_lunaire', "rb") ) local line = file:read() for line in file:lines() do local pos1 = string.find(line, '">') local pos2 = string.find(line, "</", pos1) if string.find(line, "ephemerides_1") ~= nil then pos1 = string.find(line, 'src="') pos2 = string.find(line, '" /') s = "${exec wget -q -O "..r.."/lune.png http://www.calendrier-lunaire.net/"..string.sub(line, pos1+5, pos2-1).."}" conky_parse( s ) conky_parse( "${exec convert "..r.."/lune.png -transparent '#091a2a' "..r.."/lune.png}" ) elseif string.find(line, "<h2>") ~= nil then ephemerides1 = string.sub(line, pos1+2, pos2-1) local pos3 = string.find(line, 'n>', pos2) local pos4 = string.find(line, "</", pos2+3) ephemerides2 = string.sub(line, pos3+3, pos4-1) ephemerides = ephemerides1.." "..ephemerides2 elseif string.find(line, "Visibilit") ~= nil then Visibilite = string.sub(line, pos1+2, pos2-3) elseif string.find(line, "Phases") ~= nil then Phases = string.gsub(string.sub(line, pos1+2, pos2-1), "é", "é") local pos3 = string.find(Phases, ',') Phases1 = string.sub(Phases, 0, pos3-1) Phases2 = string.sub(Phases, pos3+2) elseif string.find(line, "Noeud lunaire") ~= nil then local a = string.gsub(string.sub(line, pos1+2, pos2-1), "Dans ", "") Noeud_lunaire = string.gsub(a, " Jours", "") elseif string.find(line, "Apog") ~= nil then local a = string.gsub(string.sub(line, pos1+2, pos2-1), "Dans ", "") Apogee = string.gsub(a, " Jours", "") elseif string.find(line, "Perig") ~= nil then local a = string.gsub(string.sub(line, pos1+2, pos2-1), "Dans ", "") Perigee = string.gsub(a, " Jours", "") elseif string.find(line, "Distance") ~= nil then Distance = string.sub(line, pos1+2, pos2-4) elseif string.find(line, "Age de la Lune") ~= nil then Age = string.sub(line, pos1+2, pos2-1) elseif string.find(line, "La Lune se") ~= nil then local a = string.sub(line, pos1+2, pos2-1) pos3 = string.find(a, ":") Lever_LuneHeure = string.sub(a, 0, pos3-1) Lever_LuneMinute = string.sub(a, pos3+1) local pos3 = string.find(line, '">', pos2) local pos4 = string.find(line, "</", pos3+3) a = string.sub(line, pos3+2, pos4-1) local pos5 = string.find(a, ":") Coucher_LuneHeure = string.sub(a, 0, pos5-1) Coucher_LuneMinute = string.sub(a, pos5+1) elseif string.find(line, "eclipse_partielle") ~= nil then local pos3 = string.find(line, '">', pos1+3) local a = string.gsub(string.sub(line, pos3+2, pos2-1), "<br />", "à") Eclipse_partielle = a elseif string.find(line, "eclipse_totale") ~= nil then local pos3 = string.find(line, '">', pos1+3) local a = string.gsub(string.sub(line, pos3+2, pos2-1), "<br />", "à") Eclipse_total = a end end io.close(file) end function test_image(i) if i == "1" then return "1su.png" elseif i == "2" then return "2msu.png" elseif i == "3" then return "3psu.png" elseif i == "4" then return "4ic.png" elseif i == "5" then return "5h.png" elseif i == "6" then return "6mc.png" elseif i == "7" then return "7c.png" elseif i == "8" then return "8d.png" elseif i == "11" then return "9f.png" elseif i == "12" then return "10s.png" elseif i == "13" then return "11mcs.png" elseif i == "14" then return "12psus.png" elseif i == "15" then return "13t.png" elseif i == "16" then return "14mct.png" elseif i == "17" then return "15psut.png" elseif i == "18" then return "16r.png" elseif i == "19" then return "17fl.png" elseif i == "20" then return "18mcfl.png" elseif i == "21" then return "19psfl.png" elseif i == "22" then return "20sn.png" elseif i == "23" then return "21mcsn.png" elseif i == "24" then return "22i.png" elseif i == "25" then return "23sl.png" elseif i == "26" then return "24fr.png" elseif i == "29" then return "25rsn.png" elseif i == "30" then return "27ho.png" elseif i == "31" then return "28co.png" elseif i == "32" then return "26w.png" elseif i == "33" then return "29cl.png" elseif i == "34" then return "31mcl.png" elseif i == "35" then return "32pc.png" elseif i == "36" then return "33ic.png" elseif i == "37" then return "34h.png" elseif i == "38" then return "35mc.png" elseif i == "39" then return "36pcs.png" elseif i == "40" then return "37mcs.png" elseif i == "41" then return "38pct.png" elseif i == "42" then return "39mct.png" elseif i == "43" then return "40mcfl.png" elseif i == "44" then return "41mcsn.png" end end 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 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 function icone_vent(d, fo) local f = tonumber(fo) local n if f <= 25 then n = d elseif f <= 50 then n = d + 17 elseif f <= 75 then n = d + 34 elseif f >= 76 then n = d + 51 end if n <= 9 then n = "0"..n end return n..".png" end function decoupage(d) local l1, l2, n, p1, p2, n1, n2, l1b, l2b if string.len(d) >= 21 then n = math.ceil(string.len(d)/2) p1 = string.find(d, " ", n) p2 = string.find(d, " ", -n) if p1 >= 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((21 - string.len(l1b))/2) l1 = string.rep(" ", n1)..l1b n2 = math.ceil((21 - string.len(l2b))/2) l2 = string.rep(" ", n2)..l2b return l1, l2 end function jour_n(a, j) local i = j+1 local s = '${exec wget -q --load-cookies '..Rep..'/cookie -O '..Rep..'/details'..j..' '..a..'details'..i..'.aspx}' conky_parse( s ) local file = assert(io.open(Rep..'/details'..j, "rb") ) local line = file:read() local pos3, iconej,Jour, CondMeteoj, CondMeteoj1, CondMeteoj2, Temp, TempjRes, Vent, VentDirj, VentForcej, iconev, VentP, Uv, ProbOrage, NivPrec, QPluie, QNeige, DPrecHeure, DPluieHeure, DPrecNuit, DPluieNuit, niconej, nCondMeteoj, nCondMeteoj1, nCondMeteoj2, nTemp, nTempjRes, nVent, nVentDirj, nVentForcej, niconev, nVentP, nUv, nProbOrage, nNivPrec, nQPluie, nQNeige, nDPrecHeure, nDPluieHeure, nDPrecMinute, nDPluieMinute, LeverSoleilHeure, CoucherSoleilHeure, LeverLuneHeure, CoucherLuneHeure, DureeJourHeure, DureeNuitHeure, LeverSoleilMinute, CoucherSoleilMinute, LeverLuneMinute, CoucherLuneMinute, DureeJourMinute, DureeNuitMinute, ABJour for line in file:lines() do line = string.gsub(line, ",", ".") local pos1 = string.find(line, '">', 40) local pos2 = string.find(line, "</") if string.find(line, "imgDayIcon") ~= nil then pos1 = string.find(line, 'blue/') pos2 = string.find(line, "_int") iconej = test_image(string.sub(line, pos1+5, pos2-1)) elseif string.find(line, "lblDetails") ~= nil then pos3 = string.find(line, "pour") Jour = string.sub(line, pos3+5, pos2-1) ABJour = string.sub(line, pos3+5, pos3+7) --jour abrege elseif string.find(line, "lblDayText") ~= nil then CondMeteoj = string.sub(line, pos1+2, pos2-1) CondMeteoj1, CondMeteoj2 = decoupage(CondMeteoj) elseif string.find(line, "lblHighValue") ~= nil then Temp = string.sub(line, pos1+2, pos2-7) elseif string.find(line, "lblRealFeelValue") ~= nil then TempjRes = string.sub(line, pos1+2, pos2-7) elseif string.find(line, "lblWindsValue") ~= nil then Vent = string.sub(line, pos1+2, pos2-1) pos3 = string.find(Vent, " ") VentDirj = string.gsub(string.sub(Vent, 1, pos3-1), "W", "O") VentForcej = string.sub(Vent, pos3+1) iconev = icone_vent(direction_vent(VentDirj), VentForcej) VentP = vent_plein(VentDirj) elseif string.find(line, "lblMaxUVValue") ~= nil then Uv = string.sub(line, pos1+2, pos2-1) elseif string.find(line, "lblTStormProbValue") ~= nil then ProbOrage = string.sub(line, pos1+2, pos2-2) elseif string.find(line, "lblPrecipValue") ~= nil then NivPrec = string.sub(line, pos1+2, pos2-1) elseif string.find(line, "lblRainValue") ~= nil then QPluie = string.sub(line, pos1+2, pos2-1) elseif string.find(line, "lblSnowValue") ~= nil then QNeige = string.sub(line, pos1+2, pos2-1) elseif string.find(line, "lblHoursPrecipValue") ~= nil then DPrecHeure = string.sub(line, pos1+2, pos2-8) DPrecMinute = "00" elseif string.find(line, "lblHoursOfRainValue") ~= nil then DPluieHeure = string.sub(line, pos1+2, pos2-8) DPluieMinute = "00" elseif string.find(line, "imgNightIcon") ~= nil then pos1 = string.find(line, 'blue/') pos2 = string.find(line, "_int") niconej = test_image(string.sub(line, pos1+5, pos2-1)) elseif string.find(line, "lblNightText") ~= nil then nCondMeteoj = string.sub(line, pos1+2, pos2-1) nCondMeteoj1, nCondMeteoj2 = decoupage(nCondMeteoj) elseif string.find(line, "lblLowValue") ~= nil then nTemp = string.sub(line, pos1+2, pos2-7) elseif string.find(line, "lblRealFeelNValue") ~= nil then nTempjRes = string.sub(line, pos1+2, pos2-7) elseif string.find(line, "lblWindsNValue") ~= nil then nVent = string.sub(line, pos1+2, pos2-1) pos3 = string.find(Vent, " ") nVentDirj = string.gsub(string.sub(Vent, 1, pos3-1), "W", "O") nVentForcej = string.sub(Vent, pos3+1) niconev = icone_vent(direction_vent(VentDirj), VentForcej) nVentP = vent_plein(VentDirj) elseif string.find(line, "lblTStormProbNValue") ~= nil then nProbOrage = string.sub(line, pos1+2, pos2-2) elseif string.find(line, "lblPrecipNValue") ~= nil then nNivPrec = string.sub(line, pos1+2, pos2-1) elseif string.find(line, "lblRainNValue") ~= nil then nQPluie = string.sub(line, pos1+2, pos2-1) elseif string.find(line, "lblSnowNValue") ~= nil then nQNeige = string.sub(line, pos1+2, pos2-1) elseif string.find(line, "lblHoursPrecipNValue") ~= nil then nDPrecHeure = string.sub(line, pos1+2, pos2-8) nDPrecMinute = "00" elseif string.find(line, "lblHoursOfRainNValue") ~= nil then nDPluieHeure = string.sub(line, pos1+2, pos2-8) nDPluieMinute = "00" end pos1 = string.find(line, ': ') if string.find(line, "lblSunrise") ~= nil then local a = string.sub(line, pos1+2, pos2-1) pos3 = string.find(a, ":") LeverSoleilHeure = string.sub(a, 0, pos3-1) LeverSoleilMinute = string.sub(a, pos3+1) elseif string.find(line, "lblSunset") ~= nil then local a = string.sub(line, pos1+2, pos2-1) pos3 = string.find(a, ":") CoucherSoleilHeure = string.sub(a, 0, pos3-1) CoucherSoleilMinute = string.sub(a, pos3+1) elseif string.find(line, "lblMoonrise") ~= nil then local a = string.sub(line, pos1+2, pos2-1) pos3 = string.find(a, ":") LeverLuneHeure = string.sub(a, 0, pos3-1) LeverLuneMinute = string.sub(a, pos3+1) elseif string.find(line, "lblMoonset") ~= nil then local a = string.sub(line, pos1+2, pos2-1) pos3 = string.find(a, ":") CoucherLuneHeure = string.sub(a, 0, pos3-1) CoucherLuneMinute = string.sub(a, pos3+1) elseif string.find(line, "lblDaylight") ~= nil then DureeJourHeure = string.sub(line, pos1+2, pos2-1) DureeJourMinute = "00" elseif string.find(line, "lblDarkness") ~= nil then DureeNuitHeure = string.sub(line, pos1+2, pos2-1) DureeNuitMinute = "00" end end conditionJour[j] = { CondMeteo=CondMeteoj, Temp=Temp, TempRes=TempjRes, VentDir=VentDirj, VentForce=VentForcej, Uv=Uv, ProbOrage=ProbOrage, NivPrec=NivPrec, QPluie=QPluie, QNeige=QNeige, DPrecHeure=DPrecHeure, DPluieHeure=DPluieHeure, DPrecMinute=DPrecMinute, DPluieMinute=DPluieMinute, IconeM=iconej, IconeV=iconev, VentP=VentP, CondMeteo1=CondMeteoj1, CondMeteo2=CondMeteoj2 } conditionNuit[j] = { CondMeteo=nCondMeteoj, Temp=nTemp, TempRes=nTempjRes, VentDir=nVentDirj, VentForce=nVentForcej, ProbOrage=nProbOrage, NivPrec=nNivPrec, QPluie=nQPluie, QNeige=nQNeige, DPrecHeure=nDPrecHeure, DPluieHeure=nDPluieHeure, DPrecMinute=nDPrecMinute, DPluieMinute=nDPluieMinute, IconeM=niconej, IconeV=niconev, VentP=nVentP, CondMeteo1=nCondMeteoj1, CondMeteo2=nCondMeteoj2 } InfoJour[j] = { Jour=Jour, LeverSoleilHeure=LeverSoleilHeure, CoucherSoleilHeure=CoucherSoleilHeure, LeverLuneHeure=LeverLuneHeure, CoucherLuneHeure=CoucherLuneHeure, DureeJourHeure=DureeJourHeure, DureeNuitHeure=DureeNuitHeure, LeverSoleilMinute=LeverSoleilMinute, CoucherSoleilMinute=CoucherSoleilMinute, LeverLuneMinute=LeverLuneMinute, CoucherLuneMinute=CoucherLuneMinute, DureeJourMinute=DureeJourMinute, DureeNuitMinute=DureeNuitMinute,ABJour=ABJour } io.close(file) end function conky_Meteo_Maj(cmd, jours, delais, r) if t == nil then local bar, bar1 local l = string.sub(cmd, 0, string.find(cmd, '/quick.')-1) local a = 1 while bar == nil do a = a+1 bar = string.find(l, '/', -a) end local l1 = string.sub(cmd, 0, bar-1) local b = 1 while bar1 == nil do b = b+1 bar1 = string.find(l1, '/', -b) end l = string.sub(cmd, bar1, string.find(cmd, '/quick.')-1) Rep = r..l if os.execute("cd "..Rep) ~= 0 then os.execute("mkdir "..r..string.sub(cmd, bar1, bar-1)) os.execute("mkdir "..Rep) end t = os.time()-delais start = 1 end if tonumber(delais) <= os.difftime(os.time(), t) then if os.execute("ping -c 1 www.google.com") == 0 then Heure = nil while Heure == nil do local s = '${exec wget -q --save-cookies '..Rep..'/cookie -O '..Rep..'/curr_cond_raw '..cmd..'}' local addr_week = string.sub(cmd, 0, string.find(cmd, 'quick.')-1) conky_parse( s ) if not conditionJour then conditionJour = {} conditionNuit = {} InfoJour= {} end local file = assert(io.open(Rep.."/curr_cond_raw", "rb") ) local line = file:read() for line in file:lines() do local pos1 = string.find(line, '">') local pos2 = string.find(line, "</") if string.find(line, "imgCurConCondition") ~= nil then pos1 = string.find(line, 'blue/') pos2 = string.find(line, "_int") icone = test_image(string.sub(line, pos1+5, pos2-1)) elseif string.find(line, "lblRealFeelValue") ~= nil then TempRes = string.sub(line, pos1+2, pos2-7) elseif string.find(line, "lblCurrentTemp") ~= nil then TempAct = string.sub(line, pos1+2, pos2-7) elseif string.find(line, "lblCurrentTime") ~= nil then local a = string.sub(line, pos1+2, pos2-1) local pos3 = string.find(a, ":") Heure = string.sub(a, 0, pos3-1) Minute = string.sub(a, pos3+1) elseif string.find(line, "lblCurrentText") ~= nil then CondMeteo = string.sub(line, pos1+2, pos2-1) CondMeteo1, CondMeteo2 = decoupage(CondMeteo) elseif string.find(line, "lblWindsValue") ~= nil then local Vent = string.sub(line, pos1+2, pos2-1) local pos3 = string.find(Vent, " ") VentDir = string.gsub(string.sub(Vent, 1, pos3-1), "W", "O") VentForce = string.sub(Vent, pos3+1, -6) IconeV = icone_vent(direction_vent(VentDir), VentForce) VentPlein = vent_plein(VentDir) elseif string.find(line, "lblHumidityValue") ~= nil then Humidite = string.sub(line, pos1+2, pos2-2) elseif string.find(line, "lblDewPointValue") ~= nil then Rose = string.sub(line, pos1+2, pos2-7) elseif string.find(line, "lblPressureValue") ~= nil then Pression = string.sub(line, pos1+2, pos2-4) elseif string.find(line, "lblPressureTenValue") ~= nil then EvoPression = string.sub(line, pos1+2, pos2-2) elseif string.find(line, "lblVisibilityValue") ~= nil then Visibilite = string.sub(line, pos1+2, pos2-4) elseif string.find(line, "lblSunRiseValue") ~= nil then local a = string.sub(line, pos1+2, pos2-1) local pos3 = string.find(a, ":") LeverSoleilHeure = string.sub(a, 0, pos3-1) LeverSoleilMinute = string.sub(a, pos3+1) elseif string.find(line, "lblSunSetValue") ~= nil then local a = string.sub(line, pos1+2, pos2-1) local pos3 = string.find(a, ":") CoucherSoleilHeure = string.sub(a, 0, pos3-1) CoucherSoleilMinute = string.sub(a, pos3+1) elseif string.find(line, "lblDate") ~= nil then Date = string.sub(line, pos1+2, pos2-1) elseif string.find(line, "lnkLocation") ~= nil then Ville = string.sub(line, pos1+2, pos2-9) end end io.close(file) if 14400 <= os.difftime(os.time(), t) or start == 1 then for i = 1,jours do jour_n(addr_week, i) end start = 2 end t = os.time() end lune(r) end collectgarbage() end return " " end --Retour d'information météo --Condition courrante function conky_Meteo_IconeM(r, p, s, f) return "${image "..r.."/"..icone.." -p "..p.." -s "..s.." -f "..f.."}" end function conky_Meteo_TempRes() return tonumber(TempRes) end function conky_Meteo_TempAct() return tonumber(TempAct) end function conky_Meteo_Heure() return Heure end function conky_Meteo_Minute() return Minute end function conky_Meteo_CondMeteo() return CondMeteo end function conky_Meteo_CondMeteo1() return CondMeteo1 end function conky_Meteo_CondMeteo2() return CondMeteo2 end function conky_Meteo_VentDir() return VentDir end function conky_Meteo_VentDirP() return VentPlein end function conky_Meteo_VentForce() return tonumber(VentForce) end function conky_Meteo_IconeV(r, p, s, f) return "${image "..r.."/"..IconeV.." -p "..p.." -s "..s.." -f "..f.."}" end function conky_Meteo_Humidite() return tonumber(Humidite) end function conky_Meteo_Rose() return tonumber(Rose) end function conky_Meteo_Pression() return tonumber(Pression) end function conky_Meteo_EvoPression() return EvoPression end function conky_Meteo_Visibilite() return tonumber(Visibilite) end function conky_Meteo_HLeverSoleilC() return LeverSoleilHeure end function conky_Meteo_MLeverSoleilC() return LeverSoleilMinute end function conky_Meteo_HCoucherSoleilC() return CoucherSoleilHeure end function conky_Meteo_MCoucherSoleilC() return CoucherSoleilMinute end function conky_Meteo_Date() return Date end function conky_Meteo_Ville() return Ville 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_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_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_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_HDureePrec(j) return conditionJour[tonumber(j)].DPrecHeure end function conky_Meteo_Jour_MDureePrec(j) return conditionJour[tonumber(j)].DPrecMinute end function conky_Meteo_Jour_HDureePluie(j) return conditionJour[tonumber(j)].DPluieHeure end function conky_Meteo_Jour_MDureePluie(j) return conditionJour[tonumber(j)].DPluieMinute end function conky_Meteo_Jour_IconeM(r, p, s, f, j) return "${image "..r.."/"..conditionJour[tonumber(j)].IconeM.." -p "..p.." -s "..s.." -f "..f.."}" end function conky_Meteo_Jour_IconeV(r, p, s, f, j) return "${image "..r.."/"..conditionJour[tonumber(j)].IconeV.." -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_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_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_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_HDureePrec(j) return conditionNuit[tonumber(j)].DPrecHeure end function conky_Meteo_Nuit_MDureePrec(j) return conditionNuit[tonumber(j)].DPrecMinute end function conky_Meteo_Nuit_HDureePluie(j) return conditionNuit[tonumber(j)].DPluieHeure end function conky_Meteo_Nuit_MDureePluie(j) return conditionNuit[tonumber(j)].DPluieMinute end function conky_Meteo_Nuit_IconeM(r, p, s, f, j) return "${image "..r.."/"..conditionNuit[tonumber(j)].IconeM.." -p "..p.." -s "..s.." -f "..f.."}" end function conky_Meteo_Nuit_IconeV(r, p, s, f, j) return "${image "..r.."/"..conditionNuit[tonumber(j)].IconeV.." -p "..p.." -s "..s.." -f "..f.."}" end --Infos sur la journée function conky_Meteo_Jour(j) return InfoJour[tonumber(j)].Jour end function conky_Meteo_ABJour(j) return InfoJour[tonumber(j)].ABJour --jour abrege end function conky_Meteo_HLeverSoleil(j) return InfoJour[tonumber(j)].LeverSoleilHeure end function conky_Meteo_MLeverSoleil(j) return InfoJour[tonumber(j)].LeverSoleilMinute end function conky_Meteo_HCoucherSoleil(j) return InfoJour[tonumber(j)].CoucherSoleilHeure end function conky_Meteo_MCoucherSoleil(j) return InfoJour[tonumber(j)].CoucherSoleilMinute end function conky_Meteo_HLeverLune(j) return InfoJour[tonumber(j)].LeverLuneHeure end function conky_Meteo_MLeverLune(j) return InfoJour[tonumber(j)].LeverLuneMinute end function conky_Meteo_HCoucherLune(j) return InfoJour[tonumber(j)].CoucherLuneHeure end function conky_Meteo_MCoucherLune(j) return InfoJour[tonumber(j)].CoucherLuneMinute end function conky_Meteo_HDureeJour(j) return InfoJour[tonumber(j)].DureeJourHeure end function conky_Meteo_MDureeJour(j) return InfoJour[tonumber(j)].DureeJourMinute end function conky_Meteo_HDureeNuit(j) return InfoJour[tonumber(j)].DureeNuitHeure end function conky_Meteo_MDureeNuit(j) return InfoJour[tonumber(j)].DureeNuitMinute 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() return Eclipse_partielle end function conky_Lune_EclipseTotal() return Eclipse_total end
Dernière modification par Didier-T (Le 06/01/2012, à 07:25)
Hors ligne
#396 Le 06/01/2012, à 07:37
- jpdipsy
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Merci tu ne dors pas beaucoup non plus
Tiens un petit screenshot
Hors ligne
#397 Le 06/01/2012, à 08:36
- Didier-T
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Pas mal du tout ton conky
Hors ligne
#398 Le 06/01/2012, à 13:11
- TrucSarret
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
bonjour TrucSarret,
Alors tu utilise le script conky pour lua, mais a tu créer le script en meteo.lua qui vas avec ?
Tu le trouveras ici, ce script fonctionne pleinement, mais je n'ai pas encore fais de pack ni de notice.
Bonjour,
Le script en meteo.lua est bien enregistré dans le répertoire /home/trucsarret/conky/script
En fait je pense m'être trompé de commande pour lancer ce conky :
trucsarret@trucsarret ~ $ conky -c conkyrc_meteo_lua
Conky: invalid configuration file 'conkyrc_meteo_lua'
Conky: desktop window (e00023) is subwindow of root window (19c)
Conky: window type - desktop
Conky: drawing to created window (0x2000001)
Conky: drawing to single buffer
Lance ce conky horrible
Par contre en ajoutant un point devant le nom de mon fichier (donc son vrai nom) cela donne
trucsarret@trucsarret ~ $ conky -c .conkyrc_meteo_lua
Conky: can't parse X color 'lightwhite'
Conky: can't parse X color 'lightwhite'
Conky: forked to background, pid is 3358
trucsarret@trucsarret-System-Product-Name ~ $
Conky: desktop window (e00023) is subwindow of root window (19c)
Conky: window type - override
Conky: drawing to created window (0x2000001)
Conky: drawing to double buffer
cd: 1: can't cd to /tmp/rhône-alpes/valence
Toujours pas d'affichage de conky mais ça avance
http://eaudolle.over-blog.com
Hors ligne
#399 Le 06/01/2012, à 14:11
- shamen456
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
@jpdipsy & Didier-T : comme d'hab super boulot...faut vraiment que je passe à lua pour la meteo...
jpdipsy : super ton conky meteo... tu sais (peux ) poster ton conkyrc, j'aimerais partir de la pour faire la conversion vers meteo avec lua...
Hors ligne
#400 Le 06/01/2012, à 16:00
- jpdipsy
Re : [Conky] Alternative à weather.com ( icones conkyforecast )
Didier apparemment le décalage avec detail de ce matin était dû au sîte donc retour arrière pour le script et tout est correct.
Bon voici donc mon script 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
# imlib_cache_size 0
own_window yes
own_window_type override
own_window_transparent yes
own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below
border_inner_margin 0
border_outer_margin 0
minimum_size 465
maximum_width 465
alignment tl
gap_x 50
gap_y 5
# -- Graphics settings -- #
draw_shades no
draw_outline yes
draw_borders no
draw_graph_borders no
# -- Text settings -- #
use_xft yes
font Helvetica LT Std:bold:size=8
uppercase no
default_color 8b8b8b
# -- Declaration template -- #
template0 ${image ~/conky/script/images/\1 -p \2 -s \3 -n} # -- images fond -- #
template1 ${lua Meteo_\1 \2 \3 \4 \5} # -- gestion météo --#
template2 ${lua_parse Meteo_\1 \2 \3 \4 60 \5} # -- icones météo -- \2=repertoir icones \3=position \4=taille \5=jour (pour les prévisions) #
template3 ${lua Lune_\1} # -- recup info par sed -- #
lua_load ~/conky/script/meteo_lua
TEXT
#### Lancement du script récupérant les données météo ####
${template1 Maj http://www.accuweather.com/fr/fr/franche-comté/belfort/quick-look.aspx?cityid=133341 7 1800 /tmp}
##### ville #####
${template0 fond.png 0,0 465x220}${voffset -10}${goto 90}${font URW Chancery L:style=Bold:size=25}${color yellow}${template1 Ville}${goto 190}${font Helvetica LT Std:bold:size=20}${if_match ${template1 TempAct}<5}${color red}${template1 TempAct}°${else}${color white}${template1 TempAct}°${endif}${font Helvetica LT Std:bold:size=10}${offset -10}${color white}/${template1 Nuit_Temp 1}°${font}
##### lunaison #####
${goto 12}${color white}${template3 ephemerides1}
${goto 12}${template3 ephemerides2}
##### Affichage conditions météo ########## température actuelle #####
${goto 12}${font Helvetica LT Std:bold:size=12}${color yellow}${template1 CondMeteo}
${goto 12}${font}${color white}Précipitation${goto 90}: ${template1 Jour_QPluie 1}
${goto 12}Humidité${goto 90}: ${template1 Humidite}%${goto 188}${color yellow}${font Helvetica LT Std:style=Bold:size=10}${template1 VentDirP}${color white}${font}
${goto 12}Qté Neige${goto 90}: ${template1 Jour_QNeige 1}
${goto 12}Pression : ${template1 Pression} mb U.V : ${template1 Jour_Uv}
${goto 12}Levé : ${template1 HLeverSoleil}h${template1 MLeverSoleil} Couché :${template1 HCoucherSoleil}h${template1 MCoucherSoleil}
${goto 12}Durée jour : ${template1 HDureeJour}h${template1 MDureeJour}
${goto 180}${color yellow}${font Helvetica LT Std:style=Bold:size=10}${template1 VentForce} km/h${color white}${font}
${goto 12}Dernière mise à jour : ${template1 Heure}h${template1 Minute}
${template2 IconeV ~/conky/meteo+lune/icones/base/vent 180,136 44x44}#icone vent
${template2 IconeM ~/conky/meteo+lune/icones/base 70,40 132x79 }#condition jour
${image /tmp/lune.png -p 15,15 -s 43x43 -f 60}
#### previsions ####
${voffset -200}
${goto 264}${color yellow}${template1 ABJour 2}${goto 400}${template1 Jour_VentDirP 2}
${goto 264}${color white}${template1 Jour_Temp 2}°/${template1 Nuit_Temp 2}°${goto 400}${template1 Jour_VentForce 2} km/h
${template2 Jour_IconeV ~/conky/meteo+lune/icones/base/vent 360,23 30x30 2}${template2 Jour_IconeM ~/conky/meteo+lune/icones/base 300,23 51x30 2}
${goto 264}${color yellow}${template1 ABJour 3}${goto 400}${template1 Jour_VentDirP 3}
${goto 264}${color white}${template1 Jour_Temp 3}°/${template1 Nuit_Temp 3}°${goto 400}${template1 Jour_VentForce 3} km/h
${template2 Jour_IconeV ~/conky/meteo+lune/icones/base/vent 360,56 30x30 3}${template2 Jour_IconeM ~/conky/meteo+lune/icones/base 300,56 51x30 3}
${goto 264}${color yellow}${template1 ABJour 4}${goto 400}${template1 Jour_VentDirP 4}
${goto 264}${color white}${template1 Jour_Temp 4}°/${template1 Nuit_Temp 4}°${goto 400}${template1 Jour_VentForce 4} km/h
${template2 Jour_IconeV ~/conky/meteo+lune/icones/base/vent 360,89 30x30 4}${template2 Jour_IconeM ~/conky/meteo+lune/icones/base 300,89 51x30 4}
${goto 264}${color yellow}${template1 ABJour 5}${goto 400}${template1 Jour_VentDirP 5}
${goto 264}${color white}${template1 Jour_Temp 5}°/${template1 Nuit_Temp 5}°${goto 400}${template1 Jour_VentForce 5} km/h
${template2 Jour_IconeV ~/conky/meteo+lune/icones/base/vent 360,122 30x30 5}${template2 Jour_IconeM ~/conky/meteo+lune/icones/base 300,122 51x30 5}
${goto 264}${color yellow}${template1 ABJour 6}${goto 400}${template1 Jour_VentDirP 6}
${goto 264}${color white}${template1 Jour_Temp 6}°/${template1 Nuit_Temp 6}°${goto 400}${template1 Jour_VentForce 6} km/h
${template2 Jour_IconeV ~/conky/meteo+lune/icones/base/vent 360,155 30x30 6}${template2 Jour_IconeM ~/conky/meteo+lune/icones/base 300,155 51x30 6}
Voila mon bureau actuel
en plus grand mon bureau
Le tout sous precise avec cairo-dock et session perso gnome3 sans toutes les fioritures (unity ubuntu-one zeigzeit et j'en passe) résultat moins de 300MO de ram et très stable.
L'horloge en haut à droite avec effet LED et aussi un script lua dérivé d'un script de Wlourf et integré aux conky principal.Si ça intéresse je vous met ça.
remarque : bien changer la ref à votre ville et avoir les fontes Helvetica LT Std URW Chancery L d'installées je vous fait un paquet cadeau avec ce qu'il faut le paquet : j'ai supprimé tous ce qui faisait référence aux anciens scripts c'est plus clair.
Je suis à votre disposition pour tout renseignement critique etc..
Bonne soirée et bonne épiphanie (vive le roi).
Hors ligne