Conky, mitt oppsett

Fecfactor ba meg i går om å publisere konfigurasjonen av conky som jeg viser i skjermbildet nedenfor

Som du kan se, handler det om 3 conkys, som utføres ved hjelp av et skript, konfigurasjonen av den samme er basert på dette innlegget lagt ut av bruker Bruce M. i forumene til Ubuntu-Ar med noen modifikasjoner i mail conky, som i mitt tilfelle er for Gmail.

I referanseposten er det veldig godt forklart av Bruce, men også som et minnehjelpemiddel for meg, vil jeg kopiere trinnene som skal følges, og koden til mine conkys for den som har det.

Vel, selvfølgelig må vi ha conky, curl og python installert, så vi skriver inn en konsoll:

sudo apt-get install conky curl python

Kilden til været.ttf og piler.ttf er her. Kilden til månen .ttf er her når du er lastet ned, må du kopiere dem til / usr / share / fonts

La oss nå lage skriptet vårt som heter ~. / Startconky

gksudo gedit ~ / .startconky

inne i den tomme filen limer vi inn følgende

#! / Bin / bash
sove 0 & # 0 bra for Xfce - bruk 20 til 30 for Gnome
conky -c ~ / Conky / conkymain &
#sleep 0 & # 0 bra for Xfce - bruk 1 til Gnome
conky -c ~ / Conky / conkyforecast &
#sleep 0 & # 0 bra for Xfce - bruk 1 til Gnome
conky -c ~ / Conky / conkymail &

Nå oppretter vi conkymain-filen i ~ / Conky-mappen. Hvis vi ikke har Conky-mappen, må vi opprette den.

gedit ~ / Conky / conkymain

Jeg bruker Calibri-skrifttypen. Hvis du ikke har den, bytt den ut med hva du vil.

Vi holder oss inne i det som følger

bakgrunn nr
egen_vindu ja
eget_vindu_gjennomsiktig ja
own_window_hints undecorated, below, sticky, skip_taskbar, skip_pager
eget_vindu_farge svart
dobbel_buffer ja
bruk_spacer igjen
bruk_xft ja
font calibri: størrelse = 9
xftfont calibri: størrelse = 9
xftalpha 0.5
oppdateringsintervall 5.0
store bokstaver nr. sett til Ja hvis du vil at all tekst skal være med store bokstaver
stippled_border 3
border_margin 9
border_width 10
standard_farge hvit
default_outline_color svart
standard_skygge_farge svart
farge0 cyan
farge1 lyseblå
farge2 oransje
farge3 gul
color4 hvete
farge5 hvit
farge6 hvit
farge7 hvit
farge8 hvit
farge9 hvit
justering øverst til høyre # eller øverst til venstre, nederst til venstre, nederst til høyre
gap_x 10
gap 35
text_buffer_size 128 # bruk 1024 for prognosen
no_buffers ja # Trekk filsystembuffere fra brukt minne?
trekningsbord nr
draw_outline ja # forsterker tekst hvis ja
draw_shades ja # skygge farge svart

TEKST
$ {font calibri: size = 12} $ {alignc} $ {color1} $ sysname $ kernel på $ machine} $ color $ font
$ {font calibri: size = 12} $ {alignc} $ {color2} $ {exec whoami} @ $ nodenavn $ color $ font
$ {color0} $ {hr 1} $ farge
$ {font calibri: size = 20} $ {alignc} $ {time% H:% M} $ font
$ {font calibri: size = 12} $ {color1} $ {alignc} $ {time% A,% d% b. % Y} $ farge $ font
$ {color3} Oppetid: $ {alignr 2} $ oppetid $ farge
$ {color0} $ {hr 1} $ farge
$ {voffset 5} $ {color2} CPU: $ {alignc} $ color $ running_processes $ {color1} / $ color $ prosesser $ {alignr 2} $ {color2} $ {cpubar cpu0 14,80} $ color
$ {color1} $ {voffset -16} $ {alignr 5} $ cpu% $ farge
$ {voffset 2} $ {color1} Last Gj.sn. ($ {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} $ farge
$ {color1} $ {voffset -16} $ {alignr 5} $ memperc% $ farge
$ {voffset 2} $ {color1} Bufret: $ color $ {buffers} $ {alignr 2} $ {color1} Bufret: $ color $ {cached}
$ {voffset 5} $ {color2} SWAP: $ color $ swap $ {color2} / $ color $ {swapmax} $ {alignr 2} $ {color2} $ {swapbar 14,80} $ color
$ {color1} $ {voffset -16} $ {alignr 5} $ swapperc%
$ {color0} $ {hr 1} $ farge
$ {voffset 5} $ {color2} HD Info $ {color1} - $ color Free $ {color1} - Brukt - $ {color2} Totalt
$ {voffset 5} $ {color1} Rot: $ color $ {fs_free_perc /}% $ {alignr 2} $ {fs_free /} $ {color2} / $ {color1} $ {fs_used /} $ color / $ {color2} $ {fs_size /} $ farge
$ {color1} Hjem: $ color $ {fs_free_perc / home / user}% $ {alignr 2} $ {fs_free / home / user} $ {color2} / $ {color1} $ {fs_used / home / user} $ color / $ {color2} $ {fs_size / home / user} $ farge
$ {color0} $ {hr 1} $ farge
$ {color1} Fra: $ color Buenos Aires, Argentina
$ {color1} Lat: $ {color2} 34 ° 35'S $ {color1} Long: $ {color2} 58 ° 21'W $ {color1} Alt: $ {color2} 25 m $ color
$ {voffset 5} $ {color2} $ {font calibri: size = 12} i dag: $ font $ {color3} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = CC} $ farge $ {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} $ {font Arrows: size = 20} $ {color4} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = BF} $ color $ font
$ {alignc 10} $ {voffset 5} $ {color4} Vind: $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = WS} $ color
$ {color1} Fuktighet: $ {color3} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = HM} $ {alignr 2} $ {color1} Nedbør: $ {color3} $ { execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = PC} $ farge
$ {alignc} $ {color1} Trykk: $ {color3} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = BR} - $ {color3} $ {execi 3600 python ~ / Conky /scripts/conkyForecast.py –location = ARBA0009 –datatype = BD} $ farge
$ {color4} $ {hr} $ farge
$ {color1} Soloppgang: $ {color3} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = SR} $ {alignr 2} $ {color1} Solnedgang: $ {color3} $ { execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = SS} $ farge
$ {voffset 15} $ {color1} Moon: $ {color4} $ {alignr 2} $ {color3} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = MP} $ color
$ {voffset -20} $ {offset 80} $ {color4} $ {font moon phases: size = 20} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = MF} $ font $ farge
$ {color0} $ {hr} $ farge
$ {voffset 5} $ {color2} IP: $ {alignc} $ color $ {addr eth0}
$ {color1} Ned: $ color $ {downspeed eth0} k / s $ {alignr 2} $ {color1} Opp: $ color $ {upspeed eth0} k / s
$ {color1} Totalt: $ color $ {totaldown eth0} $ {alignr 2} $ {color1} Totalt: $ color $ {totalup eth0}
$ {color1} Innkommende: $ color $ {tcp_portmon 1 32767 count} $ {color1} Utgående: $ color $ {tcp_portmon 32768 61000 count} $ {alignr 2} $ {color1} Totalt: $ color $ {tcp_portmon 1 65535 count}
$ {voffset 5} $ {color2} Tilkoblinger: $ color $ {tcp_portmon 32768 61000 count} $ {alignr 2} $ {color2} Service / Port $ 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} $ farge

vi lager filen ~ / Conky / conkyforecast

gedit ~ / Conky / conkyforecast

og vi limer inn følgende

bakgrunn nr
egen_vindu ja
eget_vindu_gjennomsiktig ja
own_window_hints undecorated, below, sticky, skip_taskbar, skip_pager
eget_vindu_farge svart
dobbel_buffer ja
bruk_spacer igjen
bruk_xft ja
font calibri: størrelse = 8
xftfont calibri: størrelse = 8
xftalpha 0.5
oppdateringsintervall 5.0
store bokstaver nr. sett til Ja hvis du vil at all tekst skal være med store bokstaver
stippled_border 3
border_margin 9
border_width 10
standard_farge hvit
default_outline_color svart
standard_skygge_farge svart
farge0 cyan
farge1 lyseblå
farge2 oransje
farge3 gul
color4 hvete
farge5 hvit
farge6 hvit
farge7 hvit
farge8 hvit
farge9 hvit
justering bunn_ venstre # eller topp_ venstre, nederst_ venstre, nederst_høyre
gap_x 10
gap 35
text_buffer_size 1024 # bruk 1024 for prognosen
no_buffers ja # Trekk filsystembuffere fra brukt minne?
trekningsbord nr
draw_outline ja # forsterker tekst hvis ja
draw_shades ja # skygge farge svart

TEKST
$ {color4} $ {font calibri: size = 11} Utvidet prognose $ font $ color
$ {color0} $ {hr} $ farge
$ {color4} $ {font calibri: size = 9} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –template = / home / user / Conky / scripts / myweather.template} $ font $ farge

vi oppretter filen ~ / Conky / conkymail

gedit ~ / Conky / conkymail

vi limer inn følgende i filen

bakgrunn nr
egen_vindu ja
eget_vindu_gjennomsiktig ja
own_window_hints undecorated, below, sticky, skip_taskbar, skip_pager
eget_vindu_farge svart
dobbel_buffer ja
bruk_spacer igjen
bruk_xft ja
font calibri: størrelse = 8
xftfont calibri: størrelse = 8
xftalpha 0.5
oppdateringsintervall 5.0
store bokstaver nr. sett til Ja hvis du vil at all tekst skal være med store bokstaver
stippled_border 3
border_margin 9
border_width 10
standard_farge hvit
default_outline_color svart
standard_skygge_farge svart
farge0 cyan
farge1 lyseblå
farge2 oransje
farge3 gul
color4 hvete
farge5 hvit
farge6 hvit
farge7 hvit
farge8 hvit
farge9 hvit
justering bunn_ venstre # eller topp_ venstre, nederst_ venstre, nederst_høyre
gap_x 565
gap 35
text_buffer_size 128 # bruk 1024 for prognosen
no_buffers ja # Trekk filsystembuffere fra brukt minne?
trekningsbord nr
draw_outline ja # forsterker tekst hvis ja
draw_shades ja # skygge farge svart

TEKST
$ {font calibri: size = 11} $ {alignc} $ {color4} Gmail
$ {color0} $ {hr} $ farge
$ {font calibri: size = 11} $ {color4} Vi har $ {color3} $ {execi 300 python ~ / Conky / scripts / mail / conkyEmail.py} $ {color4} email (s) $ font

Vi oppretter en fil i ~ / Conky / scripts / conkyForecast.py (vi må opprette skriptmappen)

gedit ~ / Conky / scripts / conkyForecast.py

#! / usr / bin / python
# - * - koding: utf-8 - * -
################################################################## ##########################################
# conkyForecast.py er et (ikke så) enkelt (lenger) python-skript å samle på
# detaljer om det aktuelle været for bruk i conky.
#
# Forfatter: Kaivalagi
# Opprettet: 13
# Modifikasjoner:
# 14/04/2008 Tillat dagområder for prognosedata
# 14/04/2008 Se etter tilkobling til xoap-tjenesten
# 18/04/2008 Tillat innstilling av mellomrom for rangert utgang
# 18/04/2008 Tillat utdata fra natt og dag
# 18/04/2008 Støtteområde for tilstandskodetekst «CC» -alternativ, avventer spansk oversettelse
# 18/04/2008 Bruk beising for klassedata i stedet for å åpne xml, dette omgår behovet for å forhøre bufrede data
# 19/04/2008 Lagt til spansk tilstandstekst - Takk Bruce M
# 19/04/2008 Lagt til isnumerisk sjekk på all numerisk utgang med enhetssuffiks
# 19/04/2008 Endret navngivning av pickle-fil for å inkludere stedskode
# 19/04/2008 Lagt til spansk ukedagskonvertering via lokal
# 20/04/2008 Lagt til anstendig parser for kommandoargument
# 20/04/2008 Lagt til - alternativet kort ukedag, hvis datoen ukedag er forkortet til 3 tegn
# 21/04/2008 Faste lokale alternativer for prognoseproduksjon
# 21/04/2008 Lagt til –malalternativ for å tillate egendefinert utdata ved hjelp av en enkelt exec-samtale 🙂
# 21/04/2008 Lagt til - alternativ for skjermenheter for å fjerne for eksempel mph og C fra utdata
# 23/04/2008 Fjernet –periodisk alternativ fra malen, MÅ dette settes som et standardalternativ på skriptanropet og ikke brukes i malfilen.
# 23/04/2008 Readded –imperial alternativ til mal, muliggjør metriske eller imperiale verdier per datatype. Merk når kommandolinjealternativet ikke fungerer, maler.
# 23/04/2008 Lagt til utdata som varsler brukeren hvis den gitte plasseringen er dårlig
# 24/04/2008 Lagt til håndtering uten tilkobling, vil gå tilbake til hurtigbufrede data nå (feil hvis ingen cache eksisterer). Tester ved å prøve å åpne xoap.weather.com
# 24 Fast Celsius til fahrenheit-konvertering
# 06 Oppdatert url brukt etter at webservice ble oppdatert
# 09 Konsoliderte nåværende tilstand og prognosedata hentes i en samtale
# 09/05/2008 Lagt soloppgang og solnedgang til datatypene, disse er spesifikke for både nåværende forhold og prognosedata
# 09/05/2008 Lagt til månefase, barometeravlesning og barometerbeskrivelse til datatyper, disse er bare spesifikke for gjeldende forhold, og det samme er ikke relevant i forventet produksjon
# 09/05/2008 Lagt til enhetskonvertering for barometer fra mb til tommer (imperial)
# 09 Oppdatert spansk tilstandstekst - Takk Bruce M
# 10 Lagt til franske språkdata - Takk benpaka
# 12/05/2008 Lagt til ny BF-datatype (med skrift) for å gi et piltegn (bruk med Arrow.ttf-skrift) i stedet for NSEW-utdata fra WD (vindretning)
# 12/05/2008 Oppdatert WD-utgang for å være stedsspesifikk, støtter for øyeblikket standard engelsk og spansk - takk Bruce M
# 18/05/2008 Lagt til ny MF (måneskrift) datatype for å gi et måneskrifttegn (feil tegn og ingen dedikert skrift ennå).
# 21/05/2008 For nåværende forhold viser –datatype = LT alternativet nå “føles som” temperatur i stedet for den nåværende temperaturen
#
# ALT:
# Konsolider pkl-filer i en fil / klasse
# Legg til en værfont basert på månefaseutgang basert på måneikondata
# ??? Noen flere krav der ute?

importer sys, os, socket, urllib2, datetime, time
fra xml.dom import minidom
fra statlig import *
fra optparse import OptionParser
importer lokal
importere gettext
importere sylteagurk
fra matematikkimport *

APP = »conkyForecast.py»
DIR = os.path.dirname (__file__) + '/ locale'
gettext.bindtextdomain (APP, DIR)
gettext.textdomain (APP)
_ = gettext.gettext

klasse CommandLineParser:

parser = Ingen

def __init __ (selv):

self.parser = OptionParser ()
self.parser.add_option («- l», »- location», dest = »location», default = »UKXX0103 ″, type =» string », metavar =» CODE », help = u» stedskode for værdata [ standard:% standard], Bruk følgende url for å bestemme posisjonskoden din etter bynavn: http://xoap.weather.com/search/search?where=Norwich »)
self.parser.add_option ("- d", "- datatype", dest = "datatype", default = "HT", type = "string", metavar = "DATATYPE", help = u "[standard:% standard] Datatypealternativene er: DW (Ukedag), WF (Weather Font Output), LT (Prognose: Lav Temp, Strøm: Føles som Temp), HT (Prognose: Høy Temp, Strøm: Gjeldende Temp), CC (Gjeldende Forhold), CT (forholdstekst), PC (nedbørsmulighet), HM (fuktighet), WD (vindretning), WS (vindhastighet), WG (vindkast), CN (bynavn), SR (soloppgang), SS (solnedgang), MP (månefase), MF (måneskrift), BR (barometeravlesning), BD (barometerbeskrivelse). Gjelder ikke på kommandolinjen når du bruker maler. »)
self.parser.add_option («- s», »- startdag», dest = »startdag», type = »int», metavar = »NUMMER», hjelp = u »definere startdagnummeret, hvis utelatte nåværende forhold sendes ut . Gjelder ikke på kommandolinjen når du bruker maler. »)
self.parser.add_option ("- e", "- endday", dest = "endday", type = "int", metavar = "NUMBER", help = u "definerer sluttdagens nummer, hvis bare utelatelsesdatadata utelates sendes ut. Gjelder ikke kommandolinjen når du bruker maler. »)
self.parser.add_option («- S», »- mellomrom», dest = »mellomrom», type = »int», standard = 1, metavar = »NUMMER», hjelp = u »[standard:% standard] Definerer antall mellomrom mellom rangert utgang. Gjelder ikke på kommandolinjen når du bruker maler. »)
self.parser.add_option («- t», »- mal», dest = »mal», type = »streng», metavar = »FIL», hjelp = u »definerer en malfil for å generere utdata i en samtale. A visbart element i filen er i formen {–datatype = HT –startdag = 1}. Følgende er mulige alternativer innen hvert element: –datatype, –startdag, –enddag, –natt, –kort ukesdag, –imperial, –hideenheter –Spaces. Vær oppmerksom på at kortformene til alternativene ikke støttes for øyeblikket! Ingen av disse alternativene gjelder på kommandolinjen når du bruker maler. »)
self.parser.add_option («- L», »- locale», dest = »locale», type = »streng», help = u »overstyre systemets språk for språkutdata (en = engelsk, es = spansk, fr = fransk, mer kommer)))
self.parser.add_option ("- i", "- imperial", dest = "imperial", default = False, action = "store_true", help = u "be om keiserlige enheter, hvis utelatt utdata er i metrisk. Gjelder ikke på kommandolinje når du bruker maler. »)
self.parser.add_option («- n», »- natt», dest = »natt», standard = Falsk, handling = »butikk_sannhet», hjelp = u »bytt utdata til nattdata, hvis utelatt dagutgang vil bli sendt ut. Ikke aktuelt på kommandolinjen når du bruker maler. »)
self.parser.add_option («- w», »- shortweekday», dest = »shortweekday», default = False, action = »store_true», help = u »Forkort datatypen ukedag til 3 tegn. Gjelder ikke kl. kommandolinje når du bruker maler. »)
self.parser.add_option («- u», »- hideunits», dest = »hideunits», default = False, action = »store_true», help = u »Skjul enheter som mph eller C, gradssymboler (°) er fremdeles vist. Gjelder ikke på kommandolinjen når du bruker maler. »)
self.parser.add_option ("- v", "- verbose", dest = "verbose", default = False, action = "store_true", help = u "be om detaljert output, ikke en god ide når du løper gjennom conky!" )
self.parser.add_option ("- r", "- refetch", dest = "refetch", default = False, action = "store_true", help = u "hent data uavhengig av utløp av data")

def parse_args (selv):
(opsjoner, args) = self.parser.parse_args ()
retur (opsjoner, args)

def print_help (selv):
returner self.parser.print_help ()

klasse WeatherData:
def __init __ (selv, dag_of_ uke, lav, høy, tilstand_kode, tilstand_tekst, nedbør, fuktighet, vind_dir, vind_hastighet, vind_stød, by, soloppgang, solnedgang, månefase, måne_ikon, barlesning, bar_desc)
self.day_of_week = u »» + day_of_week
self.low = u »» + lav
self.high = u »» + høy
self.condition_code = u »» + condition_code
self.condition_text = u »» + condition_text
self.precip = u »» + nedbør
selvfuktighet = u »» + fuktighet
self.wind_dir = u »» + vind_dir
self.wind_speed = u »» + vindhastighet
self.wind_gusts = u »» + vindstikk
self.city = u »» + by
self.sunrise = u »» + soloppgang
self.sunset = u »» + solnedgang
self.moon_phase = u »» + månefase
self.moon_icon = u »» + moon_icon
self.bar_read = u »» + bar_read
self.bar_desc = u »» + bar_desc

klasse WeatherText:

betingelsestekst = {
«0»: _ (u »Tornado»),
«1»: _ (u »Tropisk storm»),
«2»: _ (u »Orkanen»),
«3»: _ (u »Alvorlige tordenvær»),
«4»: _ (u »Tordenvær»),
«5»: _ (u »Blandet regn og snø»),
«6»: _ (u »Mixed Rain and Sleet»),
«7»: _ (u »Blandet nedbør»),
«8»: _ (u »Frysende drypp»),
«9»: _ (u »Drizzle»),
«10»: _ (u »Frysende regn»),
«11»: _ (u »Dusjer»),
«12»: _ (u »Dusjer»),
«13»: _ (u »Snow Flurries»),
«14»: _ (u »Let snøbyger»),
«15»: _ (u »Blowing Snow»),
«16»: _ (u »Snow»),
«17»: _ (u »Hail»),
«18»: _ (u »Sleet»),
«19»: _ (u »Støv»),
«20»: _ (u »Tåke»),
«21»: _ (u »Haze»),
«22»: _ (u »Smoke»),
«23»: _ (u »Blustery»),
«24»: _ (u »Windy»),
«25»: _ (u »Cold»),
«26»: _ (u »Overskyet»),
«27»: _ (u »Overskyet»),
«28»: _ (u »Overskyet»),
«29»: _ (u »Delvis skyet»),
«30»: _ (u »Delvis skyet»),
«31»: _ (u »Fjern»),
«32»: _ (u »Fjern»),
«33»: _ (u »Fair»),
«34»: _ (u »Fair»),
«35»: _ (u »Mixed Rain and Hail»),
«36»: _ (u »Hot»),
«37»: _ (u »Isolerte tordenvær»),
«38»: _ (u »Spredte tordenvær»),
«39»: _ (u »Spredte tordenvær»),
«40»: _ (u »Spredte dusjer»),
«41»: _ (u »Tung snø»),
«42»: _ (u »Spredte snøbyger»),
«43»: _ (u »Tung snø»),
«44»: _ (u »Delvis skyet»),
«45»: _ (u »Thunder Showers»),
«46»: _ (u »Snøbyger»),
«47»: _ (u »Isolerte tordenvær»),
«Na»: _ (u »N / A»),
"-": _ (a ")
}

conditions_text_en = {
«0»: _ (u »Tornado»),
«1»: _ (u »Tropisk storm»),
«2»: _ (u »Huracá¡n»),
«3»: _ (u »Sterke stormer»),
«4»: _ (u »Storm»),
«5»: _ (u »Blandet regn og snø»),
«6»: _ (u »Mixed Rain and Sleet»),
«7»: _ (u »Sleet»),
«8»: _ (u »Frysende drypp»),
«9»: _ (u »Drizzle»),
«10»: _ (u »Frysende regn»), # eller frysende regn
«11»: _ (u »Dusjer»),
«12»: _ (u »Dusjer»),
«13»: _ (u »Lett snø»),
«14»: _ (u »Lett snø»),
«15»: _ (u »Snow Blizzard»),
«16»: _ (u »Snow»),
«17»: _ (u »Hail»),
«18»: _ (u »Sleet»),
«19»: _ (u »Pulver»),
«20»: _ (u »Tåke»),
«21»: _ (u »Haze»),
«22»: _ (u »Smoke»),
«23»: _ (u »Tempest»),
«24»: _ (u »Windy»),
«25»: _ (u »Fráo»),
«26»: _ (u »Veldig overskyet»),
«27»: _ (u »Overskyet»),
«28»: _ (u »Overskyet»),
«29»: _ (u »Delvis skyet»),
«30»: _ (u »Delvis skyet»),
«31»: _ (u »Fjern»),
«32»: _ (u »Fjern»),
«33»: _ (u »Noe overskyet»),
«34»: _ (u »Noe overskyet»),
«35»: _ (u »Regn med hagl»),
«36»: _ (u »Heat»),
«37»: _ (u »Isolerte stormer»),
«38»: _ (u »Spredte stormer»),
«39»: _ (u »Spredte stormer»),
«40»: _ (u »Spredte dusjer»),
«41»: _ (u »Tung snø»),
«42»: _ (u »Svake og spredte snøfall»),
«43»: _ (u »Intense Nevada»),
«44»: _ (u »Spredte skyer»),
«45»: _ (u »Storm»),
«46»: _ (u »Spredte snøfall»),
«47»: _ (u »Isolerte stormer»),
«Na»: _ (u »N / A»),
"-": _ (a ")
}

conditions_text_fr = {
«0»: _ (u »Tornade»),
«1»: _ (u »Tempête Tropicale»),
«2»: _ (eller »Ouragan»),
«3»: _ (eller »Orages Violents»),
«4»: _ (eller »Orageux»),
«5»: _ (u »Pluie et Neige»),
«6»: _ (u »Pluie et Neige Mouillée»),
«7»: _ (u »Variable avec averses»),
«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»: _ (eller »Orages Isolés»),
«38»: _ (eller »Orages Localisés»),
«39»: _ (eller »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»: _ (eller »Orages»),
«46»: _ (u »Tempête de Neige»),
«47»: _ (eller »Orages Isolés»),
«Na»: _ (u »N / A»),
"-": _ (a ")
}

condition_weather_font = {
«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 »»),
"-": _ (eller "")
}

conditions_moon_font = {
«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 »»),
"-": _ (eller "")
}

dag_of_uke = {
"I dag": _ (eller "I dag"),
«Mandag»: _ (u »mandag»),
«Tirsdag»: _ (u »tirsdag»),
«Onsdag»: _ (u »onsdag»),
«Torsdag»: _ (u »Torsdag»),
"Fredag": _ (u "Fredag"),
"Saturday": _ (u "Saturday"),
"Søndag": _ (u "Søndag")
}

day_of_week_short = {
"I dag": _ (u "Nå"),
«Mandag»: _ (u »Man»),
«Tirsdag»: _ (u »ti»),
«Onsdag»: _ (u »ons»),
«Torsdag»: _ (u »Tor»),
«Fredag»: _ (u »fre»),
"Saturday": _ (u "Sat"),
"Søndag": _ (u "Sol")
}

day_of_week_en = {
"I dag": _ (u "i dag"),
«Mandag»: _ (u »mandag»),
«Tirsdag»: _ (eller »tirsdag»),
«Onsdag»: _ (u »onsdag»),
«Torsdag»: _ (u »Torsdag»),
«Fredag»: _ (u »fredag»),
"Saturday": _ (u "Saturday"),
"Søndag": _ (u "Søndag")
}

day_of_week_short_en = {
"I dag": _ (u "i dag"),
"Mandag": _ (u "mon"),
«Tirsdag»: _ (u »hav»),
«Onsdag»: _ (u »ons»),
«Torsdag»: _ (u »Tors»),
«Fredag»: _ (u »fre»),
"Saturday": _ (u "sat"),
"Søndag": _ (u "dom")
}

day_of_week_fr = {
«I dag»: _ (u »Aujourd'hui»),
«Mandag»: _ (u »Lundi»),
«Tirsdag»: _ (u »Mardi»),
«Onsdag»: _ (u »Mercredi»),
«Torsdag»: _ (u »Jeudi»),
«Fredag»: _ (u »Vendredi»),
"Saturday": _ (u "Samedi"),
"Søndag": _ (u "Dimanche")
}

day_of_week_short_fr = {
«I dag»: _ (u »Auj»),
"Mandag": _ (u "Man"),
«Tirsdag»: _ (u »Mar»),
"Onsdag": _ (u "Mer"),
«Torsdag»: _ (u »Jeu»),
«Fredag»: _ (u »Kom»),
"Saturday": _ (u "Sam"),
"Søndag": _ (u "Dim")
}

bearing_arrow_font = {
«N»: _ (u »i»),
«NNE»: _ (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»),
«Ikke relevant»: _ (u »«)
}

peiling_text_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"),
"Deres"),
"SSW": _ (u "SSO"),
«SW»: _ (u »SO»),
"WSW": _ (u "WOW"),
«W»: _ (u »O»),
«WNW»: _ (u »ONO»),
«NW»: _ (u »NO»),
«NNW»: _ (u »NNO»),
«N / A»: _ (u »N \ A»)
}

bearing_text_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"),
"Deres"),
"SSW": _ (u "SSO"),
«SW»: _ (u »SO»),
"WSW": _ (u "WOW"),
«W»: _ (u »O»),
«WNW»: _ (u »ONO»),
«NW»: _ (u »NO»),
«NNW»: _ (u »NNO»),
«N / A»: _ (u »N \ A»)
}

klasse GlobalWeather:

nåværende betingelser = []
day_forecast = []
nattvarsel = []

locale = "in"

opsjoner = Ingen
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 __ (selv, alternativer):

self.options = alternativer

hvis self.options.locale == Ingen:
prøve:
# self.locale = locale.getdefaultlocale () [0] [0: 2]
self.locale = «es» #kommentar denne linjen for å tvinge spansk språk
# self.locale = "fr" # kommentar denne linjen for å tvinge fransk språk
unntatt:
skriv ut "land ikke satt"
ellers:
# self.locale = self.options.locale
self.locale = «es» #kommentar denne linjen for å tvinge spansk språk
# self.locale = "fr" # kommentar denne linjen for å tvinge fransk språk

hvis self.options.verbose == True:
skriv ut >> sys.stdout, "locale set to", self.locale

def getText (selv, nodeliste):
rc = ""
for node i nodeliste:
hvis node.nodeType == node.TEXT_NODE:
rc = rc + node.data
retur rc

def getSpaces (selv, mellomrom):
streng = u »»
hvis mellomrom == Ingen:
streng = selv.DEFAULT_SPACING
ellers:
for jeg innen rekkevidde (0, mellomrom + 1):
streng = streng + u »«
returstreng

def erNumerisk (selv, streng):
prøve:
dummy = float (streng)
returner True
unntatt:
returner Falsk

def isConnectionAvailable (selv):
# sørg for at vi får tilgang til weather.coms server ved å åpne url
prøve:
Usock = urllib2.urlopen ('http://xoap.weather.com')
Usock.close ()
returner True
unntatt:
returner Falsk

def getBearingText (selv, peiling):
peiling = flyte (peiling)
hvis peiling <11.25:
returner u »N»
elif peiling <33.75:
return u »NNE»
elif peiling <56.25:
return u »NE»
elif peiling <78.75:
returner deg »JAN»
elif peiling <101.25:
return u »E»
elif peiling <123.75:
return u »ESE»
elif peiling <146.25:
returnere deg »SE»
elif peiling <168.75:
return u »SSE»
elif peiling <191.25:
return u »S»
elif peiling <213.75:
return u »SSW»
elif peiling <236.25:
return u »SW»
elif peiling <258.75:
returnere deg »WSW»
elif peiling <281.25:
returnere deg »W»
elif peiling <303.75:
return u »WNW»
elif peiling <326.25:
returnere deg »NW»
elif peiling <348.75:
return u »NNW»
ellers:
returner «N / A»

def convertCelsiusToFahrenheit (selv, temp):
returstr (int (gulv (((float (temp) * 9.0) /5.0) +32)))

def convertKilometresToMiles (selv, dist):
returstr (int (gulv (float (dist) * 0.621371192)))

def convertMillibarsToInches (selv, mb):
returstr (int (gulv (float (mb) /33.8582)))

def getTemplateList (selv, mal):

maleliste = []

for template_part i template.split («{«):
hvis mal_del! = «»:
for template_part i template_part.split ("}"):
hvis mal_del! = «»:
templatelist.append (u »» + template_part)

returner malelisten

def getOutputText (selv, datatype, startdag, sluttdag, natt, kort ukedag, keiserlig, skjulte enheter, mellomrom):
#prøve:
utgang = u »»

# definer gjeldende enheter for utdata
hvis skjulte enheter == Falsk:
hvis imperial == Falsk:
tempunit = u »° C»
speedunit = u »km / t»
trykkenhet = u »mb»
ellers:
tempunit = u »° F»
speedunit = u »mph»
trykkenhet = u »i»
ellers:
tempunit = u »°»
speedunit = u »»
trykkenhet = u »»

hvis startdag == Ingen: # nåværende forhold

hvis datatype == "DW":
hvis self.locale == "er":
hvis kort ukedag == Sant:
output = WeatherText.day_of_week_short_es [self.current_conditions [0] .day_of_week]
ellers:
output = WeatherText.day_of_week_es [self.current_conditions [0] .day_of_week]
elif self.locale == "fr":
hvis kort ukedag == Sant:
output = WeatherText.day_of_week_short_fr [self.current_conditions [0] .day_of_week]
ellers:
output = WeatherText.day_of_week_fr [self.current_conditions [0] .day_of_week]
ellers:
hvis kort ukedag == Sant:
output = WeatherText.day_of_week_short [self.current_conditions [0] .day_of_week]
ellers:
output = WeatherText.day_of_week [self.current_conditions [0] .day_of_week]
elif datatype == "WF": # vær font
output = WeatherText.conditions_weather_font [self.current_conditions [0] .condition_code]
elif datatype == "LT":
string = self.current_conditions [0] .low
if self.isNumeric (string) == True:
hvis imperial == True:
streng = self.convertCelsiusToFahrenheit (streng)
streng = streng + tempunit
utgang = streng
elif datatype == "HT":
string = self.current_conditions [0] .høy
if self.isNumeric (string) == True:
hvis imperial == True:
streng = self.convertCelsiusToFahrenheit (streng)
streng = streng + tempunit
utgang = streng
elif datatype == "CC":
hvis self.locale == "er":
output = WeatherText.conditions_text_es [self.current_conditions [0] .condition_code]
elif self.locale == "fr":
output = WeatherText.conditions_text_fr [self.current_conditions [0] .condition_code]
ellers:
output = WeatherText.conditions_text [self.current_conditions [0] .condition_code]
elif datatype == "CT":
output = self.current_conditions [0] .condition_text
elif datatype == "PC":
string = self.current_conditions [0] .precip
if self.isNumeric (string) == True:
streng = streng + u »%»
utgang = streng
elif datatype == "HM":
string = self.current_conditions [0] .fuktighet
if self.isNumeric (string) == True:
streng = streng + u »%»
utgang = streng
elif datatype == "WD":
string = self.current_conditions [0] .wind_dir
if self.isNumeric (string) == True:
string = self.getBearingText (string)

hvis self.locale == "er":
output = WeatherText.bearing_text_es [string]
elif self.locale == "fr":
output = WeatherText.bearing_text_fr [string]
ellers:
utgang = streng

elif datatype == "BF":
string = self.current_conditions [0] .wind_dir
if self.isNumeric (string) == True:
string = WeatherText.bearing_arrow_font [self.getBearingText (string)]
utgang = streng
elif datatype == "WS":
string = self.current_conditions [0] .wind_speed
if self.isNumeric (string) == True:
hvis imperial == True:
streng = self.convertKilometresToMiles (streng)
streng = streng + hastighetsenhet
utgang = streng
elif datatype == "WG":
string = self.current_conditions [0] .wind_gusts
if self.isNumeric (string) == True:
hvis imperial == True:
streng = self.convertKilometresToMiles (streng)
streng = streng + hastighetsenhet
utgang = streng
elif datatype == "CN":
output = self.current_conditions [0] .city
elif datatype == "SR":
output = self.current_conditions [0] .sunrise
elif datatype == "SS":
output = self.current_conditions [0] .sunset
elif datatype == "MP":
utgang = self.current_conditions [0] .månefase
elif datatype == "MF":
output = WeatherText.conditions_moon_font [self.current_conditions [0] .moon_icon]
elif datatype == "BR":
string = self.current_conditions [0] .bar_read
if self.isNumeric (string) == True:
hvis imperial == True:
streng = self.convertMillibarsToInches (streng)
streng = streng + trykkenhet
utgang = streng
elif datatype == "BD":
output = self.current_conditions [0] .bar_desc
ellers:
output = "\ nFEIL: Ukjent datatype etterspurt"

annet: # prognosedata

hvis sluttdag == Ingen: # hvis ingen sluttdag ble angitt, bruk startdag
sluttdag = startdag

hvis natt == Sant: # nattvarsel kreves

for dagnummer innen rekkevidde (startdag, sluttdag + 1):

hvis datatype == "DW":
hvis self.locale == "er":
hvis kort ukedag == Sant:
output = output + self.getSpaces (mellomrom) + WeatherText.day_of_week_short_es [self.night_forecast [day_number] .day_of_week]
ellers:
output = output + self.getSpaces (mellomrom) + WeatherText.day_of_week_es [self.night_forecast [day_number] .day_of_week]
elif self.locale == "fr":
hvis kort ukedag == Sant:
output = output + self.getSpaces (mellomrom) + WeatherText.day_of_week_short_fr [self.night_forecast [day_number] .day_of_week]
ellers:
output = output + self.getSpaces (mellomrom) + WeatherText.day_of_week_fr [self.night_forecast [day_number] .day_of_week]
ellers:
hvis kort ukedag == Sant:
output = output + self.getSpaces (mellomrom) + WeatherText.day_of_week_short [self.night_forecast [day_number] .day_of_week]
ellers:
output = output + self.getSpaces (mellomrom) + WeatherText.day_of_week [self.night_forecast [day_number] .day_of_week]
elif datatype == "WF": # vær font
output = output + self.getSpaces (mellomrom) + WeatherText.conditions_weather_font [self.night_forecast [day_number] .condition_code]
elif datatype == "LT":
string = self.night_forecast [day_number] .low
if self.isNumeric (string) == True:
hvis imperial == True:
streng = self.convertCelsiusToFahrenheit (streng)
streng = streng + tempunit
output = output + self.getSpaces (mellomrom) + streng

elif datatype == "HT":
string = self.night_forecast [day_number] .high
if self.isNumeric (string) == True:
hvis imperial == True:
streng = self.convertCelsiusToFahrenheit (streng)
streng = streng + tempunit
output = output + self.getSpaces (mellomrom) + streng
elif datatype == "CC":
hvis self.locale == "er":
output = output + self.getSpaces (mellomrom) + WeatherText.conditions_text_es [self.night_forecast [day_number] .condition_code]
elif self.locale == "fr":
output = output + self.getSpaces (mellomrom) + WeatherText.conditions_text_fr [self.night_forecast [day_number] .condition_code]
ellers:
output = output + self.getSpaces (mellomrom) + WeatherText.conditions_text [self.night_forecast [day_number] .condition_code]
elif datatype == "CT":
output = output + self.getSpaces (mellomrom) + self.night_forecast [day_number] .condition_text
elif datatype == "PC":
string = self.night_forecast [day_number] .precip
if self.isNumeric (string) == True:
streng = streng + u »%»
output = output + self.getSpaces (mellomrom) + streng
elif datatype == "HM":
string = self.night_forecast [day_number] .fuktighet
if self.isNumeric (string) == True:
streng = streng + u »%»
output = output + self.getSpaces (mellomrom) + streng
elif datatype == "WD":
string = self.night_forecast [day_number] .wind_dir
hvis self.locale == "er":
output = output + self.getSpaces (mellomrom) + WeatherText.bearing_text_es [string]
elif self.locale == "fr":
output = output + self.getSpaces (mellomrom) + WeatherText.bearing_text_fr [string]
ellers:
output = output + self.getSpaces (mellomrom) + streng

elif datatype == "BF":
output = output + self.getSpaces (mellomrom) + WeatherText.bearing_arrow_font [self.night_forecast [day_number] .wind_dir]
elif datatype == "WS":
string = self.night_forecast [day_number] .wind_speed
if self.isNumeric (string) == True:
hvis imperial == True:
streng = self.convertKilometresToMiles (streng)
streng = streng + hastighetsenhet
output = output + self.getSpaces (mellomrom) + streng
elif datatype == "WG":
string = self.night_forecast [day_number] .wind_gusts
if self.isNumeric (string) == True:
hvis imperial == True:
streng = self.convertKilometresToMiles (streng)
streng = streng + hastighetsenhet
output = output + self.getSpaces (mellomrom) + streng
elif datatype == "CN":
output = output + self.getSpaces (mellomrom) + self.night_forecast [day_number] .city
elif datatype == "SR":
output = output + self.getSpaces (mellomrom) + self.night_forecast [day_number] .sunrise
elif datatype == "SS":
output = output + self.getSpaces (mellomrom) + self.night_forecast [day_number] .sunset
elif datatype == "MP":
output = output + self.getSpaces (mellomrom) + self.night_forecast [day_number] .moon_phase
elif datatype == "MF":
output = output + self.getSpaces (mellomrom) + WeatherText.conditions_moon_font [self.night_forecast [day_number] .moon_icon]
elif datatype == "BR":
output = output + self.getSpaces (mellomrom) + self.night_forecast [day_number] .bar_read
elif datatype == "BD":
output = output + self.getSpaces (mellomrom) + self.night_forecast [day_number] .bar_desc
ellers:
output = "\ nFEIL: Ukjent datatype etterspurt"
bryte

annet: # dagsvarsel ønsket

for dagnummer innen rekkevidde (startdag, sluttdag + 1):

hvis datatype == "DW":
hvis self.locale == "er":
hvis kort ukedag == Sant:
output = output + self.getSpaces (mellomrom) + WeatherText.day_of_week_short_es [self.day_forecast [day_number] .day_of_week]
ellers:
output = output + self.getSpaces (mellomrom) + WeatherText.day_of_week_es [self.day_forecast [day_number] .day_of_week]
elif self.locale == "fr":
hvis kort ukedag == Sant:
output = output + self.getSpaces (mellomrom) + WeatherText.day_of_week_short_fr [self.day_forecast [day_number] .day_of_week]
ellers:
output = output + self.getSpaces (mellomrom) + WeatherText.day_of_week_fr [self.day_forecast [day_number] .day_of_week]
ellers:
hvis kort ukedag == Sant:
output = output + self.getSpaces (mellomrom) + WeatherText.day_of_week_short [self.day_forecast [day_number] .day_of_week]
ellers:
output = output + self.getSpaces (mellomrom) + WeatherText.day_of_week [self.day_forecast [day_number] .day_of_week]
elif datatype == "WF": # vær font
output = output + self.getSpaces (mellomrom) + WeatherText.conditions_weather_font [self.day_forecast [day_number] .condition_code]
elif datatype == "LT":
string = self.day_forecast [day_number] .low
if self.isNumeric (string) == True:
hvis imperial == True:
streng = self.convertCelsiusToFahrenheit (streng)
streng = streng + tempunit
output = output + self.getSpaces (mellomrom) + streng
elif datatype == "HT":
string = self.day_forecast [day_number] .high
if self.isNumeric (string) == True:
hvis imperial == True:
streng = self.convertCelsiusToFahrenheit (streng)
streng = streng + tempunit
output = output + self.getSpaces (mellomrom) + streng
elif datatype == "CC":
hvis self.locale == "er":
output = output + self.getSpaces (mellomrom) + WeatherText.conditions_text_es [self.day_forecast [day_number] .condition_code]
elif self.locale == "fr":
output = output + self.getSpaces (mellomrom) + WeatherText.conditions_text_fr [self.day_forecast [day_number] .condition_code]
ellers:
output = output + self.getSpaces (mellomrom) + WeatherText.conditions_text [self.day_forecast [day_number] .condition_code]
elif datatype == "CT":
output = output + self.getSpaces (mellomrom) + self.day_forecast [day_number] .condition_text
elif datatype == "PC":
string = self.day_forecast [day_number] .precip
if self.isNumeric (string) == True:
streng = streng + u »%»
output = output + self.getSpaces (mellomrom) + streng
elif datatype == "HM":
string = self.day_forecast [day_number] .fuktighet
if self.isNumeric (string) == True:
streng = streng + u »%»
output = output + self.getSpaces (mellomrom) + streng
elif datatype == "WD":
string = self.day_forecast [day_number] .wind_dir

hvis self.locale == "er":
output = output + self.getSpaces (mellomrom) + WeatherText.bearing_text_es [string]
elif self.locale == "fr":
output = output + self.getSpaces (mellomrom) + WeatherText.bearing_text_fr [string]
ellers:
output = output + self.getSpaces (mellomrom) + streng

elif datatype == "BF":
output = output + self.getSpaces (mellomrom) + WeatherText.bearing_arrow_font [self.day_forecast [day_number] .wind_dir]
elif datatype == "WS":
string = self.day_forecast [day_number] .wind_speed
if self.isNumeric (string) == True:
hvis imperial == True:
streng = self.convertKilometresToMiles (streng)
streng = streng + hastighetsenhet
output = output + self.getSpaces (mellomrom) + streng
elif datatype == "WG":
string = self.day_forecast [day_number] .wind_gusts
if self.isNumeric (string) == True:
hvis imperial == True:
streng = self.convertKilometresToMiles (streng)
streng = streng + hastighetsenhet
output = output + self.getSpaces (mellomrom) + streng
elif datatype == "CN":
output = output + self.getSpaces (mellomrom) + self.day_forecast [day_number] .city
elif datatype == "SR":
output = output + self.getSpaces (mellomrom) + self.day_forecast [day_number] .sunrise
elif datatype == "SS":
output = output + self.getSpaces (mellomrom) + self.day_forecast [day_number] .sunset
elif datatype == "MP":
output = output + self.getSpaces (mellomrom) + self.day_forecast [day_number] .moon_phase
elif datatype == "MF":
output = output + self.getSpaces (mellomrom) + WeatherText.conditions_moon_font [self.day_forecast [day_number] .moon_icon]
elif datatype == "BR":
output = output + self.getSpaces (mellomrom) + self.day_forecast [day_number] .bar_read
elif datatype == "BD":
output = output + self.getSpaces (mellomrom) + self.day_forecast [day_number] .bar_desc
ellers:
output = u »\ nFEIL: Ukjent datatype etterspurt»
bryte

output = u »» + output.strip (u »«) # miste ledende / etterfølgende mellomrom
returutgang

#unntatt:
#print "getOutputText: Uventet feil:", sys.exc_info () [0]

def getOutputTextFromTemplate (selv, mal):
#prøve:

# nøkler til maldata
DATATYPE_KEY = "–datatype ="
STARTDAY_KEY = "–startdag ="
ENDDAY_KEY = "–endday ="
NIGHT_KEY = "–natt"
SHORTWEEKDAY_KEY = "–kort ukesdag"
IMPERIAL_KEY = "–imperial"
HIDEUNITS_KEY = "–hideenheter"
SPACES_KEY = "–spaces ="

utgang = u »»

optionfound = False

# last inn filen
prøve:
fileinput = open (self.options.template)
mal = fileinput.read ()
fileinput.close ()
unntatt:
output = u »Malfilen ble ikke funnet!»

templatelist = self.getTemplateList (mal)

# lar oss gå gjennom malelisten og bestemme utdataene for hvert element som blir funnet
for i innen rekkevidde (0, len (templatelist) -1):

pos = malliste [i] .find (DATATYPE_KEY)
hvis pos! = -1:
optionfound = Sant
pos = pos + len (DATATYPE_KEY)
datatype = templateliste [i] [pos: pos + 4]. stripe («}»). stripe («{«). stripe («-«). stripe (»«)
ellers:
datatype = Ingen

pos = templatelist [i] .find (STARTDAY_KEY)
hvis pos! = -1:
optionfound = Sant
pos = pos + len (STARTDAY_KEY)
startday = int (templatelist [i] [pos: pos + 4]. strip ("}"). strip ("{"). strip ("-"). strip (""))
ellers:
startdag = Ingen

pos = templatelist [i] .find (ENDDAY_KEY)
hvis pos! = -1:
optionfound = Sant
pos = pos + len (ENDDAY_KEY)
endday = int (templatelist [i] [pos: pos + 4] .strip ("}"). strip ("{"). strip ("-"). strip (""))
ellers:
sluttdag = Ingen

pos = templatelist [i] .find (NIGHT_KEY)
hvis pos! = -1:
optionfound = Sant
natt = sant
ellers:
natt = falsk

pos = templatelist [i] .find (SHORTWEEKDAY_KEY)
hvis pos! = -1:
optionfound = Sant
kort ukedag = Sant
ellers:
kort ukedag = Falsk

pos = templatelist [i] .find (IMPERIAL_KEY)
hvis pos! = -1:
optionfound = Sant
imperial = Sant
ellers:
imperial = Falsk

pos = templatelist [i] .find (HIDEUNITS_KEY)
hvis pos! = -1:
optionfound = Sant
skjuleenheter = Sant
ellers:
skjulte enheter = falske

pos = templatelist [i] .find (SPACES_KEY)
hvis pos! = -1:
optionfound = Sant
pos = pos + len (SPACES_KEY)
mellomrom = int (templateliste [i] [pos: pos + 4]. stripe («}»). stripe («{«). stripe («-«). stripe (»«))
ellers:
mellomrom = 1

hvis optionfound == True:
templatelist [i] = self.getOutputText (datatype, startdag, sluttdag, natt, kort ukedag, keiserlig, skjulte enheter, mellomrom)
optionfound = False

# gå gjennom listen som sammenkoker produksjonen nå som den er fylt ut
for element i malelisten:
utgang = utgang + vare

returutgang

#unntatt:
#print "getOutputTextFromTemplate: Uventet feil:", sys.exc_info () [0]

def fetchData (selv):

# alltid hente metriske data, bruk samtalefunksjoner på disse dataene
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)

hvis self.isConnectionAvailable () == Falsk:
hvis os.path.exists (file_path_current):
RefetchData = Falsk
annet: # ingen forbindelse, ingen cache, bang!
utskrift "Ingen internettforbindelse er tilgjengelig, og det finnes ingen bufret værdata."
elif self.options.refetch == Sant:
RefetchData = Sant
ellers:
# må dataene hentes igjen?
hvis os.path.exists (file_path_current):
lastmodDate = time.localtime (os.stat (file_path_current) [ST_MTIME])
utløpsdato = (datetime.datetime.today () - datetime.timedelta (minutter = self.EXPIRY_MINUTES)). tidsplan ()

if expiryDate> lastmodDate:
RefetchData = Sant
ellers:
RefetchData = Falsk
ellers:
RefetchData = Sant

# hent gjeldende forholdsdata, enten fra nettstedet eller ved å 'fjerne markeringen'
hvis RefetchData == True:

# skaff data om nåværende forhold fra xoap-tjenesten
prøve:

# 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 & enhet = m '
hvis self.options.verbose == True:
skriv ut >> sys.stdout, «henting av værdata fra«, url

Usock = urllib2.urlopen (url)
xml = usock.read ()
Usock.close ()
self.weatherxmldoc = minidom.parseString (xml)
unntatt:
skriv ut "fetchData: Uventet feil:", sys.exc_info () [0]
skriv ut "Kan ikke kontakte værkilden for aktuelle forhold"

# fortell brukeren om stedet er dårlig ...
funnet = xml.find ("Ugyldig sted oppgitt")
hvis funnet! = -1:
skriv ut "Ugyldig sted gitt"

# forhør værdata, last inn i klassestrukturen og sylt dem
prøve:

# utarbeide værdatalister
self.current_conditions = []
self.day_forecast = []
self.night_forecast = []

# samle generelle data
weather_n = self.weatherxmldoc.documentElement
location_n = weather_n.getElementsByTagName ('loc') [0]
city_n = location_n.getElementsByTagName ('dnam') [0]
city ​​= self.getText (city_n.childNodes)

# samle inn aktuelle forholdsdata
day_of_week = u »I dag»
nedbør = u »Ikke relevant»
sunrise_n = location_n.getElementsByTagName ('sunr') [0]
soloppgang = self.getText (sunrise_n.childNodes)
sunset_n = location_n.getElementsByTagName ('suns') [0]
solnedgang = 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 ('icon') [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 ('bar') [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 ('vind') [0]
wind_speed_n = wind_n.getElementsByTagName ('s') [0]
wind_speed = self.getText (wind_speed_n.childNodes)
wind_gust_n = wind_n.getElementsByTagName ('gust') [0]
wind_gusts = self.getText (wind_gust_n.childNodes)
wind_dir_n = wind_n.getElementsByTagName ('d') [0]
wind_direction = self.getText (wind_dir_n.childNodes)
fuktighet_n = nåværende_betingelse_n.getElementsByTagName ('hmid') [0]
fuktighet = self.getText (fuktighet_barnekoder)
moon_n = current_condition_n.getElementsByTagName ('moon') [0]
moon_icon_n = moon_n.getElementsByTagName ('ikon') [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 (day_of_week, current_temp_feels, current_temp, current_code, current_desc, nedbør, fuktighet, vindretning, vindhastighet, vindkast, by, soloppgang, solnedgang, månefase, måneikon, barlesning, bar_desc)
self.current_conditions.append (current_conditions_data)

# samle inn prognosedata
bar_read = u »Ikke relevant»
bar_desc = u »Ikke relevant»
moon_phase = u »Ikke relevant»
moon_icon = u »na»
forecast_n = weather_n.getElementsByTagName ('dayf') [0]
day_nodes = forecast_n.getElementsByTagName ('dag')

for dag i dag_noder:
day_of_week = day.getAttribute ('t')
day_of_year = day.getAttribute ('dt')
high_temp_n = day.getElementsByTagName ('hei') [0]
high_temp = self.getText (high_temp_n.childNodes)
low_temp_n = day.getElementsByTagName ('low') [0]
low_temp = self.getText (low_temp_n.childNodes)

sunrise_n = day.getElementsByTagName ('sunr') [0]
soloppgang = self.getText (sunrise_n.childNodes)
sunset_n = day.getElementsByTagName ('suns') [0]
solnedgang = self.getText (sunset_n.childNodes)

# dagers prognosespesifikke data
daytime_n = day.getElementsByTagName ('del') [0] # dag
condition_code_n = daytime_n.getElementsByTagName ('ikon') [0]
condition_code = self.getText (condition_code_n.childNodes)
condition_n = daytime_n.getElementsByTagName ('t') [0]
condition = self.getText (condition_n.childNodes)
precip_n = daytime_n.getElementsByTagName ('ppcp') [0]
utfelling = self.getText (utfelling_n.barnNoder)
fuktighet_n = dagtid_n.getElementsByTagName ('hmid') [0]
fuktighet = self.getText (fuktighet_barnekoder)
wind_n = daytime_n.getElementsByTagName ('vind') [0]
wind_speed_n = wind_n.getElementsByTagName ('s') [0]
wind_speed = self.getText (wind_speed_n.childNodes)
wind_direction_n = wind_n.getElementsByTagName ('t') [0]
wind_direction = self.getText (wind_direction_n.childNodes)
wind_gusts_n = wind_n.getElementsByTagName ('gust') [0]
wind_gusts = self.getText (wind_gusts_n.childNodes)
dag_varsel_data = Værdata
self.day_forecast.append (day_forecast_data)

# nattvarslingsspesifikke data
daytime_n = day.getElementsByTagName ('del') [1] # natt
condition_code_n = daytime_n.getElementsByTagName ('ikon') [0]
condition_code = self.getText (condition_code_n.childNodes)
condition_n = daytime_n.getElementsByTagName ('t') [0]
condition = self.getText (condition_n.childNodes)
precip_n = daytime_n.getElementsByTagName ('ppcp') [0]
utfelling = self.getText (utfelling_n.barnNoder)
fuktighet_n = dagtid_n.getElementsByTagName ('hmid') [0]
fuktighet = self.getText (fuktighet_barnekoder)
wind_n = daytime_n.getElementsByTagName ('vind') [0]
wind_speed_n = wind_n.getElementsByTagName ('s') [0]
wind_speed = self.getText (wind_speed_n.childNodes)
wind_direction_n = wind_n.getElementsByTagName ('t') [0]
wind_direction = self.getText (wind_direction_n.childNodes)
wind_gusts_n = wind_n.getElementsByTagName ('gust') [0]
wind_gusts = self.getText (wind_gusts_n.childNodes)
night_forecast_data = WeatherData (dag_of_uke, lav_temp, høy_temp, tilstand_kode, tilstand, nedbør, fuktighet, vindretning, vindhastighet, vindkast, by, soloppgang, solnedgang, månefase, måneikon, barlesning, bar_desc)
self.night_forecast.append (natt_varsel_data)

# pickle dataene til neste gang!
fileoutput = åpen (file_path_current, 'w')
pickle.dump (self.current_conditions, fileoutput)
fileoutput.close ()

fileoutput = åpen (file_path_dayforecast, 'w')
pickle.dump (self.day_forecast, fileoutput)
fileoutput.close ()

fileoutput = åpen (file_path_nightforecast, 'w')
pickle.dump (self.night_forecast, fileoutput)
fileoutput.close ()

unntatt:
skriv ut "fetchData: Uventet feil:", sys.exc_info () [0]
skriv ut "Kan ikke forhøre værdataene"

annet: # hent værdata fra syltede klassefiler
hvis self.options.verbose == True:
skriv ut >> sys.stdout, «henting av værdata fra fil:«, file_path_current

fileinput = open (file_path_current, 'r')
self.current_conditions = pickle.load (fileinput)
fileinput.close ()

hvis self.options.verbose == True:
skriv ut >> sys.stdout, "henter dagsvarseldata fra filer:", file_path_dayforecast, file_path_nightforecast

fileinput = open (file_path_dayforecast, 'r')
self.day_forecast = pickle.load (fileinput)
fileinput.close ()

hvis self.options.verbose == True:
skriv ut >> sys.stdout, «henter dagsvarseldata fra filer:«, file_path_nightforecast, file_path_nightforecast

fileinput = open (file_path_nightforecast, 'r')
self.night_forecast = pickle.load (fileinput)
fileinput.close ()

def outputData (selv):
#prøve:

hvis self.options.template! = Ingen:

output = self.getOutputTextFromTemplate (self.options.template)

ellers:

output = self.getOutputText (self.options.datatype, self.options.startday, self.options.endday, self.options.night, self.options.shortweekday, self.options.imperial, self.options.hideunits, self. options.spaces)

utskrift.encode ("utf-8")

#unntatt:
#print «outputData: Uventet feil:«, sys.exc_info () [0]

hvis __name__ == "__main__":

parser = CommandLineParser ()
(opsjoner, args) = parser.parse_args ()

hvis options.verbose == True:
skriv ut >> sys.stdout, "location:", options.location
skriv ut >> sys.stdout, "imperial:", options.imperial
skriv ut >> sys.stdout, "datatype:", options.datatype
skriv ut >> sys.stdout, "night:", options.night
skriv ut >> sys.stdout, "start day:", options.startday
skriv ut >> sys.stdout, "end day:", options.endday
skriv ut >> sys.stdout, "mellomrom:", alternativ.rom
skriv ut >> sys.stdout, "verbose:", options.verbose
skriv ut >> sys.stdout, "refetch:", options.refetch

# opprett nytt globalt værobjekt
vær = GlobalWeather (opsjoner)
weather.fetchData ()
weather.outputData ()

Vi oppretter filen ~ / Conky / scripts / myweather.template

gedit ~ / Conky / scripts / myweather.template

vi limer inn følgende:

{–Datatype = DW –startday = 1}: {–datatype = CC –startday = 1}
{–Datatype = HT –startday = 1} / {–datatype = LT – startday = 1} Vind fra {–datatype = WD – startday = 1} til {–datatype = WS – startday = 1}
Fuktighet: {–datatype = HM –startday = 1} Nedbør: {–datatype = PC – startday = 1}
Soloppgang: {–datatype = SR –startday = 1} Solnedgang: {–datatype = SS – startday = 1}
————————————————–
{–Datatype = DW –startday = 2}: {–datatype = CC –startday = 2}
{–Datatype = HT –startday = 2} / {–datatype = LT – startday = 2} Vind fra {–datatype = WD – startday = 2} til {–datatype = WS – startday = 2}
Fuktighet: {–datatype = HM –startday = 2} Nedbør: {–datatype = PC – startday = 2}
Soloppgang: {–datatype = SR –startday = 2} Solnedgang: {–datatype = SS – startday = 2}
————————————————–
{–Datatype = DW –startday = 3}: {–datatype = CC –startday = 3}
{–Datatype = HT –startday = 3} / {–datatype = LT – startday = 3} Vind fra {–datatype = WD – startday = 3} til {–datatype = WS – startday = 3}
Fuktighet: {–datatype = HM –startday = 3} Nedbør: {–datatype = PC – startday = 3}
Soloppgang: {–datatype = SR –startday = 3} Solnedgang: {–datatype = SS – startday = 3}
————————————————–
{–Datatype = DW –startday = 4}: {–datatype = CC –startday = 4}
{–Datatype = HT –startday = 4} / {–datatype = LT – startday = 4} Vind fra {–datatype = WD – startday = 4} til {–datatype = WS – startday = 4}
Fuktighet: {–datatype = HM –startday = 4} Nedbør: {–datatype = PC – startday = 4}
Soloppgang: {–datatype = SR –startday = 4} Solnedgang: {–datatype = SS – startday = 4}

Vi oppretter filen ~ / Conky / scripts / mail / conkyEmail.py (vi må opprette e-postmappen)

gedit ~ / Conky / scripts / mail / conkyEmail.py

og vi limer inn følgende:

import os
importer streng

# Angi brukernavnet og passordet ditt nedenfor med doble anførselstegn
# f.eks. brukernavn = »brukernavn» og passord = »passord»
brukernavn = »DIN_USUARIO_SINARROBA«
passord = »DIN NØKKEL«

com = »wget -O - https: //» + brukernavn + »:» + passord + »@ mail.google.com / mail / feed / atom –no-check-certificate»

temp = os.popen (com)
msg = temp.les ()
index = string.find (msg, » »)
index2 = string.find (msg, » »)
fc = int (msg [index + 11: index2])

hvis fc == 0:
skriv ut "0 nye"
ellers:
skriv ut str (fc) + »ny»

Så nå har du 7 filer:

I mappen: ~
-> .startconky << - gjør kjørbar

I mappen: ~ / Conky
-> conkymain
-> conkyforecast
-> conkymail

og i mappen: ~ / Conky / scripts
-> conkyForecast.py << - gjør kjørbar
-> myweather.template

og i mappen: ~ / Conky / scripts / mail
conkyEmail.py << - gjør kjørbar

Og det er det, avklaringer, hvor det står / hjem / bruker / ... brukernavnet ditt går, og i den delen der Gmail-dataene går, markerte jeg i farger der du må legge dataene dine.

for å drepe conky-prosessen, skriv til en konsoll

killall conky

å kjøre conky skriv til en konsoll

./.startconky

når du har justert alt, hvis du vil at conky skal starte hver økt

System—> Innstillinger—> Økter og i oppstartsprogrammer legger vi til det

I Navn kan vi skrive Conky, i rekkefølge ./.startconky med at den starter hver gang du slår på PCen.

Det er det, jeg håper det hjelper deg.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.