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.

#2226 Le 22/02/2013, à 16:28

Phyllinux

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

Didier-T a écrit :

Je me demande si je vais pas virer la notification, trop de soucis, pour un intérêt limité (enfin a mon gout)

Je ne contredirai pas sur ce point big_smile


The ship is sinking normally...

Hors ligne

#2227 Le 22/02/2013, à 16:30

Ehcor8

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

Bonjour,    Encore un grand merci à tous pour votre travail. Tout fonctionne à merveille (Ubuntu 12.10 avec Caïro dock) avec recmeteo.py 1.12 et toutes les amélios que vous y apportez. J'essaie d'y apporter une petite modification de fond de base en y mettant l'image temps réel de radar-gost en .gif à partir du script "meteo" pour lui dire de prendre en "fond base" cette image radar-ghost actualisée en me temps que "macomposition.sh" mais ce n'est pas évident car je ne sais pas programmer mais j'apprends qques notions avec vous.

Lien vers image de mon bureau :
https://www.dropbox.com/s/pm9q96qj8427d … 6%3A30.png

Hors ligne

#2228 Le 22/02/2013, à 17:08

Phyllinux

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

@ jpdipsy :
Je pense que pour refaire tous mes modules, cela va m'occuper pendant de nombreuses heures durant les semaines à venir !
Je découvre de nouvelles embûches à chaque module!
Pb actuel : Sur la lune. Tu fais appel à l'affichage de l'éphémeride (Gibbeuse ascendante, pleine lune, premier quartier, etc...)
Pour cela, tu extrais la ligne qui y correspond dans le fichier lune.txt
Moi je veux faire apparaître le % de lune visible. Et le problème, c'est que dans ce fichier lune.txt, les caractères accentués ne sont pas gérés, et le é est extrait en 'é'. Et du coup, à l'affichage, au lieu de Visibilité:, je vois écrit Visibilit´: C'est pas terrible... Mais en revanche, je ne sais pas comment récupérer les caractères accentués.
C'est tout ..... pour le moment, et il me reste encore au moins 10 modules à refaire !


The ship is sinking normally...

Hors ligne

#2229 Le 22/02/2013, à 17:21

jpdipsy

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

Bon j'ai mis à jour.

Ne concerne que start-recmeteo et meteo
maintenant vous pouvez tuer et rafraichir  sans prob explication dans entête de start-recmeteo

@Didier t'as raison
@Phyllinux t'as raison
@Carpediem bravo
@Ehcor bravo
@Ragamatrix bisou

Merci salut bon W.E .................  lol
@Phyllinux pour le moment tout est dans météo pour les modules "pré-machés" c'est mon choix et pis c'est tout (bien sur que ce sera paramétrable)
Pour xplanetFX normalement ça fonctionne tu reste comme tu étais hier.Attention le passage entre les deux fonds va être un peu long (pour le moment) je verrai ça cette semaine là il faut vraiment que je finisse le principal avec une doc .

A+

Hors ligne

#2230 Le 22/02/2013, à 17:45

Phyllinux

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

J'ai écrasé le start-recmeteo.sh par le nouveau et ..... il ne se passe plus rien ! Plus aucun lancement.
Je craque mad

phyllinux@Ubuntu-Unity:~$ cd Accuweather
phyllinux@Ubuntu-Unity:~/Accuweather$ dir
configs  fonds	 icones       scripts		 start-recmeteo.sh~
docs	 fontes  sauvegardes  start-recmeteo.sh  verif_dépendances.sh
phyllinux@Ubuntu-Unity:~/Accuweather$ sh start-recmeteo.sh
start-recmeteo.sh: 44: start-recmeteo.sh: source: not found
Traceback (most recent call last):
  File "/home/phyllinux/Accuweather/scripts/recmeteo.py", line 60, in <module>
    nbJour=int(nbJour)
ValueError: invalid literal for int() with base 10: ''
phyllinux@Ubuntu-Unity:~/Accuweather$ 

Dernière modification par Phyllinux (Le 22/02/2013, à 18:06)


The ship is sinking normally...

Hors ligne

#2231 Le 22/02/2013, à 18:41

razorback1010

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

Phyllinux a écrit :

J'ai écrasé le start-recmeteo.sh par le nouveau et ..... il ne se passe plus rien ! Plus aucun lancement.
Je craque mad

phyllinux@Ubuntu-Unity:~$ cd Accuweather
phyllinux@Ubuntu-Unity:~/Accuweather$ dir
configs  fonds	 icones       scripts		 start-recmeteo.sh~
docs	 fontes  sauvegardes  start-recmeteo.sh  verif_dépendances.sh
phyllinux@Ubuntu-Unity:~/Accuweather$ sh start-recmeteo.sh
start-recmeteo.sh: 44: start-recmeteo.sh: source: not found
Traceback (most recent call last):
  File "/home/phyllinux/Accuweather/scripts/recmeteo.py", line 60, in <module>
    nbJour=int(nbJour)
ValueError: invalid literal for int() with base 10: ''
phyllinux@Ubuntu-Unity:~/Accuweather$ 

Bonsoir,

christophe@christophe-desktop:~$ cd Accuweather
christophe@christophe-desktop:~/Accuweather$ sh start-recmeteo.sh
start-recmeteo.sh: 44: start-recmeteo.sh: source: not found
Traceback (most recent call last):
  File "/home/christophe/Accuweather/scripts/recmeteo.py", line 60, in <module>
    nbJour=int(nbJour)
ValueError: invalid literal for int() with base 10: ''
christophe@christophe-desktop:~/Accuweather$ 

Comme on peut le constater, exactement le même message d'erreur, à la virgule près...

Hors ligne

#2232 Le 22/02/2013, à 19:11

maan

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

bonsoir à tous,

Bon mon conky affiche tous mais ne se met pas à jour ...... j'ai l'impression que recmeteo ne se lance pas !!!

┌─( maan ) - ( 3.2.0-38-generic ) - ( ~/.conky/conky23 )
└─> 
Conky: desktop window (1400003) is subwindow of root window (158)
Conky: window type - desktop
Conky: drawing to created window (0x3400001)
Conky: drawing to double buffer
Conky: llua_do_call: function conky_init execution failed: /home/maan/.conky/conky23/conky/script/meteo2.lua:310: attempt to concatenate global 'nbFoisHuit' (a nil value)
Condition courante Ok
Prévision 1 Ok
Matin 1 Ok
Apres Midi 1 Ok
Soiree 1 Ok
Nuit 1 Ok
Prévision 2 Ok
Matin 2 Ok
Apres Midi 2 Ok
Soiree 2 Ok
Nuit 2 Ok
Prévision 3 Ok
Matin 3 Ok
Apres Midi 3 Ok
Soiree 3 Ok
Nuit 3 Ok
Prévision 4 Ok
Matin 4 Ok
Apres Midi 4 Ok
Soiree 4 Ok
Nuit 4 Ok
Prévision 5 Ok
Matin 5 Ok
Apres Midi 5 Ok
Soiree 5 Ok
Nuit 5 Ok
lunaison Ok
Conky: llua_do_call: function conky_Meteo_enligne execution failed: /home/maan/.conky/conky23/conky/script/meteo2.lua:1612: attempt to concatenate upvalue 'Rep' (a nil value)

Et après ça reste ainsi, j'ai laisser ainsi près d'une heure , mais aucun miracle ne c'est produit ....

Dernière modification par maan (Le 22/02/2013, à 19:12)


Ubuntu_studio 14.04

Hors ligne

#2233 Le 22/02/2013, à 19:16

Didier-T

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

maan a écrit :

bonsoir à tous,

Bon mon conky affiche tous mais ne se met pas à jour ...... j'ai l'impression que recmeteo ne se lance pas !!!

┌─( maan ) - ( 3.2.0-38-generic ) - ( ~/.conky/conky23 )
└─> 
Conky: desktop window (1400003) is subwindow of root window (158)
Conky: window type - desktop
Conky: drawing to created window (0x3400001)
Conky: drawing to double buffer
Conky: llua_do_call: function conky_init execution failed: /home/maan/.conky/conky23/conky/script/meteo2.lua:310: attempt to concatenate global 'nbFoisHuit' (a nil value)
Condition courante Ok
Prévision 1 Ok
Matin 1 Ok
Apres Midi 1 Ok
Soiree 1 Ok
Nuit 1 Ok
Prévision 2 Ok
Matin 2 Ok
Apres Midi 2 Ok
Soiree 2 Ok
Nuit 2 Ok
Prévision 3 Ok
Matin 3 Ok
Apres Midi 3 Ok
Soiree 3 Ok
Nuit 3 Ok
Prévision 4 Ok
Matin 4 Ok
Apres Midi 4 Ok
Soiree 4 Ok
Nuit 4 Ok
Prévision 5 Ok
Matin 5 Ok
Apres Midi 5 Ok
Soiree 5 Ok
Nuit 5 Ok
lunaison Ok
Conky: llua_do_call: function conky_Meteo_enligne execution failed: /home/maan/.conky/conky23/conky/script/meteo2.lua:1612: attempt to concatenate upvalue 'Rep' (a nil value)

Et après ça reste ainsi, j'ai laisser ainsi près d'une heure , mais aucun miracle ne c'est produit ....

tu n'as pas mis a jour ton meteo.cfg avec le reste, il manque nbFoisHuit

Hors ligne

#2234 Le 22/02/2013, à 19:23

maan

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

purée pourtant j'avais regarder si rien n'avais changer avec la nouvelle version mad:mad:

Je suis .........

Merci Didier


Ubuntu_studio 14.04

Hors ligne

#2235 Le 22/02/2013, à 19:27

Didier-T

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

Phyllinux a écrit :

J'ai écrasé le start-recmeteo.sh par le nouveau et ..... il ne se passe plus rien ! Plus aucun lancement.
Je craque mad

phyllinux@Ubuntu-Unity:~$ cd Accuweather
phyllinux@Ubuntu-Unity:~/Accuweather$ dir
configs  fonds	 icones       scripts		 start-recmeteo.sh~
docs	 fontes  sauvegardes  start-recmeteo.sh  verif_dépendances.sh
phyllinux@Ubuntu-Unity:~/Accuweather$ sh start-recmeteo.sh
start-recmeteo.sh: 44: start-recmeteo.sh: source: not found
Traceback (most recent call last):
  File "/home/phyllinux/Accuweather/scripts/recmeteo.py", line 60, in <module>
    nbJour=int(nbJour)
ValueError: invalid literal for int() with base 10: ''
phyllinux@Ubuntu-Unity:~/Accuweather$ 

aller un peut de débogage, on vas ajouter deux lignes autour de la ligne 44

echo $meteo_rep/configs/$meteo_config
source $meteo_rep/configs/$meteo_config
echo $nbJour

Dernière modification par Didier-T (Le 22/02/2013, à 19:33)

Hors ligne

#2236 Le 22/02/2013, à 19:48

jpdipsy

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

razorback1010 a écrit :

J'ai écrasé le start-recmeteo.sh par le nouveau et ..... il ne se passe plus rien ! Plus aucun lancement.

Comme on peut le constater, exactement le même message d'erreur, à la virgule près...

Parce que vous êtes jumeaux et que vous faîtes la même erreur.
Maxime "Point de sh tu utiliseras et meilleurs ce sera!" : ou alors sh -c "lefichier.bash"
Pourquoi on se décarcasse j'vous jure
re bon we

Hors ligne

#2237 Le 22/02/2013, à 19:59

Phyllinux

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

Comme quoi nous avons la même approche du pb.
Mais je ne vois toujours pas comment lancer recmeteo sans faire appel à un exécutable...


The ship is sinking normally...

Hors ligne

#2238 Le 22/02/2013, à 20:10

jpdipsy

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

Phyllinux a écrit :

Comme quoi nous avons la même approche du pb.
Mais je ne vois toujours pas comment lancer recmeteo sans faire appel à un exécutable...

Il est executable  "/home/tonrep/Accuweather/start-recmeteo.sh"

Hors ligne

#2239 Le 22/02/2013, à 20:14

Phyllinux

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

jpdipsy a écrit :
Phyllinux a écrit :

Comme quoi nous avons la même approche du pb.
Mais je ne vois toujours pas comment lancer recmeteo sans faire appel à un exécutable...

Il est executable  "/home/tonrep/Accuweather/start-recmeteo.sh"

Et cela me renvoie : start-recmeto.sh: not found


The ship is sinking normally...

Hors ligne

#2240 Le 22/02/2013, à 20:49

Didier-T

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

essaye sa

./start-recmeteo.sh

attention le . est important (bien sure il faut être dans le bon répertoire)

Hors ligne

#2241 Le 22/02/2013, à 20:56

jpdipsy

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

Phyllinux a écrit :
jpdipsy a écrit :
Phyllinux a écrit :

Comme quoi nous avons la même approche du pb.
Mais je ne vois toujours pas comment lancer recmeteo sans faire appel à un exécutable...

Il est executable  "/home/tonrep/Accuweather/start-recmeteo.sh"

Et cela me renvoie : start-recmeto.sh: not found

Soit il s'est fait la malle soit il est plus executable

dans le rep
ls -l start-recmeteo.sh -----> -rw-rw-r-- 1 pas good
chmod +x start-recmeteo.sh
ls -l start-recmeteo.sh -------> -rwxrwxr-x 1 hummmmmmmm
réessayer
et si tu clic dessus puis
ps ux | grep [r]ecmeteo  le résultat

sinon je vois pas

PS ce fichier peut être mis n'importe ou ce qui est important c'est
rep_base=~/Accuweather      #           le rep ou se trouvent les fichiers
config=defaut.cfg           #           le fichier de cfg par défaut
dans le fichier

Dernière modification par jpdipsy (Le 22/02/2013, à 20:58)

Hors ligne

#2242 Le 23/02/2013, à 06:37

razorback1010

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

Bon, ce matin, c'est pas mieux qu'hier :

christophe@christophe-desktop:~/Accuweather$ ./start-recmeteo.sh
/home/christophe/Accuweather/configs/defaut.cfg
6
Traceback (most recent call last):
  File "/home/christophe/Accuweather/scripts/recmeteo.py", line 65, in <module>
    nbFoisHuit=int(nbFoisHuit)
ValueError: invalid literal for int() with base 10: ''
christophe@christophe-desktop:~/Accuweather$

Dans l'initialisation des variables, j'ai bien nbFoisHuit=1, donc pas logique le retour avec la chaîne vide [with base 10: ''], non?
Dans ma folie, je bloque la ligne 65 avec un #, je relance, et voilà le résultat :

christophe@christophe-desktop:~/Accuweather$ ./start-recmeteo.sh
/home/christophe/Accuweather/configs/defaut.cfg
6
Traceback (most recent call last):
  File "/home/christophe/Accuweather/scripts/recmeteo.py", line 316, in <module>
    import notify2
ImportError: No module named notify2
christophe@christophe-desktop:~/Accuweather$

Ça marchait si bien hier....

Hors ligne

#2243 Le 23/02/2013, à 08:10

Didier-T

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

Il te manque notify2.
python3-notify2

Hors ligne

#2244 Le 23/02/2013, à 08:54

razorback1010

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

Didier-T a écrit :

Il te manque notify2.
python3-notify2

Effectivement, j'avais python-notify2 installé, pas python 3. Maintenant, le script se déroule bien jusqu'à l'appel de nbFoisHuit, comme j'ai bloqué l'instruction ligne 65 par un #, c'est normal :

christophe@christophe-desktop:~/Accuweather$ ./start-recmeteo.sh
/home/christophe/Accuweather/configs/defaut.cfg
6
Version = 1.12
Traceback (most recent call last):
  File "/home/christophe/Accuweather/scripts/recmeteo.py", line 329, in <module>
    demonise(ent, nb1, nb2, huitHeures, nbJour, interval)
  File "/home/christophe/Accuweather/scripts/recmeteo.py", line 272, in demonise
    while x<nbFoisHuit:
TypeError: unorderable types: int() < str()
christophe@christophe-desktop:~/Accuweather$ 

ne reste plus qu'à trouver pourquoi nbJour fonctionne et nbFoisHuit pas...

Hors ligne

#2245 Le 23/02/2013, à 09:39

Didier-T

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

remplace ton recmeteo.py
par ceci, je crois avoir trouvé d’où proviens le problème

#! /usr/bin/python3
# -*- coding: utf-8 -*-
# Par Didier-T Forum Ubuntu.fr
# Ajout notification par jpdipsy Forum Ubuntu.fr
# Ajout notification via DBus par ti_tux Forum Ubuntu.fr
# Ajout création repsauv si inexistant par jpdipsy Forum Ubuntu.fr

from urllib.request import Request, urlopen
from os import path, makedirs, system
from time import time, sleep, strftime, localtime
from re import search, compile, findall
from sys import argv
from gc import collect
from bs4 import BeautifulSoup

Version='1.13'

homedir = path.expanduser('~')

#### initialisation des variables
adressWeb="http://www.accuweather.com/fr/fr/argenteuil/133593/current-weather/133593"
repsauv= "~/essais"
huitHeures="oui"
nbFoisHuit=1
matin="oui"
apresmidi="oui"
soiree="oui"
nuit="oui"
nbJour=1
interval=30
notifi="oui"
externe = None

for a in argv:
    if search("adressWeb=", a) is not None:
        adressWeb=compile("adressWeb=(.*)").search(a).group(1)
    if search("repsauv=", a) is not None:
        repsauv=compile("repsauv=(.*)").search(a).group(1)
    if search("huitHeures=", a) is not None:
        huitHeures=compile("huitHeures=(.*)").search(a).group(1)
    if search("nbJour=", a) is not None:
        nbJour=compile("nbJour=(.*)").search(a).group(1)
    if search("interval=", a) is not None:
        interval=compile("interval=(.*)").search(a).group(1)
    if search("notify=", a) is not None:
        notifi=compile("notify=(.*)").search(a).group(1)
    if search("matin=", a) is not None:
        matin=compile("matin=(.*)").search(a).group(1)
    if search("apresmidi=", a) is not None:
        apresmidi=compile("apresmidi=(.*)").search(a).group(1)
    if search("soiree=", a) is not None:
        soiree=compile("soiree=(.*)").search(a).group(1)
    if search("nuit=", a) is not None:
        nuit=compile("nuit=(.*)").search(a).group(1)
    if search("externe=", a) is not None:
        externe=compile("externe=(.*)").search(a).group(1)
    if search("nbFoisHuit=", a) is not None:
        nbFoisHuit=compile("nbFoisHuit=(.*)").search(a).group(1)

nbJour=int(nbJour)
interval=int(interval)
repsauv=repsauv.replace("~", homedir)
notifi=str.lower(notifi)
huitHeures=str.lower(huitHeures)
nbFoisHuit=int(nbFoisHuit)

#### fin initialisation des variables

#### Fonction de traitement des fichiers
def traitement(adress, fichier):
#    fiche = open(fichier, "w")
    #pour debug
    current_balise=None
    x=1
    while current_balise is None:
        url=Request(adress)
        currentCond=urlopen(url)
        soup = BeautifulSoup(currentCond)
        currentCond.close()
        #si autres que huit heures
        table=soup.find_all('table')
        current_balise=soup.find(id="details")
        if current_balise is None:
            sleep(1)
            x=x+1
            print("problème de récupération de donées\n essais n°"+str(x)+"\npage : "+adress)
#    print(current_balise.prettify()+"\n")
    information="\n"
    if search("huitHeures", fichier) is None:
        # recherche vent
        divs=current_balise.select("[class~=wind-box-lg]")
        if len(divs) == 0:
            divs=current_balise.select("[class~=wind-box-sm]")
        i=0
        for div in divs:
            i=i+1
            ventd=compile("var d = '(.*)';").search(str(div)).group(1).replace("W", "O")
            ventf=compile("var s = '(.*)';").search(str(div)).group(1)
            information=information+"direction"+str(i)+": "+ventd+"\n"
            information=information+"vitesse"+str(i)+": "+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 search("Jour", fichier) is not None or 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=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 search("Jour", fichier) is not None:
                infs=inf[0].get_text().split("\n")
                information=information+"Tempjour: "+findall('-?\d+', infs[0])[0]+"\n"
                information=information+"RealFeeljour: "+findall('-?\d+', infs[1])[0]+"\n"
                information=information+"Précipitationsjour: "+findall('-?\d+', infs[2])[0]+"\n"
                infs=inf[1].get_text().split("\n")
                information=information+"Tempnuit: "+findall('-?\d+', infs[0])[0]+"\n"
                information=information+"RealFeelnuit: "+findall('-?\d+', infs[1])[0]+"\n"
                information=information+"Précipitationsnuit: "+findall('-?\d+', infs[2])[0]+"\n"
                lever_coucher=soup.select("[class~=time-period]")
                i=0
                for p in lever_coucher:
                    spans=p.find_all('span')
                    i=i+1
                    x=0
                    for span in spans:
                        span=span.get_text()
                        if len(findall('\d+', span)) > 0:
                            x=x+1
                            if i == 1:
                                span_nom="Soleil "
                            else:
                                span_nom="Lune "
                            if x == 1:
                                information=information+span_nom+"lever: "+span+"\n"
                            elif x == 2:
                                information=information+span_nom+"durée: "+span+"\n"
                            else :
                                information=information+span_nom+"coucher: "+span+"\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 search("CC", fichier) is not None:
            ville=soup.select("[class~=current-city]")[0].get_text().split(",")[0]
            longi=compile("lon: '(.*)',").search(str(soup)).group(1)
            lat=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(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 search("Matin", fichier) is not None or search("AM", fichier) is not None or search("Soiree", fichier) is not None or 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: "+findall('-?\d+', infs[5])[0]+"\n"
            information=information+"RealFeelmin: "+findall('-?\d+', infs[5])[1]+"\n"
            
            #info conditions générales
            cc=current_balise.find_all('li')
            for inf in cc:
                inf=inf.get_text()
                inf=inf.replace(compile('^ *').search(inf).group(0), "").replace("\n", "")
                if search(":", inf) is not None:
                    information=information+inf+"\n"
        elif search("Jour", fichier) is not None:
            i=0
            cc=current_balise.find_all('li')
            for inf in cc:
                inf=inf.get_text()
                inf=inf.replace("                                ", "").replace("\n", "").replace(" \r", "")
                if 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()
                inf=inf.replace(compile('^ *').search(inf).group(0), "").replace("\n", "")
                if search(":", inf) is not None:
                    information=information+inf+"\n"
            information=information+str(int(time()))+"\n"
    else:
        #recherche icones huit heures
        rows = table[0].findAll('tr')
        x=0
        for tr in rows:
            cols = tr.findAll('td')
            texte_tr=tr.text.split("\n")[1].replace("\n", "")
            i=0
            for td in cols:
                i=i+1
#                td=td.replace("&nbsp;", "")
                texte_bu = td.text.replace("\n", "").replace(chr(160), "")
                if texte_bu != "" :
                    if texte_tr == " " and x < len(cols):
                        information=information+"Heure"+str(i)+": "+texte_bu+"\n"
                        x=x+1
                    elif texte_tr != " ":
                        information=information+texte_tr+str(i)+": "+texte_bu+"\n"
        icone=table[0].find_all('div')
        i=0
        for ic in icone:
            i=i+1
            ico="icone"+str(i)+": "+str(ic).replace('<div class="icon i-', '')
            fin=compile('">(.*)div>').search(ico).group(1)
            information=information+ico.replace('">'+fin+'div>', '')+"\n"
            if i == 8:
                break
    fiche = open(fichier, "w")
#    fiche.write(current_balise.prettify())
    fiche.write(information)
    fiche.close()
    collect()
#### fin Fonction de traitement des fichiers

#### Mise en tache de fond
def demonise(ent, id1, id2, huitHeures, nbJour, interval, nbFoisHuit):
    dem=time()-(60*60)
    misajour=1
    while 1 :
        heure=time()
        if huitHeures=="oui":
            x=0
            while x<nbFoisHuit:
                h=(x*8)+int(strftime('%H', localtime()))
                x=x+1
                traitement(ent+nb1+'/hourly-weather-forecast/'+nb2+'?hour='+str(h), repsauv+"/huitHeures"+str(x))
                print("huitHeures "+str(x)+" Ok")
        if time()-dem >= 60*60:
            x=0
            while x<nbJour:
                x=x+1
                traitement(ent+nb1+'/daily-weather-forecast/'+nb2+"?day="+str(x), repsauv+"/Jour"+str(x))
                print("Jour "+str(x)+" Ok")
                if matin=="oui":
                    traitement(ent+nb1+'/morning-weather-forecast/'+nb2+"?day="+str(x), repsauv+"/Matin"+str(x))
                    print("Matin "+str(x)+" Ok")
                if apresmidi=="oui":
                    traitement(ent+nb1+'/afternoon-weather-forecast/'+nb2+"?day="+str(x), repsauv+"/AM"+str(x))
                    print("AM "+str(x)+" Ok")
                if soiree=="oui":
                    traitement(ent+nb1+'/evening-weather-forecast/'+nb2+"?day="+str(x), repsauv+"/Soiree"+str(x))
                    print("Soiree "+str(x)+" Ok")
                if nuit=="oui":
                    traitement(ent+nb1+'/overnight-weather-forecast/'+nb2+"?day="+str(x), repsauv+"/Nuit"+str(x))
                    print("Nuit "+str(x)+" Ok")
        traitement(ent+nb1+'/current-weather/'+nb2, repsauv+"/CC")
        print("CC Ok")
        if externe is not None:
                 system(externe)
        fin=time()
        duree=fin-heure
        if notifi == "oui":
            if time()-dem >= 60*60:
                dem=time()
                mess=notify2.Notification('Recmeteo.py  v'+Version, 'Météo : mise à jour complète terminée\n en '+str(round(duree,2))+' secondes', 'dialog-information')
            else:
                mess=notify2.Notification('Recmeteo.py  v'+Version, 'Météo : mise à jour partielle terminée\n en '+str(round(duree,2))+' secondes', 'dialog-information')
            mess.show()
        start=heure
        pause=60*interval-int(duree)
        print("mise a jour en : "+str(duree))
        collect()
        sleep(pause)

### Initialiation de DBus pour les notifications
if notifi == "oui":
    import notify2
    notify2.init('Recmeteo.py')
### Vérification répertoire
if not path.exists(repsauv):
    makedirs(repsauv)
#### Lancement du script et initialisation de la tache de fond
nb1=findall('\d+', adressWeb)[0]
nb2=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
print("Version =", Version)
demonise(ent, nb1, nb2, huitHeures, nbJour, interval, nbFoisHuit)

Hors ligne

#2246 Le 23/02/2013, à 10:08

razorback1010

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

Didier-T a écrit :

remplace ton recmeteo.py
par ceci, je crois avoir trouvé d’où proviens le problème

#! /usr/bin/python3
# -*- coding: utf-8 -*-
# Par Didier-T Forum Ubuntu.fr
# Ajout notification par jpdipsy Forum Ubuntu.fr
# Ajout notification via DBus par ti_tux Forum Ubuntu.fr
# Ajout création repsauv si inexistant par jpdipsy Forum Ubuntu.fr

from urllib.request import Request, urlopen
from os import path, makedirs, system
from time import time, sleep, strftime, localtime
from re import search, compile, findall
from sys import argv
from gc import collect
from bs4 import BeautifulSoup

Version='1.13'

homedir = path.expanduser('~')

#### initialisation des variables
adressWeb="http://www.accuweather.com/fr/fr/argenteuil/133593/current-weather/133593"
repsauv= "~/essais"
huitHeures="oui"
nbFoisHuit=1
matin="oui"
apresmidi="oui"
soiree="oui"
nuit="oui"
nbJour=1
interval=30
notifi="oui"
externe = None

for a in argv:
    if search("adressWeb=", a) is not None:
        adressWeb=compile("adressWeb=(.*)").search(a).group(1)
    if search("repsauv=", a) is not None:
        repsauv=compile("repsauv=(.*)").search(a).group(1)
    if search("huitHeures=", a) is not None:
        huitHeures=compile("huitHeures=(.*)").search(a).group(1)
    if search("nbJour=", a) is not None:
        nbJour=compile("nbJour=(.*)").search(a).group(1)
    if search("interval=", a) is not None:
        interval=compile("interval=(.*)").search(a).group(1)
    if search("notify=", a) is not None:
        notifi=compile("notify=(.*)").search(a).group(1)
    if search("matin=", a) is not None:
        matin=compile("matin=(.*)").search(a).group(1)
    if search("apresmidi=", a) is not None:
        apresmidi=compile("apresmidi=(.*)").search(a).group(1)
    if search("soiree=", a) is not None:
        soiree=compile("soiree=(.*)").search(a).group(1)
    if search("nuit=", a) is not None:
        nuit=compile("nuit=(.*)").search(a).group(1)
    if search("externe=", a) is not None:
        externe=compile("externe=(.*)").search(a).group(1)
    if search("nbFoisHuit=", a) is not None:
        nbFoisHuit=compile("nbFoisHuit=(.*)").search(a).group(1)

nbJour=int(nbJour)
interval=int(interval)
repsauv=repsauv.replace("~", homedir)
notifi=str.lower(notifi)
huitHeures=str.lower(huitHeures)
nbFoisHuit=int(nbFoisHuit)

#### fin initialisation des variables

#### Fonction de traitement des fichiers
def traitement(adress, fichier):
#    fiche = open(fichier, "w")
    #pour debug
    current_balise=None
    x=1
    while current_balise is None:
        url=Request(adress)
        currentCond=urlopen(url)
        soup = BeautifulSoup(currentCond)
        currentCond.close()
        #si autres que huit heures
        table=soup.find_all('table')
        current_balise=soup.find(id="details")
        if current_balise is None:
            sleep(1)
            x=x+1
            print("problème de récupération de donées\n essais n°"+str(x)+"\npage : "+adress)
#    print(current_balise.prettify()+"\n")
    information="\n"
    if search("huitHeures", fichier) is None:
        # recherche vent
        divs=current_balise.select("[class~=wind-box-lg]")
        if len(divs) == 0:
            divs=current_balise.select("[class~=wind-box-sm]")
        i=0
        for div in divs:
            i=i+1
            ventd=compile("var d = '(.*)';").search(str(div)).group(1).replace("W", "O")
            ventf=compile("var s = '(.*)';").search(str(div)).group(1)
            information=information+"direction"+str(i)+": "+ventd+"\n"
            information=information+"vitesse"+str(i)+": "+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 search("Jour", fichier) is not None or 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=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 search("Jour", fichier) is not None:
                infs=inf[0].get_text().split("\n")
                information=information+"Tempjour: "+findall('-?\d+', infs[0])[0]+"\n"
                information=information+"RealFeeljour: "+findall('-?\d+', infs[1])[0]+"\n"
                information=information+"Précipitationsjour: "+findall('-?\d+', infs[2])[0]+"\n"
                infs=inf[1].get_text().split("\n")
                information=information+"Tempnuit: "+findall('-?\d+', infs[0])[0]+"\n"
                information=information+"RealFeelnuit: "+findall('-?\d+', infs[1])[0]+"\n"
                information=information+"Précipitationsnuit: "+findall('-?\d+', infs[2])[0]+"\n"
                lever_coucher=soup.select("[class~=time-period]")
                i=0
                for p in lever_coucher:
                    spans=p.find_all('span')
                    i=i+1
                    x=0
                    for span in spans:
                        span=span.get_text()
                        if len(findall('\d+', span)) > 0:
                            x=x+1
                            if i == 1:
                                span_nom="Soleil "
                            else:
                                span_nom="Lune "
                            if x == 1:
                                information=information+span_nom+"lever: "+span+"\n"
                            elif x == 2:
                                information=information+span_nom+"durée: "+span+"\n"
                            else :
                                information=information+span_nom+"coucher: "+span+"\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 search("CC", fichier) is not None:
            ville=soup.select("[class~=current-city]")[0].get_text().split(",")[0]
            longi=compile("lon: '(.*)',").search(str(soup)).group(1)
            lat=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(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 search("Matin", fichier) is not None or search("AM", fichier) is not None or search("Soiree", fichier) is not None or 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: "+findall('-?\d+', infs[5])[0]+"\n"
            information=information+"RealFeelmin: "+findall('-?\d+', infs[5])[1]+"\n"
            
            #info conditions générales
            cc=current_balise.find_all('li')
            for inf in cc:
                inf=inf.get_text()
                inf=inf.replace(compile('^ *').search(inf).group(0), "").replace("\n", "")
                if search(":", inf) is not None:
                    information=information+inf+"\n"
        elif search("Jour", fichier) is not None:
            i=0
            cc=current_balise.find_all('li')
            for inf in cc:
                inf=inf.get_text()
                inf=inf.replace("                                ", "").replace("\n", "").replace(" \r", "")
                if 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()
                inf=inf.replace(compile('^ *').search(inf).group(0), "").replace("\n", "")
                if search(":", inf) is not None:
                    information=information+inf+"\n"
            information=information+str(int(time()))+"\n"
    else:
        #recherche icones huit heures
        rows = table[0].findAll('tr')
        x=0
        for tr in rows:
            cols = tr.findAll('td')
            texte_tr=tr.text.split("\n")[1].replace("\n", "")
            i=0
            for td in cols:
                i=i+1
#                td=td.replace("&nbsp;", "")
                texte_bu = td.text.replace("\n", "").replace(chr(160), "")
                if texte_bu != "" :
                    if texte_tr == " " and x < len(cols):
                        information=information+"Heure"+str(i)+": "+texte_bu+"\n"
                        x=x+1
                    elif texte_tr != " ":
                        information=information+texte_tr+str(i)+": "+texte_bu+"\n"
        icone=table[0].find_all('div')
        i=0
        for ic in icone:
            i=i+1
            ico="icone"+str(i)+": "+str(ic).replace('<div class="icon i-', '')
            fin=compile('">(.*)div>').search(ico).group(1)
            information=information+ico.replace('">'+fin+'div>', '')+"\n"
            if i == 8:
                break
    fiche = open(fichier, "w")
#    fiche.write(current_balise.prettify())
    fiche.write(information)
    fiche.close()
    collect()
#### fin Fonction de traitement des fichiers

#### Mise en tache de fond
def demonise(ent, id1, id2, huitHeures, nbJour, interval, nbFoisHuit):
    dem=time()-(60*60)
    misajour=1
    while 1 :
        heure=time()
        if huitHeures=="oui":
            x=0
            while x<nbFoisHuit:
                h=(x*8)+int(strftime('%H', localtime()))
                x=x+1
                traitement(ent+nb1+'/hourly-weather-forecast/'+nb2+'?hour='+str(h), repsauv+"/huitHeures"+str(x))
                print("huitHeures "+str(x)+" Ok")
        if time()-dem >= 60*60:
            x=0
            while x<nbJour:
                x=x+1
                traitement(ent+nb1+'/daily-weather-forecast/'+nb2+"?day="+str(x), repsauv+"/Jour"+str(x))
                print("Jour "+str(x)+" Ok")
                if matin=="oui":
                    traitement(ent+nb1+'/morning-weather-forecast/'+nb2+"?day="+str(x), repsauv+"/Matin"+str(x))
                    print("Matin "+str(x)+" Ok")
                if apresmidi=="oui":
                    traitement(ent+nb1+'/afternoon-weather-forecast/'+nb2+"?day="+str(x), repsauv+"/AM"+str(x))
                    print("AM "+str(x)+" Ok")
                if soiree=="oui":
                    traitement(ent+nb1+'/evening-weather-forecast/'+nb2+"?day="+str(x), repsauv+"/Soiree"+str(x))
                    print("Soiree "+str(x)+" Ok")
                if nuit=="oui":
                    traitement(ent+nb1+'/overnight-weather-forecast/'+nb2+"?day="+str(x), repsauv+"/Nuit"+str(x))
                    print("Nuit "+str(x)+" Ok")
        traitement(ent+nb1+'/current-weather/'+nb2, repsauv+"/CC")
        print("CC Ok")
        if externe is not None:
                 system(externe)
        fin=time()
        duree=fin-heure
        if notifi == "oui":
            if time()-dem >= 60*60:
                dem=time()
                mess=notify2.Notification('Recmeteo.py  v'+Version, 'Météo : mise à jour complète terminée\n en '+str(round(duree,2))+' secondes', 'dialog-information')
            else:
                mess=notify2.Notification('Recmeteo.py  v'+Version, 'Météo : mise à jour partielle terminée\n en '+str(round(duree,2))+' secondes', 'dialog-information')
            mess.show()
        start=heure
        pause=60*interval-int(duree)
        print("mise a jour en : "+str(duree))
        collect()
        sleep(pause)

### Initialiation de DBus pour les notifications
if notifi == "oui":
    import notify2
    notify2.init('Recmeteo.py')
### Vérification répertoire
if not path.exists(repsauv):
    makedirs(repsauv)
#### Lancement du script et initialisation de la tache de fond
nb1=findall('\d+', adressWeb)[0]
nb2=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
print("Version =", Version)
demonise(ent, nb1, nb2, huitHeures, nbJour, interval, nbFoisHuit)

Helas non, même message d'erreur :

christophe@christophe-desktop:~$ cd Accuweather
christophe@christophe-desktop:~/Accuweather$ ./start-recmeteo.sh
/home/christophe/Accuweather/configs/defaut.cfg
6
Traceback (most recent call last):
  File "/home/christophe/Accuweather/scripts/recmeteo.py", line 65, in <module>
    nbFoisHuit=int(nbFoisHuit)
ValueError: invalid literal for int() with base 10: ''
christophe@christophe-desktop:~/Accuweather$

Hors ligne

#2247 Le 23/02/2013, à 10:18

Didier-T

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

razorback1010 a écrit :

Helas non, même message d'erreur :

christophe@christophe-desktop:~$ cd Accuweather
christophe@christophe-desktop:~/Accuweather$ ./start-recmeteo.sh
/home/christophe/Accuweather/configs/defaut.cfg
6
Traceback (most recent call last):
  File "/home/christophe/Accuweather/scripts/recmeteo.py", line 65, in <module>
    nbFoisHuit=int(nbFoisHuit)
ValueError: invalid literal for int() with base 10: ''
christophe@christophe-desktop:~/Accuweather$

pas tout a fait, maintenant il nous dis qu'il n'a pas de valeur pour nbFoisHuit, donc soit ton meteo.cfg n'est pas complet, soit la donnée n'est pas transmise par start-recmeteo.sh

je te laisse regarder, si tu ne trouve pas colle sur le forum les deux scripts en question (si tu trouve dit nous d’où sa venait)

Hors ligne

#2248 Le 23/02/2013, à 10:24

carpediem

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

Didier-T a écrit :
carpediem a écrit :
Didier-T a écrit :

carpediem, il s'agit d'une seul ligne de commande, je vois que tu la coupe en deux.
par contre on vas passer notify=non, comme la suggéré jpdipsy.

python3 ~/Scripts/MeteoLua2/Scripts/recmeteo.py repsauv=~/Scripts/MeteoLua2/sauvegardes adressWeb=http://www.accuweather.com/fr/fr/stiring-wendel/135054/weather-forecast/135054 nbJour=10 matin=oui apresmidi=oui soiree=oui nuit=oui huitHeures=oui nbFoisHuit=1 interval=10 notify=non

@ jpdipsy, @Didier-T un grand MERCI mes conkys fonctionnent. :lol:
Encore une petit souci pour le graphique de la pression et de la température qui ne fonctionne toujours pas.
encore merci pour ce magnifique travaille

Cordialement
carpediem

il faudrait que tu me re-fournisse tes scripts, la position a changé pour les données (la facon de les récupérer aussi)

Je me demande si je vais pas virer la notification, trop de soucis, pour un intérêt limité (enfin a mon gout)

Salut à tous, je joint les différents scripts pour le graphique de la pression et de la température.

barognuplot.sh

#!/bin/bash

## files
LOG="$HOME/conky/barograph/ListePression2.log"
GRAPH="$HOME/conky/barograph/graph2.png"

## Verifier argument 

##Infos generales
DATE=$(date +"%s")
DATE1WEEK=$(date --date="1 week ago" +"%s")

# liste des dates de releve du fichier log
EPOCH=()
while read 
do
    EPOCH+=( "$REPLY" )
done< <(awk '{print $1}' "$LOG")

# si le fichier existe et contient des valeurs de plus d'une semaine (premiere = plus vieille)
#supprimer premiere valeur
[[ -f $LOG ]] && {
    for i in $(seq 0 $(($(wc -l < $LOG)-1)))
    do
        [[ $DATE1WEEK -gt ${EPOCH[$i]} ]] && sed -i '1d' $LOG || break
    done
}


## Conversion en hectopascal et soustraction de la pression moyenne pour ramener l'axe a zero
PR_HP=`sed -n 16p /home/claude/conky/meteo/CondCour`
TEMP=`sed -n 4p /home/claude/conky/meteo/CondCour`
PR_CALC=$(bc << EOF
scale=0
$PR_HP - 1000
EOF
)
echo "$DATE $PR_CALC $TEMP" >> $LOG

gnuplot <<EOF
set terminal png enhanced size 300,170  transparent #font "Ubuntu,10" 400,350
set term png font "Ubuntu,9"
set output "$GRAPH"
unset key
set grid
set xzeroaxis lt 3 lw 2
set yzeroaxis
set ytics ("" -40, "" -20, "" 20, "" 40)
set mxtics 0
set xdata time
set timefmt "%s"
set xtics 86400
set format x "%d"
set style line 1 lw 2
set style line 2 lw 2
plot ["$DATE1WEEK":"$DATE"] [-40:50] "$LOG" using 1:3 with lines ls 2, "$LOG" using 1:2 with lines ls 1
EOF

exit 0

ListePression2.log

1361026679 25 -1
1361026709 25 -1
1361026739 25 -1
1361026770 25 -1
1361026801 25 -1
1361026831 25 -1
1361026862 25 -1
1361026893 25 -1
1361026924 25 -1
1361026954 25 -1
1361026985 25 -1
1361027015 25 -1
1361027045 25 -1
1361027076 25 -1
1361027106 25 -1
1361027136 25 -1
1361027167 25 -1
1361027198 25 -1
1361027229 25 -1
1361027260 25 -1
1361027291 25 -1
1361027321 25 -1
1361027352 25 -1
1361027383 25 -1
1361027413 25 -1
1361027444 25 -1

conkyrc-pression

TEXT
${voffset -6}${goto 25}${font chopinscript:size=17}${color black} Pression Atmospherique
${if_gw}${execi 30 bash /home/claude/conky/barograph/barognuplot.sh}${endif}#
${image /home/claude/conky/barograph/graph2.png -s 270x150 -p -10,10 -n}#
${font Verdana:size=7}#
${color #008C00}${voffset -12}${goto 240}  40°C${color red}${goto 280}1040mb
${color #008C00}${voffset 13}${goto 240}  20°C${color red}${goto 280}1020mb
${color #008C00}${voffset 11}${goto 240}    0°C${color red}${goto 280}1000mb
${color #008C00}${voffset 13}${goto 240} -20°C${color red}${goto 280} 980mb
${color #008C00}${voffset 10}${goto 240} -40°C${color red}${goto 280} 960mb
${execi 1200 /home/claude/conky/Scripts/Sphere
${image ~/sphere_satireu1.png -p 20,370 -s 300x300 -f 60} 

Merci de votre aide
carpediem


"Carpe diem quam minimum credula postero"
(Cueille le jour présent, en te fiant le moins possible au lendemain.)
HORACE

Hors ligne

#2249 Le 23/02/2013, à 10:56

jpdipsy

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

Toutes,tous

Passage du pack en v 1.00 fonctionne "apparement" sans accroc auusi bien avec xplanetFX
modif : partout donc telechargez décompressé LISEZ

Je ne serai pas présent ce WE alors tchusss

Hors ligne

#2250 Le 23/02/2013, à 10:59

Didier-T

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

@ carpediem,
sa devrait fonctionner avec sa (si les chemins non pas changé)

barognuplot.sh

#!/bin/bash

## files
LOG="$HOME/conky/barograph/ListePression2.log"
GRAPH="$HOME/conky/barograph/graph2.png"

## Verifier argument 

##Infos generales
DATE=$(date +"%s")
DATE1WEEK=$(date --date="1 week ago" +"%s")

# liste des dates de releve du fichier log
EPOCH=()
while read 
do
    EPOCH+=( "$REPLY" )
done< <(awk '{print $1}' "$LOG")

# si le fichier existe et contient des valeurs de plus d'une semaine (premiere = plus vieille)
#supprimer premiere valeur
[[ -f $LOG ]] && {
    for i in $(seq 0 $(($(wc -l < $LOG)-1)))
    do
        [[ $DATE1WEEK -gt ${EPOCH[$i]} ]] && sed -i '1d' $LOG || break
    done
}


## Conversion en hectopascal et soustraction de la pression moyenne pour ramener l'axe a zero
PR_HP=`awk '/Humidité: / {print int($2)}' /home/claude/conky/meteo/CC`
TEMP=`awk '/Temp: / {print int($2)}' /home/claude/conky/meteo/CC`
PR_CALC=$(bc << EOF
scale=0
$PR_HP - 1000
EOF
)
echo "$DATE $PR_CALC $TEMP" >> $LOG

gnuplot <<EOF
set terminal png enhanced size 300,170  transparent #font "Ubuntu,10" 400,350
set term png font "Ubuntu,9"
set output "$GRAPH"
unset key
set grid
set xzeroaxis lt 3 lw 2
set yzeroaxis
set ytics ("" -40, "" -20, "" 20, "" 40)
set mxtics 0
set xdata time
set timefmt "%s"
set xtics 86400
set format x "%d"
set style line 1 lw 2
set style line 2 lw 2
plot ["$DATE1WEEK":"$DATE"] [-40:50] "$LOG" using 1:3 with lines ls 2, "$LOG" using 1:2 with lines ls 1
EOF

exit 0

Hors ligne