Conky, Moja postavitev

Fecfactor me je včeraj prosil, da objavim konfiguracijo conkyja, ki jo prikažem na spodnjem posnetku zaslona

Kot lahko vidite, gre za približno 3 konke, ki se izvedejo s pomočjo skripta, na katerem temelji njegova konfiguracija ta post objavil uporabnik Bruce M. na forumih Ubuntu-Ar z nekaj spremembami v mail conky, kar je v mojem primeru za Gmail.

V referenčnem prispevku ga je Bruce zelo dobro razložil, toda tudi kot pomnilniški pripomoček bom kopiral korake, ki jih moram upoštevati, in kodo mojih conkys za tiste, ki jih imajo.

No, seveda moramo imeti nameščene conky, curl in python, da vtipkamo konzolo:

sudo apt-get namestite conky curl python

Vir vremena.ttf in puščice.ttf je tukaj. Vir lune.ttf je tukaj po prenosu jih morate kopirati v / usr / share / font

Ustvarimo zdaj naš skript, imenovan ~. / Startconky

gksudo gedit ~ / .startconky

znotraj prazne datoteke prilepimo naslednje

#! / Bin / bash
spanje 0 & # 0 dobro za Xfce - uporabite 20 do 30 za Gnome
conky -c ~ / Conky / conkymain &
#sleep 0 & # 0 dobro za Xfce - uporabite 1 za Gnome
conky -c ~ / Conky / conkyforecast &
#sleep 0 & # 0 dobro za Xfce - uporabite 1 za Gnome
conky -c ~ / Conky / conkymail &

Zdaj ustvarimo datoteko conkymain v mapi ~ / Conky, sicer imamo mapo Conky, jo bomo morali ustvariti.

gedit ~ / Conky / conkymain

Uporabljam pisavo Calibri, če je nimate, jo zamenjajte s čim želite.

Držimo se znotraj tega, kar sledi

ozadje št
lastno_okno da
lastno_okno_prosojno da
own_window_hints okrašen, spodaj, lepljiv, preskoči_taskbar, preskoči_pager
lastno_okno_barva črna
double_buffer da
use_spacer levo
use_xft da
pisava calibri: velikost = 9
xftfont calibri: velikost = 9
xftalpha 0.5
interval_posodobitve 5.0
velika črka ne # nastavljena na da, če želite, da je vse besedilo v velikih črkah
stippled_border 3
rob_robe 9
meja_širina 10
privzeto_barva bela
default_outline_color črna
privzeta_senca_barva črna
barva0 cianova
color1 svetlo modra
barva2 oranžna
barva3 rumena
barva4 pšenica
barva5 bela
barva6 bela
barva7 bela
barva8 bela
barva9 bela
poravnava top_right # ali top_left, bottom_left, bottom_right
vrzel_x 10
vrzel_y 35
text_buffer_size 128 # za napoved uporabite 1024
ne_buffers da # Želite odštevati medpomnilnike datotečnega sistema iz uporabljenega pomnilnika?
draw_borders št
draw_outline yes # ojača besedilo, če je odgovor da
draw_shades da # shadowcolor black

BESEDILO
$ {font calibri: size = 12} $ {alignc} $ {color1} $ sysname $ jedro na $ machine} $ color $ font
$ {font calibri: size = 12} $ {alignc} $ {color2} $ {exec whoami} @ $ nodename $ color $ font
$ {color0} $ {hr 1} $ barva
$ {font calibri: size = 20} $ {alignc} $ {time% H:% M} $ font
$ {font calibri: size = 12} $ {color1} $ {alignc} $ {time% A,% d% b. % Y} $ color $ pisava
$ {color3} UpTime: $ {alignr 2} $ uptime $ color
$ {color0} $ {hr 1} $ barva
$ {voffset 5} $ {color2} CPU: $ {alignc} $ color $ running_processes $ {color1} / $ color $ procesi $ {alignr 2} $ {color2} $ {cpubar cpu0 14,80} $ color
$ {color1} $ {voffset -16} $ {alignr 5} $ cpu% $ color
$ {voffset 2} $ {color1} Naloži povprečno ($ {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} Predpomnilnik: $ color $ {buffers} $ {alignr 2} $ {color1} Predpomnjeno: $ 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} $ barva
$ {voffset 5} $ {color2} HD informacije $ {color1} - $ color Brezplačno $ {color1} - Uporabljeno - $ {color2} Skupaj
$ {voffset 5} $ {color1} Root: $ color $ {fs_free_perc /}% $ {alignr 2} $ {fs_free /} $ {color2} / $ {color1} $ {fs_used /} $ color / $ {color2} $ {fs_size /} $ barva
$ {color1} Domov: $ color $ {fs_free_perc / home / user}% $ {alignr 2} $ {fs_free / home / user} $ {color2} / $ {color1} $ {fs_used / home / user} $ color / $ {color2} $ {fs_size / home / user} $ barva
$ {color0} $ {hr 1} $ barva
$ {color1} Od: $ color Buenos Aires, Argentina
$ {color1} Lat: $ {color2} 34 ° 35'S $ {color1} Dolga: $ {color2} 58 ° 21'W $ {color1} Alt: $ {color2} 25 m $ barva
$ {voffset 5} $ {color2} $ {font calibri: size = 12} danes: $ font $ {color3} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = CC} $ barva $ {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} $ {puščice font: size = 20} $ {color4} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = BF} $ color $ pisave
$ {alignc 10} $ {voffset 5} $ {color4} Veter: $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = WS} $ color
$ {color1} Vlažnost: $ {color3} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = HM} $ {alignr 2} $ {color1} Padavine: $ {color3} $ { execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = PC} $ barva
$ {alignc} $ {color1} Pritisk: $ {color3} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = BR} - $ {color3} $ {execi 3600 python ~ / Conky /scripts/conkyForecast.py –location = ARBA0009 –datatype = BD} $ color
$ {color4} $ {hr} $ barva
$ {color1} Sončni vzhod: $ {color3} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = SR} $ {alignr 2} $ {color1} Sončni zahod: $ {color3} $ { execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = SS} $ barva
$ {voffset 15} $ {color1} Luna: $ {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 $ barva
$ {color0} $ {hr} $ barva
$ {voffset 5} $ {color2} IP: $ {alignc} $ color $ {addr eth0}
$ {color1} Dol: $ color $ {downspeed eth0} k / s $ {alignr 2} $ {color1} Gor: $ color $ {upspeed eth0} k / s
$ {color1} Skupaj: $ color $ {totaldown eth0} $ {alignr 2} $ {color1} Skupaj: $ color $ {totalup eth0}
$ {color1} Vhodni: $ color $ {tcp_portmon 1 32767 count} $ {color1} Outbound: $ color $ {tcp_portmon 32768 61000 count} $ {alignr 2} $ {color1} Skupaj: $ color $ {tcp_portmon 1 65535 count}
$ {voffset 5} $ {color2} Povezave: $ 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} $ barva

ustvarimo datoteko ~ / Conky / conkyforecast

gedit ~ / Conky / conkyforecast

in v notranjost prilepimo naslednje

ozadje št
lastno_okno da
lastno_okno_prosojno da
own_window_hints okrašen, spodaj, lepljiv, preskoči_taskbar, preskoči_pager
lastno_okno_barva črna
double_buffer da
use_spacer levo
use_xft da
pisava calibri: velikost = 8
xftfont calibri: velikost = 8
xftalpha 0.5
interval_posodobitve 5.0
velika črka ne # nastavljena na da, če želite, da je vse besedilo v velikih črkah
stippled_border 3
rob_robe 9
meja_širina 10
privzeto_barva bela
default_outline_color črna
privzeta_senca_barva črna
barva0 cianova
color1 svetlo modra
barva2 oranžna
barva3 rumena
barva4 pšenica
barva5 bela
barva6 bela
barva7 bela
barva8 bela
barva9 bela
poravnava bottom_left # ali top_left, bottom_left, bottom_right
vrzel_x 10
vrzel_y 35
text_buffer_size 1024 # za napoved uporabite 1024
ne_buffers da # Želite odštevati medpomnilnike datotečnega sistema iz uporabljenega pomnilnika?
draw_borders št
draw_outline yes # ojača besedilo, če je odgovor da
draw_shades da # shadowcolor black

BESEDILO
$ {color4} $ {font calibri: size = 11} Razširjena napoved $ font $ color
$ {color0} $ {hr} $ barva
$ {color4} $ {font calibri: size = 9} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –template = / home / user / Conky / scripts / myweather.template} $ font $ barva

ustvarimo datoteko ~ / Conky / conkymail

gedit ~ / Conky / conkymail

v datoteko prilepimo naslednje

ozadje št
lastno_okno da
lastno_okno_prosojno da
own_window_hints okrašen, spodaj, lepljiv, preskoči_taskbar, preskoči_pager
lastno_okno_barva črna
double_buffer da
use_spacer levo
use_xft da
pisava calibri: velikost = 8
xftfont calibri: velikost = 8
xftalpha 0.5
interval_posodobitve 5.0
velika črka ne # nastavljena na da, če želite, da je vse besedilo v velikih črkah
stippled_border 3
rob_robe 9
meja_širina 10
privzeto_barva bela
default_outline_color črna
privzeta_senca_barva črna
barva0 cianova
color1 svetlo modra
barva2 oranžna
barva3 rumena
barva4 pšenica
barva5 bela
barva6 bela
barva7 bela
barva8 bela
barva9 bela
poravnava bottom_left # ali top_left, bottom_left, bottom_right
vrzel_x 565
vrzel_y 35
text_buffer_size 128 # za napoved uporabite 1024
ne_buffers da # Želite odštevati medpomnilnike datotečnega sistema iz uporabljenega pomnilnika?
draw_borders št
draw_outline yes # ojača besedilo, če je odgovor da
draw_shades da # shadowcolor black

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

Datoteko izdelamo v ~ / Conky / scripts / conkyForecast.py (ustvariti moramo mapo skriptov)

gedit ~ / Conky / scripts / conkyForecast.py

#! / usr / bin / python
# - * - kodiranje: utf-8 - * -
#################################################### ###############################
# conkyForecast.py je (ne tako) preprost (več) python skript za zbiranje
# podrobnosti o trenutnem vremenu za uporabo v conky.
#
# Avtor: Kaivalagi
# Ustvarjeno: 13
# Spremembe:
# 14 Dovoli dnevne razpone za napovedne podatke
# 14 Preverite povezavo s storitvijo xoap
# 18/04/2008 Dovolite nastavitev presledkov za obseg proizvodnje
# 18/04/2008 Dovoli nočno in dnevno napoved
# 18/04/2008 Podporni jezik za možnost besedila kode pogoja «CC», ki čaka na prevod v španski jezik
# 18 Uporabite kisanje za podatke razreda, ne pa odpiranja xml, s čimer se izogne ​​potrebi po zaslišanju predpomnjenih podatkov
# 19/04/2008 Dodano besedilo v španskem jeziku - Hvala Bruce M
# 19 Dodan številski pregled vseh številskih izhodov s pripono enot
# 19/04/2008 Spremenjeno poimenovanje datotek kislih kumaric, ki vključuje lokacijsko kodo
# 19/04/2008 Dodana pretvorba španskih tednov po lokalnem jeziku
# 20 Dodan spodoben razčlenjevalnik argumentov ukazov
# 20 Dodano - možnost kratkega tedna, če je dan dan v tednu podatkovni tip skrajšan na 04 znake
# 21 Fiksne možnosti krajevnih nastavitev za napoved napovedi
# 21 Dodana možnost –template, ki omogoča izhod po meri z enim samim klicem exec 🙂
# 21/04/2008 Dodana možnost –hideunits za odstranjevanje na primer mph in C iz izhoda
# 23 Odstranjena –imperialna možnost iz predloge, ta MORA biti nastavljena kot standardna možnost v klicu skripta in se ne uporablja v datoteki predloge.
# 23/04/2008 Prebrano - carska možnost za predlogo, ki omogoča metrične ali carske vrednosti za posamezen tip podatkov. Opomba, če uporaba ukazne vrstice predloge ne bo delovala.
# 23 Dodan izhodni uporabnik, ki obvesti uporabnika, če je navedena lokacija slaba
# 24/04/2008 Dodano upravljanje brez povezave, se bo vrnilo na predpomnjene podatke (napaka, če predpomnilnik ne obstaja). Preskusi s poskusom odpiranja xoap.weather.com
# 24 Fiksna pretvorba Celzija v Fahrenheite
# 06/05/2008 Posodobljen URL, uporabljen po posodobitvi spletne storitve
# 09/05/2008 Združeni podatki o trenutnem stanju in napovedih združeni v en klic
# 09/05/2008 Vrste podatkov dodali sončni vzhod in zahod, ti so značilni tako za trenutne razmere kot za napovedane podatke
# 09/05/2008 Podatkovnim vrstam so dodane lunine faze, odčitki barometra in opis barometra, ti so specifični samo za trenutne razmere in tudi N / A v napovedanih izhodnih podatkih
# 09/05/2008 Dodane pretvorbe enot za barometer iz mb v palce (imperial)
# 09/05/2008 Posodobljeno besedilo v španskem jeziku - Hvala Bruce M
# 10/05/2008 Dodani francoski podatki o jeziku - Hvala benpaka
# 12/05/2008 Dodan nov podatkovni tip BF (z nosilno pisavo), ki zagotavlja znak puščice (uporabite s pisavo Arrow.ttf) namesto izhoda NSEW iz WD (smer vetra)
# 12/05/2008 Posodobljen izhod WD glede na lokacijo, trenutno podpira privzeto angleščino in španščino - Hvala Bruce M
# 18/05/2008 Dodan nov podatkovni tip MF (moon font), da se zagotovi znak lunine pisave (napačni znaki in še ni namenske pisave).
# 21/05/2008 Za trenutne razmere možnost –datatype = LT zdaj prikazuje temperaturo »počuti se kot« namesto trenutne
#
# VSE:
# Združi datoteke pkl v eno datoteko / razred
# Dodajte vremensko pisavo na podlagi izhoda lunine faze na podlagi podatkov ikone lune
# ??? Še kaj zahtev?

uvoz sys, os, vtičnica, urllib2, datum in čas
iz xml.dom uvoz minidom
iz uvoza stat *
iz optparse import OptionParser
uvozi jezik
uvozi gettext
uvozna kumarica
iz matematičnega uvoza *

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

razred CommandLineParser:

razčlenjevalnik = Brez

def __init __ (samo):

self.parser = OptionParser ()
self.parser.add_option («- l», »- lokacija», dest = »lokacija«, privzeto = »UKXX0103 ″, type =» string », metavar =» KODA «, help = u» lokacijska koda za vremenske podatke [ privzeto:% privzeto], z naslednjim URL-jem določite svojo lokacijsko kodo po imenu mesta: http://xoap.weather.com/search/search?where=Norwich »)
self.parser.add_option ("- d", "- datatype", dest = "datatype", default = "HT", type = "string", metavar = "DATATYPE", help = u "[privzeto:% privzeto] Možnosti podatkovnih vrst so: DW (dan v tednu), WF (izhod za vremensko pisavo), LT (napoved: nizka temperatura, trenutno: počuti se kot temperatura), HT (napoved: visoka temperatura, trenutna: trenutna temperatura), CC (trenutna Pogoji), CT (Besedilo pogojev), PC (možnost padavin), HM (vlažnost), WD (smer vetra), WS (hitrost vetra), WG (sunki vetra), CN (ime mesta), SR (sončni vzhod), SS (sončni zahod), MP (lunina faza), MF (lunina pisava), BR (odčitek barometra), BD (opis barometra). Ni uporabno v ukazni vrstici pri uporabi predlog. »)
self.parser.add_option («- s», »- startday», dest = »startday», type = »int», metavar = »ŠTEVILO«, help = u »določite številko začetnega dne, če so izpuščeni trenutni pogoji . Se ne uporablja v ukazni vrstici pri uporabi predlog. »)
self.parser.add_option ("- e", "- endday", dest = "endday", type = "int", metavar = "NUMBER", help = u "določite številko končnega dne, če so izpuščeni samo podatki o začetnem dnevu je izhodno. Ni uporabno v ukazni vrstici pri uporabi predlog. »)
self.parser.add_option («- S», »- presledki», dest = »presledki», tip = »int», privzeto = 1, metavar = »ŠTEVILO», pomoč = u »[privzeto:% privzeto] število presledkov med obsegom izhodov. Ni uporabno v ukazni vrstici pri uporabi predlog. »)
self.parser.add_option («- t», »- predloga», dest = »predloga», vrsta = »niz», metavar = »FILE«, help = u »definirajte datoteko predloge za generiranje izhoda v enem klicu. A element, ki ga je mogoče prikazati v datoteki, je v obliki {–datatype = HT –startday = 1}. V vsaki postavki so možne naslednje možnosti: –datatype, –startday, –endday, –night, –shortweekday, –imperial, –hideunits –Prostor. Upoštevajte, da kratki obrazci možnosti trenutno niso podprti! Nobena od teh možnosti ni uporabna v ukazni vrstici pri uporabi predlog. »)
self.parser.add_option («- L», »- locale», dest = »locale«, type = »string», help = u »preglasi sistemsko jezikovno nastavitev za jezikovni izhod (en = angleščina, es = španščina, fr = francosko, še več) »)
self.parser.add_option ("- i", "- imperial", dest = "imperial", privzeto = False, action = "store_true", help = u "zahteva imperialne enote, če je izpuščeni izhod v metriki. ukazno vrstico pri uporabi predlog. »)
self.parser.add_option («- n», »- noč», dest = »noč«, privzeto = False, action = »store_true», help = u »preklopi izhod na nočne podatke, če je izpuščen dnevni izhod. Ni uporabno v ukazni vrstici pri uporabi predlog. »)
self.parser.add_option («- w», »- kratki teden», dest = »kratki teden«, privzeto = False, action = »store_true», help = u »Skrajšajte vrsto podatkov v dnevu v tednu na 3 znake. ukazno vrstico pri uporabi predlog. »)
self.parser.add_option («- u», »- skrivne enote», dest = »skrivne enote», privzeto = False, action = »store_true», help = u »Skrij enote, kot sta mph ali C, simboli stopinj (°) še vedno prikazano. Ni uporabno v ukazni vrstici pri uporabi predlog. »)
self.parser.add_option ("- v", "- verbose", dest = "verbose", privzeto = False, action = "store_true", help = u "zahteva podroben izhod, dobra ideja pri zagonu skozi conky!" )
self.parser.add_option ("- r", "- refetch", dest = "refetch", privzeto = False, action = "store_true", help = u "pridobivanje podatkov ne glede na iztek podatkov")

def parse_args (self):
(možnosti, argumenti) = self.parser.parse_args ()
vrnitev (možnosti, argumenti)

def print_help (samo):
vrni self.parser.print_help ()

razred WeatherData:
def __init __ (self, day_of_week, low, high, condition_code, condition_text, precip, vlažnost, wind_dir, wind_speed, wind_gusts, city, sunrise, sunset, moon_phase, moon_icon, bar_read, bar_desc):
self.day_of_week = u »» + day_of_week
self.low = u »» + nizko
self.high = u »» + visoko
self.condition_code = u »» + koda_pogoja
self.condition_text = u »» + text_text
self.precip = u »» + precip
samo.vlažnost = u »» + vlažnost
self.wind_dir = u »» + veter_dir
self.wind_speed = u »» + hitrost vetra
self.wind_gusts = u »» + sunki vetra
self.city = u »» + mesto
self.sunrise = u »» + sončni vzhod
self.sunset = u »» + sončni zahod
self.moon_phase = u »» + moon_phase
self.moon_icon = u »» + moon_icon
self.bar_read = u »» + bar_read
self.bar_desc = u »» + bar_desc

razred WeatherText:

text_text = {
«0»: _ (u »Tornado«),
«1»: _ (u »Tropska nevihta«),
«2»: _ (u »Orkan«),
«3»: _ (u »Močne nevihte«),
«4»: _ (u »Nevihte«),
«5»: _ (u »Mešani dež in sneg«),
«6»: _ (u »Mešani dež in žled«),
«7»: _ (u »Mešane padavine«),
«8»: _ (u »Zamrzovalna rosica«),
«9»: _ (u »Zalij«),
«10»: _ (u »Ledeni dež«),
«11»: _ (u »Prhe«),
«12»: _ (u »Prhe«),
«13»: _ (u »Snežni vihar«),
«14»: _ (u »Slabe snežne plohe»),
«15»: _ (u »Piha sneg«),
«16»: _ (u »Sneg«),
«17»: _ (u »Toča«),
«18»: _ (u »Žled«),
«19»: _ (u »Prah«),
«20»: _ (u »Megla«),
«21»: _ (u »Meglica«),
«22»: _ (u »Dim«),
«23»: _ (u »Neumnost«),
«24»: _ (u »Vetrovno«),
«25»: _ (u »Hladno«),
«26»: _ (u »Oblačno«),
«27»: _ (u »Pretežno oblačno«),
«28»: _ (u »Pretežno oblačno«),
«29»: _ (u »Delno oblačno«),
«30»: _ (u »Delno oblačno«),
«31»: _ (u »Počisti«),
«32»: _ (u »Počisti«),
«33»: _ (u »Sejem«),
«34»: _ (u »Sejem«),
«35»: _ (u »Mešani dež in toča«),
«36»: _ (u »Vroče«),
«37»: _ (u »Izolirane nevihte«),
«38»: _ (u »Razpršene nevihte«),
«39»: _ (u »Razpršene nevihte«),
«40»: _ (u »Razpršeni tuši«),
«41»: _ (u »Močan sneg«),
«42»: _ (u »Razpršeni snežni nalivi«),
«43»: _ (u »Močan sneg«),
«44»: _ (u »Delno oblačno«),
«45»: _ (u »Nevihte z nevihto«),
«46»: _ (u »Snežne plohe«),
«47»: _ (u »Izolirane nevihte«),
«Na»: _ (u »N / A«),
"-": _ (a ")
}

pogoji_besedila_es = {
«0»: _ (u »Tornado«),
«1»: _ (u »Tropska nevihta«),
«2»: _ (u »Huracá¡n»),
«3»: _ (u »Močne nevihte«),
«4»: _ (u »Nevihte«),
«5»: _ (u »Mešani dež in sneg«),
«6»: _ (u »Mešani dež in žled«),
«7»: _ (u »Žled«),
«8»: _ (u »Zamrzovalna rosica«),
«9»: _ (u »Zalij«),
«10»: _ (u »Ledeni dež«), # ali ledeni dež
«11»: _ (u »Prhe«),
«12»: _ (u »Prhe«),
«13»: _ (u »Rahel sneg«),
«14»: _ (u »Rahel sneg«),
«15»: _ (u »Snežna metež«),
«16»: _ (u »Sneg«),
«17»: _ (u »Toča«),
«18»: _ (u »Žled«),
«19»: _ (u »Prašek«),
«20»: _ (u »Megla«),
«21»: _ (u »Meglica«),
«22»: _ (u »Dim«),
«23»: _ (u »Vihar«),
«24»: _ (u »Vetrovno«),
«25»: _ (u »Francija«),
«26»: _ (u »Zelo oblačno«),
«27»: _ (u »Pretežno oblačno«),
«28»: _ (u »Pretežno oblačno«),
«29»: _ (u »Delno oblačno«),
«30»: _ (u »Delno oblačno«),
«31»: _ (u »Počisti«),
«32»: _ (u »Počisti«),
«33»: _ (u »Nekaj ​​oblačnega«),
«34»: _ (u »Nekaj ​​oblačnega«),
«35»: _ (u »Dež s točo«),
«36»: _ (u »Vročina«),
«37»: _ (u »Izolirane nevihte«),
«38»: _ (u »Raztresene nevihte«),
«39»: _ (u »Raztresene nevihte«),
«40»: _ (u »Razpršeni tuši«),
«41»: _ (u »Močan sneg«),
«42»: _ (u »Šibke in razpršene snežne padavine«),
«43»: _ (u »Intenzivna Nevada«),
«44»: _ (u »Razpršeni oblaki«),
«45»: _ (u »Nevihte«),
«46»: _ (ali »Razpršene snežne padavine«),
«47»: _ (u »Izolirane nevihte«),
«Na»: _ (u »N / A«),
"-": _ (a ")
}

pogoji_besedila_fr = {
«0»: _ (u »Tornada«),
«1»: _ (u »Tempête Tropicale«),
«2»: _ (ali »Ouragan«),
«3»: _ (ali »Orages Violents«),
«4»: _ (ali »Orageux«),
«5»: _ (u »Pluie et Neige«),
«6»: _ (u »Pluie et Neige Mouillée«),
«7»: _ (u »Spremenljivka avec avers«),
«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 »Različice o novostih«),
«30»: _ (u »Različice o novostih«),
«31»: _ (u »Beau«),
«32»: _ (u »Beau«),
«33»: _ (u »Belles Éclaircies«),
«34»: _ (u »Belles Éclaircies«),
«35»: _ (u »Pluie avec Grêle«),
«36»: _ (u »Chaleur«),
«37»: _ (ali »Orages Isolés«),
«38»: _ (ali »Orages Localisés«),
«39»: _ (ali »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 »Različice o novostih«),
«45»: _ (ali »Orages«),
«46»: _ (u »Tempête de Neige«),
«47»: _ (ali »Orages Isolés«),
«Na»: _ (u »N / A«),
"-": _ (a ")
}

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

pogoji_meseca_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 »»),
"-": _ (ali "")
}

dan_tjedna = {
"Danes": _ (ali "Danes"),
«Ponedeljek»: _ (u «ponedeljek»),
«Torek»: _ (u «torek»),
«Sreda»: _ (u «sreda»),
«Četrtek»: _ (u «četrtek»),
"Petek": _ (u "petek"),
"Sobota": _ (u "sobota"),
"Nedelja": _ (u "nedelja")
}

dan_tedenskega_kratkega = {
"Danes": _ (u "Zdaj"),
«Ponedeljek»: _ (u «ponedeljek»),
«Torek»: _ (u «torek»),
«Sreda»: _ (u «sreda»),
«Četrtek»: _ (u «čet»),
«Petek»: _ (u «petek»),
"Sobota": _ (u "sobota"),
"Nedelja": _ (u "Sonce")
}

dan_t tedna_es = {
"Danes": _ (u "danes"),
"Ponedeljek": _ (u "Ponedeljek"),
«Torek»: _ (u «torek»),
«Sreda»: _ (u «sreda»),
«Četrtek»: _ (u «četrtek»),
«Petek»: _ (u «petek»),
"Sobota": _ (u "sobota"),
"Nedelja": _ (u "nedelja")
}

dan_t_tedenskega_kratkega_es = {
"Danes": _ (u "danes"),
"Ponedeljek": _ (u "pon"),
«Torek»: _ (u »morje«),
«Sreda»: _ (u «sre»),
«Četrtek»: _ (u «čet»),
«Petek»: _ (u «pet»),
"Sobota": _ (u "sobota"),
"Nedelja": _ (u "dom")
}

dan_t tedna_fr = {
«Danes»: _ (u »Aujourd'hui«),
«Ponedeljek»: _ (u »Lundi«),
«Torek»: _ (u »Mardi«),
«Sreda»: _ (u »Mercredi«),
«Četrtek»: _ (u »Jeudi«),
«Petek»: _ (u »Vendredi«),
"Sobota": _ (u "Samedi"),
"Nedelja": _ (u "Dimanche")
}

dan_t_tedenskega_kratkega_fr = {
«Danes»: _ (u »Auj«),
"Ponedeljek": _ (u "Ponedeljek"),
«Torek»: _ (u «mar»),
"Sreda": _ (u "Mer"),
«Četrtek»: _ (u »Jeu«),
«Petek»: _ (u »Pridite«),
"Sobota": _ (u "Sam"),
"Nedelja": _ (u "Dim")
}

puščica_napenjanja = {
«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»),
«N / A»: _ (u »«)
}

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

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

razred GlobalWeather:

trenutni_pogoji = []
napoved dneva = []
nočna napoved = []

locale = "in"

options = Brez
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 __ (self, možnosti):

self.options = možnosti

če self.options.locale == Brez:
poskusi:
# self.locale = locale.getdefaultlocale () [0] [0: 2]
self.locale = «es» #razstavite to vrstico, da prisilite španski jezik
# self.locale = "fr" #odstavite to vrstico, da prisilite francoski jezik
razen:
natisni "locale not set"
drugo:
# self.locale = self.options.locale
self.locale = «es» #razstavite to vrstico, da prisilite španski jezik
# self.locale = "fr" #odstavite to vrstico, da prisilite francoski jezik

če self.options.verbose == True:
natisni >> sys.stdout, "področne nastavitve nastavljene na", self.locale

def getText (self, nodelist):
rc = ""
za vozlišče v vozlišču:
če je node.nodeType == node.TEXT_NODE:
rc = rc + vozlišče.podatki
vrnitev rc

def getSpaces (self, presledki):
niz = u »»
če presledki == Brez:
niz = samo.DEFAULT_SPACING
drugo:
za i v območju (0, presledki + 1):
niz = niz + u »«
vrni niz

def isNumeric (self, string):
poskusi:
lutka = float (niz)
vrni True
razen:
vrnitev False

def isConnectionAvailable (self):
# zagotovite, da bomo lahko dostopali do strežnika weather.com z odpiranjem URL-ja
poskusi:
Usock = urllib2.urlopen ('http://xoap.weather.com')
Usock.close ()
vrni True
razen:
vrnitev False

def getBearingText (self, bearing):
ležaj = plovec (ležaj)
če ima <11.25:
vrni u »N»
elif ležaj <33.75:
vrni u »NNE»
elif ležaj <56.25:
vrnitev u »NE»
elif ležaj <78.75:
vrni u »JAN»
elif ležaj <101.25:
vrni u »E»
elif ležaj <123.75:
vrni u »ESE»
elif ležaj <146.25:
vrnitev u »SE»
elif ležaj <168.75:
vrni u »SSE»
elif ležaj <191.25:
vrni u »S»
elif ležaj <213.75:
vrni u »SSW»
elif ležaj <236.25:
vrnitev u »SW»
elif ležaj <258.75:
vrni u »WSW»
elif ležaj <281.25:
vrni u »W»
elif ležaj <303.75:
vrnitev u »WNW»
elif ležaj <326.25:
vrnitev u »SZ»
elif ležaj <348.75:
vrnitev u »NNW»
drugo:
vrnitev «N / A»

def convertCelsiusToFahrenheit (self, temp):
vrni str (int (nadstropje (((float (temp) * 9.0) /5.0) +32)))

def convertKilometresToMiles (self, dist):
vrni str (int (nadstropje (float (dist) * 0.621371192)))

def convertMillibarsToInches (self, mb):
vrni str (int (nadstropje (float (mb) /33.8582)))

def getTemplateList (self, predloga):

seznam predlog = []

za template_part v template.split («{«):
če je template_part! = «»:
za template_part v template_part.split ("}"):
če je template_part! = «»:
templatelist.append (u »» + predloga_del)

vrnitev templatelista

def getOutputText (self, datatype, startday, endday, night, shortweekday, imperial, hideunits, presledki):
#poskusi:
izhod = u »»

# definirajte trenutne enote za izhod
če skrivne enote == napačno:
če je imperial == False:
tempunit = u »° C»
speedunit = u »km / h»
tlačna enota = u »mb»
drugo:
tempunit = u »° F»
speedunit = u »mph»
tlačna enota = u »v»
drugo:
tempunit = u »°»
speedunit = u »»
tlačna enota = u »»

če je začetni dan == Brez: # trenutni pogoji

če je vrsta podatkov == "DW":
če self.locale == "je":
če je kratki teden == res:
output = WeatherText.day_of_week_short_es [self.current_conditions [0] .day_of_week]
drugo:
output = WeatherText.day_of_week_es [self.current_conditions [0] .day_of_week]
elif self.locale == "fr":
če je kratki teden == res:
output = WeatherText.day_of_week_short_fr [self.current_conditions [0] .day_of_week]
drugo:
output = WeatherText.day_of_week_fr [self.current_conditions [0] .day_of_week]
drugo:
če je kratki teden == res:
output = WeatherText.day_of_week_short [self.current_conditions [0] .day_of_week]
drugo:
output = WeatherText.day_of_week [self.current_conditions [0] .day_of_week]
elif datatype == "WF": # vremenska pisava
output = WeatherText.conditions_weather_font [self.current_conditions [0] .condition_code]
elif datatype == "LT":
string = self.current_conditions [0] .low
če self.isNumeric (niz) == True:
če je imperial == True:
string = self.convertCelsiusToFahrenheit (niz)
niz = niz + tempunit
izhod = niz
elif datatype == "HT":
string = self.current_conditions [0] .high
če self.isNumeric (niz) == True:
če je imperial == True:
string = self.convertCelsiusToFahrenheit (niz)
niz = niz + tempunit
izhod = niz
elif datatype == "CC":
če self.locale == "je":
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]
drugo:
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
če self.isNumeric (niz) == True:
niz = niz + u »%»
izhod = niz
elif datatype == "HM":
string = self.current_conditions [0] .vlažnost
če self.isNumeric (niz) == True:
niz = niz + u »%»
izhod = niz
elif datatype == "WD":
string = self.current_conditions [0] .wind_dir
če self.isNumeric (niz) == True:
string = self.getBearingText (niz)

če self.locale == "je":
output = WeatherText.bearing_text_es [niz]
elif self.locale == "fr":
output = WeatherText.bearing_text_fr [niz]
drugo:
izhod = niz

elif datatype == "BF":
string = self.current_conditions [0] .wind_dir
če self.isNumeric (niz) == True:
string = WeatherText.bearing_arrow_font [self.getBearingText (niz)]
izhod = niz
elif datatype == "WS":
string = self.current_conditions [0] .wind_speed
če self.isNumeric (niz) == True:
če je imperial == True:
string = self.convertKilometresToMiles (niz)
niz = niz + enota hitrosti
izhod = niz
elif datatype == "WG":
string = self.current_conditions [0] .wind_gusts
če self.isNumeric (niz) == True:
če je imperial == True:
string = self.convertKilometresToMiles (niz)
niz = niz + enota hitrosti
izhod = niz
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":
output = self.current_conditions [0] .moon_phase
elif datatype == "MF":
output = WeatherText.conditions_moon_font [self.current_conditions [0] .moon_icon]
elif datatype == "BR":
string = self.current_conditions [0] .bar_read
če self.isNumeric (niz) == True:
če je imperial == True:
string = self.convertMillibarsToInches (niz)
niz = niz + tlačna enota
izhod = niz
elif datatype == "BD":
output = self.current_conditions [0] .bar_desc
drugo:
output = "\ nNAPAKA: Zahtevan je neznan tip podatkov"

else: # podatki o napovedi

if endday == Brez: # če ni nastavljen noben endday, uporabite startday
endday = dan začetka

če je noč == True: zahteva se # nočna napoved

za day_number v obsegu (startday, endday + 1):

če je vrsta podatkov == "DW":
če self.locale == "je":
če je kratki teden == res:
output = output + self.getSpaces (presledki) + WeatherText.day_of_week_short_es [self.night_forecast [day_number] .day_of_week]
drugo:
output = output + self.getSpaces (presledki) + WeatherText.day_of_week_es [self.night_forecast [day_number] .day_of_week]
elif self.locale == "fr":
če je kratki teden == res:
output = output + self.getSpaces (presledki) + WeatherText.day_of_week_short_fr [self.night_forecast [day_number] .day_of_week]
drugo:
output = output + self.getSpaces (presledki) + WeatherText.day_of_week_fr [self.night_forecast [day_number] .day_of_week]
drugo:
če je kratki teden == res:
output = output + self.getSpaces (presledki) + WeatherText.day_of_week_short [self.night_forecast [day_number] .day_of_week]
drugo:
output = output + self.getSpaces (presledki) + WeatherText.day_of_week [self.night_forecast [day_number] .day_of_week]
elif datatype == "WF": # vremenska pisava
output = output + self.getSpaces (presledki) + WeatherText.conditions_weather_font [self.night_forecast [day_number] .condition_code]
elif datatype == "LT":
string = self.night_forecast [day_number] .low
če self.isNumeric (niz) == True:
če je imperial == True:
string = self.convertCelsiusToFahrenheit (niz)
niz = niz + tempunit
output = output + self.getSpaces (presledki) + string

elif datatype == "HT":
string = self.night_forecast [day_number] .high
če self.isNumeric (niz) == True:
če je imperial == True:
string = self.convertCelsiusToFahrenheit (niz)
niz = niz + tempunit
output = output + self.getSpaces (presledki) + string
elif datatype == "CC":
če self.locale == "je":
output = output + self.getSpaces (presledki) + WeatherText.conditions_text_es [self.night_forecast [day_number] .condition_code]
elif self.locale == "fr":
output = output + self.getSpaces (presledki) + WeatherText.conditions_text_fr [self.night_forecast [day_number] .condition_code]
drugo:
output = output + self.getSpaces (presledki) + WeatherText.conditions_text [self.night_forecast [day_number] .condition_code]
elif datatype == "CT":
output = output + self.getSpaces (presledki) + self.night_forecast [day_number] .condition_text
elif datatype == "PC":
string = self.night_forecast [day_number] .precip
če self.isNumeric (niz) == True:
niz = niz + u »%»
output = output + self.getSpaces (presledki) + string
elif datatype == "HM":
string = self.night_forecast [day_number] .humidity
če self.isNumeric (niz) == True:
niz = niz + u »%»
output = output + self.getSpaces (presledki) + string
elif datatype == "WD":
string = self.night_forecast [day_number] .wind_dir
če self.locale == "je":
output = output + self.getSpaces (presledki) + WeatherText.bearing_text_es [string]
elif self.locale == "fr":
output = output + self.getSpaces (presledki) + WeatherText.bearing_text_fr [string]
drugo:
output = output + self.getSpaces (presledki) + string

elif datatype == "BF":
output = output + self.getSpaces (presledki) + WeatherText.bearing_arrow_font [self.night_forecast [day_number] .wind_dir]
elif datatype == "WS":
string = self.night_forecast [day_number] .wind_speed
če self.isNumeric (niz) == True:
če je imperial == True:
string = self.convertKilometresToMiles (niz)
niz = niz + enota hitrosti
output = output + self.getSpaces (presledki) + string
elif datatype == "WG":
string = self.night_forecast [day_number] .wind_gusts
če self.isNumeric (niz) == True:
če je imperial == True:
string = self.convertKilometresToMiles (niz)
niz = niz + enota hitrosti
output = output + self.getSpaces (presledki) + string
elif datatype == "CN":
output = output + self.getSpaces (presledki) + self.night_forecast [day_number] .city
elif datatype == "SR":
output = output + self.getSpaces (presledki) + self.night_forecast [day_number] .sunrise
elif datatype == "SS":
output = output + self.getSpaces (presledki) + self.night_forecast [day_number] .sunset
elif datatype == "MP":
output = output + self.getSpaces (presledki) + self.night_forecast [day_number] .moon_phase
elif datatype == "MF":
output = output + self.getSpaces (presledki) + WeatherText.conditions_moon_font [self.night_forecast [day_number] .moon_icon]
elif datatype == "BR":
output = output + self.getSpaces (presledki) + self.night_forecast [day_number] .bar_read
elif datatype == "BD":
output = output + self.getSpaces (presledki) + self.night_forecast [day_number] .bar_desc
drugo:
output = "\ nNAPAKA: Zahtevan je neznan tip podatkov"
odmor

else: Zaželena napoved za # dan

za day_number v obsegu (startday, endday + 1):

če je vrsta podatkov == "DW":
če self.locale == "je":
če je kratki teden == res:
output = output + self.getSpaces (presledki) + WeatherText.day_of_week_short_es [self.day_forecast [day_number] .day_of_week]
drugo:
output = output + self.getSpaces (presledki) + WeatherText.day_of_week_es [self.day_forecast [day_number] .day_of_week]
elif self.locale == "fr":
če je kratki teden == res:
output = output + self.getSpaces (presledki) + WeatherText.day_of_week_short_fr [self.day_forecast [day_number] .day_of_week]
drugo:
output = output + self.getSpaces (presledki) + WeatherText.day_of_week_fr [self.day_forecast [day_number] .day_of_week]
drugo:
če je kratki teden == res:
output = output + self.getSpaces (presledki) + WeatherText.day_of_week_short [self.day_forecast [day_number] .day_of_week]
drugo:
output = output + self.getSpaces (presledki) + WeatherText.day_of_week [self.day_forecast [day_number] .day_of_week]
elif datatype == "WF": # vremenska pisava
output = output + self.getSpaces (presledki) + WeatherText.conditions_weather_font [self.day_forecast [day_number] .condition_code]
elif datatype == "LT":
string = self.day_forecast [day_number] .low
če self.isNumeric (niz) == True:
če je imperial == True:
string = self.convertCelsiusToFahrenheit (niz)
niz = niz + tempunit
output = output + self.getSpaces (presledki) + string
elif datatype == "HT":
string = self.day_forecast [day_number] .high
če self.isNumeric (niz) == True:
če je imperial == True:
string = self.convertCelsiusToFahrenheit (niz)
niz = niz + tempunit
output = output + self.getSpaces (presledki) + string
elif datatype == "CC":
če self.locale == "je":
output = output + self.getSpaces (presledki) + WeatherText.conditions_text_es [self.day_forecast [day_number] .condition_code]
elif self.locale == "fr":
output = output + self.getSpaces (presledki) + WeatherText.conditions_text_fr [self.day_forecast [day_number] .condition_code]
drugo:
output = output + self.getSpaces (presledki) + WeatherText.conditions_text [self.day_forecast [day_number] .condition_code]
elif datatype == "CT":
output = output + self.getSpaces (presledki) + self.day_forecast [day_number] .condition_text
elif datatype == "PC":
string = self.day_forecast [day_number] .precip
če self.isNumeric (niz) == True:
niz = niz + u »%»
output = output + self.getSpaces (presledki) + string
elif datatype == "HM":
string = self.day_forecast [day_number] .humidity
če self.isNumeric (niz) == True:
niz = niz + u »%»
output = output + self.getSpaces (presledki) + string
elif datatype == "WD":
string = self.day_forecast [day_number] .wind_dir

če self.locale == "je":
output = output + self.getSpaces (presledki) + WeatherText.bearing_text_es [string]
elif self.locale == "fr":
output = output + self.getSpaces (presledki) + WeatherText.bearing_text_fr [string]
drugo:
output = output + self.getSpaces (presledki) + string

elif datatype == "BF":
output = output + self.getSpaces (presledki) + WeatherText.bearing_arrow_font [self.day_forecast [day_number] .wind_dir]
elif datatype == "WS":
string = self.day_forecast [day_number] .wind_speed
če self.isNumeric (niz) == True:
če je imperial == True:
string = self.convertKilometresToMiles (niz)
niz = niz + enota hitrosti
output = output + self.getSpaces (presledki) + string
elif datatype == "WG":
string = self.day_forecast [day_number] .wind_gusts
če self.isNumeric (niz) == True:
če je imperial == True:
string = self.convertKilometresToMiles (niz)
niz = niz + enota hitrosti
output = output + self.getSpaces (presledki) + string
elif datatype == "CN":
output = output + self.getSpaces (presledki) + self.day_forecast [day_number] .city
elif datatype == "SR":
output = output + self.getSpaces (presledki) + self.day_forecast [day_number] .sunrise
elif datatype == "SS":
output = output + self.getSpaces (presledki) + self.day_forecast [day_number] .sunset
elif datatype == "MP":
output = output + self.getSpaces (presledki) + self.day_forecast [day_number] .moon_phase
elif datatype == "MF":
output = output + self.getSpaces (presledki) + WeatherText.conditions_moon_font [self.day_forecast [day_number] .moon_icon]
elif datatype == "BR":
output = output + self.getSpaces (presledki) + self.day_forecast [day_number] .bar_read
elif datatype == "BD":
output = output + self.getSpaces (presledki) + self.day_forecast [day_number] .bar_desc
drugo:
output = u »\ n NAPAKA: Zahtevan je neznan tip podatkov»
odmor

output = u »» + output.strip (u »«) # izgubi vodilni / zadnji presledek
povratni izhod

#razen:
#print "getOutputText: Nepričakovana napaka:", sys.exc_info () [0]

def getOutputTextFromTemplate (self, predloga):
#poskusi:

# tipke za podatke o predlogi
DATATYPE_KEY = "–datatype ="
STARTDAY_KEY = "–startday ="
ENDDAY_KEY = "–endday ="
NIGHT_KEY = "–noč"
SHORTWEEKDAY_KEY = "kratki teden"
IMPERIAL_KEY = "–imperial"
HIDEUNITS_KEY = "–hideunits"
SPACES_KEY = "–spaces ="

izhod = u »»

najdena možnost = False

#naloži datoteko
poskusi:
fileinput = odprto (self.options.template)
template = fileinput.read ()
fileinput.close ()
razen:
output = u »Datoteke predloge ni mogoče najti!»

templatelist = self.getTemplateList (predloga)

# omogoča sprehod po seznamu predlog in določitev izhodne vrednosti za vsak najdeni element
za i v območju (0, len (templatelist) -1):

pos = templatelist [i] .find (DATATYPE_KEY)
če je poz! = -1:
optionfound = Res
pos = pos + len (DATATYPE_KEY)
datatype = templatelist [i] [pos: pos + 4] .strip ("}"). strip ("{"). strip ("-"). strip ("")
drugo:
datatype = Brez

pos = templatelist [i] .find (STARTDAY_KEY)
če je poz! = -1:
optionfound = Res
pos = pos + len (STARTDAY_KEY)
startday = int (templatelist [i] [pos: pos + 4] .strip ("}"). strip ("{"). strip ("-"). strip (""))
drugo:
startday = Brez

pos = templatelist [i] .find (ENDDAY_KEY)
če je poz! = -1:
optionfound = Res
pos = pos + len (ENDDAY_KEY)
endday = int (templatelist [i] [pos: pos + 4] .strip ("}"). strip ("{"). strip ("-"). strip (""))
drugo:
endday = Noben

pos = templatelist [i] .find (NIGHT_KEY)
če je poz! = -1:
optionfound = Res
noč = Resnično
drugo:
noč = Lažno

pos = templatelist [i] .find (SHORTWEEKDAY_KEY)
če je poz! = -1:
optionfound = Res
shortweekday = Res
drugo:
kratki dan v tednu = napačno

pos = templatelist [i] .find (IMPERIAL_KEY)
če je poz! = -1:
optionfound = Res
imperial = Res
drugo:
imperial = lažno

pos = templatelist [i] .find (HIDEUNITS_KEY)
če je poz! = -1:
optionfound = Res
hideunits = Res
drugo:
hideunits = Napačno

pos = templatelist [i] .find (SPACES_KEY)
če je poz! = -1:
optionfound = Res
pos = pos + len (SPACES_KEY)
presledki = int (templatelist [i] [pos: pos + 4] .strip («}»). strip («{«). strip («-«). strip (»«))
drugo:
presledki = 1

če je optionfound == True:
templatelist [i] = self.getOutputText (tip podatkov, dan začetka, konec dneva, noč, kratek teden, imperial, skrivne enote, presledki)
najdena možnost = False

# pojdite skozi seznam, ki združuje izhod zdaj, ko je bil zapolnjen
za postavko v templatelistu:
izhod = izhod + element

povratni izhod

#razen:
#print "getOutputTextFromTemplate: Nepričakovana napaka:", sys.exc_info () [0]

def fetchData (self):

# vedno pridobi metrične podatke, za te podatke uporabi funkcije pogovora
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)

če self.isConnectionAvailable () == False:
če os.path.exists (file_path_current):
RefetchData = Neresnično
else: # ni povezave, ni predpomnilnika, bang!
print "Internetna povezava ni na voljo in predpomnjeni vremenski podatki ne obstajajo."
elif self.options.refetch == Res:
RefetchData = Res
drugo:
# ali je treba podatke znova pridobiti?
če os.path.exists (file_path_current):
lastmodDate = time.localtime (os.stat (datoteka_pot_tek) [ST_MTIME])
expiryDate = (datetime.datetime.today () - datetime.timedelta (minute = self.EXPIRY_MINUTES)). timetuple ()

če potečeDate> lastmodDate:
RefetchData = Res
drugo:
RefetchData = Neresnično
drugo:
RefetchData = Res

# pridobite podatke o trenutnih pogojih bodisi s spletnega mesta bodisi z "odstranjevanjem"
če je RefetchData == True:

# pridobite podatke o trenutnih pogojih iz storitve xoap
poskusi:

# 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 & enota = m '
če self.options.verbose == True:
natisni >> sys.stdout, «pridobivanje vremenskih podatkov iz«, url

Usock = urllib2.urlopen (url)
xml = usock.read ()
Usock.close ()
self.weatherxmldoc = minidom.parseString (xml)
razen:
natisni "fetchData: Nepričakovana napaka:", sys.exc_info () [0]
print "Trenutno ni mogoče vzpostaviti stika z vremenskim virom"

# povejte uporabniku, če je lokacija slaba ...
found = xml.find ("Navedena je neveljavna lokacija")
če je najdena! = -1:
natisni "Navedena je neveljavna lokacija"

# preiskujte vremenske podatke, jih naložite v strukturo razredov in jih posolite
poskusi:

# pripravite sezname vremenskih podatkov
self.current_conditions = []
self.day_forecast = []
self.night_forecast = []

# zbiranje splošnih podatkov
vreme_n = self.weatherxmldoc.documentElement
location_n = weather_n.getElementsByTagName ('loc') [0]
city_n = location_n.getElementsByTagName ('dnam') [0]
city ​​= self.getText (city_n.childNodes)

# zbiranje podatkov o trenutnih pogojih
day_of_week = u »Danes»
precip = u »N / A»
sunrise_n = location_n.getElementsByTagName ('sunr') [0]
sunrise = self.getText (sunrise_n.childNodes)
sunset_n = location_n.getElementsByTagName ('sonca') [0]
sončni zahod = 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 ('ikona') [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 ('wind') [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]
sunki vetra = self.getText (wind_gust_n.childNodes)
wind_dir_n = wind_n.getElementsByTagName ('d') [0]
wind_direction = self.getText (wind_dir_n.childNodes)
vlažnost_n = trenutni_pogoj_n.getElementsByTagName ('hmid') [0]
vlažnost = self.getText (vlažnost_n.childNodes)
moon_n = current_condition_n.getElementsByTagName ('moon') [0]
moon_icon_n = moon_n.getElementsByTagName ('ikona') [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 = Vremenski podatki (day_week, current_temp_feels, current_temp, current_code, current_desc, precip, vlažnost, wind_direction, wind_speed, wind_gusts, city, sunrise, sunset, moon_phase, moon_icon, bar_read, bar_desc)
self.current_conditions.append (current_conditions_data)

# zbiranje napovednih podatkov
bar_read = u »N / A»
bar_desc = u »N / A»
moon_phase = u »N / A»
moon_icon = u »na»
forecast_n = weather_n.getElementsByTagName ('dayf') [0]
day_nodes = forecast_n.getElementsByTagName ('dan')

za dan v day_nodes:
day_of_week = day.getAttribute ('t')
day_of_year = day.getAttribute ('dt')
high_temp_n = day.getElementsByTagName ('hi') [0]
high_temp = self.getText (high_temp_n.childNodes)
low_temp_n = day.getElementsByTagName ('nizko') [0]
nizka_tempa = samo.getText (nizka_tempa_n.childNodes)

sunrise_n = day.getElementsByTagName ('sunr') [0]
sunrise = self.getText (sunrise_n.childNodes)
sunset_n = day.getElementsByTagName ('sončka') [0]
sončni zahod = self.getText (sunset_n.childNodes)

Podatki za # dnevno napoved
daytime_n = day.getElementsByTagName ('del') [0] # dan
condition_code_n = daytime_n.getElementsByTagName ('ikona') [0]
pogoj_kod = samo.getText (stanje_koda_n.childNodes)
condition_n = daytime_n.getElementsByTagName ('t') [0]
stanje = samo.getText (stanje_n.childNodes)
precip_n = daytime_n.getElementsByTagName ('ppcp') [0]
precip = self.getText (precip_n.childNodes)
vlažnost_n = dnevna_n.getElementsByTagName ('hmid') [0]
vlažnost = self.getText (vlažnost_n.childNodes)
wind_n = daytime_n.getElementsByTagName ('veter') [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]
sunki vetra = self.getText (wind_gusts_n.childNodes)
day_forecast_data = Podatki o vremenu (day_of_week, low_temp, high_temp, condition_code, stanje, precip, vlažnost, preusmeritev vetra, hitrost vetra, sunki vetra, mesto, sončni vzhod, sončni zahod, moon_phase, moon_icon, bar_read, bar_desc)
self.day_forecast.append (day_forecast_data)

# podatki o nočni napovedi
daytime_n = day.getElementsByTagName ('del') [1] # noč
condition_code_n = daytime_n.getElementsByTagName ('ikona') [0]
pogoj_kod = samo.getText (stanje_koda_n.childNodes)
condition_n = daytime_n.getElementsByTagName ('t') [0]
stanje = samo.getText (stanje_n.childNodes)
precip_n = daytime_n.getElementsByTagName ('ppcp') [0]
precip = self.getText (precip_n.childNodes)
vlažnost_n = dnevna_n.getElementsByTagName ('hmid') [0]
vlažnost = self.getText (vlažnost_n.childNodes)
wind_n = daytime_n.getElementsByTagName ('veter') [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]
sunki vetra = self.getText (wind_gusts_n.childNodes)
night_forecast_data = WeatherData (day_of_week, low_temp, high_temp, condition_code, stanje, precip, vlažnost, preusmeritev vetra, hitrost vetra, sunki vetra, mesto, sončni vzhod, sončni zahod, moon_phase, moon_icon, bar_read, bar_desc)
self.night_forecast.append (night_forecast_data)

# kisle podatke za naslednjič!
fileoutput = odprto (datoteka_pot_toka, 'w')
pickle.dump (self.current_conditions, fileoutput)
fileoutput.close ()

fileoutput = odprto (datoteka_pot_dnevna napoved, 'w')
pickle.dump (self.day_forecast, fileoutput)
fileoutput.close ()

fileoutput = odprto (datoteka_pot_nočna napoved, 'w')
pickle.dump (self.night_forecast, fileoutput)
fileoutput.close ()

razen:
natisni "fetchData: Nepričakovana napaka:", sys.exc_info () [0]
print "Ni mogoče zaslišati vremenskih podatkov"

else: # pridobi podatke o vremenu iz kislih datotek razreda
če self.options.verbose == True:
natisni >> sys.stdout, «pridobivanje vremenskih podatkov iz datoteke:«, trenutna_pot_datoteke

fileinput = odprto (datoteka_pot_toka, 'r')
self.current_conditions = pickle.load (vnos datoteke)
fileinput.close ()

če self.options.verbose == True:
natisni >> sys.stdout, "pridobivanje podatkov o napovedi dneva iz datotek:", file_path_dayforecast, file_path_nightforecast

fileinput = odprto (datoteka_pot_dnevna napoved, 'r')
self.day_forecast = pickle.load (vnos datoteke)
fileinput.close ()

če self.options.verbose == True:
natisni >> sys.stdout, "pridobivanje podatkov o napovedi dneva iz datotek:", file_path_nightforecast, file_path_nightforecast

fileinput = odprto (file_path_nightforecast, 'r')
self.night_forecast = pickle.load (vnos datoteke)
fileinput.close ()

def outputData (self):
#poskusi:

if self.options.template! = Brez:

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

drugo:

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)

natisni izhod.encode ("utf-8")

#razen:
#print "outputData: Nepričakovana napaka:", sys.exc_info () [0]

če je __name__ == "__glavna__":

razčlenjevalnik = CommandLineParser ()
(možnosti, argumenti) = parser.parse_args ()

če options.verbose == True:
natisni >> sys.stdout, "lokacija:", options.location
natisni >> sys.stdout, "imperial:", options.imperial
natisni >> sys.stdout, "tip podatkov:", options.datatype
natisni >> sys.stdout, "noč:", options.night
natisni >> sys.stdout, "dan začetka:", options.startday
natisni >> sys.stdout, "end day:", options.endday
natisni >> sys.stdout, "presledki:", options.spaces
natisni >> sys.stdout, "podrobno:", options.verbose
natisni >> sys.stdout, "refetch:", options.refetch

# ustvari nov globalni vremenski objekt
vreme = GlobalWeather (možnosti)
weather.fetchData ()
weather.outputData ()

Ustvarimo datoteko ~ / Conky / scripts / myweather.template

gedit ~ / Conky / scripts / myweather.template

V notranjost prilepimo naslednje:

{–Datatype = DW –startday = 1}: {–datatype = CC –startday = 1}
{–Datatype = HT –startday = 1} / {–datatype = LT –startday = 1} Veter iz {–datatype = WD –startday = 1} v {–datatype = WS –startday = 1}
Vlažnost: {–datatype = HM –startday = 1} Padavine: {–datatype = PC –startday = 1}
Sončni vzhod: {–datatype = SR –startday = 1} Sončni zahod: {–datatype = SS –startday = 1}
———————————————–
{–Datatype = DW –startday = 2}: {–datatype = CC –startday = 2}
{–Datatype = HT –startday = 2} / {–datatype = LT –startday = 2} Veter iz {–datatype = WD –startday = 2} v {–datatype = WS –startday = 2}
Vlažnost: {–datatype = HM –startday = 2} Padavine: {–datatype = PC –startday = 2}
Sončni vzhod: {–datatype = SR –startday = 2} Sončni zahod: {–datatype = SS –startday = 2}
———————————————–
{–Datatype = DW –startday = 3}: {–datatype = CC –startday = 3}
{–Datatype = HT –startday = 3} / {–datatype = LT –startday = 3} Veter iz {–datatype = WD –startday = 3} v {–datatype = WS –startday = 3}
Vlažnost: {–datatype = HM –startday = 3} Padavine: {–datatype = PC –startday = 3}
Sončni vzhod: {–datatype = SR –startday = 3} Sončni zahod: {–datatype = SS –startday = 3}
———————————————–
{–Datatype = DW –startday = 4}: {–datatype = CC –startday = 4}
{–Datatype = HT –startday = 4} / {–datatype = LT –startday = 4} Veter iz {–datatype = WD –startday = 4} v {–datatype = WS –startday = 4}
Vlažnost: {–datatype = HM –startday = 4} Padavine: {–datatype = PC –startday = 4}
Sončni vzhod: {–datatype = SR –startday = 4} Sončni zahod: {–datatype = SS –startday = 4}

Ustvarimo datoteko ~ / Conky / scripts / mail / conkyEmail.py (ustvariti moramo poštno mapo)

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

in prilepite naslednje:

import os
uvozni niz

# Spodaj v dvojne narekovaje vnesite svoje uporabniško ime in geslo
# npr. uporabniško ime = »uporabniško ime» in geslo = »geslo»
uporabniško ime = »YOUR_USUARIO_SINARROBA«
geslo = »VAŠ_KLJUČ«

com = »wget -O - https: //» + uporabniško ime + »:» + geslo + »@ mail.google.com / mail / feed / atom –no-check-certificate»

temp = os.popen (com)
msg = temp.read ()
index = string.find (msg, » »)
index2 = string.find (msg, » »)
fc = int (sporočilo [indeks + 11: indeks2])

če je fc == 0:
natisni "0 novo"
drugo:
natisni str (fc) + »novo»

Zdaj imate 7 datotek:

V mapi: ~
-> .startconky << - naredite izvedljivo

V mapi: ~ / Conky
-> conkymain
-> conkyforecast
-> conkymail

in v mapi: ~ / Conky / skripte
-> conkyForecast.py << - naredi izvedljivo
-> myweather.template

in v mapi: ~ / Conky / scripts / mail
conkyEmail.py << - naredite izvedljivo

In to je to, pojasnila, kjer piše / dom / uporabnik / ... vaše uporabniško ime in v delu, kamor gredo podatki v Gmailu, sem poudaril z barvami, kamor morate vnesti svoje podatke.

da ubijete neurejen postopek, zapišite v konzolo

killall conky

zagnati conky zapis v konzolo

./.startconky

ko vse prilagodite, če želite, da conky začne vsako sejo

Sistem -> Nastavitve -> Seje in v zagonskih programih ga dodamo

V Name lahko napišemo Conky, v vrstnem redu ./.startconky pa se začne ob vsakem vklopu računalnika.

To je to, upam, da vam pomaga.


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.