Contenu | Rechercher | Menus

Annonce

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

À propos de l'équipe du forum.

#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.   smile
Le lua va être réduit apparemment.

Hors ligne

#1928 Le 06/02/2013, à 17:28

Didier-T

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

jpdipsy a écrit :

@Didier

C'est bien la tendance a l'extrême droite sur la donnée Pression: 999.06 mbar ↑ c'est cool.   smile
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# wink

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)

Didier-T a écrit :

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)

jpdipsy a écrit :
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 big_smile

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)

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

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)

jpdipsy a écrit :
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)

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

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)

jpdipsy a écrit :
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)

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

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)

jpdipsy a écrit :
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)

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.png

Bon travail !! wink
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)

daniel38100 a écrit :
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.png

Bon travail !! wink
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

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)

Didier-T a écrit :

@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