#1926 Le 06/02/2013, à 17:17
- Didier-T
Re : [Conky] Alternative à weather.com (2)
il manquait certaines info
#! /usr/bin/python3
# -*- coding: utf-8 -*-
# Par Didier-T Forum Ubuntu.fr
import urllib.request, os, time, re, sys
from bs4 import BeautifulSoup
homedir = os.path.expanduser('~')
#### initialisation des variables
adressWeb="http://www.accuweather.com/fr/fr/argenteuil/133593/current-weather/133593"
repsauv= "~/essais"
huitHeures="non"
nbJour=1
interval=30
for a in sys.argv:
if re.search("adressWeb=", a) is not None:
adressWeb=re.compile("adressWeb=(.*)").search(a).group(1)
if re.search("repsauv=", a) is not None:
repsauv=re.compile("repsauv=(.*)").search(a).group(1)
if re.search("huitHeures=", a) is not None:
huitHeures=re.compile("huitHeures=(.*)").search(a).group(1)
if re.search("nbJour=", a) is not None:
nbJour=re.compile("nbJour=(.*)").search(a).group(1)
if re.search("interval=", a) is not None:
interval=re.compile("interval=(.*)").search(a).group(1)
nbJour=int(nbJour)
interval=int(interval)
repsauv=repsauv.replace("~", homedir)
#### fin initialisation des variables
#### Fonction de traitement des fichiers
def traitement(adress, fichier):
url=urllib.request.Request(adress)
currentCond=urllib.request.urlopen(url)
soup = BeautifulSoup(currentCond)
currentCond.close()
fiche = open(fichier, "w")
#pour debug
# fiche.write(soup.prettify())
#si autres que huit heures
if re.search("huitHeures", fichier) is None:
#récupération date + historique
if re.search("Jour", fichier) is not None or re.search("CC", fichier) is not None:
histo=soup.find(id="feature-history")
#récupération date
date=histo.select("[class~=lt]")
for d in date:
jour=re.compile("^.* - (.*)/(.*)/(.*)").search(d.get_text())
fiche.write("jour: "+jour.group(1)+"\n")
fiche.write("mois: "+jour.group(2)+"\n")
fiche.write("année: "+jour.group(3)+"\n")
#récupération historique
hi=histo.select("[class~=hi]")
for v in hi:
hivalue=v.get_text().split("\n")
fiche.write("maxjour: "+hivalue[2]+"\n")
fiche.write("maxnormal: "+hivalue[3]+"\n")
fiche.write("maxrecord: "+hivalue[4]+"\n")
fiche.write("max1ans: "+hivalue[5]+"\n")
lo=histo.select("[class~=last]")
for v in lo:
lovalue=v.get_text().split("\n")
fiche.write("minjour: "+lovalue[2]+"\n")
fiche.write("minnormal: "+lovalue[3]+"\n")
fiche.write("minrecord: "+lovalue[4]+"\n")
fiche.write("min1ans: "+lovalue[5]+"\n")
#localisation si condition courante
if re.search("CC", fichier) is not None:
ville=soup.select("[class~=current-city]")[0].get_text().split(",")[0]
longi=re.compile("lon: '(.*)',").search(str(soup)).group(1)
lat=re.compile("lat: '(.*)',").search(str(soup)).group(1)
fiche.write("ville: "+ville+"\n")
fiche.write("lat: "+lat+"\n")
fiche.write("long: "+longi+"\n")
# recherche vent
current_balise=soup.find(id="details")
ventd=re.compile("var d = '(.*)';").search(str(current_balise)).group(1).replace("W", "O")
ventf=re.compile("var s = '(.*)km/h';").search(str(current_balise)).group(1)
fiche.write("direction: "+ventd+"\n")
fiche.write("vitesse: "+ventf+"\n")
#recherche icone
icone=current_balise.select("[class~=icon]")
i=0
for ic in icone:
i=i+1
fiche.write("icone"+str(i)+": "+str(ic).replace('<div class="icon i-', '').replace('"></div>', '')+"\n")
#info dans l'image
inf=current_balise.select("[class~=info]")
i=0
if re.search("CC", fichier) is not None:
inf=inf[0].get_text()
cond=inf[:inf.find(re.findall('\d+', inf)[0])]
inf=inf.replace(cond, "")
infs=inf.split(" ")
fiche.write("cond:"+cond+"\n")
fiche.write("Temp: "+infs[0]+"\n")
fiche.write("RealFeel: "+infs[2]+"\n")
if re.search("Matin", fichier) is not None or re.search("AM", fichier) is not None or re.search("Soiree", fichier) is not None or re.search("Nuit", fichier) is not None:
infs=inf[0].get_text().split("\n")
fiche.write("cond:"+infs[0]+"\n")
fiche.write("max: "+infs[1]+"\n")
fiche.write("min: "+infs[2].replace("Mn ", "")+"\n")
fiche.write("RealFeelmax: "+re.findall('-?\d+', infs[5])[0]+"\n")
fiche.write("RealFeelmin: "+re.findall('-?\d+', infs[5])[1]+"\n")
if re.search("Jour", fichier) is not None:
infs=inf[0].get_text().split("\n")
fiche.write("Tempjour: "+re.findall('-?\d+', infs[0])[0]+"\n")
fiche.write("RealFeeljour: "+re.findall('-?\d+', infs[1])[0]+"\n")
fiche.write("Précipitationsjour: "+re.findall('-?\d+', infs[2])[0]+"\n")
infs=inf[1].get_text().split("\n")
fiche.write("Tempnuit: "+re.findall('-?\d+', infs[0])[0]+"\n")
fiche.write("RealFeelnuit: "+re.findall('-?\d+', infs[1])[0]+"\n")
fiche.write("Précipitationsnuit: "+re.findall('-?\d+', infs[2])[0]+"\n")
#condition météo prévision jour
if re.search("Jour", fichier) is not None:
p=current_balise.find_all('p')
i=0
x=0
for pv in p:
i=i+1
if i==5 or i==10:
x=x+1
fiche.write("cond"+str(x)+": "+pv.get_text()+"\n")
#info conditions générales
cc=current_balise.find_all('li')
i=0
for inf in cc:
inf=inf.get_text().replace(" ", "").replace("\n", "")
if re.search(":", inf) is not None:
i=i+1
if i <= 7:
inf=inf.replace(":", " jour:")
else:
inf=inf.replace(":", " nuit:")
fiche.write(inf+"\n")
else:
cc=current_balise.find_all('li')
for inf in cc:
inf=inf.get_text().replace(" ", "").replace("\n", "")
if re.search(":", inf) is not None:
fiche.write(inf+"\n")
else:
table=soup.find_all('table')
# fiche.write(table[0].prettify())
#recherche icones huit heures
icone=table[0].find_all('div')
i=0
for ic in icone:
i=i+1
fiche.write("icone"+str(i)+": "+str(ic).replace('<div class="icon i-', '').replace('"></div>', '')+"\n")
if i == 8:
break
#donée huit heures
tablevalue=table[0].get_text().split("\n")
i=0
for v in tablevalue:
i=i+1
#pour le débug
# fiche.write(str(i)+" "+v+"\n")
if i >= 18 and i <= 25:
x=x+1
fiche.write("heure"+str(x)+": "+v+"\n")
elif i >= 57 and i <= 64:
x=x+1
fiche.write("temp"+str(x)+": "+v+"\n")
elif i >= 68 and i <= 75:
x=x+1
fiche.write("res"+str(x)+": "+v+"\n")
elif i >= 79 and i <= 86:
x=x+1
fiche.write("humid"+str(x)+": "+v+"\n")
elif i >= 105 and i <= 112:
x=x+1
fiche.write("probpluie"+str(x)+": "+v+"\n")
elif i >= 116 and i <= 123:
x=x+1
fiche.write("probneige"+str(x)+": "+v+"\n")
elif i >= 127 and i <= 134:
x=x+1
fiche.write("probverglas"+str(x)+": "+v+"\n")
elif i >= 153 and i <= 160:
x=x+1
fiche.write("vent"+str(x)+": "+v+"\n")
elif i >= 164 and i <= 171:
x=x+1
fiche.write("uv"+str(x)+": "+v+"\n")
elif i >= 175 and i <= 182:
x=x+1
fiche.write("couvnuage"+str(x)+": "+v+"\n")
elif i >= 186 and i <= 193:
x=x+1
fiche.write("rosée"+str(x)+": "+v+"\n")
else :
x=0
fiche.close()
#### fin Fonction de traitement des fichiers
#### Mise en tache de fond
def demonise(ent, id1, id2, huitHeures, nbJour, interval):
while 1 :
debut=time.time()
traitement(ent+nb1+'/current-weather/'+nb2, repsauv+"/CC")
if huitHeures=="oui":
traitement(ent+nb1+'/hourly-weather-forecast/'+nb2, repsauv+"/huitHeures")
x=0
while x<nbJour:
x=x+1
traitement(ent+nb1+'/daily-weather-forecast/'+nb2+"?day="+str(x), repsauv+"/Jour"+str(x))
traitement(ent+nb1+'/morning-weather-forecast/'+nb2+"?day="+str(x), repsauv+"/Matin"+str(x))
traitement(ent+nb1+'/afternoon-weather-forecast/'+nb2+"?day="+str(x), repsauv+"/AM"+str(x))
traitement(ent+nb1+'/evening-weather-forecast/'+nb2+"?day="+str(x), repsauv+"/Soiree"+str(x))
traitement(ent+nb1+'/overnight-weather-forecast/'+nb2+"?day="+str(x), repsauv+"/Nuit"+str(x))
fin=time.time()
print("temps de mise a jour",fin-debut)
time.sleep(60*interval)
#### Lancement du script et initialisation de la tache de fond
nb1=re.findall('\d+', adressWeb)[0]
nb2=re.findall('\d+', adressWeb)[1]
ent=adressWeb[:adressWeb.find(nb1)]
fin=adressWeb.replace(ent+nb1, "")
fin=fin.replace(fin[:fin.find(nb2)]+nb2, "")
nb2=nb2+fin
demonise(ent, nb1, nb2, huitHeures, nbJour, interval)
Hors ligne
#1927 Le 06/02/2013, à 17:22
- jpdipsy
Re : [Conky] Alternative à weather.com (2)
@Didier
C'est bien la tendance a l'extrême droite sur la donnée Pression: 999.06 mbar ↑ c'est cool.
Le lua va être réduit apparemment.
Hors ligne
#1928 Le 06/02/2013, à 17:28
- Didier-T
Re : [Conky] Alternative à weather.com (2)
@Didier
C'est bien la tendance a l'extrême droite sur la donnée Pression: 999.06 mbar ↑ c'est cool.
Le lua va être réduit apparemment.
ce sont les infos brut du site et en effet la flèche indique la tendance, mais cette indication sera reprise autrement de manière a être utilisé par conky (je ne sais pas encore ce que je vais faire, certainement en toute lettre)
edit : normalement le meteo.lua devrait perdre dans les 400 lignes de codes
Dernière modification par Didier-T (Le 06/02/2013, à 17:30)
Hors ligne
#1929 Le 06/02/2013, à 18:16
- jpdipsy
Re : [Conky] Alternative à weather.com (2)
Tiens je me suis rajouté ceci
os.system('notify-send "Météo mise à jour"')
avant time.sleep(60*interval) comme çà j'ai un indicateur de changement
Hors ligne
#1930 Le 06/02/2013, à 18:33
- Didier-T
Re : [Conky] Alternative à weather.com (2)
Pourquoi pas, c'est une option intéressante.
Hors ligne
#1931 Le 06/02/2013, à 19:03
- ragamatrix
Re : [Conky] Alternative à weather.com (2)
euh une ferrari... ?
Bon ok je sors je laisse les experts...
ps/jpdipsy=ça=c'est#Palace#
Hors ligne
#1932 Le 06/02/2013, à 19:39
- ragamatrix
Re : [Conky] Alternative à weather.com (2)
pour la météo:
neige=tartiflette
bon ok je suis banni...
Dernière modification par ragamatrix (Le 06/02/2013, à 19:40)
Hors ligne
#1933 Le 07/02/2013, à 07:23
- Didier-T
Re : [Conky] Alternative à weather.com (2)
avec ce code on ouvre l'international
#! /usr/bin/python3
# -*- coding: utf-8 -*-
# Par Didier-T Forum Ubuntu.fr
import urllib.request, os, time, re, sys
from bs4 import BeautifulSoup
homedir = os.path.expanduser('~')
#### initialisation des variables
adressWeb="http://www.accuweather.com/fr/fr/argenteuil/133593/current-weather/133593"
repsauv= "~/essais"
huitHeures="oui"
nbJour=1
interval=30
notifi="oui"
for a in sys.argv:
if re.search("adressWeb=", a) is not None:
adressWeb=re.compile("adressWeb=(.*)").search(a).group(1)
if re.search("repsauv=", a) is not None:
repsauv=re.compile("repsauv=(.*)").search(a).group(1)
if re.search("huitHeures=", a) is not None:
huitHeures=re.compile("huitHeures=(.*)").search(a).group(1)
if re.search("nbJour=", a) is not None:
nbJour=re.compile("nbJour=(.*)").search(a).group(1)
if re.search("interval=", a) is not None:
interval=re.compile("interval=(.*)").search(a).group(1)
if re.search("notify=", a) is not None:
notifi=re.compile("notify=(.*)").search(a).group(1)
nbJour=int(nbJour)
interval=int(interval)
repsauv=repsauv.replace("~", homedir)
notifi=str.lower(notifi)
huitHeures=str.lower(huitHeures)
#### fin initialisation des variables
#### Fonction de traitement des fichiers
def traitement(adress, fichier):
url=urllib.request.Request(adress)
currentCond=urllib.request.urlopen(url)
soup = BeautifulSoup(currentCond)
currentCond.close()
# fiche = open(fichier, "w")
#pour debug
# fiche.write(soup.prettify())
#si autres que huit heures
table=soup.find_all('table')
if re.search("huitHeures", fichier) is None:
# recherche vent
current_balise=soup.find(id="details")
ventd=re.compile("var d = '(.*)';").search(str(current_balise)).group(1).replace("W", "O")
ventf=re.compile("var s = '(.*)';").search(str(current_balise)).group(1)
information="direction: "+ventd+"\n"
information=information+"vitesse: "+ventf+"\n"
#info dans l'image
inf=current_balise.select("[class~=info]")
icone=current_balise.select("[class~=icon]")
i=0
#recherche icone
for ic in icone:
i=i+1
information=information+"icone"+str(i)+": "+str(ic).replace('<div class="icon i-', '').replace('"></div>', '')+"\n"
i=0
#récupération date + historique
if re.search("Jour", fichier) is not None or re.search("CC", fichier) is not None:
histo=soup.find(id="feature-history")
#récupération date
date=histo.select("[class~=lt]")
for d in date:
jour=re.compile("^.* - (.*)/(.*)/(.*)").search(d.get_text())
information=information+"jour: "+jour.group(1)+"\n"
information=information+"mois: "+jour.group(2)+"\n"
information=information+"année: "+jour.group(3)+"\n"
#récupération historique
hi=histo.select("[class~=hi]")
for v in hi:
hivalue=v.get_text().split("\n")
information=information+"maxjour: "+hivalue[2]+"\n"
information=information+"maxnormal: "+hivalue[3]+"\n"
information=information+"maxrecord: "+hivalue[4]+"\n"
information=information+"max1ans: "+hivalue[5]+"\n"
lo=histo.select("[class~=last]")
for v in lo:
lovalue=v.get_text().split("\n")
information=information+"minjour: "+lovalue[2]+"\n"
information=information+"minnormal: "+lovalue[3]+"\n"
information=information+"minrecord: "+lovalue[4]+"\n"
information=information+"min1ans: "+lovalue[5]+"\n"
#info dans l'image
if re.search("Jour", fichier) is not None:
infs=inf[0].get_text().split("\n")
information=information+"Tempjour: "+re.findall('-?\d+', infs[0])[0]+"\n"
information=information+"RealFeeljour: "+re.findall('-?\d+', infs[1])[0]+"\n"
information=information+"Précipitationsjour: "+re.findall('-?\d+', infs[2])[0]+"\n"
infs=inf[1].get_text().split("\n")
information=information+"Tempnuit: "+re.findall('-?\d+', infs[0])[0]+"\n"
information=information+"RealFeelnuit: "+re.findall('-?\d+', infs[1])[0]+"\n"
information=information+"Précipitationsnuit: "+re.findall('-?\d+', infs[2])[0]+"\n"
p=current_balise.find_all('p')
i=0
x=0
for pv in p:
i=i+1
if i==5 or i==10:
x=x+1
information=information+"cond"+str(x)+": "+pv.get_text()+"\n"
#localisation si condition courante
if re.search("CC", fichier) is not None:
ville=soup.select("[class~=current-city]")[0].get_text().split(",")[0]
longi=re.compile("lon: '(.*)',").search(str(soup)).group(1)
lat=re.compile("lat: '(.*)',").search(str(soup)).group(1)
information=information+"ville: "+ville+"\n"
information=information+"lat: "+lat+"\n"
information=information+"long: "+longi+"\n"
#info dans l'image
inf=inf[0].get_text()
cond=inf[:inf.find(re.findall('\d+', inf)[0])]
inf=inf.replace(cond, "")
infs=inf.split(" ")
information=information+"cond:"+cond+"\n"
information=information+"Temp: "+infs[0]+"\n"
information=information+"RealFeel: "+infs[2]+"\n"
if re.search("Matin", fichier) is not None or re.search("AM", fichier) is not None or re.search("Soiree", fichier) is not None or re.search("Nuit", fichier) is not None:
infs=inf[0].get_text().split("\n")
information=information+"cond:"+infs[0]+"\n"
information=information+"max: "+infs[1]+"\n"
information=information+"min: "+infs[2].replace("Mn ", "")+"\n"
information=information+"RealFeelmax: "+re.findall('-?\d+', infs[5])[0]+"\n"
information=information+"RealFeelmin: "+re.findall('-?\d+', infs[5])[1]+"\n"
#info conditions générales
cc=current_balise.find_all('li')
i=0
for inf in cc:
inf=inf.get_text().replace(" ", "").replace("\n", "")
if re.search(":", inf) is not None:
i=i+1
if i <= 7:
inf=inf.replace(":", " jour:")
else:
inf=inf.replace(":", " nuit:")
information=information+inf+"\n"
else:
cc=current_balise.find_all('li')
for inf in cc:
inf=inf.get_text().replace(" ", "").replace("\n", "")
if re.search(":", inf) is not None:
information=information+inf+"\n"
else:
# fiche.write(table[0].prettify())
#recherche icones huit heures
icone=table[0].find_all('div')
i=0
information=""
for ic in icone:
i=i+1
ico="icone"+str(i)+": "+str(ic).replace('<div class="icon i-', '')
fin=re.compile('">(.*)div>').search(ico).group(1)
information=information+ico.replace('">'+fin+'div>', '')+"\n"
if i == 8:
break
#donée huit heures
tablevalue=table[0].get_text().split("\n")
i=0
for v in tablevalue:
i=i+1
#pour le débug
# fiche.write(str(i)+" "+v+"\n")
if i >= 18 and i <= 25:
x=x+1
information=information+"heure"+str(x)+": "+v+"\n"
elif i >= 57 and i <= 64:
x=x+1
information=information+"temp"+str(x)+": "+v+"\n"
elif i >= 68 and i <= 75:
x=x+1
information=information+"res"+str(x)+": "+v+"\n"
elif i >= 79 and i <= 86:
x=x+1
information=information+"humid"+str(x)+": "+v+"\n"
elif i >= 105 and i <= 112:
x=x+1
information=information+"probpluie"+str(x)+": "+v+"\n"
elif i >= 116 and i <= 123:
x=x+1
information=information+"probneige"+str(x)+": "+v+"\n"
elif i >= 127 and i <= 134:
x=x+1
information=information+"probverglas"+str(x)+": "+v+"\n"
elif i >= 153 and i <= 160:
x=x+1
information=information+"vent"+str(x)+": "+v+"\n"
elif i >= 164 and i <= 171:
x=x+1
information=information+"uv"+str(x)+": "+v+"\n"
elif i >= 175 and i <= 182:
x=x+1
information=information+"couvnuage"+str(x)+": "+v+"\n"
elif i >= 186 and i <= 193:
x=x+1
information=information+"rosée"+str(x)+": "+v+"\n"
else :
x=0
fiche = open(fichier, "w")
fiche.write(information)
fiche.close()
#### fin Fonction de traitement des fichiers
#### Mise en tache de fond
def demonise(ent, id1, id2, huitHeures, nbJour, interval):
while 1 :
debut=time.time()
traitement(ent+nb1+'/current-weather/'+nb2, repsauv+"/CC")
if huitHeures=="oui":
traitement(ent+nb1+'/hourly-weather-forecast/'+nb2, repsauv+"/huitHeures")
x=0
while x<nbJour:
x=x+1
traitement(ent+nb1+'/daily-weather-forecast/'+nb2+"?day="+str(x), repsauv+"/Jour"+str(x))
traitement(ent+nb1+'/morning-weather-forecast/'+nb2+"?day="+str(x), repsauv+"/Matin"+str(x))
traitement(ent+nb1+'/afternoon-weather-forecast/'+nb2+"?day="+str(x), repsauv+"/AM"+str(x))
traitement(ent+nb1+'/evening-weather-forecast/'+nb2+"?day="+str(x), repsauv+"/Soiree"+str(x))
traitement(ent+nb1+'/overnight-weather-forecast/'+nb2+"?day="+str(x), repsauv+"/Nuit"+str(x))
fin=time.time()
if notifi == "oui":
os.system('notify-send "Météo mise à jour"')
print("temps de mise a jour",fin-debut)
time.sleep(60*interval)
#### Lancement du script et initialisation de la tache de fond
nb1=re.findall('\d+', adressWeb)[0]
nb2=re.findall('\d+', adressWeb)[1]
ent=adressWeb[:adressWeb.find(nb1)]
fin=adressWeb.replace(ent+nb1, "")
fin=fin.replace(fin[:fin.find(nb2)]+nb2, "")
nb2=nb2+fin
demonise(ent, nb1, nb2, huitHeures, nbJour, interval)
Hors ligne
#1934 Le 07/02/2013, à 08:43
- jpdipsy
Re : [Conky] Alternative à weather.com (2)
avec ce code on ouvre l'international
Bin on y était pas déjà ? la Suisse ?
Hors ligne
#1935 Le 07/02/2013, à 08:46
- Didier-T
Re : [Conky] Alternative à weather.com (2)
Didier-T a écrit :avec ce code on ouvre l'international
Bin on y était pas déjà ? la Suisse ?
c'est pas faux, y avais même des canadiens.
donc je reformule, on s'ouvre aux non francophone, mais pour la doc faut pas trop en demander
Hors ligne
#1936 Le 07/02/2013, à 09:19
- RayBan10
Re : [Conky] Alternative à weather.com (2)
Bonjour,
Je me permet de vous solliciter une fois encore.
J'ai créer une fonction, dont le but est de fournir un "octet", que j'ai ajouté au script meteo.lua :
function conky_Meteo_Alerte(j)
local n = 0
if j == nil then
j = 1
end
if os.date("%H%M", os.time()) <= InfoJour[tonumber(j)].CoucherSoleilH..InfoJour[tonumber(j)].CoucherSoleilM and os.date("%H%M", os.time()) >= InfoJour[tonumber(j)].LeverSoleilH..InfoJour[tonumber(j)].LeverSoleilM
then
moment = "Jour"
moment1 = conditionJour[tonumber(j)].VentRafales
moment2 = conditionJour[tonumber(j)].QNeige
moment3 = conditionJour[tonumber(j)].EVerglas
moment4 = conditionJour[tonumber(j)].Uv
moment5 = conditionJour[tonumber(j)].NivPrec
moment6 = conditionJour[tonumber(j)].QPluie
else
moment = "Nuit"
moment1 = conditionNuit[tonumber(j)].VentRafales
moment2 = conditionNuit[tonumber(j)].QNeige
moment3 = conditionNuit[tonumber(j)].EVerglas
moment4 = conditionNuit[tonumber(j)].Uv
moment5 = conditionNuit[tonumber(j)].NivPrec
moment6 = conditionNuit[tonumber(j)].QPluie
end
print (moment)
if moment1 >= rafale
then n = n+1000000
end
if moment2 >= neige
then n = n+100000
end
if moment3 >= verglas
then n = n+10000
end
if moment4 >= uv
then n = n+1000
end
if moment5 >= preci
then n = n+100
end
if moment6 >= pluie
then n = n+10
end
if (conditioncourante.Visibilite) <= visibil
then n = n+1
end
print (moment1)
print (moment2)
print (moment3)
print (moment4)
print (moment5)
print (moment6)
print (Alerte.." Ok : "..n.." "..moment1.." "..rafale)
return n
end
Cette fonction me retourne toujours que la la vitesse des rafales du jour j (de nuit ou de journée) sont toujours supérieur à ma variable de comparaison (rafale).
De plus, cette valeur n'est pas identique au même code (conditionNuit[tonumber(j)].VentRafales) executé hors de ce script (sauf si je remplace j par 1).
Pour finir, cette fonction s'exécute en boucle sans tenir compte de la Variable délais. J'aimerais l'y incorporer.
Merci d'avance pour votre éclairage.
Hors ligne
#1937 Le 07/02/2013, à 10:08
- jpdipsy
Re : [Conky] Alternative à weather.com (2)
Bonjour,
Je me permet de vous solliciter une fois encore.
J'ai créer une fonction, dont le but est de fournir un "octet", que j'ai ajouté au script meteo.lua :
Merci d'avance pour votre éclairage.
Est-ce que ta variable rafale est bien initialisée ?
Je vois pas ou dans ton code
Hors ligne
#1938 Le 07/02/2013, à 11:15
- ragamatrix
Re : [Conky] Alternative à weather.com (2)
@jpdipsy
Bizarre quand je lance le conky sans faire appel à image-meteo.lua; et en ligne celui-ci m'affiche tout...?
Hors ligne
#1939 Le 07/02/2013, à 11:29
- RayBan10
Re : [Conky] Alternative à weather.com (2)
RayBan10 a écrit :Bonjour,
Je me permet de vous solliciter une fois encore.
J'ai créer une fonction, dont le but est de fournir un "octet", que j'ai ajouté au script meteo.lua :
Merci d'avance pour votre éclairage.Est-ce que ta variable rafale est bien initialisée ?
Je vois pas ou dans ton code
oui, j'utilise meto.cfg et je recupére mais variable de comparaison dans meteo.lua comme suit :
function conky_init(cfg)
local cmd1, pos1
local home = os.getenv("HOME")
cfg = string.gsub(cfg, "~", home)
cfg = string.gsub(cfg, "$HOME", home)
fichier_init = cfg
local file = assert(io.open(cfg, "rb") )
local line = file:read()
for line in file:lines() do
pos1 = string.find(line, '#')
if pos1 ~= nil then
line = string.sub(line, 1, pos1-1)
end
pos1 = string.find(line, '=')
if string.find(line, 'repsauv=') ~= nil then
repsauv = string.sub(line, pos1+1)
elseif string.find(line, 'TempShell=') ~= nil then
r = string.sub(line, pos1+1)
elseif string.find(line, 'web=') ~= nil then
cmd1 = string.sub(line, pos1+1)
elseif string.find(line, 'periode=') ~= nil then
jours = string.sub(line, pos1+1)
elseif string.find(line, 'matinée=') ~= nil then
matin = string.sub(line, pos1+1)
elseif string.find(line, 'am=') ~= nil then
apresmidi = string.sub(line, pos1+1)
elseif string.find(line, 'soiree=') ~= nil then
soiree = string.sub(line, pos1+1)
elseif string.find(line, 'nuit=') ~= nil then
nuit = string.sub(line, pos1+1)
elseif string.find(line, 'Prev8heures=') ~= nil then
huit = string.sub(line, pos1+1)
elseif string.find(line, 'Palier=') ~= nil then
Palier = tonumber(string.sub(line, pos1+1))
elseif string.find(line, 'update=') ~= nil then
delais = string.sub(line, pos1+1)
elseif string.find(line, 'lune=') ~= nil then
afflune = string.sub(line, pos1+1)
elseif string.find(line, 'rafale=') ~= nil then
rafale = string.sub(line, pos1+1)
elseif string.find(line, 'neige=') ~= nil then
neige = string.sub(line, pos1+1)
elseif string.find(line, 'verglas=') ~= nil then
verglas = string.sub(line, pos1+1)
elseif string.find(line, 'pluie=') ~= nil then
pluie = string.sub(line, pos1+1)
elseif string.find(line, 'visibilité=') ~= nil then
visibil = string.sub(line, pos1+1)
elseif string.find(line, 'uv=') ~= nil then
uv = string.sub(line, pos1+1)
elseif string.find(line, 'preci=') ~= nil then
preci = string.sub(line, pos1+1)
end
end
print(afflune)
print(rafale)
Après, je ne sais pas vraiment si ma variable rafale est une chaîne ou un chiffre, mais cela fonctionne correctement pour mes autres variables de comparaison (neige, verglas, pluie, visibilité, uv, preci)
Et je ne sais pas si ma variable moment1 ( = conditionNuit[tonumber(j)].VentRafales) est une chaîne ou un nombre, mais cela fonctionne pour les autres variables, de plus en ajoutant tonumber devant ma varible, ou devant la définition de ma variable
( = tonumber(conditionNuit[tonumber(j)]).VentRafales la fonction ne s'execute plus.
De plus, j'aimerai savoir si l'ordre dans lequel est défini nos fonction au sein du fichier lua ; peut avoir des consequences.
Merci à vous.
Dernière modification par RayBan10 (Le 07/02/2013, à 11:38)
Hors ligne
#1940 Le 07/02/2013, à 11:31
- jpdipsy
Re : [Conky] Alternative à weather.com (2)
@jpdipsy
Bizarre quand je lance le conky sans faire appel à image-meteo.lua; et en ligne celui-ci m'affiche tout...?
C....lle dans le potage c'est qu'il est obligatoirement lancé
tue tous tes conky
dans un terminal à la mano lance le conky qui ne fait pas appel à image.lua regarde les retours
(lui il est en mode ${lua Meteo_Maj})
dans un autre terminal lance celui qui fait appel a image.lua (lui est en mode ${lua Meteo_horsligne})
et regarde les retours
Hors ligne
#1941 Le 07/02/2013, à 11:37
- jpdipsy
Re : [Conky] Alternative à weather.com (2)
Bon comme je sent qu'il va falloir tester un tas de truc je "m'ai fait" un fichier de conf
meteo.py
adressWeb = 'http://www.accuweather.com/fr/fr/belfort/133341/weather-forecast/133341'
repsauv = '~/.tmp/accuw'
huitHeures = 'non'
nbJour = '5'
interval = '15'
notifi = 'oui'
et l'exemple de recmeteo.py
#! /usr/bin/python3
# -*- coding: utf-8 -*-
# Par Didier-T Forum Ubuntu.fr
import urllib.request, os, time, re, sys
configfile = '~/.config/meteo.py'
sys.path.append(os.path.dirname(os.path.expanduser(configfile)))
import meteo
from bs4 import BeautifulSoup
homedir = os.path.expanduser('~')
#### initialisation des variables
print("adresse",meteo.adressWeb)
print("rep sauve",meteo.repsauv)
print("8 heures",meteo.huitHeures)
print("nbjour",meteo.nbJour)
print("Interval",meteo.interval)
print("Notification",meteo.notifi)
edit : et pis je vois bien dans un future proche
recmeteo.py meteo-belfort
recmeteo.py meteo-miami
recmeteo.py meteo-merdelatranquilité
Dernière modification par jpdipsy (Le 07/02/2013, à 11:44)
Hors ligne
#1942 Le 07/02/2013, à 11:50
- ragamatrix
Re : [Conky] Alternative à weather.com (2)
ragamatrix a écrit :@jpdipsy
Bizarre quand je lance le conky sans faire appel à image-meteo.lua; et en ligne celui-ci m'affiche tout...?C....lle dans le potage c'est qu'il est obligatoirement lancé
tue tous tes conky
dans un terminal à la mano lance le conky qui ne fait pas appel à image.lua regarde les retours
(lui il est en mode ${lua Meteo_Maj})
dans un autre terminal lance celui qui fait appel a image.lua (lui est en mode ${lua Meteo_horsligne})
et regarde les retours
pas d'appel à image.lua (en ligne) :
┌─( climatix ) - ( 3.2.0-37-generic ) - ( ~ )
└─> conky -c ~/.conky/conky40/Meteo-Lua/scripts/conky_fond_ecran_t
Conky: forked to background, pid is 6873
┌─( climatix ) - ( 3.2.0-37-generic ) - ( ~ )
└─>
Conky: desktop window (ae) is root window
Conky: window type - override
Conky: drawing to created window (0x1e00001)
Conky: drawing to double buffer
version = v5
web = http://www.accuweather.com/fr/ch/horgen/316407/current-weather/316407
Pévision Nb jours = 11
Pévision Matin = oui
Pévision Après Midi = oui
Pévision Soirée = oui
Pévision Nuit = oui
Prévision sur 8 heures = oui
Délais = 900
Chemin de travail = /tmp
Palier = 10
Chemin de sauvegarde = /home/climatix/.conky/conky40/Meteo-Lua/sauvegardes/horgen
Condition courante Ok
Prévision 1 Ok
Prévision 2 Ok
Prévision 3 Ok
Prévision 4 Ok
Prévision 5 Ok
Prévision 6 Ok
Prévision 7 Ok
Prévision 8 Ok
Prévision 9 Ok
Prévision 10 Ok
Prévision 11 Ok
Matin 1 Ok
Matin 2 Ok
Matin 3 Ok
Matin 4 Ok
Matin 5 Ok
Matin 6 Ok
Matin 7 Ok
Matin 8 Ok
Matin 9 Ok
Matin 10 Ok
Matin 11 Ok
Apres Midi 1 Ok
Apres Midi 2 Ok
Apres Midi 3 Ok
Apres Midi 4 Ok
Apres Midi 5 Ok
Apres Midi 6 Ok
Apres Midi 7 Ok
Apres Midi 8 Ok
Apres Midi 9 Ok
Apres Midi 10 Ok
Apres Midi 11 Ok
Soiree 1 Ok
Soiree 2 Ok
Soiree 3 Ok
Soiree 4 Ok
Soiree 5 Ok
Soiree 6 Ok
Soiree 7 Ok
Soiree 8 Ok
Soiree 9 Ok
Soiree 10 Ok
Soiree 11 Ok
Nuit 1 Ok
Nuit 2 Ok
Nuit 3 Ok
Nuit 4 Ok
Nuit 5 Ok
Nuit 6 Ok
Nuit 7 Ok
Nuit 8 Ok
Nuit 9 Ok
Nuit 10 Ok
Nuit 11 Ok
Huit prochaines heures Ok
lunaison Ok
26 seconde(s)
l'autre avec image.lua (hors ligne):
┌─( climatix ) - ( 3.2.0-37-generic ) - ( ~ )
└─> conky -c ~/.conky/conky40/Meteo-Lua/scripts/conky_fond_ecran
Conky: forked to background, pid is 7184
┌─( climatix ) - ( 3.2.0-37-generic ) - ( ~ )
└─>
Conky: desktop window (ae) is root window
Conky: window type - override
Conky: drawing to created window (0x2c00001)
Conky: drawing to double buffer
version = v5
web = http://www.accuweather.com/fr/ch/horgen/316407/current-weather/316407
Pévision Nb jours = 11
Pévision Matin = oui
Pévision Après Midi = oui
Pévision Soirée = oui
Pévision Nuit = oui
Prévision sur 8 heures = oui
Délais = 900
Chemin de travail = /tmp
Palier = 10
Chemin de sauvegarde = /home/climatix/.conky/conky40/Meteo-Lua/sauvegardes/horgen
Pas d'erreurs mais rien ne s'affiche à l'écran.
Hors ligne
#1943 Le 07/02/2013, à 12:29
- jpdipsy
Re : [Conky] Alternative à weather.com (2)
Pas d'erreurs mais rien ne s'affiche à l'écran.
images_meteo.lua ne se lance pas vérifie que tu n'ai pas un espace en trop dans ton conky ou ce que tu crois être un espace
Hors ligne
#1944 Le 07/02/2013, à 12:54
- Didier-T
Re : [Conky] Alternative à weather.com (2)
@RayBan10,
Pour des comparaison numérique il te faut des nombres.
Dans le doute utilise tonumber().
Je ne peut malheureusement pas t'aider plus pour le moment.
Hors ligne
#1945 Le 07/02/2013, à 13:13
- ragamatrix
Re : [Conky] Alternative à weather.com (2)
ragamatrix a écrit :Pas d'erreurs mais rien ne s'affiche à l'écran.
images_meteo.lua ne se lance pas vérifie que tu n'ai pas un espace en trop dans ton conky ou ce que tu crois être un espace
J'ai enlevé les sois-disants espaces.
ça ne change rien...
Hors ligne
#1946 Le 07/02/2013, à 14:33
- daniel38100
Re : [Conky] Alternative à weather.com (2)
daniel38100 a écrit :petit tableau de prévision complète que j'me suis amusé a faire au boulot
http://pix.toile-libre.org/upload/img/1359993395.pngBon travail !!
J'ai un truc bizarre avec le calendrier.Il affiche deux fois la date (lu 04): ?
http://pix.toile-libre.org/upload/origi … 997045.png
wai je sais ca étai vite regler
Hors ligne
#1947 Le 07/02/2013, à 16:47
- ragamatrix
Re : [Conky] Alternative à weather.com (2)
ragamatrix a écrit :daniel38100 a écrit :petit tableau de prévision complète que j'me suis amusé a faire au boulot
http://pix.toile-libre.org/upload/img/1359993395.pngBon travail !!
J'ai un truc bizarre avec le calendrier.Il affiche deux fois la date (lu 04): ?
http://pix.toile-libre.org/upload/origi … 997045.pngwai je sais ca étai vite regler
Bon ok...
j'ai modifié comme ça mais je ne sais pas si c'est ce qu'il fallait faire ?
for (( x=0 ; x<58 ; x++ ));do
avant x<63
Hors ligne
#1948 Le 07/02/2013, à 17:45
- ragamatrix
Re : [Conky] Alternative à weather.com (2)
j'ai essayé de faire un peu de rangement... c'est quand-même chargé...
file_dans_ta_chambre
Hors ligne
#1949 Le 07/02/2013, à 18:08
- RayBan10
Re : [Conky] Alternative à weather.com (2)
@RayBan10,
Pour des comparaison numérique il te faut des nombres.
Dans le doute utilise tonumber().Je ne peut malheureusement pas t'aider plus pour le moment.
Oui, j'ai deja essayé toutes les possibilités, ca ne fonctionne pas pour autant.
Par grave, merci quand même à vous tous.
Et bon courage pour votre amélioration.
Hors ligne
#1950 Le 07/02/2013, à 18:40
- jpdipsy
Re : [Conky] Alternative à weather.com (2)
Ne sentez vous pas poindre cette subtil ,discrète et ineluctable odeur de renouveau ? ah c'est bon !!
Ah que c'est bon
Hors ligne