Conky, benim kurulumum

Fecfactor dün benden aşağıdaki ekran görüntüsünde gösterdiğim conky yapılandırmasını yayınlamamı istedi.

Gördüğünüz gibi bir komut dosyası aracılığıyla çalıştırılan 3 conkys vardır, yapılandırması temel alır. Bu mesajı Bruce M. kullanıcısı tarafından forumlarında yayınlandı Ubuntu-Ar benim durumumda Gmail için olan mail conky'de bazı değişikliklerle.

Referans gönderisinde Bruce tarafından çok iyi açıklanmıştır, ama aynı zamanda benim için bir hafıza yardımı olarak, takip edilecek adımları ve bunlara sahip olan her kimse için conkilerimin kodunu kopyalayacağım.

Elbette conky, curl ve python'un kurulu olması gerekiyor, bu yüzden bir konsol yazıyoruz:

sudo apt-get kurulum conky curl python

Weather.ttf ve oklar.ttf dosyasının kaynağı burada. Moon.ttf'nin kaynağı burada indirdikten sonra bunları / usr / share / fonts'a kopyalamanız gerekir

Şimdi ~. / Startconky adlı betiğimizi oluşturalım.

gksudo gedit ~ / .startconky

boş dosyanın içine aşağıdakileri yapıştırıyoruz

#! / Bin / bash
uyku 0 & # 0 Xfce için iyidir - Gnome için 20-30 arası kullanın
conky -c ~ / Conky / conkymain &
#sleep 0 & # 0 Xfce için iyidir - Gnome için 1 kullanın
conky -c ~ / Conky / conkyforecast &
#sleep 0 & # 0 Xfce için iyidir - Gnome için 1 kullanın
conky -c ~ / Conky / conkymail &

Şimdi conkymain dosyasını ~ / Conky klasöründe oluşturuyoruz, eğer Conky klasörümüz yoksa, onu oluşturmamız gerekecek.

gedit ~ / Conky / conkymain

Calibri yazı tipini kullanıyorum, eğer yoksa, onu ne istersen değiştir.

Aşağıdakinin içine yapışırız

arka plan yok
own_window evet
own_window_transparent evet
own_window_hints undecorated, under, sticky, skip_taskbar, skip_pager
own_window_colour siyah
double_buffer evet
use_spacer kaldı
use_xft evet
yazı tipi calibri: size = 9
xftfont calibri: size = 9
xftalfa 0.5
güncelleme_aralığı 5.0
tüm metnin büyük harf olmasını istiyorsanız büyük harf hayır # evet olarak ayarlayın
noktalı_sınırlar 3
border_margin 9
sınır_genişliği 10
default_color beyaz
default_outline_color siyah
default_shade_color siyah
color0 camgöbeği
color1 açık mavi
color2 turuncu
color3 sarı
color4 buğday
color5 beyaz
color6 beyaz
color7 beyaz
color8 beyaz
color9 beyaz
hizalama top_right # veya top_left, bottom_left, bottom_right
boşluk_x 10
boşluk_y 35
text_buffer_size 128 # tahmin için 1024'ü kullanın
no_buffers yes # Dosya sistemi arabellekleri kullanılan bellekten çıkarılsın mı?
draw_borders hayır
draw_outline yes # evet ise metni güçlendirir
draw_shades evet # shadecolor siyah

METİN
$ {font calibri: size = 12} $ {alignc} $ {color1} $ sysname $ kernel on $ machine} $ color $ font
$ {font calibri: size = 12} $ {alignc} $ {color2} $ {exec whoami} @ $ nodename $ color $ font
$ {color0} $ {hr 1} $ renk
$ {font calibri: size = 20} $ {alignc} $ {time% H:% M} $ font
$ {font calibri: size = 12} $ {color1} $ {alignc} $ {time% A,% d% b. % Y} $ color $ yazı tipi
$ {color3} UpTime: $ {alignr 2} $ uptime $ color
$ {color0} $ {hr 1} $ renk
$ {voffset 5} $ {color2} CPU: $ {alignc} $ renk $ running_processes $ {renk1} / $ renk $ işlemler $ {alignr 2} $ {renk2} $ {cpubar cpu0 14,80} $ renk
$ {color1} $ {voffset -16} $ {alignr 5} $ cpu% $ renk
$ {voffset 2} $ {color1} Yükleme Ort. ({color3} Min $ {color1}): $ {alignr 2} $ {color3} 1: $ renk $ {loadavg 1} $ {color3} 5: $ renk $ {loadavg 2} $ {color3} 15: $ renk $ {loadavg 3}
$ {voffset 5} $ {color2} RAM: $ color $ mem $ {color2} / $ color $ memmax $ {alignr 2} $ {color2} $ {membar 14,80} $ renk
$ {color1} $ {voffset -16} $ {alignr 5} $ memperc% $ renk
$ {voffset 2} $ {color1} Arabellekli: $ color $ {buffers} $ {alignr 2} $ {color1} Önbelleğe alındı: $ color $ {cached}
$ {voffset 5} $ {color2} SWAP: $ color $ swap $ {color2} / $ color $ {swapmax} $ {alignr 2} $ {color2} $ {swapbar 14,80} $ renk
$ {color1} $ {voffset -16} $ {alignr 5} $ swapperc%
$ {color0} $ {hr 1} $ renk
$ {voffset 5} $ {color2} HD Bilgi $ {color1} - $ renk Ücretsiz $ {color1} - Kullanılmış - $ {color2} Toplam
$ {voffset 5} $ {color1} Kök: $ color $ {fs_free_perc /}% $ {alignr 2} $ {fs_free /} $ {color2} / $ {color1} $ {fs_used /} $ renk / $ {renk2} $ {fs_size /} $ renk
$ {color1} Ana Sayfa: $ color $ {fs_free_perc / home / user}% $ {alignr 2} $ {fs_free / home / user} $ {color2} / $ {color1} $ {fs_used / home / user} $ color / $ {color2} $ {fs_size / home / user} $ renk
$ {color0} $ {hr 1} $ renk
$ {color1} Gönderen: $ color Buenos Aires, Arjantin
$ {color1} Enlem: $ {color2} 34 ° 35'S $ {color1} Uzun: $ {color2} 58 ° 21'W $ {color1} Alt: $ {color2} 25 m $ renk
$ {voffset 5} $ {color2} $ {font calibri: size = 12} bugün: $ font $ {color3} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = CC} $ color $ {alignr 2} $ {color1} ST: $ {color2} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = LT}
$ {color3} $ {font Hava Durumu: size = 50} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = WF} $ font $ renk
$ {alignr 50} $ {voffset -55} $ {font calibri: size = 25} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = HT} $ font
$ {alignc 20} $ {voffset -30} $ {yazı tipi Oklar: size = 20} $ {color4} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = BF} $ color $ yazı tipi
$ {alignc 10} $ {voffset 5} $ {color4} Rüzgar: $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = WS} $ renk
$ {color1} Nem: $ {color3} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = HM} $ {alignr 2} $ {color1} Yağış: $ {color3} $ { execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = PC} $ renk
$ {alignc} $ {color1} Basınç: $ {color3} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = BR} - $ {color3} $ {execi 3600 python ~ / Conky /scripts/conkyForecast.py –location = ARBA0009 –datatype = BD} $ renk
$ {color4} $ {hr} $ renk
$ {color1} Gün doğumu: $ {color3} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = SR} $ {alignr 2} $ {color1} Gün batımı: $ {color3} $ { execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = SS} $ renk
$ {voffset 15} $ {color1} Ay: $ {color4} $ {alignr 2} $ {color3} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = MP} $ renk
$ {voffset -20} $ {offset 80} $ {color4} $ {yazı tipi ay evreleri: size = 20} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = MF} $ font $ renk
$ {color0} $ {hr} $ renk
$ {voffset 5} $ {renk2} IP: $ {hizala} $ renk $ {adres eth0}
$ {color1} Aşağı: $ color $ {downspeed eth0} k / s $ {alignr 2} $ {color1} Yukarı: $ color $ {upspeed eth0} k / s
$ {color1} Toplam: $ color $ {totaldown eth0} $ {alignr 2} $ {color1} Toplam: $ renk $ {totalup eth0}
$ {color1} Gelen: $ color $ {tcp_portmon 1 32767 count} $ {color1} Giden: $ color $ {tcp_portmon 32768 61000 count} $ {alignr 2} $ {color1} Toplam: $ color $ {tcp_portmon 1 65535 sayım}
$ {voffset 5} $ {color2} Bağlantılar: $ color $ {tcp_portmon 32768 61000 count} $ {alignr 2} $ {color2} Hizmet / Bağlantı Noktası $ renk
$ {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} $ renk

~ / Conky / conkyforecast dosyasını oluşturuyoruz

gedit ~ / Conky / conkyforecast

ve aşağıdakileri içine yapıştırıyoruz

arka plan yok
own_window evet
own_window_transparent evet
own_window_hints undecorated, under, sticky, skip_taskbar, skip_pager
own_window_colour siyah
double_buffer evet
use_spacer kaldı
use_xft evet
yazı tipi calibri: size = 8
xftfont calibri: size = 8
xftalfa 0.5
güncelleme_aralığı 5.0
tüm metnin büyük harf olmasını istiyorsanız büyük harf hayır # evet olarak ayarlayın
noktalı_sınırlar 3
border_margin 9
sınır_genişliği 10
default_color beyaz
default_outline_color siyah
default_shade_color siyah
color0 camgöbeği
color1 açık mavi
color2 turuncu
color3 sarı
color4 buğday
color5 beyaz
color6 beyaz
color7 beyaz
color8 beyaz
color9 beyaz
hizalama bottom_left # veya top_left, bottom_left, bottom_right
boşluk_x 10
boşluk_y 35
text_buffer_size 1024 # tahmin için 1024'ü kullanın
no_buffers yes # Dosya sistemi arabellekleri kullanılan bellekten çıkarılsın mı?
draw_borders hayır
draw_outline yes # evet ise metni güçlendirir
draw_shades evet # shadecolor siyah

METİN
$ {color4} $ {font calibri: size = 11} Genişletilmiş Tahmin $ font $ color
$ {color0} $ {hr} $ renk
$ {color4} $ {font calibri: size = 9} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –template = / home / user / Conky / scripts / myweather.template} $ font $ renk

~ / Conky / conkymail dosyasını oluşturuyoruz

gedit ~ / Conky / conkymail

aşağıdakileri dosyaya yapıştırıyoruz

arka plan yok
own_window evet
own_window_transparent evet
own_window_hints undecorated, under, sticky, skip_taskbar, skip_pager
own_window_colour siyah
double_buffer evet
use_spacer kaldı
use_xft evet
yazı tipi calibri: size = 8
xftfont calibri: size = 8
xftalfa 0.5
güncelleme_aralığı 5.0
tüm metnin büyük harf olmasını istiyorsanız büyük harf hayır # evet olarak ayarlayın
noktalı_sınırlar 3
border_margin 9
sınır_genişliği 10
default_color beyaz
default_outline_color siyah
default_shade_color siyah
color0 camgöbeği
color1 açık mavi
color2 turuncu
color3 sarı
color4 buğday
color5 beyaz
color6 beyaz
color7 beyaz
color8 beyaz
color9 beyaz
hizalama bottom_left # veya top_left, bottom_left, bottom_right
boşluk_x 565
boşluk_y 35
text_buffer_size 128 # tahmin için 1024'ü kullanın
no_buffers yes # Dosya sistemi arabellekleri kullanılan bellekten çıkarılsın mı?
draw_borders hayır
draw_outline yes # evet ise metni güçlendirir
draw_shades evet # shadecolor siyah

METİN
$ {font calibri: size = 11} $ {alignc} $ {color4} Gmail
$ {color0} $ {hr} $ renk
$ {font calibri: size = 11} $ {color4} $ {color3} $ {execi 300 python ~ / Conky / scripts / mail / conkyEmail.py} $ {color4} email (s) $ fontumuz var

~ / Conky / scripts / conkyForecast.py'de bir dosya oluşturuyoruz (scripts klasörünü oluşturmalıyız)

gedit ~ / Conky / scripts / conkyForecast.py

#! / usr / bin / python
# - * - kodlama: utf-8 - * -
##################################################### ################################
# conkyForecast.py toplanacak (o kadar da değil) basit (artık) bir python betiğidir
# conky'de kullanım için mevcut hava durumu ayrıntıları.
#
# Yazar: Kaivalagi
# Oluşturuldu: 13/04/2008
# Değişiklikler:
# 14/04/2008 Tahmin verileri için gün aralıklarına izin verin
# 14/04/2008 xoap hizmetine bağlantıyı kontrol edin
# 18/04/2008 Aralıklı çıktı için boşlukların ayarlanmasına izin verin
# 18/04/2008 Gece ve Gündüz tahmin çıktısına izin ver
# 18/04/2008 Durum kodu metni "CC" seçeneği için yerel desteği destekleyin, ispanyolca çevirisini bekliyor
# 18/04/2008 xml'yi açmak yerine sınıf verileri için dekapaj kullanın, bu önbelleğe alınmış verileri sorgulama ihtiyacını atlar
# 19/04/2008 İspanyolca koşul metni eklendi - Teşekkürler Bruce M
# 19/04/2008 Birim son eki ile tüm sayısal çıktılara sayısal kontrol eklendi
# 19/04/2008 Konum kodunu dahil etmek için turşu dosyası adlandırma değiştirildi
# 19/04/2008 Yerel ayar aracılığıyla İspanyolca hafta içi gün dönüşümü eklendi
# 20/04/2008 İyi bir komut argüman ayrıştırıcısı eklendi
# 20/04/2008 –hortweekday seçeneği eklendi, eğer haftanın günü veri türü 3 karaktere kısaltılırsa
# 21/04/2008 Tahmin çıktısı için sabit yerel ayar seçenekleri
# 21/04/2008 Tek bir exec çağrısı kullanarak özel çıktıya izin vermek için –template seçeneği eklendi 🙂
# 21/04/2008 Çıktıdan örneğin mph ve C'yi kaldırmak için –hideunits seçeneği eklendi
# 23/04/2008 Şablondan emperyal seçenek kaldırıldı, bu komut dosyası çağrısında standart bir seçenek olarak ayarlanmalı ve şablon dosyasında kullanılmamalıdır ZORUNLU.
# 23/04/2008 Okundu - şablon için emperyal seçenek, veri türü başına metrik veya İngiliz ölçü değerlerini etkinleştirir. Şablonları kullanırken komut satırı seçeneği çalışmayacaktır.
# 23/04/2008 Verilen konum kötüyse kullanıcıyı bilgilendiren çıktı eklendi
# 24/04/2008 Bağlantısızlık için işleme eklendi, şimdi önbelleğe alınan verilere geri dönecek (önbellek yoksa hata veriyor). Xoap.weather.com'u açmaya çalışarak testler
# 24/04/2008 Sabit Santigrat - fahrenhayt dönüşümü
# 06/05/2008 Web hizmeti güncellendikten sonra kullanılan güncellenmiş url
# 09/05/2008 Birleştirilmiş mevcut durum ve tahmin verileri tek bir aramaya getirildi
# 09/05/2008 Veri türlerine Gün Doğumu ve Gün Batımı eklendi, bunlar hem mevcut koşullara hem de tahmin verilerine özeldir
# 09/05/2008 Veri türlerine ay fazı, barometre okuması ve barometre açıklaması eklendi, bunlar yalnızca mevcut koşullara özgüdür ve tahmin edilen çıktıda N / A da öyle
# 09/05/2008 Barometre için mb'den inç'e (İngiliz ölçü birimi) birim dönüşümleri eklendi
# 09/05/2008 İspanyolca durum metni güncellendi - Teşekkürler Bruce M
# 10/05/2008 Fransız yerel verileri eklendi - Teşekkürler benpaka
# 12/05/2008 WD'den NSEW çıktısı (rüzgar yönü) yerine bir ok karakteri (Arrow.ttf yazı tipiyle kullanın) sağlamak için yeni BF (yatak yazı tipi) veri türü eklendi
# 12/05/2008 WD çıkışı yerel ayara özel olacak şekilde güncellendi, şu anda varsayılan İngilizce ve İspanyolca'yı destekliyor - Teşekkürler Bruce M
# 18/05/2008 Ay yazı tipi karakteri sağlamak için yeni MF (ay yazı tipi) veri türü eklendi (karakterler yanlış ve henüz özel yazı tipi yok).
# 21/05/2008 Mevcut koşullar için –datatype = LT seçeneği artık mevcut sıcaklık yerine "sıcaklık gibi" gösteriyor
#
# HER ŞEY:
# Pkl dosyalarını tek bir dosya / sınıfta birleştirin
# Ay simgesi verilerine göre ay fazı çıktısına dayalı bir hava durumu yazı tipi ekleyin
# ??? Orada başka gereksinim var mı?

içe aktarma sys, işletim sistemi, soket, urllib2, tarih saat, saat
xml.dom'dan içe aktarma minidom
istatistik ithalatından *
Optparse içe aktarmadan OptionParser
yerel ayarı içe aktar
gettext'i içe aktar
ithal turşu
matematik içe aktarmadan *

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

sınıf CommandLineParser:

ayrıştırıcı = Yok

def __init __ (öz):

self.parser = OptionParser ()
self.parser.add_option («- l», »- konum», hedef = »konum», varsayılan = »UKXX0103 ″, tür =» dize », metavar =» KOD », yardım = u» hava durumu verileri için konum kodu [ varsayılan:% default], Konum kodunuzu şehir adına göre belirlemek için şu url'yi kullanın: http://xoap.weather.com/search/search?where=Norwich »)
self.parser.add_option ("- d", "- veri türü", dest = "veri türü", varsayılan = "HT", tür = "dize", metavar = "DATATYPE", yardım = u "[varsayılan:% varsayılan] Veri türü seçenekleri şunlardır: DW (Haftanın Günü), WF (Hava Durumu Yazı Tipi Çıkışı), LT (Tahmin: Düşük Sıcaklık, Akım: Sıcaklık Gibi Hissettir), HT (Tahmin: Yüksek Sıcaklık, Akım: Mevcut Sıcaklık), CC (Mevcut Koşullar), CT (Koşullar Metni), PC (Yağış Şansı), HM (Nem), WD (Rüzgar Yönü), WS (Rüzgar Hızı), WG (Rüzgarlar), CN (Şehir Adı), SR (gün doğumu), SS (gün batımı), MP (ay evresi), MF (ay yazı tipi), BR (barometre okuma), BD (barometre açıklaması). Şablonları kullanırken komut satırında uygulanamaz. »)
self.parser.add_option («- s», »- başlangıç ​​günü», hedef = »başlangıç ​​günü», tür = »int», metavar = »SAYI», yardım = u »başlangıç ​​günü numarasını tanımlayın, eğer atlanmış mevcut koşullar çıktıysa . Şablonları kullanırken komut satırında uygulanamaz. »)
self.parser.add_option ("- e", "- endday", dest = "endday", type = "int", metavar = "NUMBER", help = u "yalnızca başlangıç ​​günü verileri atlanırsa bitiş gün numarasını tanımlar çıktı. Şablonları kullanırken komut satırında uygulanamaz. »)
self.parser.add_option («- S», »- boşluklar», dest = »boşluklar», tür = »int», varsayılan = 1, metavar = »NUMBER», yardım = u »[varsayılan:% varsayılan] aralıklı çıktı arasındaki boşluk sayısı. Şablonları kullanırken komut satırında uygulanamaz. »)
self.parser.add_option («- t», »- şablon», hedef = »şablon», tür = »dize», metavar = »DOSYA», yardım = u »bir çağrıda çıktı oluşturmak için bir şablon dosyası tanımlayın. dosyadaki görüntülenebilir öğe {–datatype = HT –startday = 1} biçimindedir. Her öğe içindeki olası seçenekler şunlardır: –datatype, –startday, –endday, –night, –shortweekday, –imperial, –hideunits, –Space. Seçeneklerin kısa biçimlerinin şu anda desteklenmediğini unutmayın! Bu seçeneklerin hiçbiri şablonlar kullanılırken komut satırında uygulanamaz. »)
self.parser.add_option («- L», »- locale», dest = »locale», type = »string», help = u »dil çıktısı için sistem yerel ayarını geçersiz kılın (en = ingilizce, es = ispanyolca, fr = fransızca, daha fazlası gelecek) »)
self.parser.add_option ("- i", "- imperial", dest = "imperial", default = False, action = "store_true", help = u "ihmal edilen çıktı metrikse, İngiliz ölçü birimleri iste. şablonları kullanırken komut satırı. »)
self.parser.add_option («- n», »- gece», hedef = »gece», varsayılan = Yanlış, eylem = »mağaza_doğru», yardım = u »çıkışı gece verilerine değiştir, atlanırsa gündüz çıkışı çıkacaktır. Şablonları kullanırken komut satırında uygulanamaz. »)
self.parser.add_option («- w», »- hafta içi kısa», hedef = »hafta içi kısa», varsayılan = Yanlış, eylem = »mağaza_doğru», yardım = u »Haftanın günü veri türünü 3 karaktere kısaltın. Şu adreste uygulanamaz şablonları kullanırken komut satırı. »)
self.parser.add_option («- u», »- hideunits», dest = »hideunits», default = False, action = »store_true», help = u »mph veya C gibi birimleri gizle, derece sembolleri (°) hala gösteriliyor. Şablonları kullanırken komut satırında uygulanamaz. »)
self.parser.add_option ("- v", "- ayrıntılı", dest = "verbose", default = False, action = "store_true", help = u "ayrıntılı çıktı isteği, conky üzerinden çalışırken iyi bir fikir yok!" )
self.parser.add_option ("- r", "- refetch", dest = "refetch", default = False, action = "store_true", help = u "verilerin süresinin dolmasına bakılmaksızın verileri getir")

def parse_args (öz):
(seçenekler, değiştirgeler) = self.parser.parse_args ()
return (seçenekler, değiştirgeler)

def print_help (öz):
self.parser.print_help () döndür

sınıf WeatherData:
def __init __ (self, day_of_week, low, high, condition_code, condition_text, yağış, nem, wind_dir, wind_speed, wind_gusts, city, sunrise, sunset, moon_phase, moon_icon, bar_read, bar_desc):
self.day_of_week = u »» + haftanın_günü
self.low = u »» + düşük
self.high = u »» + yüksek
self.condition_code = u »» + koşul_kodu
self.condition_text = u »» + koşul_metni
self.precip = u »» + presip
self.humidity = u »» + nem
self.wind_dir = u »» + wind_dir
self.wind_speed = u »» + wind_speed
self.wind_gusts = u »» + wind_gusts
self.city = u »» + şehir
self.sunrise = u »» + gün doğumu
self.sunset = u »» + gün batımı
self.moon_phase = u »» + moon_phase
self.moon_icon = u »» + moon_icon
self.bar_read = u »» + bar_read
self.bar_desc = u »» + bar_desc

sınıf WeatherText:

koşullar_metni = {
«0»: _ (u »Kasırga»),
«1»: _ (u »Tropik Fırtına»),
«2»: _ (u »Kasırga»),
«3»: _ (u »Şiddetli Gök Gürültülü Fırtına»),
«4»: _ (u »Gök Gürültülü Fırtına»),
«5»: _ (u »Karışık Yağmur ve Kar»),
«6»: _ (u »Karışık Yağmur ve Sulu Karışım»),
«7»: _ (u »Karışık Yağış»),
«8»: _ (u »Çiseleme Dondurucu»),
«9»: _ (u »Çiseleme»),
«10»: _ (u »Dondurucu Yağmur»),
«11»: _ (u »Sağanaklar»),
«12»: _ (u »Sağanaklar»),
«13»: _ (u »Kar Fırtınaları»),
«14»: _ (u »Hafif Kar Sağanağı»),
«15»: _ (u »Kar Fırtınası»),
«16»: _ (u »Kar»),
«17»: _ (u »Dolu»),
«18»: _ (u »Sulu kar»),
«19»: _ (u »Toz»),
«20»: _ (u »Sis»),
«21»: _ (u »Bulanıklık»),
«22»: _ (u »Duman»),
«23»: _ (u »Blustery»),
«24»: _ (u »Rüzgarlı»),
«25»: _ (u »Soğuk»),
«26»: _ (u »Bulutlu»),
«27»: _ (u »Çok Bulutlu»),
«28»: _ (u »Çok Bulutlu»),
«29»: _ (u »Parçalı Bulutlu»),
«30»: _ (u »Parçalı Bulutlu»),
«31»: _ (u »Temizle»),
«32»: _ (u »Temizle»),
«33»: _ (u »Orta»),
«34»: _ (u »Orta»),
«35»: _ (u »Karışık Yağmur ve Dolu»),
«36»: _ (u »Sıcak»),
«37»: _ (u »İzole Gök Gürültülü Fırtına»),
«38»: _ (u »Dağınık Gök Gürültülü Fırtınalar»),
«39»: _ (u »Dağınık Gök Gürültülü Fırtınalar»),
«40»: _ (u »Dağınık Sağanak Yağmurları»),
«41»: _ (u »Yoğun Kar»),
«42»: _ (u »Dağınık Kar Sağanakları»),
«43»: _ (u »Yoğun Kar»),
«44»: _ (u »Parçalı Bulutlu»),
«45»: _ (u »Gök Gürültüsü Sağanakları»),
«46»: _ (u »Kar Sağanakları»),
«47»: _ (u »İzole Gök Gürültülü Fırtına»),
«Na»: _ (u »YOK»),
"-": _ (a ")
}

koşullar_text_es = {
«0»: _ (u »Kasırga»),
«1»: _ (u »Tropik Fırtına»),
«2»: _ (u »Huracá¡n»),
«3»: _ (u »Güçlü Fırtınalar»),
«4»: _ (u »Fırtınalar»),
«5»: _ (u »Karışık Yağmur ve Kar»),
«6»: _ (u »Karışık Yağmur ve Sulu Karışım»),
«7»: _ (u »Sulu kar»),
«8»: _ (u »Çiseleme Dondurucu»),
«9»: _ (u »Çiseleme»),
«10»: _ (u »Dondurucu Yağmur»), # veya dondurucu yağmur
«11»: _ (u »Sağanaklar»),
«12»: _ (u »Sağanaklar»),
«13»: _ (u »Hafif Karlı»),
«14»: _ (u »Hafif Karlı»),
«15»: _ (u »Kar Fırtınası»),
«16»: _ (u »Kar»),
«17»: _ (u »Dolu»),
«18»: _ (u »Sulu kar»),
«19»: _ (u »Toz»),
«20»: _ (u »Sis»),
«21»: _ (u »Bulanıklık»),
«22»: _ (u »Duman»),
«23»: _ (u »Fırtına»),
«24»: _ (u »Rüzgarlı»),
«25»: _ (u »Fráo»),
«26»: _ (u »Çok Bulutlu»),
«27»: _ (u »Çok Bulutlu»),
«28»: _ (u »Çok Bulutlu»),
«29»: _ (u »Parçalı Bulutlu»),
«30»: _ (u »Parçalı Bulutlu»),
«31»: _ (u »Temizle»),
«32»: _ (u »Temizle»),
«33»: _ (u »Bulutlu Bir Şey»),
«34»: _ (u »Bulutlu Bir Şey»),
«35»: _ (u »Dolu ile Yağmur»),
«36»: _ (u »Isıtma»),
«37»: _ (u »İzole Fırtınalar»),
«38»: _ (u »Dağınık Fırtınalar»),
«39»: _ (u »Dağınık Fırtınalar»),
«40»: _ (u »Dağınık Sağanaklar»),
«41»: _ (u »Yoğun Kar»),
«42»: _ (u »Zayıf ve Dağınık Kar Yağışı»),
«43»: _ (u »Yoğun Nevada»),
«44»: _ (u »Parçalı Bulutlar»),
«45»: _ (u »Fırtınalar»),
«46»: _ (veya »Dağınık Kar Yağışı»),
«47»: _ (u »İzole Fırtınalar»),
«Na»: _ (u »YOK»),
"-": _ (a ")
}

koşullar_text_fr = {
«0»: _ (u »Kasırga»),
«1»: _ (u »Tempête Tropicale»),
«2»: _ (veya »Ouragan»),
«3»: _ (veya »Orage Şiddetleri»),
«4»: _ (veya »Orageux»),
«5»: _ (u »Pluie et Neige»),
«6»: _ (u »Pluie et Neige Mouillée»),
«7»: _ (u »Değişken ortalamalar»),
«8»: _ (u »Bruine Givrante»),
«9»: _ (u »Bruine»),
«10»: _ (u »Pluie Buzulu»),
«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 »Nüaj Çözülmeleri»),
«30»: _ (u »Nüaj Çözülmeleri»),
«31»: _ (u »Beau»),
«32»: _ (u »Beau»),
«33»: _ (u »Belles Éclaircies»),
«34»: _ (u »Belles Éclaircies»),
«35»: _ (u »Pluie avec Grêle»),
«36»: _ (u »Chaleur»),
«37»: _ (veya »Orage İzoleleri»),
«38»: _ (veya »Orage Localisés»),
«39»: _ (veya »Orage 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 »Nüaj Çözülmeleri»),
«45»: _ (veya »Orajlar»),
«46»: _ (u »Tempête de Neige»),
«47»: _ (veya »Orage İzoleleri»),
«Na»: _ (u »YOK»),
"-": _ (a ")
}

koşullar_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 »»),
"-": _ (veya "")
}

koşullar_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 »»),
"-": _ (veya "")
}

hafta_of_day = {
"Bugün": _ (veya "Bugün"),
«Pazartesi»: _ (u »Pazartesi»),
«Salı»: _ (u »Salı»),
«Çarşamba»: _ (u »Çarşamba»),
«Perşembe»: _ (u »Perşembe»),
«Cuma»: _ (u »Cuma»),
"Cumartesi": _ (u "Cumartesi"),
"Pazar": _ (u "Pazar")
}

hafta_of_day_short = {
"Bugün": _ (u "Şimdi"),
«Pazartesi»: _ (u »Pzt»),
«Salı»: _ (u »Sal»),
«Çarşamba»: _ (u »Çar»),
«Perşembe»: _ (u »Per»),
«Cuma»: _ (u »Cum»),
"Cumartesi": _ (u "Cts"),
"Pazar": _ (u "Güneş")
}

day_of_week_tr = {
"Bugün": _ (u "bugün"),
«Pazartesi»: _ (u »Pazartesi»),
«Salı»: _ (u »Salı»),
«Çarşamba»: _ (u »Çarşamba»),
«Perşembe»: _ (u »Perşembe»),
«Cuma»: _ (u »Cuma»),
"Cumartesi": _ (u "Cumartesi"),
"Pazar": _ (u "Pazar")
}

day_of_week_short_en = {
"Bugün": _ (u "bugün"),
"Pazartesi": _ (u "pazartesi"),
«Salı»: _ (u »deniz»),
«Çarşamba»: _ (u »çar»),
«Perşembe»: _ (u »Perş»),
"Cuma": _ (u "fri"),
"Cumartesi": _ (u "oturdu"),
"Pazar": _ (u "dom")
}

gün_of_hafta_fr = {
«Bugün»: _ (u »Aujourd'hui»),
«Pazartesi»: _ (u »Lundi»),
«Salı»: _ (u »Mardi»),
«Çarşamba»: _ (u »Mercredi»),
«Perşembe»: _ (u »Jeudi»),
«Cuma»: _ (u »Vendredi»),
"Cumartesi": _ (u "Samedi"),
"Pazar": _ (u "Dimanche")
}

day_of_week_short_fr = {
«Bugün»: _ (u »Auj»),
"Pazartesi": _ (u "Pzt"),
«Salı»: _ (u »Mar»),
"Çarşamba": _ (u "Mer"),
«Perşembe»: _ (u »Jeu»),
«Cuma»: _ (u »Gel»),
"Cumartesi": _ (u "Sam"),
"Pazar": _ (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"),
«KB»: _ (u »g»),
«NNW»: _ (u »h»),
«Yok»: _ (u »«)
}

Bearing_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"),
"Onların"),
"SSW": _ (u "SSO"),
«SW»: _ (u »SO»),
"WSW": _ (u "WOW"),
«W»: _ (u »O»),
«WNW»: _ (u »ONO»),
«KB»: _ (u »HAYIR»),
«NNW»: _ (u »HAYIR»),
«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"),
"Onların"),
"SSW": _ (u "SSO"),
«SW»: _ (u »SO»),
"WSW": _ (u "WOW"),
«W»: _ (u »O»),
«WNW»: _ (u »ONO»),
«KB»: _ (u »HAYIR»),
«NNW»: _ (u »HAYIR»),
«N / A»: _ (u »N \ A»)
}

sınıf GlobalWeather:

mevcut_koşullar = []
gün_tahmin = []
gece_tahmini = []

locale = "in"

seçenekler = Yok
hava durumuxmldoc = «»

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 __ (öz, seçenekler):

self.options = seçenekler

self.options.locale == Yok ise:
deneyin:
# self.locale = locale.getdefaultlocale () [0] [0: 2]
self.locale = «es» # İspanyol yerel ayarını zorlamak için bu satırı yorumlayın
# self.locale = "fr" # Fransız yerel ayarını zorlamak için bu satırı yorumlamayın
dışında:
"yerel ayar ayarlanmadı" yazdır
Başka:
# self.locale = self.options.locale
self.locale = «es» # İspanyol yerel ayarını zorlamak için bu satırı yorumlayın
# self.locale = "fr" # Fransız yerel ayarını zorlamak için bu satırı yorumlamayın

self.options.verbose == True ise:
print >> sys.stdout, "yerel ayar", self.locale

def getText (self, nodelist):
rc = ""
düğüm listesindeki düğüm için:
node.nodeType == node.TEXT_NODE ise:
rc = rc + düğüm.veri
geri dön rc

def getSpaces (öz, boşluklar):
string = u »»
boşluklar == Yok ise:
dize = self.DEFAULT_SPACING
Başka:
aralıktaki i için (0, boşluk + 1):
string = string + u »«
dönüş dizesi

def isNumeric (self, string):
deneyin:
kukla = kayan nokta (dize)
True döndür
dışında:
False döndür

def isConnectionAvailable (self):
# url'yi açarak weather.com sunucusuna erişebildiğimizden emin olun
deneyin:
Usock = urllib2.urlopen ('http://xoap.weather.com')
Usock.close ()
True döndür
dışında:
False döndür

def getBearingText (öz, yatak):
yatak = şamandıra (yatak)
yatak <11.25 ise:
dönüş u »N»
elif yatağı <33.75:
u »NNE'ye dön»
elif yatağı <56.25:
u »NE» dön
elif yatağı <78.75:
dönüş u »OCA»
elif yatağı <101.25:
dönüş u »E»
elif yatağı <123.75:
dönüş u »ESE»
elif yatağı <146.25:
dönüş u »SE»
elif yatağı <168.75:
dön u »SSE»
elif yatağı <191.25:
dönüş u »S»
elif yatağı <213.75:
dönüş u »SSW»
elif yatağı <236.25:
dönüş u »SW»
elif yatağı <258.75:
dönüş u »WSW»
elif yatağı <281.25:
dönüş u »W»
elif yatağı <303.75:
dönüş u »WNW»
elif yatağı <326.25:
dönüş u »KB»
elif yatağı <348.75:
dönüş u »NNW»
Başka:
dönüş «N / A»

def convertCelsiusToFahrenheit (öz, sıcaklık):
dönüş str (int (kat (((float (temp) * 9.0) /5.0) +32))

def convertKilometresToMiles (self, dist):
dönüş str (int (kat (float (dist) * 0.621371192)))

def convertMillibarsToInches (self, mb):
dönüş str (int (kat (float (mb) /33.8582)))

def getTemplateList (öz, şablon):

şablon listesi = []

template.split («{«) içindeki template_part için:
template_part! = «» ise:
template_part.split ("}") içindeki template_part için:
template_part! = «» ise:
templatelist.append (u »» + şablon_part)

şablon listesine dönüş

def getOutputText (self, datatype, startday, endday, night, shortweekday, imperial, hideunits, boşluklar):
#Deneyin:
çıktı = u »»

# çıktı için geçerli birimleri tanımlayın
hideunits == Yanlış ise:
emperyal == Yanlış ise:
tempunit = u »° C»
speedunit = u »kph»
basınç birimi = u »mb»
Başka:
tempunit = u »° F»
speedunit = u »mph»
basınç birimi = u »in»
Başka:
tempunit = u »°»
speedunit = u »»
basınç birimi = u »»

startday == None ise: # mevcut koşullar

veri türü == "DW" ise:
self.locale == "ise":
kısa hafta günü == Doğru ise:
output = WeatherText.day_of_week_short_es [self.current_conditions [0] .day_of_week]
Başka:
output = WeatherText.day_of_week_es [self.current_conditions [0] .day_of_week]
elif self.locale == "fr":
kısa hafta günü == Doğru ise:
output = WeatherText.day_of_week_short_fr [self.current_conditions [0] .day_of_week]
Başka:
output = WeatherText.day_of_week_fr [self.current_conditions [0] .day_of_week]
Başka:
kısa hafta günü == Doğru ise:
output = WeatherText.day_of_week_short [self.current_conditions [0] .day_of_week]
Başka:
output = WeatherText.day_of_week [self.current_conditions [0] .day_of_week]
elif datatype == "WF": # hava durumu yazı tipi
output = WeatherText.conditions_weather_font [self.current_conditions [0] .condition_code]
elif veri türü == "LT":
string = self.current_conditions [0] .low
self.isNumeric (string) == True ise:
emperyal == Doğru ise:
string = self.convertCelsiusToFahrenheit (string)
string = string + geçici birim
çıktı = dize
elif veri türü == "HT":
string = self.current_conditions [0] .high
self.isNumeric (string) == True ise:
emperyal == Doğru ise:
string = self.convertCelsiusToFahrenheit (string)
string = string + geçici birim
çıktı = dize
elif veri türü == "CC":
self.locale == "ise":
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]
Başka:
output = WeatherText.conditions_text [self.current_conditions [0] .condition_code]
elif veri türü == "CT":
output = self.current_conditions [0] .condition_text
elif veri türü == "PC":
string = self.current_conditions [0] .precip
self.isNumeric (string) == True ise:
dize = dize + u »%»
çıktı = dize
elif veri türü == "HM":
string = self.current_conditions [0] .humidity
self.isNumeric (string) == True ise:
dize = dize + u »%»
çıktı = dize
elif datatype == "WD":
string = self.current_conditions [0] .wind_dir
self.isNumeric (string) == True ise:
string = self.getBearingText (string)

self.locale == "ise":
output = WeatherText.bearing_text_es [dize]
elif self.locale == "fr":
output = WeatherText.bearing_text_fr [dize]
Başka:
çıktı = dize

elif veri türü == "BF":
string = self.current_conditions [0] .wind_dir
self.isNumeric (string) == True ise:
string = WeatherText.bearing_arrow_font [self.getBearingText (string)]
çıktı = dize
elif veri türü == "WS":
string = self.current_conditions [0] .wind_speed
self.isNumeric (string) == True ise:
emperyal == Doğru ise:
string = self.convertKilometresToMiles (string)
string = string + hız birimi
çıktı = dize
elif veri türü == "WG":
string = self.current_conditions [0] .wind_gusts
self.isNumeric (string) == True ise:
emperyal == Doğru ise:
string = self.convertKilometresToMiles (string)
string = string + hız birimi
çıktı = dize
elif veri türü == "CN":
çıktı = self.current_conditions [0] .city
elif veri türü == "SR":
output = self.current_conditions [0] .sunrise
elif veri türü == "SS":
output = self.current_conditions [0] .sunset
elif veri türü == "MP":
output = self.current_conditions [0] .moon_phase
elif veri türü == "MF":
output = WeatherText.conditions_moon_font [self.current_conditions [0] .moon_icon]
elif veri türü == "BR":
string = self.current_conditions [0] .bar_read
self.isNumeric (string) == True ise:
emperyal == Doğru ise:
string = self.convertMillibarsToInches (string)
string = string + basınç birimi
çıktı = dize
elif veri türü == "BD":
output = self.current_conditions [0] .bar_desc
Başka:
output = "\ nHATA: Bilinmeyen veri türü istendi"

else: # tahmin verisi

endday == None ise: # bitiş günü ayarlanmadıysa startday'ı kullanın
bitiş günü = başlangıç ​​günü

gece == Doğru ise: # gece tahmini gerekli

aralıktaki day_number için (başlangıç ​​günü, bitiş günü + 1):

veri türü == "DW" ise:
self.locale == "ise":
kısa hafta günü == Doğru ise:
output = output + self.getSpaces (boşluklar) + WeatherText.day_of_week_short_es [self.night_forecast [day_number] .day_of_week]
Başka:
output = output + self.getSpaces (boşluklar) + WeatherText.day_of_week_es [self.night_forecast [day_number] .day_of_week]
elif self.locale == "fr":
kısa hafta günü == Doğru ise:
output = output + self.getSpaces (boşluklar) + WeatherText.day_of_week_short_fr [self.night_forecast [day_number] .day_of_week]
Başka:
output = output + self.getSpaces (boşluklar) + WeatherText.day_of_week_fr [self.night_forecast [day_number] .day_of_week]
Başka:
kısa hafta günü == Doğru ise:
output = output + self.getSpaces (boşluklar) + WeatherText.day_of_week_short [self.night_forecast [day_number] .day_of_week]
Başka:
output = output + self.getSpaces (boşluklar) + WeatherText.day_of_week [self.night_forecast [day_number] .day_of_week]
elif datatype == "WF": # hava durumu yazı tipi
output = output + self.getSpaces (boşluklar) + WeatherText.conditions_weather_font [self.night_forecast [day_number] .condition_code]
elif veri türü == "LT":
string = self.night_forecast [day_number] .low
self.isNumeric (string) == True ise:
emperyal == Doğru ise:
string = self.convertCelsiusToFahrenheit (string)
string = string + geçici birim
output = output + self.getSpaces (boşluklar) + string

elif veri türü == "HT":
string = self.night_forecast [day_number] .high
self.isNumeric (string) == True ise:
emperyal == Doğru ise:
string = self.convertCelsiusToFahrenheit (string)
string = string + geçici birim
output = output + self.getSpaces (boşluklar) + string
elif veri türü == "CC":
self.locale == "ise":
output = output + self.getSpaces (boşluklar) + WeatherText.conditions_text_es [self.night_forecast [day_number] .condition_code]
elif self.locale == "fr":
output = output + self.getSpaces (boşluklar) + WeatherText.conditions_text_fr [self.night_forecast [day_number] .condition_code]
Başka:
output = output + self.getSpaces (boşluklar) + WeatherText.conditions_text [self.night_forecast [day_number] .condition_code]
elif veri türü == "CT":
output = output + self.getSpaces (boşluklar) + self.night_forecast [day_number] .condition_text
elif veri türü == "PC":
string = self.night_forecast [day_number] .precip
self.isNumeric (string) == True ise:
dize = dize + u »%»
output = output + self.getSpaces (boşluklar) + string
elif veri türü == "HM":
string = self.night_forecast [day_number] .humidity
self.isNumeric (string) == True ise:
dize = dize + u »%»
output = output + self.getSpaces (boşluklar) + string
elif datatype == "WD":
string = self.night_forecast [day_number] .wind_dir
self.locale == "ise":
output = output + self.getSpaces (boşluklar) + WeatherText.bearing_text_es [dize]
elif self.locale == "fr":
output = output + self.getSpaces (boşluklar) + WeatherText.bearing_text_fr [dize]
Başka:
output = output + self.getSpaces (boşluklar) + string

elif veri türü == "BF":
output = output + self.getSpaces (boşluklar) + WeatherText.bearing_arrow_font [self.night_forecast [day_number] .wind_dir]
elif veri türü == "WS":
string = self.night_forecast [day_number] .wind_speed
self.isNumeric (string) == True ise:
emperyal == Doğru ise:
string = self.convertKilometresToMiles (string)
string = string + hız birimi
output = output + self.getSpaces (boşluklar) + string
elif veri türü == "WG":
string = self.night_forecast [day_number] .wind_gusts
self.isNumeric (string) == True ise:
emperyal == Doğru ise:
string = self.convertKilometresToMiles (string)
string = string + hız birimi
output = output + self.getSpaces (boşluklar) + string
elif veri türü == "CN":
output = output + self.getSpaces (boşluklar) + self.night_forecast [day_number] .city
elif veri türü == "SR":
output = output + self.getSpaces (boşluklar) + self.night_forecast [day_number] .sunrise
elif veri türü == "SS":
output = output + self.getSpaces (boşluklar) + self.night_forecast [day_number] .sunset
elif veri türü == "MP":
output = output + self.getSpaces (boşluklar) + self.night_forecast [day_number] .moon_phase
elif veri türü == "MF":
output = output + self.getSpaces (boşluklar) + WeatherText.conditions_moon_font [self.night_forecast [day_number] .moon_icon]
elif veri türü == "BR":
output = output + self.getSpaces (boşluklar) + self.night_forecast [day_number] .bar_read
elif veri türü == "BD":
output = output + self.getSpaces (boşluklar) + self.night_forecast [day_number] .bar_desc
Başka:
output = "\ nHATA: Bilinmeyen veri türü istendi"
kırılma

else: # günlük tahmin istendi

aralıktaki day_number için (başlangıç ​​günü, bitiş günü + 1):

veri türü == "DW" ise:
self.locale == "ise":
kısa hafta günü == Doğru ise:
output = output + self.getSpaces (boşluklar) + WeatherText.day_of_week_short_es [self.day_forecast [day_number] .day_of_week]
Başka:
output = output + self.getSpaces (boşluklar) + WeatherText.day_of_week_es [self.day_forecast [day_number] .day_of_week]
elif self.locale == "fr":
kısa hafta günü == Doğru ise:
output = output + self.getSpaces (boşluklar) + WeatherText.day_of_week_short_fr [self.day_forecast [day_number] .day_of_week]
Başka:
output = output + self.getSpaces (boşluklar) + WeatherText.day_of_week_fr [self.day_forecast [day_number] .day_of_week]
Başka:
kısa hafta günü == Doğru ise:
output = output + self.getSpaces (boşluklar) + WeatherText.day_of_week_short [self.day_forecast [day_number] .day_of_week]
Başka:
output = output + self.getSpaces (boşluklar) + WeatherText.day_of_week [self.day_forecast [day_number] .day_of_week]
elif datatype == "WF": # hava durumu yazı tipi
output = output + self.getSpaces (boşluklar) + WeatherText.conditions_weather_font [self.day_forecast [day_number] .condition_code]
elif veri türü == "LT":
string = self.day_forecast [day_number] .low
self.isNumeric (string) == True ise:
emperyal == Doğru ise:
string = self.convertCelsiusToFahrenheit (string)
string = string + geçici birim
output = output + self.getSpaces (boşluklar) + string
elif veri türü == "HT":
string = self.day_forecast [gün_numarası] .high
self.isNumeric (string) == True ise:
emperyal == Doğru ise:
string = self.convertCelsiusToFahrenheit (string)
string = string + geçici birim
output = output + self.getSpaces (boşluklar) + string
elif veri türü == "CC":
self.locale == "ise":
output = output + self.getSpaces (boşluklar) + WeatherText.conditions_text_es [self.day_forecast [day_number] .condition_code]
elif self.locale == "fr":
output = output + self.getSpaces (boşluklar) + WeatherText.conditions_text_fr [self.day_forecast [day_number] .condition_code]
Başka:
output = output + self.getSpaces (boşluklar) + WeatherText.conditions_text [self.day_forecast [day_number] .condition_code]
elif veri türü == "CT":
output = output + self.getSpaces (boşluklar) + self.day_forecast [day_number] .condition_text
elif veri türü == "PC":
string = self.day_forecast [gün_numarası] .precip
self.isNumeric (string) == True ise:
dize = dize + u »%»
output = output + self.getSpaces (boşluklar) + string
elif veri türü == "HM":
string = self.day_forecast [gün_numarası] .humidity
self.isNumeric (string) == True ise:
dize = dize + u »%»
output = output + self.getSpaces (boşluklar) + string
elif datatype == "WD":
string = self.day_forecast [gün_numarası] .wind_dir

self.locale == "ise":
output = output + self.getSpaces (boşluklar) + WeatherText.bearing_text_es [dize]
elif self.locale == "fr":
output = output + self.getSpaces (boşluklar) + WeatherText.bearing_text_fr [dize]
Başka:
output = output + self.getSpaces (boşluklar) + string

elif veri türü == "BF":
output = output + self.getSpaces (boşluklar) + WeatherText.bearing_arrow_font [self.day_forecast [day_number] .wind_dir]
elif veri türü == "WS":
string = self.day_forecast [gün_numarası] .wind_speed
self.isNumeric (string) == True ise:
emperyal == Doğru ise:
string = self.convertKilometresToMiles (string)
string = string + hız birimi
output = output + self.getSpaces (boşluklar) + string
elif veri türü == "WG":
string = self.day_forecast [gün_numarası] .wind_gusts
self.isNumeric (string) == True ise:
emperyal == Doğru ise:
string = self.convertKilometresToMiles (string)
string = string + hız birimi
output = output + self.getSpaces (boşluklar) + string
elif veri türü == "CN":
output = output + self.getSpaces (boşluklar) + self.day_forecast [day_number] .city
elif veri türü == "SR":
output = output + self.getSpaces (boşluklar) + self.day_forecast [day_number] .sunrise
elif veri türü == "SS":
output = output + self.getSpaces (boşluklar) + self.day_forecast [day_number] .sunset
elif veri türü == "MP":
output = output + self.getSpaces (boşluklar) + self.day_forecast [day_number] .moon_phase
elif veri türü == "MF":
output = output + self.getSpaces (boşluklar) + WeatherText.conditions_moon_font [self.day_forecast [day_number] .moon_icon]
elif veri türü == "BR":
output = output + self.getSpaces (boşluklar) + self.day_forecast [day_number] .bar_read
elif veri türü == "BD":
output = output + self.getSpaces (boşluklar) + self.day_forecast [day_number] .bar_desc
Başka:
output = u »\ nHATA: Bilinmeyen veri türü istendi»
kırılma

çıktı = u »» + output.strip (u »«) # baştaki / sondaki boşlukları kaybet
dönüş çıkışı

#dışında:
#print "getOutputText: Beklenmeyen hata:", sys.exc_info () [0]

def getOutputTextFromTemplate (self, şablon):
#Deneyin:

Şablon verileri için # anahtar
DATATYPE_KEY = "–datatype ="
STARTDAY_KEY = "–startday ="
ENDDAY_KEY = "–endday ="
NIGHT_KEY = "–gece"
SHORTWEEKDAY_KEY = "–hafta içi kısa"
IMPERIAL_KEY = "–imperial"
HIDEUNITS_KEY = "–hide birimleri"
SPACES_KEY = "–spaces ="

çıktı = u »»

optionfound = Yanlış

# dosyayı yükle
deneyin:
fileinput = açık (self.options.template)
şablon = fileinput.read ()
fileinput.close ()
dışında:
output = u »Şablon dosyası bulunamadı!»

templatelist = self.getTemplateList (şablon)

# şablon listesini gözden geçirelim ve bulunan her öğe için çıktıyı belirleyelim
aralıktaki i için (0, len (şablon listesi) -1):

pos = şablon listesi [i] .find (DATATYPE_KEY)
konum! = -1 ise:
optionfound = Doğru
konum = konum + len (DATATYPE_KEY)
veri türü = şablon listesi [i] [konum: konum + 4]. şerit («}»). şerit («{«). şerit («-«). şerit (»«)
Başka:
datatype = Yok

pos = şablon listesi [i] .bul (STARTDAY_KEY)
konum! = -1 ise:
optionfound = Doğru
konum = konum + len (STARTDAY_KEY)
startday = int (şablon listesi [i] [konum: konum + 4]. şerit ("}"). şerit ("{"). şerit ("-"). şerit (""))
Başka:
startday = Yok

pos = şablon listesi [i] .find (ENDDAY_KEY)
konum! = -1 ise:
optionfound = Doğru
konum = konum + uzunluk (ENDDAY_KEY)
bitiş günü = int (şablon listesi [i] [konum: konum + 4]. şerit ("}"). şerit ("{"). şerit ("-"). şerit (""))
Başka:
endday = Yok

pos = şablon listesi [i] .find (NIGHT_KEY)
konum! = -1 ise:
optionfound = Doğru
gece = Doğru
Başka:
gece = Yanlış

pos = şablon listesi [i] .find (SHORTWEEKDAY_KEY)
konum! = -1 ise:
optionfound = Doğru
shortweekday = Doğru
Başka:
shortweekday = Yanlış

pos = şablon listesi [i] .find (IMPERIAL_KEY)
konum! = -1 ise:
optionfound = Doğru
emperyal = Doğru
Başka:
emperyal = Yanlış

pos = şablon listesi [i] .find (HIDEUNITS_KEY)
konum! = -1 ise:
optionfound = Doğru
hideunits = Doğru
Başka:
hideunits = Yanlış

pos = şablon listesi [i] .find (SPACES_KEY)
konum! = -1 ise:
optionfound = Doğru
konum = konum + len (SPACES_KEY)
boşluk = int (şablon listesi [i] [konum: konum + 4]. şerit («}»). şerit («{«). şerit («-«). şerit (»«))
Başka:
boşluk = 1

optionfound == True ise:
templatelist [i] = self.getOutputText (veri türü, başlangıç ​​günü, bitiş günü, gece, hafta içi kısa, İngiliz ölçü birimi, gizleme birimleri, boşluklar)
optionfound = Yanlış

# artık doldurulduğu için çıktıyı birleştirerek listeyi gözden geçirin
şablon listesindeki öğe için:
çıktı = çıktı + öğe

dönüş çıkışı

#dışında:
#print "getOutputTextFromTemplate: Beklenmeyen hata:", sys.exc_info () [0]

def fetchData (self):

# her zaman metrik verileri alın, bu verilerde konuşma işlevlerini kullanın
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)

self.isConnectionAvailable () == False ise:
os.path.exists (file_path_current) ise:
RefetchData = Yanlış
else: # bağlantı yok, önbellek yok, bang!
print "İnternet bağlantısı yok ve önbelleğe alınmış hava durumu verisi yok."
elif self.options.refetch == Doğru:
RefetchData = Doğru
Başka:
# Verilerin tekrar alınması gerekiyor mu?
os.path.exists (file_path_current) ise:
lastmodDate = time.localtime (os.stat (file_path_current) [ST_MTIME])
expiryDate = (datetime.datetime.today () - datetime.timedelta (dakika = self.EXPIRY_MINUTES)). zamanuple ()

expiryDate> lastmodDate ise:
RefetchData = Doğru
Başka:
RefetchData = Yanlış
Başka:
RefetchData = Doğru

# mevcut koşul verilerini web sitesinden veya "işaretlemeyi kaldırarak" alın
RefetchData == True ise:

# xoap hizmetinden mevcut durum verilerini alın
deneyin:

# 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 & birim = m '
self.options.verbose == True ise:
yazdır >> sys.stdout, «hava durumu verilerini alınıyor«, url

Usock = urllib2.urlopen (url)
xml = usock.read ()
Usock.close ()
self.weatherxmldoc = minidom.parseString (xml)
dışında:
print "fetchData: Beklenmeyen hata:", sys.exc_info () [0]
"Mevcut koşullar için hava durumu kaynağına ulaşılamıyor" yazdır

# kullanıcıya konumun kötü olup olmadığını söyleyin…
found = xml.find ("Geçersiz konum sağlandı")
bulunursa! = -1:
"Geçersiz konum sağlandı" yazdır

# hava verilerini sorgulayın, sınıf yapısına yükleyin ve toplayın
deneyin:

# hava durumu veri listeleri hazırlayın
self.current_conditions = []
self.day_tahmin = []
self.night_forecast = []

# genel verileri topla
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)

# mevcut koşul verilerini topla
day_of_week = u »Bugün»
yağış = u »Yok»
gündoğumu_n = location_n.getElementsByTagName ('sunr') [0]
gündoğumu = self.getText (sunrise_n.childNodes)
sunset_n = location_n.getElementsByTagName ('suns') [0]
sunset = self.getText (sunset_n.childNodes)
current_condition_n = weather_n.getElementsByTagName ('cc') [0]
current_desc_n = current_condition_n.getElementsByTagName ('t') [0]
current_desc = self.getText (current_desc_n.childNodes)
current_code_n = current_condition_n.getElementsByTagName ('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 ('rüzgar') [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)
nem_ = current_condition_n.getElementsByTagName ('hmid') [0]
nem = self.getText (nem_n.childNodes)
moon_n = current_condition_n.getElementsByTagName ('ay') [0]
moon_icon_n = moon_n.getElementsByTagName ('icon') [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, yağış, nem, wind_direction, wind_speed, wind_gusts, city, sunrise, sunset, moon_phase, moon_icon, bar_read, bar_desc)
self.current_conditions.append (current_conditions_data)

# tahmin verilerini topla
bar_read = u »Yok»
bar_desc = u »Yok»
moon_phase = u »Yok»
moon_icon = u »na»
tahmini_n = weather_n.getElementsByTagName ('dayf') [0]
day_nodes = tahmin_n.getElementsByTagName ('gün')

day_nodes içindeki gün için:
day_of_week = day.getAttribute ('t')
day_of_year = day.getAttribute ('dt')
high_temp_n = day.getElementsByTagName ('merhaba') [0]
high_temp = self.getText (high_temp_n.childNodes)
low_temp_n = day.getElementsByTagName ('düşük') [0]
low_temp = self.getText (low_temp_n.childNodes)

sunrise_n = day.getElementsByTagName ('sunr') [0]
gündoğumu = self.getText (sunrise_n.childNodes)
sunset_n = day.getElementsByTagName ('suns') [0]
sunset = self.getText (sunset_n.childNodes)

# günlük tahmine özgü veriler
daytime_n = day.getElementsByTagName ('part') [0] # gün
condition_code_n = daytime_n.getElementsByTagName ('icon') [0]
koşul_kodu = self.getText (koşul_kodu_n.çocukNodes)
condition_n = daytime_n.getElementsByTagName ('t') [0]
condition = self.getText (condition_n.childNodes)
presip_n = daytime_n.getElementsByTagName ('ppcp') [0]
presip = self.getText (presip_n.childNodes)
nem_ = daytime_n.getElementsByTagName ('hmid') [0]
nem = self.getText (nem_n.childNodes)
wind_n = daytime_n.getElementsByTagName ('rüzgar') [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)
day_forecast_data = WeatherData (day_of_week, low_temp, high_temp, condition_code, condition, yağış, nem, wind_direction, wind_speed, wind_gusts, şehir, gün doğumu, gün batımı, moon_phase, moon_icon, bar_read, bar_desc)
self.day_forecast.append (day_forecast_data)

# gece tahminine özgü veriler
daytime_n = day.getElementsByTagName ('part') [1] # gece
condition_code_n = daytime_n.getElementsByTagName ('icon') [0]
koşul_kodu = self.getText (koşul_kodu_n.çocukNodes)
condition_n = daytime_n.getElementsByTagName ('t') [0]
condition = self.getText (condition_n.childNodes)
presip_n = daytime_n.getElementsByTagName ('ppcp') [0]
presip = self.getText (presip_n.childNodes)
nem_ = daytime_n.getElementsByTagName ('hmid') [0]
nem = self.getText (nem_n.childNodes)
wind_n = daytime_n.getElementsByTagName ('rüzgar') [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 (day_of_week, low_temp, high_temp, condition_code, condition, yağış, nem, wind_direction, wind_speed, wind_gusts, city, sunrise, sunset, moon_phase, moon_icon, bar_desc)
self.night_forecast.append (night_forecast_data)

# Bir dahaki sefere verileri toplayın!
fileoutput = open (file_path_current, 'w')
pickle.dump (self.current_conditions, fileoutput)
fileoutput.close ()

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

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

dışında:
print "fetchData: Beklenmeyen hata:", sys.exc_info () [0]
"Hava durumu verileri sorgulanamıyor" yazdır

else: # turşu sınıf dosyalarından hava durumu verilerini getir
self.options.verbose == True ise:
print >> sys.stdout, «hava durumu verilerini dosyadan alıyor:«, file_path_current

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

self.options.verbose == True ise:
print >> sys.stdout, "dosyalardan gün tahmini verisi alınıyor:", file_path_dayforecast, file_path_nightforecast

fileinput = open (file_path_dayforecast, 'r')
self.day_forecast = pickle.load (dosya girişi)
fileinput.close ()

self.options.verbose == True ise:
print >> sys.stdout, "dosyalardan gün tahmini verileri alınıyor:", file_path_nightforecast, file_path_nightforecast

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

def outputData (self):
#Deneyin:

self.options.template! = Yok ise:

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

Başka:

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)

print output.encode ("utf-8")

#dışında:
#print «outputData: Beklenmeyen hata:«, sys.exc_info () [0]

__name__ == "__main__" ise:

ayrıştırıcı = CommandLineParser ()
(seçenekler, değiştirgeler) = parser.parse_args ()

options.verbose == True ise:
print >> sys.stdout, "location:", options.location
print >> sys.stdout, "imperial:", options.imperial
print >> sys.stdout, "datatype:", options.datatype
yazdır >> sys.stdout, "gece:", seçenekler.gece
yazdırma >> sys.stdout, "başlangıç ​​günü:", seçenekler.başlangıç ​​günü
yazdırma >> sys.stdout, "bitiş günü:", seçenekler.endday
print >> sys.stdout, "boşluklar:", seçenekler.spaces
print >> sys.stdout, "ayrıntılı:", options.verbose
print >> sys.stdout, "refetch:", options.refetch

# yeni küresel hava durumu nesnesi oluşturun
hava durumu = GlobalWeather (seçenekler)
weather.fetchData ()
weather.outputData ()

~ / Conky / scripts / myweather.template dosyasını oluşturuyoruz

gedit ~ / Conky / scripts / myweather.template

aşağıdakileri içine yapıştırıyoruz:

{–Datatype = DW –startday = 1}: {–datatype = CC –startday = 1}
{–Datatype = HT –startday = 1} / {–datatype = LT –startday = 1} {–datatype = WD –startday = 1} ile {–datatype = WS –startday = 1} arasında rüzgar
Nem: {–datatype = HM –startday = 1} Yağış: {–datatype = PC –startday = 1}
Gün doğumu: {–datatype = SR –startday = 1} Gün batımı: {–datatype = SS –başlangıç ​​günü = 1}
----------------
{–Datatype = DW –startday = 2}: {–datatype = CC –startday = 2}
{–Datatype = HT –startday = 2} / {–datatype = LT –startday = 2} {–datatype = WD –startday = 2} ile {–datatype = WS –startday = 2} arasında rüzgar
Nem: {–datatype = HM –startday = 2} Yağış: {–datatype = PC –startday = 2}
Gün doğumu: {–datatype = SR –startday = 2} Gün batımı: {–datatype = SS –başlangıç ​​günü = 2}
----------------
{–Datatype = DW –startday = 3}: {–datatype = CC –startday = 3}
{–Datatype = HT –startday = 3} / {–datatype = LT –startday = 3} {–datatype = WD –startday = 3} ile {–datatype = WS –startday = 3} arasında rüzgar
Nem: {–datatype = HM –startday = 3} Yağış: {–datatype = PC –startday = 3}
Gün doğumu: {–datatype = SR –startday = 3} Gün batımı: {–datatype = SS –başlangıç ​​günü = 3}
----------------
{–Datatype = DW –startday = 4}: {–datatype = CC –startday = 4}
{–Datatype = HT –startday = 4} / {–datatype = LT –startday = 4} {–datatype = WD –startday = 4} ile {–datatype = WS –startday = 4} arasında rüzgar
Nem: {–datatype = HM –startday = 4} Yağış: {–datatype = PC –startday = 4}
Gün doğumu: {–datatype = SR –startday = 4} Gün batımı: {–datatype = SS –başlangıç ​​günü = 4}

~ / Conky / scripts / mail / conkyEmail.py dosyasını oluşturuyoruz (posta klasörünü oluşturmalıyız)

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

ve aşağıdakileri içine yapıştırın:

ithal os
içe aktarma dizesi

# Kullanıcı adınızı ve şifrenizi çift tırnak içinde aşağıya girin
# Örneğin. kullanıcı adı = »kullanıcı adı» ve şifre = »şifre»
kullanıcı adı = »YOUR_USUARIO_SINARROBA«
şifre = »SENİN ANAHTARIN«

com = »wget -O - https: //» + kullanıcı adı + »:» + şifre + »@ mail.google.com / mail / feed / atom –no-check-sertifika»

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

fc == 0 ise:
"0 yeni" yazdır
Başka:
print str (fc) + »yeni»

Şimdi 7 dosyanız var:

Klasörde: ~
-> .startconky << - çalıştırılabilir yap

Klasörde: ~ / Conky
-> conkymain
-> conkyforecast
-> conkymail

ve klasörde: ~ / Conky / scripts
-> conkyForecast.py << - çalıştırılabilir yap
-> myweather.template

ve klasörde: ~ / Conky / scripts / mail
conkyEmail.py << - yürütülebilir yap

İşte bu, açıklamalar, nerede / home / kullanıcı / ... yazıyor ve Gmail verilerinin gittiği kısımda, verilerinizi nereye koymanız gerektiğini renklerle vurguladım.

Conky sürecini öldürmek için bir konsola yaz

Killall conky

conky çalıştırmak için konsola yaz

./.startconky

her şeyi ayarladıktan sonra, conky'nin her oturuma başlamasını istiyorsanız

Sistem—> Tercihler—> Oturumlar ve başlangıç ​​programlarında ekliyoruz

Name kısmına Conky'yi Order ./.startconky olarak yazabiliriz, bununla pc'yi her açtığınızda başlayacaktır.

İşte bu, umarım size yardımcı olur.


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.