Fecfactor pyysi minua eilen julkaisemaan alla olevassa kuvakaappauksessa näytettävän conkin kokoonpanon
Kuten näette, on 3 konkia, jotka suoritetaan komentosarjan avulla, sen kokoonpano perustuu tämä viesti lähettänyt käyttäjä Bruce M. foorumeilla Ubuntu-Ar joitakin muutoksia postilaatikossa, joka on minun tapauksessani Gmailia varten.
Viitetekstissä Bruce on selittänyt sen hyvin, mutta kopioin myös seuraavat vaiheet ja koodini kullekin, jolla on se, muistina minulle.
No, tietysti meidän on oltava asennettu conky, curl ja python, joten kirjoitamme konsoliin:
sudo apt-get asenna conky curl python
Lähde weather.ttf ja nuolet.ttf on täällä. Kuun lähde on täällä Kun olet ladannut, sinun on kopioitava ne tiedostoon / usr / share / fonts
Luodaan nyt komentosarja nimeltä ~. / Startconky
gksudo gedit ~ / .startconky
tyhjän tiedoston sisälle liitämme seuraavat
#! / Bin / bash
nuku 0 & # 0 hyvä Xfcelle - käytä 20-30 Gnomeen
conky -c ~ / Conky / conkymain &
#sleep 0 & # 0 hyvä Xfcelle - käytä 1 Gnomeen
conky -c ~ / Conky / conkyforecast &
#sleep 0 & # 0 hyvä Xfcelle - käytä 1 Gnomeen
conky -c ~ / Conky / conkymail &
Nyt luomme conkymain-tiedoston ~ / Conky-kansioon, jos meillä ei ole Conky-kansiota, meidän on luotava se.
gedit ~ / Conky / conkymain
Käytän Calibri-fonttia, jos sinulla ei ole sitä, korvaa se millä haluat.
Pidämme kiinni seuraavasta
taustanumero
oma ikkuna kyllä
oma_ikkunan läpinäkyvä kyllä
own_window_hints koristamaton, alla, tahmea, skip_taskbar, skip_pager
oma_ikkunan_väri musta
double_buffer kyllä
use_spacer vasemmalle
use_xft kyllä
fontin kalibri: koko = 9
xftfont calibri: koko = 9
xftalpha 0.5
päivitysväli 5.0
isojen kirjainten nro # arvoksi on asetettu Kyllä, jos haluat, että kaikki teksti on isoja
määrätyt_rajat 3
reunamarginaali 9
reunan_leveys 10
oletusväri valkoinen
default_outline_color musta
default_shade_color musta
väri0 syaani
väri1 vaaleansininen
väri2 oranssi
väri3 keltainen
väri 4 vehnää
väri5 valkoinen
väri6 valkoinen
väri7 valkoinen
väri8 valkoinen
väri9 valkoinen
tasaus ylhäällä oikealla tai ylhäällä, vasemmalla, alemmalla, oikealla
aukko_x 10
aukko_y 35
text_buffer_size 128 # käytä ennustetta varten 1024
no_buffers yes # Vähennetäänkö tiedostojärjestelmäpuskurit käytetystä muistista?
piirtorajat nro
draw_outline yes # vahvistaa tekstiä, jos kyllä
draw_shades yes # shadecolor mustaTEKSTI
$ {font calibri: size = 12} $ {alignc} $ {color1} $ sysname $ kernel $ machine} $ color $ font
$ {font calibri: size = 12} $ {alignc} $ {color2} $ {exec whoami} @ $ nodename $ color $ font
$ {color0} $ {hr 1} $ väriä
$ {font calibri: size = 20} $ {alignc} $ {time% H:% M} $ fontti
$ {font calibri: size = 12} $ {color1} $ {alignc} $ {time% A,% d% b. % Y} $ color $ fontti
$ {color3} UpTime: $ {alignr 2} $ uptime $ color
$ {color0} $ {hr 1} $ väriä
$ {voffset 5} $ {color2} CPU: $ {alignc} $ color $ running_processes $ {color1} / $ color $ käsittelee $ {alignr 2} $ {color2} $ {cpubar cpu0 14,80} $ color
$ {color1} $ {voffset -16} $ {alignr 5} $ cpu% $ color
$ {voffset 2} $ {color1} Lataa keskiarvo ($ {color3} Min $ {color1}): $ {alignr 2} $ {color3} 1: $ color $ {loadavg 1} $ {color3} 5: $ color $ {loadavg 2} $ {color3} 15: $ color $ {loadavg 3}
$ {voffset 5} $ {color2} RAM: $ color $ mem $ {color2} / $ color $ memmax $ {alignr 2} $ {color2} $ {membar 14,80} $ color
$ {color1} $ {voffset -16} $ {alignr 5} $ memperc% $ color
$ {voffset 2} $ {color1} Puskuroitu: $ color $ {buffers} $ {alignr 2} $ {color1} Välimuisti: $ color $ {cached}
$ {voffset 5} $ {color2} VAIHTO: $ color $ swap $ {color2} / $ color $ {swapmax} $ {alignr 2} $ {color2} $ {swapbar 14,80} $ color
$ {color1} $ {voffset -16} $ {alignr 5} $ swapperc%
$ {color0} $ {hr 1} $ väriä
$ {voffset 5} $ {color2} HD-tiedot $ {color1} - $ color Free $ {color1} - Käytetty - $ {color2} Yhteensä
$ {voffset 5} $ {color1} Root: $ color $ {fs_free_perc /}% $ {alignr 2} $ {fs_free /} $ {color2} / $ {color1} $ {fs_used /} $ color / $ {color2} $ {fs_size /} $ väriä
$ {color1} Koti: $ color $ {fs_free_perc / home / user}% $ {alignr 2} $ {fs_free / home / user} $ {color2} / $ {color1} $ {fs_used / home / user} $ color / $ {color2} $ {fs_size / home / user} $ väriä
$ {color0} $ {hr 1} $ väriä
$ {color1} Lähettäjä: $ color Buenos Aires, Argentiina
$ {color1} Lev.: $ {color2} 34 ° 35'S $ {color1} Pitkä: $ {color2} 58 ° 21'W $ {color1} Alt: $ {color2} 25 m $ väriä
$ {voffset 5} $ {color2} $ {font calibri: size = 12} tänään: $ font $ {color3} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = CC} $ väri $ {alignr 2} $ {color1} ST: $ {color2} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = LT}
$ {color3} $ {font Weather: size = 50} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = WF} $ font $ color
$ {alignr 50} $ {voffset -55} $ {font calibri: size = 25} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = HT} $ font
$ {alignc 20} $ {voffset -30} $ {fontin nuolet: size = 20} $ {color4} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = BF} $ color $ fontti
$ {alignc 10} $ {voffset 5} $ {color4} Tuuli: $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = WS} $ color
$ {color1} Kosteus: $ {color3} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = HM} $ {alignr 2} $ {color1} Sademäärä: $ {color3} $ { execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = PC} $ väri
$ {alignc} $ {color1} Paine: $ {color3} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = BR} - $ {color3} $ {execi 3600 python ~ / Conky /scripts/conkyForecast.py –location = ARBA0009 –datatype = BD} $ väri
$ {color4} $ {hr} $ väriä
$ {color1} Auringonnousu: $ {color3} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = SR} $ {alignr 2} $ {color1} Auringonlasku: $ {color3} $ { execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = SS} $ väri
$ {voffset 15} $ {color1} Kuu: $ {color4} $ {alignr 2} $ {color3} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = MP} $ color
$ {voffset -20} $ {offset 80} $ {color4} $ {font moon vaiheet: size = 20} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = MF} $ font $ väri
$ {color0} $ {hr} $ väriä
$ {voffset 5} $ {color2} IP: $ {alignc} $ color $ {addr eth0}
$ {color1} alas: $ color $ {downspeed eth0} k / s $ {alignr 2} $ {color1} ylös: $ color $ {upspeed eth0} k / s
$ {color1} Yhteensä: $ color $ {totaldown eth0} $ {alignr 2} $ {color1} Yhteensä: $ color $ {totalup eth0}
$ {color1} Saapuva: $ color $ {tcp_portmon 1 32767 count} $ {color1} Lähtevä: $ color $ {tcp_portmon 32768 61000 count} $ {alignr 2} $ {color1} Yhteensä: $ color $ {tcp_portmon 1 65535 count}
$ {voffset 5} $ {color2} Yhteydet: $ color $ {tcp_portmon 32768 61000 count} $ {alignr 2} $ {color2} Palvelu / Portti $ color
$ {voffset 5} $ {tcp_portmon 32768 61000 rhost 0} $ {alignr 2} $ {tcp_portmon 32768 61000 rservice 0}
$ {tcp_portmon 32768 61000 rhost 1} $ {alignr 2} $ {tcp_portmon 32768 61000 rservice 1}
$ {tcp_portmon 32768 61000 rhost 2} $ {alignr 2} $ {tcp_portmon 32768 61000 rservice 2}
$ {tcp_portmon 32768 61000 rhost 3} $ {alignr 2} $ {tcp_portmon 32768 61000 rservice 3}
$ {tcp_portmon 32768 61000 rhost 4} $ {alignr 2} $ {tcp_portmon 32768 61000 rservice 4}
$ {tcp_portmon 32768 61000 rhost 5} $ {alignr 2} $ {tcp_portmon 32768 61000 rservice 5} $ color
luomme tiedoston ~ / Conky / conkyforecast
gedit ~ / Conky / conkyforecast
ja liitämme seuraavat sisälle
taustanumero
oma ikkuna kyllä
oma_ikkunan läpinäkyvä kyllä
own_window_hints koristamaton, alla, tahmea, skip_taskbar, skip_pager
oma_ikkunan_väri musta
double_buffer kyllä
use_spacer vasemmalle
use_xft kyllä
fontin kalibri: koko = 8
xftfont calibri: koko = 8
xftalpha 0.5
päivitysväli 5.0
isojen kirjainten nro # arvoksi on asetettu Kyllä, jos haluat, että kaikki teksti on isoja
määrätyt_rajat 3
reunamarginaali 9
reunan_leveys 10
oletusväri valkoinen
default_outline_color musta
default_shade_color musta
väri0 syaani
väri1 vaaleansininen
väri2 oranssi
väri3 keltainen
väri 4 vehnää
väri5 valkoinen
väri6 valkoinen
väri7 valkoinen
väri8 valkoinen
väri9 valkoinen
suuntaus ala-vasen # tai ylä-vasen, ala-vasen, ala-oikea
aukko_x 10
aukko_y 35
text_buffer_size 1024 # käytä ennustetta varten 1024
no_buffers yes # Vähennetäänkö tiedostojärjestelmäpuskurit käytetystä muistista?
piirtorajat nro
draw_outline yes # vahvistaa tekstiä, jos kyllä
draw_shades yes # shadecolor mustaTEKSTI
$ {color4} $ {font calibri: size = 11} Laajennettu ennuste $ font $ color
$ {color0} $ {hr} $ väriä
$ {color4} $ {font calibri: size = 9} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –template = / home / user / Conky / scripts / myweather.template} $ font $ väri
luomme tiedoston ~ / Conky / conkymail
gedit ~ / Conky / conkymail
liitämme seuraavat tiedostoon
taustanumero
oma ikkuna kyllä
oma_ikkunan läpinäkyvä kyllä
own_window_hints koristamaton, alla, tahmea, skip_taskbar, skip_pager
oma_ikkunan_väri musta
double_buffer kyllä
use_spacer vasemmalle
use_xft kyllä
fontin kalibri: koko = 8
xftfont calibri: koko = 8
xftalpha 0.5
päivitysväli 5.0
isojen kirjainten nro # arvoksi on asetettu Kyllä, jos haluat, että kaikki teksti on isoja
määrätyt_rajat 3
reunamarginaali 9
reunan_leveys 10
oletusväri valkoinen
default_outline_color musta
default_shade_color musta
väri0 syaani
väri1 vaaleansininen
väri2 oranssi
väri3 keltainen
väri 4 vehnää
väri5 valkoinen
väri6 valkoinen
väri7 valkoinen
väri8 valkoinen
väri9 valkoinen
suuntaus ala-vasen # tai ylä-vasen, ala-vasen, ala-oikea
aukko_x 565
aukko_y 35
text_buffer_size 128 # käytä ennustetta varten 1024
no_buffers yes # Vähennetäänkö tiedostojärjestelmäpuskurit käytetystä muistista?
piirtorajat nro
draw_outline yes # vahvistaa tekstiä, jos kyllä
draw_shades yes # shadecolor mustaTEKSTI
$ {font calibri: size = 11} $ {alignc} $ {color4} Gmail
$ {color0} $ {hr} $ väriä
$ {font calibri: size = 11} $ {color4} Meillä on $ {color3} $ {execi 300 python ~ / Conky / scripts / mail / conkyEmail.py} $ {color4} sähköpostiosoitetta $ font
Luomme tiedoston hakemistoon ~ / Conky / scripts / conkyForecast.py (meidän on luotava komentosarjakansio)
gedit ~ / Conky / scripts / conkyForecast.py
#! / usr / bin / python
# - * - koodaus: utf-8 - * -
######################################################### ################################
# conkyForecast.py on (ei enää) yksinkertainen (enää) python-komentosarja kerättäväksi
# yksityiskohdat nykyisestä säästä käytettäväksi conky.
#
# Kirjoittaja: Kaivalagi
# Luotu: 13
# Muutokset:
# 14/04/2008 Salli ennustetietojen päivät
# 14/04/2008 Tarkista yhteys xoap-palveluun
# 18/04/2008 Salli etäisyyksien asettaminen etäisyydelle
# 18/04/2008 Salli yön ja päivän ennuste
# 18/04/2008 Tukee ehtokooditeksti «CC» -vaihtoehtoa, odottaa espanjankielistä käännöstä
# 18/04/2008 Käytä peittausta luokan tiedoissa sen sijaan, että avaisit xml: n, tämä ohittaa välimuistitiedon kyselyn tarpeen
# 19/04/2008 Lisätty espanjankielinen teksti - kiitos Bruce M
# 19/04/2008 Lisätty isnumerinen tarkistus kaikille numeerisille lähdöille yksikköpääteellä
# 19/04/2008 Suolakurkkutiedoston nimeämistä muutettiin sisällyttämään sijaintikoodi
# 19/04/2008 Lisätty espanjalaisten viikonpäivien muunnos aluekohtaisesti
# 20/04/2008 Lisätty kunnollinen komentoargumentin jäsennin
# 20/04/2008 Lisätty – lyhytviikkopäivä -vaihtoehto, jos viikonpäivä tietotyyppi lyhennetään 3 merkkiin
# 21/04/2008 Kiinteät kielivaihtoehdot ennustetuotokselle
# 21/04/2008 Lisätty –template -vaihtoehto sallia mukautetun lähdön käyttämällä yhtä exec-puhelua 🙂
# 21/04/2008 Lisätty -hideunits vaihtoehto poistaa esimerkiksi mph ja C tuotoksesta
# 23/04/2008 Poistettu - olennainen vaihtoehto mallista, tämä PITÄÄ asettaa vakiovaihtoehtona komentosarjapuhelussa eikä sitä käytetä mallitiedostossa.
# 23/04/2008 Luettu - olennainen vaihtoehto malliin, joka sallii metri- tai imperiaaliarvot tietotyyppiä kohti. Huomaa, että kun käytetään malleja, komentorivivaihtoehto ei toimi.
# 23/04/2008 Lisätty lähtö, joka ilmoittaa käyttäjälle, jos annettu sijainti on huono
# 24/04/2008 Lisätty käsittely ilman yhteyksiä, palaa välimuistitietoihin nyt (virhe, jos välimuistia ei ole). Testaa avaamalla xoap.weather.com
# 24/04/2008 Kiinteä celsius-fahrenheit-muunnos
# 06/05/2008 Päivitetty URL-osoite, jota käytettiin verkkopalvelun päivityksen jälkeen
# 09/05/2008 Yhdistetty nykytila ja ennustetiedot haetaan yhdeksi puheluksi
# 09/05/2008 Lisätty auringonnousu ja -lasku tietotyyppeihin, jotka koskevat sekä nykyisiä olosuhteita että ennustetietoja
# 09/05/2008 Lisättiin kuun vaihe, barometrin lukema ja barometrin kuvaus tietotyyppeihin, nämä ovat vain nykyisiä olosuhteita ja niin myös ennustetussa tuotoksessa ei ole
# 09/05/2008 Lisätty barometrin yksikkömuunnokset megatavuista tuumiin (imperial)
# 09/05/2008 Päivitetty espanjankielinen teksti - kiitos Bruce M
# 10/05/2008 Lisätty ranskankieliset tiedot - kiitos benpaka
# 12/05/2008 Lisättiin uusi BF-tietotyyppi (joissa on fontti) antamaan nuolimerkki (käytä Arrow.ttf-fontin kanssa) NSD-lähdön sijaan WD: stä (tuulen suunta)
# 12/05/2008 Päivitetty WD-lähdekielikohtainen, tukee tällä hetkellä oletusta englanniksi ja espanjaksi - kiitos Bruce M
# 18/05/2008 Lisättiin uusi MF (moon font) -tietotyyppi kuun fontin merkin antamiseksi (merkit ovat virheellisiä ja ei vielä omistettua kirjasinta).
# 21/05/2008 Nykyisissä olosuhteissa vaihtoehto –datatype = LT näyttää nyt lämpötilan tuntuu nykyisen lämpötilan sijasta
#
# KAIKKI:
# Yhdistä pkl-tiedostot yhteen tiedostoon / luokkaan
# Lisää sää fontti, joka perustuu kuun vaiheen tulokseen kuun kuvaketietojen perusteella
# ??? Onko siellä vielä vaatimuksia?tuo sys, os, socket, urllib2, päivämäärä, aika
osoitteesta xml.dom tuoda minidom
tilatuonnista *
optparse-tuonnista OptionParser
tuo kieli
tuo gettext
tuoda suolakurkkua
matematiikan tuonnista *APP = »conkyForecast.py»
DIR = os.path.dirname (__tiedosto__) + '/ locale'
gettext.bindtextdomain (APP, DIR)
gettext.textdomain (APP)
_ = gettext.gettextluokka CommandLineParser:
jäsennin = Ei mitään
def __init __ (itse):
self.parser = OptionParser ()
self.parser.add_option («- l», »- sijainti», dest = »sijainti», oletus = »UKXX0103 ″, type =» string », metavar =» CODE », help = u» säätietojen sijaintikoodi [ oletus:% default], määritä sijaintikoodisi kaupungin nimen mukaan seuraavalla URL-osoitteella: http://xoap.weather.com/search/search?where=Norwich »)
self.parser.add_option ("- d", "- tietotyyppi", dest = "tietotyyppi", oletus = "HT", tyyppi = "merkkijono", metavar = "DATATYYPPI", help = u "[oletus:% oletus] Tietotyyppivaihtoehdot ovat: DW (viikonpäivä), WF (sääfonttilähtö), LT (ennuste: matala lämpötila, nykyinen: tuntuu kuin lämpötila), HT (ennuste: korkea lämpötila, nykyinen: nykyinen lämpötila), CC (nykyinen Olosuhteet), CT (olosuheteksti), PC (sateen mahdollisuus), HM (kosteus), WD (tuulen suunta), WS (tuulen nopeus), WG (tuulen puuskat), CN (kaupungin nimi), SR (auringonnousu), SS (auringonlasku), MP (kuun vaihe), MF (kuun fontti), BR (barometrin lukema), BD (barometrin kuvaus). Ei käytettävissä komentorivillä, kun käytetään malleja. »)
self.parser.add_option («- s», »- startday», dest = »startday», type = »int», metavar = »NUMBER», help = u »määritä aloituspäivän numero, jos nykyiset ehdot jätetään pois . Ei käytettävissä komentorivillä, kun käytetään malleja. »)
self.parser.add_option ("- e", "- loppupäivä", dest = "loppupäivä", type = "int", metavar = "NUMBER", help = u "määritä lopetuspäivän numero, jos se jätetään pois vain alkupäivän tiedot on lähtö. Ei käytettävissä komentorivillä, kun käytetään malleja. »)
self.parser.add_option («- S», »- välilyönnit, dest =» välilyönnit, type = »int», oletus = 1, metavar = »NUMERO», help = u »[oletus:% oletus] Määrittää välilyönnin välinen ulostulo. Ei käytettävissä komentorivillä, kun käytetään malleja. »)
self.parser.add_option («- t», »- malli», dest = »malli», type = »merkkijono», metavar = »TIEDOSTO», help = u »määritä mallitiedosto, jolla tuotetaan tulos yhdellä puhelulla. A tiedoston näkyvä kohde on muodossa {–datatype = HT –startday = 1}. Seuraavat ovat mahdollisia vaihtoehtoja kunkin kohteen sisällä: –datatyyppi, –startday, –endday, –night, –shortweekday, –perperial, –hideunits, –Spaces. Huomaa, että vaihtoehtojen lyhyitä muotoja ei tällä hetkellä tueta! Mitään näistä vaihtoehdoista ei voida käyttää komentorivillä, kun käytetään malleja. »)
self.parser.add_option («- L», »- locale», dest = »locale», type = »string», help = u »ohittaa järjestelmän kielen tulostuksen kielen (en = englanti, es = espanja, fr = ranska, lisää tulossa) »)
self.parser.add_option ("- i", "- imperial", dest = "imperial", oletus = False, action = "store_true", help = u "pyydä imperiaalisia yksiköitä, jos jätetty tulos on metrinen. Ei sovellettavissa komentorivillä, kun käytetään malleja. »)
self.parser.add_option («- n», »- yö», dest = »yö», oletus = False, action = »store_true», help = u »vaihtaa lähdön yötiedoksi, jos päivätulosteet jätetään pois. Ei käytettävissä komentorivillä, kun käytetään malleja. »)
self.parser.add_option («- w», »- shortweekday», dest = »shortweekday», default = False, action = »store_true», help = u »Lyhennä viikonpäivän tietotyyppi 3 merkkiin. Ei käytettävissä komentorivillä, kun käytetään malleja. »)
self.parser.add_option («- u», »- piiloyksiköt», dest = »piiloyksiköt», oletus = False, action = »myymälä_tosi», help = u »Piilota yksiköt, kuten mph tai C, asteen symbolit (°) ovat näkyy edelleen. Ei käytettävissä komentorivillä, kun käytetään malleja. »)
self.parser.add_option ("- v", "- verbose", dest = "verbose", oletus = False, action = "store_true", help = u "pyytää tarkkoja tuloksia, ei ole hyvä idea, kun suoritetaan conky!" )
self.parser.add_option ("- r", "- noutaa", dest = "noutaa", oletus = epätosi, action = "myymälä_tosi", help = u "noutaa tietoja tietojen vanhentumisesta riippumatta")def parse_args (itse):
(vaihtoehdot, argumentit) = self.parser.parse_args ()
tuotto (optiot, argumentit)def print_help (itse):
palauta self.parser.print_help ()luokka WeatherData:
def __init __ (itse, viikon_viikko, matala, korkea, kunnon_koodi, tilan_teksti, sadekosteus, tuulen_suunta, tuulen nopeus, tuulen_joukot, kaupunki, auringonnousu, auringonlasku, kuun vaihe, kuun_kuvake, palkinluku, bar_desc)
self.day_of_week = u »» + day_of_week
itse.low = u »» + matala
itse.korkea = u »» + korkea
self.condition_code = u »» + condition_code
self.condition_text = u »» + condition_text
itsesäätö = u »» + saost
itsekosteus = u »» + kosteus
self.wind_dir = u »» + wind_dir
self.wind_speed = u »» + tuulenopeus
self.wind_gusts = u »» + wind_gusts
itse.kaupunki = u »» + kaupunki
itse. auringonnousu = u »» + auringonnousu
itse. auringonlasku = u »» + auringonlasku
itse.kuukauden vaihe = u »» + kuun vaihe
self.moon_icon = u »» + moon_icon
self.bar_read = u »» + bar_read
self.bar_desc = u »» + bar_descluokka WeatherText:
ehdot_teksti = {
«0»: _ (u »Tornado»),
«1»: _ (u »Trooppinen myrsky»),
«2»: _ (u »hurrikaani»),
«3»: _ (u »Kovaa ukkosta»),
«4»: _ (u »Ukkosmyrskyjä»),
«5»: _ (u »Sade- ja lumisadetta»),
«6»: _ (u »Sekoitettu sade ja laivasto»),
«7»: _ (u »Sekoitetut sademäärät»),
«8»: _ (u »Jäätyvää tihkua»),
«9»: _ (u »tihkusade»),
«10»: _ (u »Pakkasesade»),
«11»: _ (u »Suihkut»),
«12»: _ (u »Suihkut»),
«13»: _ (u »Lumisadetta»),
«14»: _ (u »Lumisadetta»),
«15»: _ (u »puhaltaa lunta»),
«16»: _ (u »Lumi»),
«17»: _ (u »Hail»),
«18»: _ (u »laivasto»),
«19»: _ (u »Pöly»),
«20»: _ (u »Sumu»),
«21»: _ (u »Haze»),
«22»: _ (u »savu»),
«23»: _ (u »Blustery»),
«24»: _ (u »Tuulinen»),
«25»: _ (u »kylmä»),
«26»: _ (u »Pilvistä»),
«27»: _ (u »Enimmäkseen pilvistä»),
«28»: _ (u »Enimmäkseen pilvistä»),
«29»: _ (u »Osittain pilvistä»),
«30»: _ (u »Osittain pilvistä»),
«31»: _ (u »Tyhjennä»),
«32»: _ (u »Tyhjennä»),
«33»: _ (u »Messut»),
«34»: _ (u »Messut»),
«35»: _ (u »Sadetta ja rakeita sekoitettuna»),
«36»: _ (u »kuuma»),
«37»: _ (u »Yksittäisiä ukkosmyrskyjä»),
«38»: _ (u »Hajanaisia ukkosmyrskyjä»),
«39»: _ (u »Hajanaisia ukkosmyrskyjä»),
«40»: _ (u »Sadekuuroja»),
«41»: _ (u »raskas lumi»),
«42»: _ (u »Lumisadetta»),
«43»: _ (u »raskas lumi»),
«44»: _ (u »Osittain pilvistä»),
«45»: _ (u »Ukkosmyrskyjä»),
«46»: _ (u »Lumisadetta»),
«47»: _ (u »Yksittäisiä ukkosmyrskyjä»),
«Na»: _ (u »N / A»),
"-": _ (a ")
}ehdot_teksti_es = {
«0»: _ (u »Tornado»),
«1»: _ (u »Trooppinen myrsky»),
«2»: _ (u »Huracá¡n»),
«3»: _ (u »Voimakkaat myrskyt»),
«4»: _ (u »Myrskyt»),
«5»: _ (u »Sade- ja lumisadetta»),
«6»: _ (u »Sekoitettu sade ja laivasto»),
«7»: _ (u »Laivasto»),
«8»: _ (u »Jäätyvää tihkua»),
«9»: _ (u »tihkusade»),
«10»: _ (u »Pakkasesade»), # tai jäädyttävä sade
«11»: _ (u »Sadekuuroja»),
«12»: _ (u »Sadekuuroja»),
«13»: _ (u »Kevyt lumi»),
«14»: _ (u »Kevyt lumi»),
«15»: _ (u »Lumimyrsky»),
«16»: _ (u »Lumi»),
«17»: _ (u »Hail»),
«18»: _ (u »Laivasto»),
«19»: _ (u »jauhe»),
«20»: _ (u »Sumu»),
«21»: _ (u »Haze»),
«22»: _ (u »savu»),
«23»: _ (u »Tempest»),
«24»: _ (u »Tuulinen»),
«25»: _ (u »Fráo»),
«26»: _ (u »Erittäin pilvistä»),
«27»: _ (u »Enimmäkseen pilvistä»),
«28»: _ (u »Enimmäkseen pilvistä»),
«29»: _ (u »Osittain pilvistä»),
«30»: _ (u »Osittain pilvistä»),
«31»: _ (u »Tyhjennä»),
«32»: _ (u »Tyhjennä»),
«33»: _ (u »Pilvistä»),
«34»: _ (u »Pilvistä»),
«35»: _ (u »Sadetta ja rakeita»),
«36»: _ (u »Lämpö»),
«37»: _ (u »Yksittäiset myrskyt»),
«38»: _ (u »Hajanaisia myrskyjä»),
«39»: _ (u »Hajanaisia myrskyjä»),
«40»: _ (u »Sadekuuroja»),
«41»: _ (u »raskas lumi»),
«42»: _ (u »Heikkoja ja hajanaisia lumisateita»),
«43»: _ (u »Voimakas Nevada»),
«44»: _ (u »Hajanaisia pilviä»),
«45»: _ (u »Myrskyt»),
«46»: _ (u »Hajanaisia lumisateita»),
«47»: _ (u »Yksittäiset myrskyt»),
«Na»: _ (u »N / A»),
"-": _ (a ")
}ehdot_teksti_fr = {
«0»: _ (u »Tornade»),
«1»: _ (u »Tempête Tropicale»),
«2»: _ (tai »Ouragan»),
«3»: _ (tai »järjestää väkivaltaa»),
«4»: _ (tai »Orageux»),
«5»: _ (u »Pluie et Neige»),
«6»: _ (u »Pluie et Neige Mouillée»),
«7»: _ (u »Muuttuva keskiarvo»),
«8»: _ (u »Bruine Givrante»),
«9»: _ (u »Bruine»),
«10»: _ (u »Pluie Glacante»),
«11»: _ (u »Averses»),
«12»: _ (u »Averses»),
«13»: _ (u »Légère Neige»),
«14»: _ (u »Forte Neige»),
«15»: _ (u »Tempête de Neige»),
«16»: _ (u »Neige»),
«17»: _ (u »Grêle»),
«18»: _ (u »Pluie / Neige»),
«19»: _ (u »Nuage de poussière»),
«20»: _ (u »Brouillard»),
«21»: _ (u »Brume»),
«22»: _ (u »Fumée»),
«23»: _ (u »Tres Venteux»),
«24»: _ (u »Venteux»),
«25»: _ (u »Froid»),
«26»: _ (u »Nuageux»),
«27»: _ (u »Tres Nuageux»),
«28»: _ (u »Tres Nuageux»),
«29»: _ (u »Nuages Disséminés»),
«30»: _ (u »Nuages Disséminés»),
«31»: _ (u »Beau»),
«32»: _ (u »Beau»),
«33»: _ (u »Belles Éclaircies»),
«34»: _ (u »Belles Éclaircies»),
«35»: _ (u »Pluie avec Grêle»),
«36»: _ (u »Chaleur»),
«37»: _ (tai »Orages Isolés»),
«38»: _ (tai »Orages Localisés»),
«39»: _ (tai »Orages Localisés»),
«40»: _ (u »Averses Localisées»),
«41»: _ (u »Neige Lourde»),
«42»: _ (u »Tempête de Neige Localisées»),
«43»: _ (u »Neige Lourde»),
«44»: _ (u »Nuages Disséminés»),
«45»: _ (tai »Orages»),
«46»: _ (u »Tempête de Neige»),
«47»: _ (tai »Orages Isolés»),
«Na»: _ (u »N / A»),
"-": _ (a ")
}ehdot_sää_fontti = {
«0»: _ (u »W»),
«1»: _ (u »V»),
«2»: _ (u »W»),
«3»: _ (u »s»),
«4»: _ (u »p»),
«5»: _ (u »k»),
«6»: _ (u »k»),
«7»: _ (u »g»),
«8»: _ (u »g»),
«9»: _ (u »g»),
«10»: _ (u »h»),
«11»: _ (u »g»),
«12»: _ (u »g»),
«13»: _ (u »k»),
«14»: _ (u »k»),
«15»: _ (u »k»),
«16»: _ (u »k»),
«17»: _ (u »k»),
«18»: _ (u »k»),
«19»: _ (u »e»),
«20»: _ (u »e»),
«21»: _ (u »a»),
«22»: _ (u »d»),
«23»: _ (u »d»),
«24»: _ (u »d»),
«25»: _ (u »d»),
«26»: _ (u »e»),
«27»: _ (u »e»),
«28»: _ (u »e»),
«29»: _ (u »c»),
«30»: _ (u »c»),
«31»: _ (u »a»),
«32»: _ (u »a»),
«33»: _ (u »b»),
«34»: _ (u »b»),
«35»: _ (u »k»),
«36»: _ (u »a»),
«37»: _ (u »f»),
«38»: _ (u »f»),
«39»: _ (u »f»),
«40»: _ (u »g»),
«41»: _ (u »k»),
«42»: _ (u »k»),
«43»: _ (u »k»),
«44»: _ (u »b»),
«45»: _ (u »g»),
«46»: _ (u »k»),
«47»: _ (u »f»),
«Na»: _ (u »»),
"-": _ (tai "")
}ehdot_kuukauden_fontti = {
«0»: _ (u »1 ″),
«1»: _ (u »N»),
«2»: _ (u »O»),
«3»: _ (u »P»),
«4»: _ (u »Q»),
«5»: _ (u »R»),
«6»: _ (u »S»),
«7»: _ (u »T»),
«8»: _ (u »U»),
«9»: _ (u »V»),
«10»: _ (u »W»),
«11»: _ (u »X»),
«12»: _ (u »Y»),
«13»: _ (u »Z»),
«14»: _ (u »0 ″),
«15»: _ (u »0 ″),
«16»: _ (u »A»),
«17»: _ (u »B»),
«18»: _ (u »C»),
«19»: _ (u »D»),
«20»: _ (u »E»),
«21»: _ (u »F»),
«22»: _ (u »G»),
«23»: _ (u »H»),
«24»: _ (u »I»),
«25»: _ (u »J»),
«26»: _ (u »K»),
«27»: _ (u »L»),
«28»: _ (u »M»),
«29»: _ (u »1 ″),
«Na»: _ (u »»),
"-": _ (tai "")
}viikon_päivä = {
"Tänään": _ (tai "Tänään"),
«Maanantai»: _ (u »maanantai»),
«Tiistai»: _ (u »tiistai»),
«Keskiviikko»: _ (u »keskiviikko»),
«Torstai»: _ (u »torstai»),
"Perjantai": _ (u "perjantai"),
"Lauantai": _ (u "lauantai"),
"Sunnuntai": _ (u "Sunnuntai")
}day_of_week_short = {
"Tänään": _ (u "Nyt"),
«Maanantai»: _ (u »ma»),
«Tiistai»: _ (u »ti»),
«Keskiviikko»: _ (u »ke»),
«Torstai»: _ (u »to»),
«Perjantai»: _ (u »pe»),
"Lauantai": _ (u "la"),
"Sunnuntai": _ (u "Aurinko")
}viikon_viikonpäivä = {
"Tänään": _ (u "tänään"),
«Maanantai»: _ (u »maanantai»),
«Tiistai»: _ (tai »tiistai»),
«Keskiviikko»: _ (u »keskiviikko»),
«Torstai»: _ (u »torstai»),
«Perjantai»: _ (u »perjantai»),
"Lauantai": _ (u "lauantai"),
"Sunnuntai": _ (u "Sunnuntai")
}day_of_week_short_fi = {
"Tänään": _ (u "tänään"),
"Maanantai": _ (u "ma"),
«Tiistai»: _ (u »meri»),
«Keskiviikko»: _ (u »ke»),
«Torstai»: _ (u »torstai),
«Perjantai»: _ (u »pe»),
"Lauantai": _ (u "sat"),
"Sunnuntai": _ (u "dom")
}viikon_viikon_päivä = {
«Tänään»: _ (u »Aujourd'hui»),
«Maanantai»: _ (u »Lundi»),
«Tiistai»: _ (u »Mardi»),
«Keskiviikko»: _ (u »Mercredi»),
«Torstai»: _ (u »Jeudi»),
«Perjantai»: _ (u »Vendredi»),
"Lauantai": _ (u "Samedi"),
"Sunnuntai": _ (u "Dimanche")
}day_of_week_short_fr = {
«Tänään»: _ (u »Auj»),
"Maanantai": _ (u "ma"),
«Tiistai»: _ (u »maalis»),
"Keskiviikko": _ (u "mer"),
«Torstai»: _ (u »Jeu»),
«Perjantai»: _ (u »Tule»),
"Lauantai": _ (u "Sam"),
"Sunnuntai": _ (u "Hämärä")
}laakerin_nuoli_font = {
«N»: _ (u »i»),
«EI UUTTA»: _ (u »j»),
«NE»: _ (u »k»),
«ENE»: _ (u »l»),
«E»: _ (u »m»),
«ESE»: _ (u »n»),
"SE": _ (u "o"),
«SSE»: _ (u »p»),
«S»: _ (u »a»),
«SSW»: _ (u »b»),
«SW»: _ (u »c»),
"WSW": _ (u "d"),
«W»: _ (u »e»),
"WNW": _ (u "f"),
«NW»: _ (u »g»),
«NNW»: _ (u »h»),
«N / A»: _ (u »«)
}suuntima_teksti_es = {
«N»: _ (u »N»),
«NNE»: _ (u »NNE»),
«NE»: _ (u »NE»),
«ENE»: _ (u »ENE»),
«E»: _ (u »E»),
«ESE»: _ (u »ESE»),
«SE»: _ (u »SE»),
"SSE": _ (u "SSE"),
"Heidän"),
"SSW": _ (u "SSO"),
«SW»: _ (u »SO»),
"WSW": _ (u "WOW"),
«W»: _ (u »O»),
«WNW»: _ (u »ONO»),
«NW»: _ (u »EI»),
«NNW»: _ (u »NNO»),
«N / A»: _ (u »N \ A»)
}suuntima_teksti_fr = {
«N»: _ (u »N»),
«NNE»: _ (u »NNE»),
«NE»: _ (u »NE»),
«ENE»: _ (u »ENE»),
«E»: _ (u »E»),
«ESE»: _ (u »ESE»),
«SE»: _ (u »SE»),
"SSE": _ (u "SSE"),
"Heidän"),
"SSW": _ (u "SSO"),
«SW»: _ (u »SO»),
"WSW": _ (u "WOW"),
«W»: _ (u »O»),
«WNW»: _ (u »ONO»),
«NW»: _ (u »EI»),
«NNW»: _ (u »NNO»),
«N / A»: _ (u »N \ A»)
}luokka GlobalWeather:
nykyiset ehdot = []
päiväennuste = []
yöennuste = []locale = "sisään"
Vaihtoehdot = Ei mitään
weatherxmldoc = ""TEMP_FILEPATH_CURRENT = "/tmp/conkyForecast-c-LOCATION.pkl"
TEMP_FILEPATH_DAYFORECAST = "/tmp/conkyForecast-df-LOCATION.pkl"
TEMP_FILEPATH_NIGHTFORECAST = "/tmp/conkyForecast-nf-LOCATION.pkl"
EXPIRY_MINUTES = 30
DEFAULT_SPACING = u »«def __init __ (itse, vaihtoehdot):
self.options = vaihtoehdot
jos self.options.locale == Ei mitään:
yrittää:
# self.locale = locale.getdefaultlocale () [0] [0: 2]
self.locale = «es» # poista tämä rivi pakottaaksesi espanjan kielen
# self.locale = "fr" # merkitse tämä rivi pakottaaksesi ranskan kielen
paitsi:
tulosta "aluetta ei ole asetettu"
else:
# self.locale = itse.options.locale
self.locale = «es» # poista tämä rivi pakottaaksesi espanjan kielen
# self.locale = "fr" # merkitse tämä rivi pakottaaksesi ranskan kielenjos self.options.verbose == Tosi:
tulosta >> sys.stdout, "locale asetettu", self.localedef getText (itse, solmuja):
rc = ""
solmulle solmujen luettelossa:
jos solmu.solmuTyyppi == solmu.TEXT_NODE:
rc = rc + solmu. tiedot
paluu rcdef getSpaces (itse, välilyönnit):
merkkijono = u »»
jos välilyönnit == Ei mitään:
merkkijono = itse. DEFAULT_SPACING
else:
i: lle alueella (0, välilyönti + 1):
merkkijono = merkkijono + u »«
palautusmerkkijonodef isNumeric (itse, merkkijono):
yrittää:
nukke = kelluva (merkkijono)
palaa True
paitsi:
palauta Falsedef isConnectionAvailable (itse):
# varmista, että voimme käyttää weather.com-palvelinta avaamalla URL-osoitteen
yrittää:
Usock = urllib2.urlopen ('http://xoap.weather.com')
Usock.close ()
palaa True
paitsi:
palauta Falsedef getBearingText (itse, laakeri):
laakeri = kelluva (laakeri)
jos laakeri <11.25:
paluu u »N»
elif-laakeri <33.75:
palaa u »EET»
elif-laakeri <56.25:
paluu u »NE»
elif-laakeri <78.75:
palaa u »JAN»
elif-laakeri <101.25:
palaa u »E»
elif-laakeri <123.75:
palaa u »ESE»
elif-laakeri <146.25:
palaa u »SE»
elif-laakeri <168.75:
palaa u »SSE»
elif-laakeri <191.25:
palaa u »S»
elif-laakeri <213.75:
palaa u »SSW»
elif-laakeri <236.25:
palaa u »SW»
elif-laakeri <258.75:
palaa u »WSW»
elif-laakeri <281.25:
paluu u »W»
elif-laakeri <303.75:
paluu u »lounaaseen»
elif-laakeri <326.25:
paluu u »NW»
elif-laakeri <348.75:
paluu u »UUSI»
else:
paluu «N / A»def convertCelsiusToFahrenheit (itse, lämpötila):
paluu str (int (lattia (((kelluva (lämpötila) * 9.0) /5.0) +32)))def convertKilometresToMiles (itse, dist):
paluu str (int (lattia (kelluva (dist) * 0.621371192)))def convertMillibarsToInches (itse, MB):
paluu str (int (lattia (kelluva (MB) /33.8582)))def getTemplateList (itse, malli):
mallilista = []
mallin_osa mallille.split («{«):
if template_part! = «»:
mallin_osa mallille_osa.split ("}"):
if template_part! = «»:
templatelist.append (u »» + malli_osa)palaa templatelist
def getOutputText (itse, tietotyyppi, alkamispäivä, loppupäivä, yö, lyhyt viikonpäivä, keisarillinen, piiloyksiköt, välilyönnit):
#yrittää:
lähtö = u »»# määritä ulostulon nykyiset yksiköt
jos piiloyksiköt == Väärä:
jos imperial == Väärä:
tempunit = u »° C»
nopeusyksikkö = u »kph»
paineyksikkö = u »mb»
else:
tempunit = u »° F»
nopeusyksikkö = u »mph»
paineyksikkö = u »sisään»
else:
tempunit = u »°»
nopeusyksikkö = u »»
paineyksikkö = u »»jos alkamispäivä == Ei mitään: # nykyiset ehdot
jos tietotyyppi == "DW":
jos self.locale == "on":
jos lyhytviikko == Tosi:
output = WeatherText.day_of_week_short_es [self.current_conditions [0] .day_of_week]
else:
lähtö = WeatherText.day_of_week_es [self.current_conditions [0] .day_of_week]
elif self.locale == "fr":
jos lyhytviikko == Tosi:
output = WeatherText.day_of_week_short_fr [self.current_conditions [0] .day_of_week]
else:
output = WeatherText.day_of_week_fr [self.current_conditions [0] .day_of_week]
else:
jos lyhytviikko == Tosi:
output = WeatherText.day_of_week_short [itse.virran_olosuhteet [0] .päivä_viikon]
else:
tuotos = WeatherText.day_of_week [self.current_conditions [0] .day_of_week]
elif-tietotyyppi == "WF": # sääfontti
lähtö = WeatherText.conditions_weather_font [self.current_conditions [0] .condition_code]
elif-tietotyyppi == "LT":
merkkijono = itse.virran_edellytykset [0] .hidas
jos self.isNumeric (merkkijono) == True:
jos keisarillinen == Tosi:
merkkijono = self.convertCelsiusToFahrenheit (merkkijono)
merkkijono = merkkijono + tempunit
output = merkkijono
elif-tietotyyppi == "HT":
merkkijono = itse.virran_edellytykset [0] .korkea
jos self.isNumeric (merkkijono) == True:
jos keisarillinen == Tosi:
merkkijono = self.convertCelsiusToFahrenheit (merkkijono)
merkkijono = merkkijono + tempunit
output = merkkijono
elif-tietotyyppi == "CC":
jos self.locale == "on":
lähtö = WeatherText.conditions_text_es [self.current_conditions [0] .condition_code]
elif self.locale == "fr":
lähtö = WeatherText.conditions_text_fr [self.current_conditions [0] .condition_code]
else:
lähtö = WeatherText.conditions_text [self.current_conditions [0] .condition_code]
elif-tietotyyppi == "CT":
lähtö = itse.virran_edellytykset [0] .ehto_teksti
elif-tietotyyppi == "PC":
merkkijono = itse.virran_edellytykset [0] .ennuste
jos self.isNumeric (merkkijono) == True:
merkkijono = merkkijono + u »%»
output = merkkijono
elif-tietotyyppi == "HM":
merkkijono = itse.virran_edellytykset [0] .kosteus
jos self.isNumeric (merkkijono) == True:
merkkijono = merkkijono + u »%»
output = merkkijono
elif-tietotyyppi == "WD":
merkkijono = itse.virran_edellytykset [0] .tuulen_hakemisto
jos self.isNumeric (merkkijono) == True:
merkkijono = self.getBearingText (merkkijono)jos self.locale == "on":
output = WeatherText.bearing_text_es [merkkijono]
elif self.locale == "fr":
output = WeatherText.bearing_text_fr [merkkijono]
else:
output = merkkijonoelif-tietotyyppi == "BF":
merkkijono = itse.virran_edellytykset [0] .tuulen_hakemisto
jos self.isNumeric (merkkijono) == True:
merkkijono = WeatherText.bearing_arrow_font [self.getBearingText (merkkijono)]
output = merkkijono
elif-tietotyyppi == "WS":
merkkijono = itse.virran_edellytykset [0] .tuulin_nopeus
jos self.isNumeric (merkkijono) == True:
jos keisarillinen == Tosi:
merkkijono = self.convertKilometresToMiles (merkkijono)
merkkijono = merkkijono + nopeusyksikkö
output = merkkijono
elif-tietotyyppi == "WG":
merkkijono = itse.virran_edellytykset [0] .tuuli_hämärät
jos self.isNumeric (merkkijono) == True:
jos keisarillinen == Tosi:
merkkijono = self.convertKilometresToMiles (merkkijono)
merkkijono = merkkijono + nopeusyksikkö
output = merkkijono
elif-tietotyyppi == "CN":
lähtö = itse.virran_edellytykset [0] .kaupunki
elif-tietotyyppi == "SR":
lähtö = itse.virran_edellytykset [0]. auringonnousu
elif-tietotyyppi == "SS":
lähtö = itse.virran_edellytykset [0]. auringonlasku
elif-tietotyyppi == "MP":
lähtö = itse.virran_edellytykset [0] .kuukauden vaihe
elif-tietotyyppi == "MF":
lähtö = WeatherText.conditions_moon_font [self.current_conditions [0] .moon_icon]
elif-tietotyyppi == "BR":
merkkijono = itse.virran_edellytykset [0] .palkin_luku
jos self.isNumeric (merkkijono) == True:
jos keisarillinen == Tosi:
merkkijono = self.convertMillibarsToInches (merkkijono)
merkkijono = merkkijono + painoyksikkö
output = merkkijono
elif-tietotyyppi == "BD":
lähtö = itse.virran_edellytykset [0]. palkki_desc
else:
output = "\ nVIRHE: Tuntematon tietotyyppi pyydetty"else: # ennustetiedot
if endday == Ei mitään: # jos loppupäivää ei ole asetettu, käytä aloituspäivää
loppupäivä = alkamispäiväjos yö == Tosi: # yön ennuste vaaditaan
päivän_numerolle alueella (alkamispäivä, loppupäivä + 1):
jos tietotyyppi == "DW":
jos self.locale == "on":
jos lyhytviikko == Tosi:
output = output + self.getSpaces (välilyönnit) + WeatherText.day_of_week_short_es [self.night_forecast [day_number] .day_of_week]
else:
output = output + self.getSpaces (välilyönnit) + WeatherText.day_of_week_es [self.night_forecast [day_number] .day_of_week]
elif self.locale == "fr":
jos lyhytviikko == Tosi:
output = output + self.getSpaces (välilyönnit) + WeatherText.day_of_week_short_fr [self.night_forecast [day_number] .day_of_week]
else:
output = output + self.getSpaces (välilyönnit) + WeatherText.day_of_week_fr [self.night_forecast [day_number] .day_of_week]
else:
jos lyhytviikko == Tosi:
output = output + self.getSpaces (välilyönnit) + WeatherText.day_of_week_short [self.night_forecast [day_number] .day_of_week]
else:
output = output + self.getSpaces (välilyönnit) + WeatherText.day_of_week [self.night_forecast [day_number] .day_of_week]
elif-tietotyyppi == "WF": # sääfontti
output = output + self.getSpaces (välilyönnit) + WeatherText.conditions_weather_font [self.night_forecast [day_number] .condition_code]
elif-tietotyyppi == "LT":
merkkijono = itse.yön ennuste [päivä_numero]. matala
jos self.isNumeric (merkkijono) == True:
jos keisarillinen == Tosi:
merkkijono = self.convertCelsiusToFahrenheit (merkkijono)
merkkijono = merkkijono + tempunit
output = output + self.getSpaces (välilyönnit) + merkkijonoelif-tietotyyppi == "HT":
merkkijono = itse.yön ennuste [päivä_numero]. korkea
jos self.isNumeric (merkkijono) == True:
jos keisarillinen == Tosi:
merkkijono = self.convertCelsiusToFahrenheit (merkkijono)
merkkijono = merkkijono + tempunit
output = output + self.getSpaces (välilyönnit) + merkkijono
elif-tietotyyppi == "CC":
jos self.locale == "on":
output = output + self.getSpaces (välilyönnit) + WeatherText.conditions_text_es [self.night_forecast [day_number]. condition_code]
elif self.locale == "fr":
output = output + self.getSpaces (välilyönnit) + WeatherText.conditions_text_fr [self.night_forecast [day_number]. condition_code]
else:
output = output + self.getSpaces (välilyönnit) + WeatherText.conditions_text [self.night_forecast [day_number]. condition_code]
elif-tietotyyppi == "CT":
output = output + self.getSpaces (välilyönnit) + self.night_forecast [day_number]. condition_text
elif-tietotyyppi == "PC":
merkkijono = itse.yö_ennuste [päivä_numero] .precip
jos self.isNumeric (merkkijono) == True:
merkkijono = merkkijono + u »%»
output = output + self.getSpaces (välilyönnit) + merkkijono
elif-tietotyyppi == "HM":
merkkijono = itse.yön ennuste [päivä_numero]. kosteus
jos self.isNumeric (merkkijono) == True:
merkkijono = merkkijono + u »%»
output = output + self.getSpaces (välilyönnit) + merkkijono
elif-tietotyyppi == "WD":
merkkijono = itse.yö_ennuste [päivä_numero] .tuuli_hakemisto
jos self.locale == "on":
output = output + self.getSpaces (välilyönnit) + WeatherText.bearing_text_es [merkkijono]
elif self.locale == "fr":
output = output + self.getSpaces (välilyönnit) + WeatherText.bearing_text_fr [merkkijono]
else:
output = output + self.getSpaces (välilyönnit) + merkkijonoelif-tietotyyppi == "BF":
output = output + self.getSpaces (välilyönnit) + WeatherText.bearing_arrow_font [self.night_forecast [day_number] .wind_dir]
elif-tietotyyppi == "WS":
merkkijono = oma.yönennuste [päivä_numero] .tuulin_nopeus
jos self.isNumeric (merkkijono) == True:
jos keisarillinen == Tosi:
merkkijono = self.convertKilometresToMiles (merkkijono)
merkkijono = merkkijono + nopeusyksikkö
output = output + self.getSpaces (välilyönnit) + merkkijono
elif-tietotyyppi == "WG":
merkkijono = oma.yönennuste [päivä_numero] .tuulen_hämärät
jos self.isNumeric (merkkijono) == True:
jos keisarillinen == Tosi:
merkkijono = self.convertKilometresToMiles (merkkijono)
merkkijono = merkkijono + nopeusyksikkö
output = output + self.getSpaces (välilyönnit) + merkkijono
elif-tietotyyppi == "CN":
output = output + self.getSpaces (välilyönnit) + self.night_forecast [päivä_numero] .city
elif-tietotyyppi == "SR":
output = output + self.getSpaces (välilyönnit) + self.night_forecast [day_number]. auringonnousu
elif-tietotyyppi == "SS":
output = output + self.getSpaces (välilyönnit) + self.night_forecast [day_number]. auringonlasku
elif-tietotyyppi == "MP":
output = output + self.getSpaces (välilyönnit) + self.night_forecast [päivä_numero] .moon_phase
elif-tietotyyppi == "MF":
output = output + self.getSpaces (välilyönnit) + WeatherText.conditions_moon_font [self.night_forecast [day_number] .moon_icon]
elif-tietotyyppi == "BR":
output = output + self.getSpaces (välilyönnit) + self.night_forecast [day_number]. bar_read
elif-tietotyyppi == "BD":
output = output + self.getSpaces (välilyönnit) + self.night_forecast [day_number]. bar_desc
else:
output = "\ nVIRHE: Tuntematon tietotyyppi pyydetty"
rikkoaelse: # päivän ennuste halutaan
päivän_numerolle alueella (alkamispäivä, loppupäivä + 1):
jos tietotyyppi == "DW":
jos self.locale == "on":
jos lyhytviikko == Tosi:
output = output + self.getSpaces (välilyönnit) + WeatherText.day_of_week_short_es [self.day_forecast [day_number] .day_of_week]
else:
output = output + self.getSpaces (välilyönnit) + WeatherText.day_of_week_es [self.day_forecast [day_number] .day_of_week]
elif self.locale == "fr":
jos lyhytviikko == Tosi:
output = output + self.getSpaces (välilyönnit) + WeatherText.day_of_week_short_fr [self.day_forecast [day_number] .day_of_week]
else:
output = output + self.getSpaces (välilyönnit) + WeatherText.day_of_week_fr [self.day_forecast [day_number] .day_of_week]
else:
jos lyhytviikko == Tosi:
output = output + self.getSpaces (välilyönnit) + WeatherText.day_of_week_short [self.day_forecast [day_number] .day_of_week]
else:
output = output + self.getSpaces (välilyönnit) + WeatherText.day_of_week [self.day_forecast [day_number] .day_of_week]
elif-tietotyyppi == "WF": # sääfontti
output = output + self.getSpaces (välilyönnit) + WeatherText.conditions_weather_font [self.day_forecast [day_number] .condition_code]
elif-tietotyyppi == "LT":
merkkijono = itsepäiväpäiväennuste [päivä_numero] .hidas
jos self.isNumeric (merkkijono) == True:
jos keisarillinen == Tosi:
merkkijono = self.convertCelsiusToFahrenheit (merkkijono)
merkkijono = merkkijono + tempunit
output = output + self.getSpaces (välilyönnit) + merkkijono
elif-tietotyyppi == "HT":
merkkijono = itsepäivän ennuste [päivä_numero]. korkea
jos self.isNumeric (merkkijono) == True:
jos keisarillinen == Tosi:
merkkijono = self.convertCelsiusToFahrenheit (merkkijono)
merkkijono = merkkijono + tempunit
output = output + self.getSpaces (välilyönnit) + merkkijono
elif-tietotyyppi == "CC":
jos self.locale == "on":
output = output + self.getSpaces (välilyönnit) + WeatherText.conditions_text_es [self.day_forecast [day_number]. condition_code]
elif self.locale == "fr":
output = output + self.getSpaces (välilyönnit) + WeatherText.conditions_text_fr [self.day_forecast [day_number]. condition_code]
else:
output = output + self.getSpaces (välilyönnit) + WeatherText.conditions_text [self.day_forecast [day_number]. condition_code]
elif-tietotyyppi == "CT":
output = output + self.getSpaces (välilyönnit) + self.day_forecast [day_number]. condition_text
elif-tietotyyppi == "PC":
merkkijono = itsepäivän_ennuste [päivä_numero] .precip
jos self.isNumeric (merkkijono) == True:
merkkijono = merkkijono + u »%»
output = output + self.getSpaces (välilyönnit) + merkkijono
elif-tietotyyppi == "HM":
merkkijono = itsepäivän ennuste [päivä_numero]. kosteus
jos self.isNumeric (merkkijono) == True:
merkkijono = merkkijono + u »%»
output = output + self.getSpaces (välilyönnit) + merkkijono
elif-tietotyyppi == "WD":
merkkijono = itsepäiväpäiväennuste [päivä_numero] .tuulen_hakemistojos self.locale == "on":
output = output + self.getSpaces (välilyönnit) + WeatherText.bearing_text_es [merkkijono]
elif self.locale == "fr":
output = output + self.getSpaces (välilyönnit) + WeatherText.bearing_text_fr [merkkijono]
else:
output = output + self.getSpaces (välilyönnit) + merkkijonoelif-tietotyyppi == "BF":
output = output + self.getSpaces (välilyönnit) + WeatherText.bearing_arrow_font [self.day_forecast [day_number] .wind_dir]
elif-tietotyyppi == "WS":
merkkijono = itse.päivä_ennuste [päivä_numero]. tuulen nopeus
jos self.isNumeric (merkkijono) == True:
jos keisarillinen == Tosi:
merkkijono = self.convertKilometresToMiles (merkkijono)
merkkijono = merkkijono + nopeusyksikkö
output = output + self.getSpaces (välilyönnit) + merkkijono
elif-tietotyyppi == "WG":
merkkijono = itse.päivä_ennuste [päivä_numero] .tuuli_joukkoja
jos self.isNumeric (merkkijono) == True:
jos keisarillinen == Tosi:
merkkijono = self.convertKilometresToMiles (merkkijono)
merkkijono = merkkijono + nopeusyksikkö
output = output + self.getSpaces (välilyönnit) + merkkijono
elif-tietotyyppi == "CN":
output = output + self.getSpaces (välilyönnit) + self.day_forecast [day_number]. kaupunki
elif-tietotyyppi == "SR":
output = output + self.getSpaces (välilyönnit) + self.day_forecast [day_number]. auringonnousu
elif-tietotyyppi == "SS":
output = output + self.getSpaces (välilyönnit) + self.day_forecast [day_number]. auringonlasku
elif-tietotyyppi == "MP":
output = output + self.getSpaces (välilyönnit) + self.day_forecast [päivä_numero] .moon_phase
elif-tietotyyppi == "MF":
output = output + self.getSpaces (välilyönnit) + WeatherText.conditions_moon_font [self.day_forecast [day_number] .moon_icon]
elif-tietotyyppi == "BR":
output = output + self.getSpaces (välilyönnit) + self.day_forecast [day_number]. bar_read
elif-tietotyyppi == "BD":
output = output + self.getSpaces (välilyönnit) + self.day_forecast [day_number]. bar_desc
else:
output = u »\ nVIRHE: Tuntematon tietotyyppi pyydetty»
rikkoaoutput = u »» + output.strip (u »«) # menettävät etu- / loppuosan
paluulähtö#paitsi:
#print "getOutputText: Odottamaton virhe:", sys.exc_info () [0]def getOutputTextFromTemplate (itse, malli):
#yrittää:# avainta mallipohjan tiedoille
DATATYPE_KEY = "–datatype ="
STARTDAY_KEY = "–startday ="
ENDDAY_KEY = "–endday ="
NIGHT_KEY = "- yö"
SHORTWEEKDAY_KEY = "- lyhytviikkopäivä"
IMPERIAL_KEY = "-periaate"
HIDEUNITS_KEY = "–piiloyksiköt"
SPACES_KEY = "–spaces ="lähtö = u »»
optionfound = väärä
#lata tiedosto
yrittää:
fileinput = avoin (self.options.template)
malli = fileinput.read ()
fileinput.close ()
paitsi:
output = u »Mallitiedostoa ei löydy!»templatelist = self.getTemplateList (malli)
# antaa käydä läpi malliluettelon ja määrittää tuloksen jokaiselle löydetylle kohteelle
i: lle alueella (0, len (templatelist) -1):pos = templatelist [i] .find (DATATYPE_KEY)
jos pos! = -1:
löydetty option = True
pos = pos + len (DATATYPE_KEY)
tietotyyppi = templatelist [i] [pos: pos + 4] .kaistale («}»). nauha («{«). nauha («-«). nauha (»«)
else:
tietotyyppi = Ei mitäänpos = templatelist [i] .find (STARTDAY_KEY)
jos pos! = -1:
löydetty option = True
pos = pos + len (STARTDAY_KEY)
aloituspäivä = int (templatelist [i] [pos: pos + 4] .strip ("}"). strip ("{"). strip ("-"). strip (""))
else:
alkamispäivä = Ei mitäänpos = templatelist [i] .find (ENDDAY_KEY)
jos pos! = -1:
löydetty option = True
pos = pos + len (ENDDAY_KEY)
loppupäivä = int (templatelist [i] [pos: pos + 4] .strip ("}"). strip ("{"). strip ("-"). strip (""))
else:
loppupäivä = Ei mitäänpos = templatelist [i] .find (NIGHT_KEY)
jos pos! = -1:
löydetty option = True
yö = totta
else:
yö = vääräpos = templatelist [i] .find (SHORTWEEKDAY_KEY)
jos pos! = -1:
löydetty option = True
lyhytviikko = totta
else:
lyhytviikko = vääräpos = templatelist [i] .find (IMPERIAL_KEY)
jos pos! = -1:
löydetty option = True
imperial = tosi
else:
imperial = vääräpos = templatelist [i] .find (HIDEUNITS_KEY)
jos pos! = -1:
löydetty option = True
piiloyksiköt = Tosi
else:
piiloyksiköt = vääräpos = templatelist [i] .find (SPACES_KEY)
jos pos! = -1:
löydetty option = True
pos = pos + len (SPACES_KEY)
välilyönnit = int (templatelist [i] [pos: pos + 4] .kaistale («}»). nauha («{«). nauha («-«). nauha (»«))
else:
välilyönnit = 1jos optionfound == Tosi:
templatelist [i] = self.getOutputText (tietotyyppi, alkamispäivä, loppupäivä, yö, lyhyt viikonpäivä, imperial, piiloyksiköt, välilyönnit)
optionfound = väärä# käy läpi luettelo, joka yhdistää tuloksen nyt, kun se on täytetty
templatelist-tuotteelle:
lähtö = tuotos + kohdepaluulähtö
#paitsi:
#print "getOutputTextFromTemplate: Odottamaton virhe:", sys.exc_info () [0]def fetchData (itse):
# hae aina tietoja, käytä keskustelutoimintoja näissä tiedoissa
file_path_current = self.TEMP_FILEPATH_CURRENT.replace ("LOCATION", self.options.location)
file_path_dayforecast = self.TEMP_FILEPATH_DAYFORECAST.replace ("LOCATION", self.options.location)
file_path_nightforecast = self.TEMP_FILEPATH_NIGHTFORECAST.replace ("LOCATION", self.options.location)if self.isConnectionAvailable () == Väärä:
jos os.path.exists on olemassa (file_path_current):
RefetchData = väärä
muuten: # ei yhteyttä, ei välimuistia, bang!
print "Internet-yhteyttä ei ole käytettävissä eikä välimuistissa olevia säätietoja ole."
elif self.options.refetch == Tosi:
RefetchData = Tosi
else:
# tarvitseeko tietoja hakea uudelleen?
jos os.path.exists on olemassa (file_path_current):
lastmodDate = time.localtime (os.stat (file_path_current) [ST_MTIME])
expiryDate = (päivämäärä.datetime.today () - datetime.timedelta (minuuttia = itse.LOPPU_MINUTIT)). timetuple ()jos viimeinen voimassaolopäivä> lastmodDate:
RefetchData = Tosi
else:
RefetchData = väärä
else:
RefetchData = Tosi# hae nykyisten olosuhteiden tiedot joko verkkosivustolta tai 'poimimalla'
jos RefetchData == Tosi:# hanki nykyisten olosuhteiden tiedot xoap-palvelusta
yrittää:# http://xoap.weather.com/weather/local/UKXX0103?cc=*&dayf=5&link=xoap∏=xoap&par=1061785028&key=e374effbfd74930b
url = 'http://xoap.weather.com/weather/local/' + self.options.location + '? cc = * & dayf = 8 & link = xoap∏ = xoap & par = 1061785028 & key = e374effbfd74930b & yksikkö = m '
jos self.options.verbose == Tosi:
tulosta >> sys.stdout, «haetaan säätietoja«, urlUsock = urllib2.urlopen (url)
xml = usock.read ()
Usock.close ()
self.weatherxmldoc = minidom.parseString (xml)
paitsi:
tulosta "fetchData: Odottamaton virhe:", sys.exc_info () [0]
tulosta "Säänlähteeseen ei saada yhteyttä tämänhetkisten olosuhteiden vuoksi"# kerro käyttäjälle, jos sijainti on huono ...
found = xml.find ("Virheellinen sijainti annettu")
jos löytyy! = -1:
tulosta "Virheellinen sijainti annettu"# kysy säätietoja, lataa luokan rakenteeseen ja peitä se
yrittää:# valmistele säätietoluettelot
self.current_conditions = []
self.day_forecast = []
self.night_forecast = []# kerää yleisiä tietoja
weather_n = self.weatherxmldoc.documentElement
location_n = weather_n.getElementsByTagName ('loc') [0]
city_n = sijainti_n.getElementsByTagName ('dnam') [0]
kaupunki = self.getText (city_n.childNodes)# kerää nykyisten olosuhteiden tiedot
day_of_week = u »tänään»
sad = u »Ei sovellu»
sunrise_n = location_n.getElementsByTagName ('sunr') [0]
sunrise = self.getText (sunrise_n.childNodes)
sunset_n = location_n.getElementsByTagName ('aurinko') [0]
sunset = self.getText (sunset_n.childNodes)
current_condition_n = weather_n.getElementsByTagName ('cc') [0]
current_desc_n = current_condition_n.getElementsByTagName ('t') [0]
current_desc = self.getText (current_desc_n.childNodes)
current_code_n = current_condition_n.getElementsByTagName ('kuvake') [0]
current_code = self.getText (current_code_n.childNodes)
current_temp_n = current_condition_n.getElementsByTagName ('tmp') [0]
current_temp = self.getText (current_temp_n.childNodes)
current_temp_feels_n = current_condition_n.getElementsByTagName ('flik') [0]
current_temp_feels = self.getText (current_temp_feels_n.childNodes)
bar_n = current_condition_n.getElementsByTagName ('baari') [0]
bar_read_n = bar_n.getElementsByTagName ('r') [0]
bar_read = self.getText (bar_read_n.childNodes)
bar_desc_n = bar_n.getElementsByTagName ('d') [0]
bar_desc = self.getText (bar_desc_n.childNodes)
wind_n = current_condition_n.getElementsByTagName ('tuuli') [0]
wind_speed_n = wind_n.getElementsByTagName ('s') [0]
wind_speed = self.getText (tuulen_nopeus_n.childNodes)
wind_gust_n = wind_n.getElementsByTagName ('puuska') [0]
wind_gusts = self.getText (wind_gust_n.childNodes)
wind_dir_n = wind_n.getElementsByTagName ('d') [0]
wind_direction = self.getText (tuulen_dir_n.lapsen solmut)
kosteus_n = nykyinen_olosuhde_n.getElementsByTagName ('hmid') [0]
kosteus = self.getText (kosteuden_n.lapsen solmut)
moon_n = current_condition_n.getElementsByTagName ('kuu') [0]
moon_icon_n = moon_n.getElementsByTagName ('kuvake') [0]
moon_icon = self.getText (moon_icon_n.childNodes)
moon_phase_n = moon_n.getElementsByTagName ('t') [0]
moon_phase = self.getText (moon_phase_n.childNodes)
current_conditions_data = WeatherData (viikon_viikko, nykyinen_lämpötila, nykyinen_lämpötila, nykyinen_koodi, nykyinen_desc, sadekosteus, tuulen_suunta, tuulen nopeus, tuulen_joukot, kaupunki, auringonnousu, auringonlasku, kuun vaihe, kuun_kuvake, palkin_luku, bar_desc)
self.current_conditions.append (current_conditions_data)# kerää ennustetietoja
bar_read = u »Ei sovellu»
bar_desc = u »Ei sovellu»
kuu_vaihe = u »Ei sovellu»
moon_icon = u »na»
ennuste_n = sää_n.getElementsByTagName ('dayf') [0]
day_nodes = ennuste_n.getElementsByTagName ('päivä')päivä varten day_nodes:
day_of_week = day.getAttribute ('t')
day_of_year = day.getAttribute ('dt')
high_temp_n = day.getElementsByTagName ('hei') [0]
high_temp = self.getText (korkea_temp_n.childNodes)
low_temp_n = day.getElementsByTagName ('matala') [0]
low_temp = self.getText (low_temp_n.childNodes)sunrise_n = day.getElementsByTagName ('sunr') [0]
sunrise = self.getText (sunrise_n.childNodes)
sunset_n = day.getElementsByTagName ('aurinko') [0]
sunset = self.getText (sunset_n.childNodes)# päivän ennustekohtaiset tiedot
daytime_n = day.getElementsByTagName ('osa') [0] # päivä
condition_code_n = daytime_n.getElementsByTagName ('kuvake') [0]
condition_code = self.getText (condition_code_n.childNodes)
condition_n = daytime_n.getElementsByTagName ('t') [0]
ehto = self.getText (ehto_n.lapsen solmut)
rain_n = daytime_n.getElementsByTagName ('ppcp') [0]
sad = itse.getText (saden_n.lapsen solmut)
kosteus_n = päivällä_n.getElementsByTagName ('hmid') [0]
kosteus = self.getText (kosteuden_n.lapsen solmut)
wind_n = daytime_n.getElementsByTagName ('tuuli') [0]
wind_speed_n = wind_n.getElementsByTagName ('s') [0]
wind_speed = self.getText (tuulen_nopeus_n.childNodes)
wind_direction_n = wind_n.getElementsByTagName ('t') [0]
wind_direction = self.getText (tuulen_suunta_n.lapsen solmut)
wind_gusts_n = wind_n.getElementsByTagName ('puuska') [0]
wind_gusts = self.getText (wind_gusts_n.childNodes)
day_forecast_data = WeatherData (viikon_viikon, matalan lämpötilan, korkean lämpötilan, kunnon_koodi, kunto, sadetila, kosteus, tuulen suunta, tuulen nopeus, tuulen_joukot, kaupunki, auringonnousu, auringonlasku, kuun vaihe, kuun_kuvake, palkinluku, bar_desc)
self.day_forecast.append (day_forecast_data)# yön ennusteita koskevat tiedot
daytime_n = day.getElementsByTagName ('osa') [1] # yö
condition_code_n = daytime_n.getElementsByTagName ('kuvake') [0]
condition_code = self.getText (condition_code_n.childNodes)
condition_n = daytime_n.getElementsByTagName ('t') [0]
ehto = self.getText (ehto_n.lapsen solmut)
rain_n = daytime_n.getElementsByTagName ('ppcp') [0]
sad = itse.getText (saden_n.lapsen solmut)
kosteus_n = päivällä_n.getElementsByTagName ('hmid') [0]
kosteus = self.getText (kosteuden_n.lapsen solmut)
wind_n = daytime_n.getElementsByTagName ('tuuli') [0]
wind_speed_n = wind_n.getElementsByTagName ('s') [0]
wind_speed = self.getText (tuulen_nopeus_n.childNodes)
wind_direction_n = wind_n.getElementsByTagName ('t') [0]
wind_direction = self.getText (tuulen_suunta_n.lapsen solmut)
wind_gusts_n = wind_n.getElementsByTagName ('puuska') [0]
wind_gusts = self.getText (wind_gusts_n.childNodes)
night_forecast_data = WeatherData (viikon_viikon, matalan lämpötilan, korkean lämpötilan, kunnon_koodi, kunto, sademäärä, kosteus, tuulen suunta, tuulen nopeus, tuulen_joukot, kaupunki, auringonnousu, auringonlasku, kuun vaihe, kuun_kuvake, palkin_luku, bar_desc)
self.night_forecast.append (night_forecast_data)# suolakurkkua seuraavan kerran!
fileoutput = auki (file_path_current, 'w')
suolakurkku.dump (self.current_conditions, fileoutput)
fileoutput.close ()fileoutput = avoin (file_path_dayforecast, 'w')
suolakurkku.dump (self.day_forecast, fileoutput)
fileoutput.close ()fileoutput = avoin (file_path_nightforecast, 'w')
suolakurkku.dump (self.night_forecast, fileoutput)
fileoutput.close ()paitsi:
tulosta "fetchData: Odottamaton virhe:", sys.exc_info () [0]
tulosta "Säätietoja ei voi kysyä"else: # hae säätiedot marinoiduista luokkatiedostoista
jos self.options.verbose == Tosi:
tulosta >> sys.stdout, «noutaa säätietoja tiedostosta:«, file_path_currentfileinput = auki (file_path_current, 'r')
self.current_conditions = suolakurkku.load (tiedoston syöttö)
fileinput.close ()jos self.options.verbose == Tosi:
tulosta >> sys.stdout, "haetaan päiväennusteita tiedostoista:", file_path_dayforecast, file_path_nightforecastfileinput = auki (file_path_dayforecast, 'r')
self.day_forecast = suolakurkku.load (tiedoston syöttö)
fileinput.close ()jos self.options.verbose == Tosi:
tulosta >> sys.stdout, «haetaan päivän ennustetiedostoja tiedostoista:«, file_path_nightforecast, file_path_nightforecastfileinput = avoin (file_path_nightforecast, 'r')
self.night_forecast = suolakurkku.load (tiedoston syöttö)
fileinput.close ()def outputData (itse):
#yrittää:if self.options.template! = Ei mitään:
output = itse.getOutputTextFromTemplate (self.options.template)
else:
output = self.getOutputText (self.options.datatype, self.options.startday, self.options.endday, self.options.night, self.options.shortweekday, self.options.perperial, self.options.hideunits, self. vaihtoehdot. välit)
tuloste.encode ("utf-8")
#paitsi:
#print «outputData: Odottamaton virhe:«, sys.exc_info () [0]jos __nimi__ == "__main__":
jäsennin = CommandLineParser ()
(vaihtoehdot, argumentit) = parser.parse_args ()jos options.verbose == Tosi:
tulosta >> sys.stdout, "location:", options.location
tulosta >> sys.stdout, "imperial:", options.imperial
tulosta >> sys.stdout, "datatyyppi:", options.datatype
tulosta >> sys.stdout, "yö:", vaihtoehdot.yö
tulosta >> sys.stdout, "aloituspäivä:", options.startday
tulosta >> sys.stdout, "end day:", options.endday
tulosta >> sys.stdout, "välilyönnit", options.spaces
tulosta >> sys.stdout, "verbose:", options.verbose
tulosta >> sys.stdout, "refetch:", options.refetch# luo uusi globaali sääobjekti
sää = GlobalWeather (vaihtoehdot)
weather.fetchData ()
weather.outputData ()
Luomme tiedoston ~ / Conky / scripts / myweather.template
gedit ~ / Conky / scripts / myweather.template
liitämme seuraavat sisälle:
{–Datatype = DW –startday = 1}: {–datatype = CC –startday = 1}
{–Datatype = HT –startday = 1} / {–datatype = LT –startday = 1} Tuuli {–datatype = WD –startday = 1} - {–datatype = WS –startday = 1}
Kosteus: {–datatype = HM –startday = 1} Sademäärä: {–datatype = PC –startday = 1}
Auringonnousu: {–datatype = SR –startday = 1} Auringonlasku: {–datatype = SS –startday = 1}
----------------
{–Datatype = DW –startday = 2}: {–datatype = CC –startday = 2}
{–Datatype = HT –startday = 2} / {–datatype = LT –startday = 2} Tuuli {–datatype = WD –startday = 2} - {–datatype = WS –startday = 2}
Kosteus: {–datatype = HM –startday = 2} Sademäärä: {–datatype = PC –startday = 2}
Auringonnousu: {–datatype = SR –startday = 2} Auringonlasku: {–datatype = SS –startday = 2}
----------------
{–Datatype = DW –startday = 3}: {–datatype = CC –startday = 3}
{–Datatype = HT –startday = 3} / {–datatype = LT –startday = 3} Tuuli {–datatype = WD –startday = 3} - {–datatype = WS –startday = 3}
Kosteus: {–datatype = HM –startday = 3} Sademäärä: {–datatype = PC –startday = 3}
Auringonnousu: {–datatype = SR –startday = 3} Auringonlasku: {–datatype = SS –startday = 3}
----------------
{–Datatype = DW –startday = 4}: {–datatype = CC –startday = 4}
{–Datatype = HT –startday = 4} / {–datatype = LT –startday = 4} Tuuli {–datatype = WD –startday = 4} - {–datatype = WS –startday = 4}
Kosteus: {–datatype = HM –startday = 4} Sademäärä: {–datatype = PC –startday = 4}
Auringonnousu: {–datatype = SR –startday = 4} Auringonlasku: {–datatype = SS –startday = 4}
Luomme tiedoston ~ / Conky / scripts / mail / conkyEmail.py (meidän on luotava postikansio)
gedit ~ / Conky / scripts / mail / conkyEmail.py
ja liitämme seuraavat sisälle:
tuonti os
tuo merkkijono# Kirjoita käyttäjänimesi ja salasanasi alla olevaan lainausmerkkeihin
# esimerkiksi. käyttäjätunnus = »käyttäjänimi» ja salasana = »salasana»
käyttäjänimi = »YOUR_USUARIO_SINARROBA«
salasana = »SINUN AVAIN«com = »wget -O - https: //» + käyttäjänimi + »:» + salasana + »@ mail.google.com / mail / feed / atom –no-check-sertifikaatti»
temp = os. avaa (com)
msg = temp.read ()
index = string.find (msg, » »)
index2 = merkkijono.find (msg, » »)
fc = int (msg [indeksi + 11: indeksi2])jos fc == 0:
tulosta "0 uutta"
else:
tulosta str (fc) + »uusi»
Joten nyt sinulla on 7 tiedostoa:
Kansiossa: ~
-> .stconconky << - tee suoritettava
Kansiossa: ~ / Conky
-> conkymain
-> ennuste
-> saalistaja
ja kansiossa: ~ / Conky / scripts
-> conkyForecast.py << - tee suoritettava
-> myweather.template
ja kansiossa: ~ / Conky / scripts / mail
conkyEmail.py << - tee suoritettava
Ja siinä kaikki, selvennykset, missä sanotaan / home / user / ... käyttäjänimesi menee ja siinä osassa, johon Gmail-tiedot menevät, korostin väreillä, joihin sinun on laitettava tietosi.
tappaa taivaallinen prosessi kirjoita konsoliin
killall conky
suorittaa conky-kirjoitus konsolille
./.startconky
kun olet säätänyt kaiken, jos haluat, että conky aloittaa jokaisen istunnon
Järjestelmä -> Asetukset -> Istunnot ja käynnistysohjelmissa lisäämme sen
Nimeä voimme kirjoittaa Conky, järjestyksessä ./.startconky, että se alkaa joka kerta, kun käynnistät tietokoneen.
Siinä se, toivottavasti se auttaa sinua.