Conky การตั้งค่าของฉัน

Fecfactor ขอให้ฉันเมื่อวานนี้เพื่อเผยแพร่การกำหนดค่าของ conky ที่ฉันแสดงในภาพหน้าจอด้านล่าง

อย่างที่คุณเห็นมันมีประมาณ 3 conkys ซึ่งดำเนินการโดยใช้สคริปต์การกำหนดค่าเหมือนกันขึ้นอยู่กับ โพสต์นี้ โพสต์โดยผู้ใช้ Bruce M. ในฟอรัมของ Ubuntu-Ar ด้วยการปรับเปลี่ยนบางอย่างในเมลที่ยุ่งเหยิงซึ่งในกรณีของฉันคือสำหรับ Gmail

ในโพสต์อ้างอิงบรูซอธิบายได้ดีมาก แต่ยังเป็นเครื่องช่วยความจำสำหรับฉันด้วยฉันจะคัดลอกขั้นตอนในการปฏิบัติตามและรหัสของฉันสำหรับใครก็ตามที่มี

แน่นอนว่าเราต้องติดตั้ง conky, curl และ python ดังนั้นเราจึงพิมพ์ในคอนโซล:

sudo apt-get ติดตั้ง conky curl python

ที่มาของ weather.ttf และ arrows.ttf อยู่ที่นี่. ที่มาของ moon.ttf อยู่ที่นี่ เมื่อดาวน์โหลดแล้วคุณต้องคัดลอกไปที่ / usr / share / font

ตอนนี้มาสร้างสคริปต์ของเราชื่อ ~. / Startconky

gksudo gedit ~ / .startconky

ภายในไฟล์ว่างเราวางสิ่งต่อไปนี้

#! / bin / ทุบตี
นอนหลับ 0 & # 0 ดีสำหรับ Xfce - ใช้ 20 ถึง 30 สำหรับ Gnome
conky -c ~ / คอนกี้ / conkymain &
#sleep 0 & # 0 ดีสำหรับ Xfce - ใช้ 1 สำหรับ Gnome
conky -c ~ / Conky / conkyforecast &
#sleep 0 & # 0 ดีสำหรับ Xfce - ใช้ 1 สำหรับ Gnome
conky -c ~ / คอนกี้ / conkymail &

ตอนนี้เราสร้างไฟล์ conkymain ในโฟลเดอร์ ~ / Conky มิฉะนั้นเรามีโฟลเดอร์ Conky เราจะต้องสร้างมันขึ้นมา

gedit ~ / Conky / conkymain

ฉันใช้แบบอักษร Calibri ถ้าคุณไม่มีให้แทนที่ด้วยสิ่งที่คุณต้องการ

เราติดอยู่ภายในสิ่งที่ตามมา

พื้นหลังไม่มี
own_window ใช่
own_window_transparent ใช่
own_window_hints ไม่ได้ตกแต่ง, ด้านล่าง, ติดหนึบ, skip_taskbar, skip_pager
own_window_colour สีดำ
double_buffer ใช่
use_spacer ด้านซ้าย
use_xft ใช่
แบบอักษร calibri: size = 9
xftfont calibri: size = 9
เอ็กซ์ฟัลฟา 0.5
อัพเดต_ช่วง 5.0
ตัวพิมพ์ใหญ่ไม่ใช่ # ตั้งค่าเป็นใช่หากคุณต้องการให้ข้อความทั้งหมดเป็นตัวพิมพ์ใหญ่
stippled_border 3
border_margin9
border_width10
default_color สีขาว
default_outline_color สีดำ
default_shade_color สีดำ
สี 0 ฟ้า
สี 1 lightblue
สี 2 สีส้ม
color3 สีเหลือง
color4 ข้าวสาลี
color5 สีขาว
color6 สีขาว
color7 สีขาว
color8 สีขาว
color9 สีขาว
การจัดตำแหน่ง top_right # หรือ top_left, bottom_left, bottom_right
ช่องว่าง_x 10
gap_y 35
text_buffer_size 128 # ใช้ 1024 สำหรับการคาดการณ์
no_buffers ใช่ # ลบบัฟเฟอร์ระบบไฟล์จากหน่วยความจำที่ใช้?
draw_borders ไม่ใช่
draw_outline ใช่ # ขยายข้อความถ้าใช่
draw_shades ใช่ # เฉดสีดำ

TEXT
$ {font calibri: size = 12} $ {alignc} $ {color1} $ sysname $ kernel บน $ machine} $ color $ font
$ {font calibri: size = 12} $ {alignc} $ {color2} $ {exec whoami} @ $ nodename $ color $ font
$ {color0} $ {hr 1} $ color
$ {font calibri: size = 20} $ {alignc} $ {time% H:% M} $ font
$ {font calibri: size = 12} $ {color1} $ {alignc} $ {time% A,% d% b. แบบอักษร% Y} $ color $
$ {color3} UpTime: $ {alignr 2} $ uptime $ color
$ {color0} $ {hr 1} $ color
$ {voffset 5} $ {color2} CPU: $ {alignc} $ color $ running_processes $ {color1} / $ color $ กระบวนการ $ {alignr 2} $ {color2} $ {cpubar cpu0 14,80} $ color
$ {color1} $ {voffset -16} $ {alignr 5} $ cpu% $ color
$ {voffset 2} $ {color1} โหลดเฉลี่ย ($ {color3} ขั้นต่ำ $ {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} บัฟเฟอร์: $ color $ {buffers} $ {alignr 2} $ {color1} Cached: $ 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} $ color
$ {voffset 5} $ {color2} ข้อมูล HD $ {color1} - $ color ฟรี $ {color1} - ใช้แล้ว - $ {color2} ทั้งหมด
$ {voffset 5} $ {color1} รูท: $ color $ {fs_free_perc /}% $ {alignr 2} $ {fs_free /} $ {color2} / $ {color1} $ {fs_used /} $ color / $ {color2} $ {fs_size /} $ color
$ {color1} หน้าแรก: $ color $ {fs_free_perc / home / user}% $ {alignr 2} $ {fs_free / home / user} $ {color2} / $ {color1} $ {fs_used / home / user} $ color / $ {color2} $ {fs_size / home / user} $ color
$ {color0} $ {hr 1} $ color
$ {color1} จาก: $ color Buenos Aires, Argentina
$ {color1} Lat: $ {color2} 34 ° 35'S $ {color1} Long: $ {color2} 58 ° 21'W $ {color1} Alt: $ {color2} 25 m $ color
$ {voffset 5} $ {color2} $ {font calibri: size = 12} วันนี้: $ font $ {color3} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = CC} $ สี $ {alignr 2} $ {color1} ST: $ {color2} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = LT}
$ {color3} $ {font Weather: size = 50} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = WF} $ font $ color
$ {alignr 50} $ {voffset -55} $ {font calibri: size = 25} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = HT} $ font
$ {alignc 20} $ {voffset -30} $ {font Arrows: size = 20} $ {color4} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = BF} $ color $ แบบอักษร
$ {alignc 10} $ {voffset 5} $ {color4} Wind: $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = WS} $ color
$ {color1} ความชื้น: $ {color3} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = HM} $ {alignr 2} $ {color1} ปริมาณน้ำฝน: $ {color3} $ { execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = PC} $ color
$ {alignc} $ {color1} ความดัน: $ {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} $ color
$ {color1} พระอาทิตย์ขึ้น: $ {color3} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = SR} $ {alignr 2} $ {color1} พระอาทิตย์ตก: $ {color3} $ { execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = SS} $ color
$ {voffset 15} $ {color1} Moon: $ {color4} $ {alignr 2} $ {color3} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = MP} $ color
$ {voffset -20} $ {offset 80} $ {color4} $ {font moon phases: size = 20} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = MF} $ font $ สี
$ {color0} $ {hr} $ color
$ {voffset 5} $ {color2} IP: $ {alignc} $ color $ {addr eth0}
$ {color1} ลง: $ color $ {downspeed eth0} k / s $ {alignr 2} $ {color1} ขึ้น: $ color $ {upspeed eth0} k / s
$ {color1} ทั้งหมด: $ color $ {totaldown eth0} $ {alignr 2} $ {color1} ทั้งหมด: $ color $ {totalup eth0}
$ {color1} ขาเข้า: $ color $ {tcp_portmon 1 32767 count} $ {color1} ขาออก: $ color $ {tcp_portmon 32768 61000 count} $ {alignr 2} $ {color1} ทั้งหมด: $ color $ {tcp_portmon 1 65535 count}
$ {voffset 5} $ {color2} Connections: $ 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} $ color

เราสร้างไฟล์ ~ / Conky / conkyforecast

gedit ~ / Conky / conkyforecast

และเราวางข้อมูลต่อไปนี้ไว้ด้านใน

พื้นหลังไม่มี
own_window ใช่
own_window_transparent ใช่
own_window_hints ไม่ได้ตกแต่ง, ด้านล่าง, ติดหนึบ, skip_taskbar, skip_pager
own_window_colour สีดำ
double_buffer ใช่
use_spacer ด้านซ้าย
use_xft ใช่
แบบอักษร calibri: size = 8
xftfont calibri: size = 8
เอ็กซ์ฟัลฟา 0.5
อัพเดต_ช่วง 5.0
ตัวพิมพ์ใหญ่ไม่ใช่ # ตั้งค่าเป็นใช่หากคุณต้องการให้ข้อความทั้งหมดเป็นตัวพิมพ์ใหญ่
stippled_border 3
border_margin9
border_width10
default_color สีขาว
default_outline_color สีดำ
default_shade_color สีดำ
สี 0 ฟ้า
สี 1 lightblue
สี 2 สีส้ม
color3 สีเหลือง
color4 ข้าวสาลี
color5 สีขาว
color6 สีขาว
color7 สีขาว
color8 สีขาว
color9 สีขาว
การจัดตำแหน่ง bottom_left # หรือ top_left, bottom_left, bottom_right
ช่องว่าง_x 10
gap_y 35
text_buffer_size 1024 # ใช้ 1024 สำหรับการคาดการณ์
no_buffers ใช่ # ลบบัฟเฟอร์ระบบไฟล์จากหน่วยความจำที่ใช้?
draw_borders ไม่ใช่
draw_outline ใช่ # ขยายข้อความถ้าใช่
draw_shades ใช่ # เฉดสีดำ

TEXT
$ {color4} $ {font calibri: size = 11} Extended Forecast $ font $ color
$ {color0} $ {hr} $ color
$ {color4} $ {font calibri: size = 9} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –template = / home / user / Conky / scripts / myweather.template} $ font $ สี

เราสร้างไฟล์ ~ / Conky / conkymail

gedit ~ / Conky / conkymail

เราวางสิ่งต่อไปนี้ลงในไฟล์

พื้นหลังไม่มี
own_window ใช่
own_window_transparent ใช่
own_window_hints ไม่ได้ตกแต่ง, ด้านล่าง, ติดหนึบ, skip_taskbar, skip_pager
own_window_colour สีดำ
double_buffer ใช่
use_spacer ด้านซ้าย
use_xft ใช่
แบบอักษร calibri: size = 8
xftfont calibri: size = 8
เอ็กซ์ฟัลฟา 0.5
อัพเดต_ช่วง 5.0
ตัวพิมพ์ใหญ่ไม่ใช่ # ตั้งค่าเป็นใช่หากคุณต้องการให้ข้อความทั้งหมดเป็นตัวพิมพ์ใหญ่
stippled_border 3
border_margin9
border_width10
default_color สีขาว
default_outline_color สีดำ
default_shade_color สีดำ
สี 0 ฟ้า
สี 1 lightblue
สี 2 สีส้ม
color3 สีเหลือง
color4 ข้าวสาลี
color5 สีขาว
color6 สีขาว
color7 สีขาว
color8 สีขาว
color9 สีขาว
การจัดตำแหน่ง bottom_left # หรือ top_left, bottom_left, bottom_right
ช่องว่าง_x 565
gap_y 35
text_buffer_size 128 # ใช้ 1024 สำหรับการคาดการณ์
no_buffers ใช่ # ลบบัฟเฟอร์ระบบไฟล์จากหน่วยความจำที่ใช้?
draw_borders ไม่ใช่
draw_outline ใช่ # ขยายข้อความถ้าใช่
draw_shades ใช่ # เฉดสีดำ

TEXT
$ {font calibri: size = 11} $ {alignc} $ {color4} Gmail
$ {color0} $ {hr} $ color
$ {font calibri: size = 11} $ {color4} เรามี $ {color3} $ {execi 300 python ~ / Conky / scripts / mail / conkyEmail.py} $ {color4} อีเมล $ font

เราสร้างไฟล์ใน ~ / Conky / scripts / conkyForecast.py (เราต้องสร้างโฟลเดอร์สคริปต์)

gedit ~ / Conky / scripts / conkyForecast.py

#! / usr / bin / python
# - * - การเข้ารหัส: utf-8 - * -
################################################# ##############################
# conkyForecast.py เป็นสคริปต์ python ที่เรียบง่าย (อีกต่อไป) เพื่อรวบรวม
# รายละเอียดของสภาพอากาศปัจจุบันสำหรับใช้ใน conky
#
# ผู้แต่ง: Kaivalagi
# สร้าง: 13/04/2008
# การปรับเปลี่ยน:
# 14/04/2008 อนุญาตให้มีช่วงวันสำหรับข้อมูลการคาดการณ์
# 14/04/2008 ตรวจสอบการเชื่อมต่อกับบริการ xoap
# 18/04/2008 อนุญาตการตั้งค่าช่องว่างสำหรับเอาต์พุตที่อยู่ในระยะไกล
# 18/04/2008 อนุญาตให้เอาท์พุทพยากรณ์กลางคืนและกลางวัน
# 18/04/2008 สนับสนุนภาษาสำหรับข้อความรหัสเงื่อนไขตัวเลือก« CC »กำลังรอการแปลภาษาสเปน
# 18/04/2008 ใช้การดองข้อมูลชั้นเรียนแทนที่จะเปิด xml ซึ่งจะข้ามความจำเป็นในการซักถามข้อมูลแคช
# 19/04/2008 เพิ่มข้อความเงื่อนไขภาษาสเปน - ขอบคุณ Bruce M.
# 19/04/2008 เพิ่มการตรวจสอบตัวเลขในเอาต์พุตตัวเลขทั้งหมดพร้อมคำต่อท้ายหน่วย
# 19/04/2008 แก้ไขการตั้งชื่อไฟล์ดองเพื่อรวมรหัสสถานที่
# 19/04/2008 เพิ่มการแปลงวันในสัปดาห์ภาษาสเปนผ่านภาษา
# 20/04/2008 เพิ่มตัวแยกวิเคราะห์อาร์กิวเมนต์คำสั่งที่เหมาะสม
# 20/04/2008 เพิ่มตัวเลือก –shortweekday หากกำหนดประเภทข้อมูลวันในสัปดาห์จะสั้นลงเหลือ 3 อักขระ
# 21/04/2008 ตัวเลือกภาษาคงที่สำหรับผลลัพธ์การคาดการณ์
# 21/04/2008 เพิ่มตัวเลือก –template เพื่ออนุญาตให้ใช้เอาต์พุตที่กำหนดเองโดยใช้การเรียก exec เพียงครั้งเดียว🙂
# 21/04/2008 เพิ่ม - ตัวเลือกหน่วยซ่อนเพื่อลบตัวอย่างเช่นไมล์ต่อชั่วโมงและ C จากเอาต์พุต
# 23/04/2008 ลบตัวเลือกอิมพีเรียลออกจากเทมเพลตต้องตั้งค่านี้เป็นตัวเลือกมาตรฐานในการเรียกสคริปต์และไม่ได้ใช้ในไฟล์เทมเพลต
# 23/04/2008 ตัวเลือกที่อ่านแล้ว - อิมพีเรียลสำหรับเทมเพลตโดยเปิดใช้เมตริกหรือค่าอิมพีเรียลต่อประเภทข้อมูล หมายเหตุเมื่อใช้ตัวเลือกบรรทัดคำสั่งเทมเพลตจะไม่ทำงาน
# 23/04/2008 เพิ่มเอาต์พุตแจ้งเตือนผู้ใช้หากตำแหน่งที่ระบุไม่ถูกต้อง
# 24/04/2008 เพิ่มการจัดการสำหรับไม่มีการเชื่อมต่อจะเปลี่ยนกลับเป็นข้อมูลแคชทันที (เกิดข้อผิดพลาดหากไม่มีแคช) ทดสอบโดยลองเปิด xoap.weather.com
# 24/04/2008 แก้ไขการแปลงเซลเซียสเป็นฟาเรนไฮต์
# 06/05/2008 อัปเดต URL ที่ใช้หลังจากอัปเดตบริการเว็บแล้ว
# 09/05/2008 รวมสภาพปัจจุบันและข้อมูลการคาดการณ์จะดึงเข้าสู่การโทรครั้งเดียว
# 09/05/2008 เพิ่มพระอาทิตย์ขึ้นและตกในประเภทข้อมูลซึ่งเป็นข้อมูลเฉพาะสำหรับทั้งเงื่อนไขปัจจุบันและข้อมูลการคาดการณ์
# 09/05/2008 เพิ่มข้างขึ้นข้างแรมการอ่านบารอมิเตอร์และคำอธิบายบารอมิเตอร์ให้กับประเภทข้อมูลสิ่งเหล่านี้เฉพาะสำหรับสภาพปัจจุบันเท่านั้นดังนั้นจึงไม่มีในผลลัพธ์ที่คาดการณ์ไว้
# 09/05/2008 เพิ่มการแปลงหน่วยสำหรับบารอมิเตอร์จาก mb เป็นนิ้ว (อิมพีเรียล)
# 09/05/2008 อัปเดตข้อความเงื่อนไขภาษาสเปน - ขอบคุณ Bruce M.
# 10/05/2008 เพิ่มข้อมูลภาษาฝรั่งเศส - ขอบคุณ benpaka
# 12/05/2008 เพิ่มประเภทข้อมูล BF (แบบอักษรแบริ่ง) ใหม่เพื่อให้ตัวอักษรลูกศร (ใช้กับแบบอักษร Arrow.ttf) แทนเอาต์พุต NSEW จาก WD (ทิศทางลม)
# 12/05/2008 อัปเดตเอาต์พุต WD ให้เป็นภาษาเฉพาะปัจจุบันรองรับภาษาอังกฤษและสเปนเริ่มต้น - ขอบคุณ Bruce M
# 18/05/2008 เพิ่มประเภทข้อมูล MF (แบบอักษรดวงจันทร์) ใหม่เพื่อระบุอักขระแบบอักษรดวงจันทร์ (อักขระไม่ถูกต้องและยังไม่มีแบบอักษรเฉพาะ)
# 21/05/2008 สำหรับสภาวะปัจจุบันตัวเลือก –datatype = LT จะแสดงอุณหภูมิ«รู้สึกเหมือน»แทนที่จะเป็นอุณหภูมิปัจจุบัน
#
# ทุกอย่าง:
# รวมไฟล์ pkl เป็นไฟล์ / คลาสเดียว
# เพิ่มแบบอักษรสภาพอากาศตามเอาท์พุทข้างขึ้นข้างแรมตามข้อมูลไอคอนดวงจันทร์
# ??? มีข้อกำหนดเพิ่มเติมหรือไม่?

นำเข้า sys, os, ซ็อกเก็ต, urllib2, วันที่และเวลา, เวลา
จาก minidom นำเข้า xml.dom
จากการนำเข้าสถิติ *
จาก optparse import OptionParser
สถานที่นำเข้า
นำเข้า gettext
นำเข้าผักดอง
จากการนำเข้าคณิตศาสตร์ *

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

คลาส CommandLineParser:

parser = ไม่มี

def __init __ (ตัวเอง):

self.parser = OptionParser ()
self.parser.add_option (« - l », » - location », dest = » location », default = » UKXX0103″, type = » string », metavar = » CODE », help = u »รหัสตำแหน่งสำหรับข้อมูลสภาพอากาศ [ ค่าเริ่มต้น:% default] ใช้ url ต่อไปนี้เพื่อกำหนดรหัสตำแหน่งของคุณตามชื่อเมือง: http://xoap.weather.com/search/search?where=Norwich »)
self.parser.add_option ("- d", "- ประเภทข้อมูล", dest = "datatype", default = "HT", type = "string", metavar = "DATATYPE", help = u "[default:% default] ตัวเลือกประเภทข้อมูล ได้แก่ DW (Day Of Week), WF (Weather Font Output), LT (Forecast: Low Temp, Current: Feels Like Temp), HT (Forecast: High Temp, Current: Current Temp), CC (Current เงื่อนไข), CT (ข้อความเงื่อนไข), PC (โอกาสเกิดฝน), HM (ความชื้น), WD (ทิศทางลม), WS (ความเร็วลม), WG (ลมกระโชก), CN (ชื่อเมือง), SR (พระอาทิตย์ขึ้น), SS (พระอาทิตย์ตก), MP (ข้างขึ้นข้างแรม), MF (แบบอักษรของดวงจันทร์), BR (การอ่านบารอมิเตอร์), BD (คำอธิบายบารอมิเตอร์) ใช้ไม่ได้กับบรรทัดคำสั่งเมื่อใช้เทมเพลต»)
self.parser.add_option (« - s », » - startday », dest = » startday », type = » int », metavar = » NUMBER », help = u »กำหนดหมายเลขวันเริ่มต้นหากไม่ระบุเงื่อนไขปัจจุบันจะถูกส่งออก ไม่สามารถใช้ได้กับบรรทัดคำสั่งเมื่อใช้เทมเพลต»)
self.parser.add_option ("- e", "- endday", dest = "endday", type = "int", metavar = "NUMBER", help = u "กำหนดหมายเลขวันสิ้นสุดหากละเว้นเฉพาะข้อมูลวันเริ่มต้น เป็นเอาต์พุตใช้ไม่ได้กับบรรทัดคำสั่งเมื่อใช้เทมเพลต»)
self.parser.add_option (« - S », » - ช่องว่าง», dest = »ช่องว่าง», type = » int », default = 1, metavar = » NUMBER », help = u » [default:% default] กำหนด จำนวนช่องว่างระหว่างเอาต์พุตที่มีระยะห่างใช้ไม่ได้กับบรรทัดคำสั่งเมื่อใช้เทมเพลต»)
self.parser.add_option (« - t », » - template », dest = » template », type = » string », metavar = » FILE », help = u »กำหนดไฟล์เทมเพลตเพื่อสร้างเอาต์พุตในการเรียกหนึ่งครั้ง A รายการที่แสดงได้ในไฟล์จะอยู่ในรูปแบบ {–datatype = HT –startday = 1} ตัวเลือกที่เป็นไปได้ต่อไปนี้ภายในแต่ละรายการ: –datatype, –startday, –endday, –night, –shortweekday, –imperial, –hideunits, –Spaces โปรดทราบว่าขณะนี้ยังไม่รองรับรูปแบบสั้น ๆ ของตัวเลือก! ไม่มีตัวเลือกเหล่านี้สามารถใช้ได้ที่บรรทัดคำสั่งเมื่อใช้เทมเพลต»)
self.parser.add_option (« - L », » - locale », dest = » locale », type = » string », help = u »แทนที่ระบบโลแคลสำหรับเอาต์พุตภาษา (en = english, es = spanish, fr = ภาษาฝรั่งเศสและอื่น ๆ ที่จะมา) »)
self.parser.add_option ("- i", "- imperial", dest = "imperial", default = False, action = "store_true", help = u "ร้องขอหน่วยอิมพีเรียลหากละเว้นเอาต์พุตอยู่ในเมตริก บรรทัดคำสั่งเมื่อใช้เทมเพลต»)
self.parser.add_option (« - n », » - night », dest = » night », default = False, action = » store_true », help = u »สลับเอาต์พุตเป็นข้อมูลกลางคืนหากไม่ระบุเอาต์พุตวันจะถูกส่งออก ใช้ไม่ได้กับบรรทัดคำสั่งเมื่อใช้เทมเพลต»)
self.parser.add_option (« - w », » - shortweekday », dest = » shortweekday », default = False, action = » store_true », help = u »ย่อประเภทข้อมูลวันในสัปดาห์ให้สั้นลงเหลือ 3 อักขระใช้ไม่ได้ที่ บรรทัดคำสั่งเมื่อใช้เทมเพลต»)
self.parser.add_option (« - u », » - hideunits », dest = » hideunits », default = False, action = » store_true », help = u »ซ่อนหน่วยเช่น mph หรือ C สัญลักษณ์องศา (°) คือ ยังคงแสดงไม่สามารถใช้ได้กับบรรทัดคำสั่งเมื่อใช้เทมเพลต»)
self.parser.add_option ("- v", "- verbose", dest = "verbose", default = False, action = "store_true", help = u "ขอเอาต์พุต verbose ไม่มีความคิดที่ดีเมื่อวิ่งผ่าน conky!" )
self.parser.add_option ("- r", "- refetch", dest = "refetch", default = False, action = "store_true", help = u "ดึงข้อมูลโดยไม่คำนึงถึงการหมดอายุของข้อมูล")

def parse_args (ตัวเอง):
(ตัวเลือก args) = self.parser.parse_args ()
ผลตอบแทน (ตัวเลือก args)

def print_help (ตัวเอง):
ส่งคืน self.parser.print_help ()

คลาส WeatherData:
def __init __ (self, day_of_week, ต่ำ, สูง, condition_code, condition_text, หยาดน้ำฟ้า, ความชื้น, wind_dir, wind_speed, wind_gusts, เมือง, พระอาทิตย์ขึ้น, พระอาทิตย์ตก, moon_phase, moon_icon, bar_read, bar_desc):
self.day_of_week = u »» + day_of_week
self.low = u »» + ต่ำ
self.high = u »» + สูง
self.condition_code = u »» + condition_code
self.condition_text = u »» + condition_text
self.precip = u »» + หยาดน้ำฟ้า
self.humidity = u »» + ความชื้น
self.wind_dir = u »» + wind_dir
self.wind_speed = u »» + wind_speed
self.wind_gusts = u »» + wind_gusts
self.city = u »» + เมือง
self.sunrise = u »» + พระอาทิตย์ขึ้น
self.sunset = u »» + พระอาทิตย์ตก
self.moon_phase = u »» + moon_phase
self.moon_icon = u »» + moon_icon
self.bar_read = u »» + bar_read
self.bar_desc = u »» + bar_desc

ชั้น WeatherText:

condition_text = {
« 0 »: _ (คุณ»พายุทอร์นาโด»),
« 1 »: _ (u »พายุโซนร้อน»),
« 2 »: _ (u »พายุเฮอริเคน»),
« 3 »: _ (u »พายุฝนฟ้าคะนองรุนแรง»),
« 4 »: _ (u »พายุฝนฟ้าคะนอง»),
« 5 »: _ (u »ฝนและหิมะผสม»),
« 6 »: _ (u »ฝนและพายุผสม»),
« 7 »: _ (u »ฝนตกแบบผสม»),
« 8 »: _ (u »ฝนเยือกแข็ง»),
« 9 »: _ (คุณ»ฝนตกปรอยๆ»),
« 10 »: _ (u »ฝนเยือกแข็ง»),
« 11 »: _ (u »ฝนตก»),
« 12 »: _ (u »ฝนตก»),
« 13 »: _ (คุณ»พายุหิมะ»),
« 14 »: _ (คุณ»มีหิมะโปรยปราย»),
« 15 »: _ (คุณ»หิมะตก»),
« 16 »: _ (คุณ»หิมะ»),
« 17 »: _ (คุณ»ทักทาย»),
« 18 »: _ (u » Sleet »),
« 19 »: _ (u »ฝุ่น»),
« 20 »: _ (คุณ»หมอก»),
« 21 »: _ (คุณ»หมอก»),
« 22 »: _ (u »ควัน»),
« 23 »: _ (คุณ» Blustery »),
« 24 »: _ (คุณ»ลมแรง»),
« 25 »: _ (คุณ»เย็น»),
« 26 »: _ (คุณ»มีเมฆมาก»),
« 27 »: _ (u »มีเมฆเป็นส่วนใหญ่»),
« 28 »: _ (u »มีเมฆเป็นส่วนใหญ่»),
« 29 »: _ (u »มีเมฆเป็นบางส่วน»),
« 30 »: _ (u »มีเมฆเป็นบางส่วน»),
« 31 »: _ (u »ล้าง»),
« 32 »: _ (u »ล้าง»),
« 33 »: _ (u »ยุติธรรม»),
« 34 »: _ (u »ยุติธรรม»),
« 35 »: _ (u »ฝนและลูกเห็บผสม»),
« 36 »: _ (u »ร้อนแรง»),
« 37 »: _ (u »พายุฝนฟ้าคะนองแยก»),
« 38 »: _ (u »พายุฝนฟ้าคะนองกระจาย»),
« 39 »: _ (u »พายุฝนฟ้าคะนองกระจาย»),
« 40 »: _ (u »ฝนโปรย»),
« 41 »: _ (คุณ»หิมะตกหนัก»),
« 42 »: _ (u »หิมะโปรยปราย»),
« 43 »: _ (คุณ»หิมะตกหนัก»),
« 44 »: _ (u »มีเมฆเป็นบางส่วน»),
« 45 »: _ (u »ฝนฟ้าคะนอง»),
« 46 »: _ (คุณ»มีหิมะตกโปรยปราย»),
« 47 »: _ (u »พายุฝนฟ้าคะนองแยก»),
«นา»: _ (u » N / A »),
"-": _ (ก ")
}

condition_text_es = {
« 0 »: _ (คุณ»พายุทอร์นาโด»),
« 1 »: _ (u »พายุโซนร้อน»),
« 2 »: _ (คุณ»Huracá¡n»),
« 3 »: _ (u »พายุแรง»),
« 4 »: _ (u »พายุ»),
« 5 »: _ (u »ฝนและหิมะผสม»),
« 6 »: _ (u »ฝนและพายุผสม»),
« 7 »: _ (u » Sleet »),
« 8 »: _ (u »ฝนเยือกแข็ง»),
« 9 »: _ (คุณ»ฝนตกปรอยๆ»),
« 10 »: _ (u » Freezing Rain »), # หรือฝนเยือกแข็ง
« 11 »: _ (u »ฝนตก»),
« 12 »: _ (u »ฝนตก»),
« 13 »: _ (คุณ»หิมะโปรยปราย»),
« 14 »: _ (คุณ»หิมะโปรยปราย»),
« 15 »: _ (คุณ» Snow Blizzard »),
« 16 »: _ (คุณ»หิมะ»),
« 17 »: _ (คุณ»ทักทาย»),
« 18 »: _ (u » Sleet »),
« 19 »: _ (u »ผง»),
« 20 »: _ (คุณ»หมอก»),
« 21 »: _ (คุณ»หมอก»),
« 22 »: _ (u »ควัน»),
« 23 »: _ (คุณ»พายุ»),
« 24 »: _ (คุณ»ลมแรง»),
« 25 »: _ (u »Fráo»),
« 26 »: _ (u »มีเมฆมาก»),
« 27 »: _ (u »มีเมฆเป็นส่วนใหญ่»),
« 28 »: _ (u »มีเมฆเป็นส่วนใหญ่»),
« 29 »: _ (u »มีเมฆเป็นบางส่วน»),
« 30 »: _ (u »มีเมฆเป็นบางส่วน»),
« 31 »: _ (u »ล้าง»),
« 32 »: _ (u »ล้าง»),
« 33 »: _ (u »มีเมฆมาก»),
« 34 »: _ (u »มีเมฆมาก»),
« 35 »: _ (u »ฝนตกพร้อมลูกเห็บ»),
« 36 »: _ (u »ความร้อน»),
« 37 »: _ (u »พายุที่แยกได้»),
« 38 »: _ (u »พายุกระจาย»),
« 39 »: _ (u »พายุกระจาย»),
« 40 »: _ (u »ฝนโปรย»),
« 41 »: _ (คุณ»หิมะตกหนัก»),
« 42 »: _ (คุณ»หิมะที่อ่อนแอและกระจัดกระจาย»),
« 43 »: _ (u » Intense Nevada »),
« 44 »: _ (u »เมฆที่กระจัดกระจาย»),
« 45 »: _ (u »พายุ»),
« 46 »: _ (คุณ»หิมะตกกระจัดกระจาย»),
« 47 »: _ (u »พายุที่แยกได้»),
«นา»: _ (u » N / A »),
"-": _ (ก ")
}

condition_text_fr = {
« 0 »: _ (คุณ»ฉีกขาด»),
« 1 »: _ (u »Tempête Tropicale »),
« 2 »: _ (หรือ» Ouragan »),
« 3 »: _ (หรือ» Orages Violents »),
« 4 »: _ (หรือ» Orageux »),
« 5 »: _ (u » Pluie et Neige »),
« 6 »: _ (u » Pluie et Neige Mouillée»),
« 7 »: _ (u »ตัวแปร avec averses »),
« 8 »: _ (u » Bruine Givrante »),
« 9 »: _ (u » Bruine »),
« 10 »: _ (คุณ» 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 »: _ (คุณ» Brouillard »),
« 21 »: _ (u » Brume »),
« 22 »: _ (คุณ»Fumée»),
« 23 »: _ (คุณ» Tres Venteux »),
« 24 »: _ (u » Venteux »),
« 25 »: _ (u » Froid »),
« 26 »: _ (คุณ» Nuageux »),
« 27 »: _ (คุณ» Tres Nuageux »),
« 28 »: _ (คุณ» Tres Nuageux »),
« 29 »: _ (u » Nuages ​​Disséminés»),
« 30 »: _ (u » Nuages ​​Disséminés»),
« 31 »: _ (u » Beau »),
« 32 »: _ (u » Beau »),
« 33 »: _ (u » Belles Éclairlies»),
« 34 »: _ (u » Belles Éclairlies»),
« 35 »: _ (คุณ» Pluie avec Grêle»),
« 36 »: _ (คุณ» Chaleur »),
« 37 »: _ (หรือ» Orages Isolés»),
« 38 »: _ (หรือ» Orages Localisés»),
« 39 »: _ (หรือ» Orages Localisés»),
« 40 »: _ (u »หลีกเลี่ยงLocalisées»),
« 41 »: _ (คุณ» Neige Lourde »),
« 42 »: _ (u »Tempête de Neige Localisées»),
« 43 »: _ (คุณ» Neige Lourde »),
« 44 »: _ (u » Nuages ​​Disséminés»),
« 45 »: _ (หรือ» Orages »),
« 46 »: _ (u »Tempête de Neige »),
« 47 »: _ (หรือ» Orages Isolés»),
«นา»: _ (u » N / A »),
"-": _ (ก ")
}

condition_weather_font = {
« 0 »: _ (คุณ» W »),
« 1 »: _ (u » V »),
« 2 »: _ (คุณ» 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 »: _ (คุณ» c »),
« 30 »: _ (คุณ» 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 »),
«นา»: _ (u »»),
"-": _(หรือ"")
}

condition_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 »: _ (คุณ» 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 »: _ (คุณ» H »),
« 24 »: _ (คุณ» I »),
« 25 »: _ (u » J »),
« 26 »: _ (คุณ» K »),
« 27 »: _ (คุณ» L »),
« 28 »: _ (คุณ» M »),
« 29 »: _ (u » 1″),
«นา»: _ (u »»),
"-": _(หรือ"")
}

วัน_ของ_สัปดาห์ = {
"วันนี้": _ (หรือ "วันนี้"),
«วันจันทร์»: _ (คุณ»วันจันทร์»),
«วันอังคาร»: _ (คุณ»วันอังคาร»),
«วันพุธ»: _ (คุณ»วันพุธ»),
«วันพฤหัสบดี»: _ (คุณ»พฤหัสบดี»),
«วันศุกร์»: _ (คุณ»วันศุกร์»),
"Saturday": _ (u "วันเสาร์"),
"Sunday": _ (u "วันอาทิตย์")
}

วัน_ของ_สัปดาห์_สั้น = {
"วันนี้": _ (u "Now"),
«วันจันทร์»: _ (คุณ»จันทร์»),
«วันอังคาร»: _ (u »อังคาร»),
«วันพุธ»: _ (คุณ»พุธ»),
«วันพฤหัสบดี»: _ (u »พฤหัสบดี»),
«วันศุกร์»: _ (คุณ»ศุกร์»),
"Saturday": _ (u "Sat"),
"วันอาทิตย์": _ (u "Sun")
}

day_of_week_en = {
"วันนี้": _ (u "today"),
"วันจันทร์": _ (คุณ "วันจันทร์"),
«วันอังคาร»: _ (คุณ»วันอังคาร»),
«วันพุธ»: _ (คุณ»วันพุธ»),
«วันพฤหัสบดี»: _ (คุณ»พฤหัสบดี»),
«วันศุกร์»: _ (คุณ»วันศุกร์»),
"Saturday": _ (u "วันเสาร์"),
"Sunday": _ (u "วันอาทิตย์")
}

day_of_week_short_en = {
"วันนี้": _ (u "today"),
"วันจันทร์": _ (u "mon"),
«วันอังคาร»: _ (คุณ»ทะเล»),
«วันพุธ»: _ (คุณ»พุธ»),
«วันพฤหัสบดี»: _ (คุณ»พฤหัสบดี»),
«วันศุกร์»: _ (u » fri »),
"วันเสาร์": _ (u "sat"),
"วันอาทิตย์": _ (u "dom")
}

day_of_week_fr = {
«วันนี้»: _ (u » Aujourd'hui »),
«วันจันทร์»: _ (u » Lundi »),
«วันอังคาร»: _ (u » Mardi »),
«วันพุธ»: _ (u » Mercredi »),
«วันพฤหัสบดี»: _ (u » Jeudi »),
«วันศุกร์»: _ (u » Vendredi »),
"Saturday": _ (u "Samedi"),
"วันอาทิตย์": _ (u "Dimanche")
}

day_of_week_short_fr = {
«วันนี้»: _ (u » Auj »),
"วันจันทร์": _ (u "Mon"),
«วันอังคาร»: _ (u »มีนาคม»),
"วันพุธ": _ (u "Mer"),
«วันพฤหัสบดี»: _ (u » Jeu »),
«วันศุกร์»: _ (u »มาแล้ว»),
"Saturday": _ (u "Sam"),
"วันอาทิตย์": _ (u "Dim")
}

แบริ่ง_arrow_font = {
« N »: _ (u » i »),
« NNE »: _ (u » j »),
« NE »: _ (u » k »),
« ENE »: _ (u » l »),
« E »: _ (u » m »),
« ESE »: _ (u » n »),
"SE": _ (u "o"),
« SSE »: _ (u » p »),
« S »: _ (u » a »),
« SSW »: _ (u » b »),
« SW »: _ (u » c »),
"WSW": _ (u "d"),
« W »: _ (u » e »),
"WNW": _ (u "f"),
« NW »: _ (u » g »),
« NNW »: _ (u » h »),
« N / A »: _ (u »«)
}

bearing_text_en = {
« N »: _ (u » N »),
« NNE »: _ (u » NNE »),
« NE »: _ (u » NE »),
« ENE »: _ (u » ENE »),
« E »: _ (u » E »),
« ESE »: _ (u » ESE »),
« SE »: _ (u » SE »),
"SSE": _ (u "SSE"),
"ของพวกเขา"),
"SSW": _ (u "สปส."),
« SW »: _ (u » SO »),
"WSW": _ (u "WOW"),
« W »: _ (u » O »),
« WNW »: _ (u » ONO »),
« NW »: _ (u » NO »),
« NNW »: _ (u » NNO »),
« N / A »: _ (u » N \ A »)
}

แบริ่ง_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"),
"ของพวกเขา"),
"SSW": _ (u "สปส."),
« SW »: _ (u » SO »),
"WSW": _ (u "WOW"),
« W »: _ (u » O »),
« WNW »: _ (u » ONO »),
« NW »: _ (u » NO »),
« NNW »: _ (u » NNO »),
« N / A »: _ (u » N \ A »)
}

ระดับ GlobalWeather:

เงื่อนไขปัจจุบัน = []
วัน_พยากรณ์ = []
พยากรณ์กลางคืน = []

locale = "ใน"

ตัวเลือก = ไม่มี
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"
หมดอายุ_นาที = 30
DEFAULT_SPACING = u »«

def __init __ (ตัวเลือก):

self.options = ตัวเลือก

ถ้า self.options.locale == ไม่มี:
ลอง:
# self.locale = locale.getdefaultlocale () [0] [0: 2]
self.locale = « es » #uncomment บรรทัดนี้เพื่อบังคับใช้ภาษาสเปน
# self.locale = "fr" #uncomment บรรทัดนี้เพื่อบังคับใช้ภาษาฝรั่งเศส
ยกเว้น:
พิมพ์ "ไม่ได้ตั้งค่าภาษา"
อื่น:
# self.locale = self.options.locale
self.locale = « es » #uncomment บรรทัดนี้เพื่อบังคับใช้ภาษาสเปน
# self.locale = "fr" #uncomment บรรทัดนี้เพื่อบังคับใช้ภาษาฝรั่งเศส

ถ้า self.options.verbose == จริง:
พิมพ์ >> sys.stdout, "locale set to", self.locale

def getText (ตัวเอง nodelist):
อาร์ซี = ""
สำหรับโหนดใน nodelist:
ถ้า node.nodeType == node.TEXT_NODE:
rc = rc + node.data
ส่งคืน rc

def getSpaces (ตัวเองช่องว่าง):
สตริง = u »»
ถ้าช่องว่าง == ไม่มี:
สตริง = self.DEFAULT_SPACING
อื่น:
สำหรับฉันในช่วง (0, ช่องว่าง + 1):
สตริง = string + u »«
ส่งคืนสตริง

def isNumeric (ตัวเองสตริง):
ลอง:
ดัมมี่ = ลอย (สตริง)
ส่งคืน True
ยกเว้น:
ส่งคืนเท็จ

def isConnectionAvailable (ตัวเอง):
# ตรวจสอบให้แน่ใจว่าเราสามารถเข้าถึงเซิร์ฟเวอร์ของ weather.com ได้โดยเปิด url
ลอง:
Usock = urllib2.urlopen ('http://xoap.weather.com')
Usock.close ()
ส่งคืน True
ยกเว้น:
ส่งคืนเท็จ

def getBearingText (ตัวเองแบริ่ง):
แบริ่ง = ลอย (แบริ่ง)
ถ้าแบริ่ง <11.25:
กลับคุณ» N »
แบริ่ง elif <33.75:
กลับคุณ» NNE »
แบริ่ง elif <56.25:
กลับ u » NE »
แบริ่ง elif <78.75:
กลับคุณ» JAN »
แบริ่ง elif <101.25:
กลับ u » E »
แบริ่ง elif <123.75:
กลับคุณ» ESE »
แบริ่ง elif <146.25:
กลับคุณ» SE »
แบริ่ง elif <168.75:
กลับ u » SSE »
แบริ่ง elif <191.25:
กลับ u » S »
แบริ่ง elif <213.75:
กลับ u » SSW »
แบริ่ง elif <236.25:
กลับคุณ» SW »
แบริ่ง elif <258.75:
กลับ u » WSW »
แบริ่ง elif <281.25:
กลับคุณ» W »
แบริ่ง elif <303.75:
กลับคุณ» WNW »
แบริ่ง elif <326.25:
กลับ u » NW »
แบริ่ง elif <348.75:
กลับคุณ» NNW »
อื่น:
กลับ« N / A »

def แปลงเซลเซียสโทฟาเรนไฮต์ (ตัวเองอุณหภูมิ):
return str (int (ชั้น (((float (temp) * 9.0) /5.0) +32)))

def แปลง
return str (int (พื้น (ลอย (ระยะ) * 0.621371192)))

def ConvertMillibarsToInches (ตัวเอง mb):
return str (int (พื้น (ลอย (mb) /33.8582)))

def getTemplateList (ตัวเองแม่แบบ):

เทมเพลต = []

สำหรับ template_part ใน template.split (« {«):
ถ้า template_part! = «»:
สำหรับ template_part ใน template_part.split ("}"):
ถ้า template_part! = «»:
templatelist.append (u »» + template_part)

ส่งคืนเทมเพลต

def getOutputText (ตัวเอง, ประเภทข้อมูล, วันเริ่มต้น, วันที่สิ้นสุด, กลางคืน, วันหยุดสั้น ๆ , อิมพีเรียล, ซ่อนยูนิต, ช่องว่าง):
#ลอง:
เอาท์พุท = u »»

# กำหนดหน่วยปัจจุบันสำหรับเอาต์พุต
ถ้า hideunits == เท็จ:
ถ้าอิมพีเรียล == เท็จ:
อุณหภูมิ = u »° C »
speedunit = u » kph »
หน่วยความดัน = u » mb »
อื่น:
อุณหภูมิ = u »° F »
speedunit = คุณ» mph »
pressureunit = u »ใน»
อื่น:
ชั่วคราว = u »°»
speedunit = u »»
หน่วยความดัน = u »»

ถ้า startday == ไม่มี: # เงื่อนไขปัจจุบัน

ถ้าประเภทข้อมูล == "DW":
ถ้า self.locale == "is":
ถ้าวันธรรมดา == จริง:
เอาท์พุท = WeatherText.day_of_week_short_es [self.current_conditions [0] .day_of_week]
อื่น:
เอาท์พุท = WeatherText.day_of_week_es [self.current_conditions [0] .day_of_week]
elif self.locale == "fr":
ถ้าวันธรรมดา == จริง:
เอาท์พุท = WeatherText.day_of_week_short_fr [self.current_conditions [0] .day_of_week]
อื่น:
เอาท์พุท = WeatherText.day_of_week_fr [self.current_conditions [0] .day_of_week]
อื่น:
ถ้าวันธรรมดา == จริง:
เอาท์พุท = WeatherText.day_of_week_short [self.current_conditions [0] .day_of_week]
อื่น:
เอาท์พุท = WeatherText.day_of_week [self.current_conditions [0] .day_of_week]
elif datatype == "WF": # แบบอักษรสภาพอากาศ
เอาท์พุท = WeatherText.conditions_weather_font [self.current_conditions [0] .condition_code]
ประเภทข้อมูล elif == "LT":
string = self.current_conditions [0] .low
ถ้า self.isNumeric (สตริง) == จริง:
ถ้าอิมพีเรียล == จริง:
string = self.convertCelsiusToFahrenheit (สตริง)
สตริง = string + tempunit
เอาท์พุท = สตริง
ประเภทข้อมูล elif == "HT":
string = self.current_conditions [0] .high
ถ้า self.isNumeric (สตริง) == จริง:
ถ้าอิมพีเรียล == จริง:
string = self.convertCelsiusToFahrenheit (สตริง)
สตริง = string + tempunit
เอาท์พุท = สตริง
ประเภทข้อมูล elif == "CC":
ถ้า self.locale == "is":
เอาท์พุท = WeatherText.conditions_text_es [self.current_conditions [0] .condition_code]
elif self.locale == "fr":
เอาท์พุท = WeatherText.conditions_text_fr [self.current_conditions [0] .condition_code]
อื่น:
เอาท์พุท = WeatherText.conditions_text [self.current_conditions [0] .condition_code]
ประเภทข้อมูล elif == "CT":
เอาท์พุท = self.current_conditions [0] .condition_text
ประเภทข้อมูล elif == "พีซี":
string = self.current_conditions [0] .precip
ถ้า self.isNumeric (สตริง) == จริง:
สตริง = string + u »% »
เอาท์พุท = สตริง
ประเภทข้อมูล elif == "HM":
string = self.current_conditions [0] .humidity
ถ้า self.isNumeric (สตริง) == จริง:
สตริง = string + u »% »
เอาท์พุท = สตริง
ประเภทข้อมูล elif == "WD":
สตริง = self.current_conditions [0] .wind_dir
ถ้า self.isNumeric (สตริง) == จริง:
สตริง = self.getBearingText (สตริง)

ถ้า self.locale == "is":
เอาท์พุท = WeatherText.bearing_text_es [สตริง]
elif self.locale == "fr":
เอาท์พุท = WeatherText.bearing_text_fr [สตริง]
อื่น:
เอาท์พุท = สตริง

ประเภทข้อมูล elif == "BF":
สตริง = self.current_conditions [0] .wind_dir
ถ้า self.isNumeric (สตริง) == จริง:
สตริง = WeatherText.bearing_arrow_font [self.getBearingText (สตริง)]
เอาท์พุท = สตริง
ประเภทข้อมูล elif == "WS":
สตริง = self.current_conditions [0] .wind_speed
ถ้า self.isNumeric (สตริง) == จริง:
ถ้าอิมพีเรียล == จริง:
string = self.convertKilometresToMiles (สตริง)
สตริง = string + speedunit
เอาท์พุท = สตริง
ประเภทข้อมูล elif == "WG":
string = self.current_conditions [0] .wind_gusts
ถ้า self.isNumeric (สตริง) == จริง:
ถ้าอิมพีเรียล == จริง:
string = self.convertKilometresToMiles (สตริง)
สตริง = string + speedunit
เอาท์พุท = สตริง
ประเภทข้อมูล elif == "CN":
เอาท์พุท = self.current_conditions [0] .city
ประเภทข้อมูล elif == "SR":
เอาท์พุท = self.current_conditions [0] .sunrise
ประเภทข้อมูล elif == "SS":
output = self.current_conditions [0] .sunset
ประเภทข้อมูล elif == "MP":
เอาท์พุท = self.current_conditions [0] .moon_phase
ประเภทข้อมูล elif == "MF":
เอาท์พุท = WeatherText.conditions_moon_font [self.current_conditions [0] .moon_icon]
ประเภทข้อมูล elif == "BR":
string = self.current_conditions [0] .bar_read
ถ้า self.isNumeric (สตริง) == จริง:
ถ้าอิมพีเรียล == จริง:
string = self.convertMillibarsToInches (สตริง)
string = string + หน่วยความดัน
เอาท์พุท = สตริง
ประเภทข้อมูล elif == "BD":
เอาท์พุท = self.current_conditions [0] .bar_desc
อื่น:
output = "\ nERROR: ไม่ทราบประเภทข้อมูลที่ร้องขอ"

อื่น: # ข้อมูลการคาดการณ์

ถ้า endday == ไม่มี: # ถ้าไม่มีการตั้งค่า endday ให้ใช้ startday
endday = วันเริ่มต้น

ถ้าคืน == จริง: ต้องพยากรณ์ # คืน

สำหรับ day_number ในช่วง (วันที่เริ่มต้นวันที่สิ้นสุด + 1):

ถ้าประเภทข้อมูล == "DW":
ถ้า self.locale == "is":
ถ้าวันธรรมดา == จริง:
output = output + self.getSpaces (ช่องว่าง) + WeatherText.day_of_week_short_es [self.night_forecast [day_number] .day_of_week]
อื่น:
เอาท์พุท = เอาท์พุท + self.getSpaces (ช่องว่าง) + WeatherText.day_of_week_es [self.night_forecast [day_number] .day_of_week]
elif self.locale == "fr":
ถ้าวันธรรมดา == จริง:
output = output + self.getSpaces (ช่องว่าง) + WeatherText.day_of_week_short_fr [self.night_forecast [day_number] .day_of_week]
อื่น:
เอาท์พุท = เอาท์พุท + self.getSpaces (ช่องว่าง) + WeatherText.day_of_week_fr [self.night_forecast [day_number] .day_of_week]
อื่น:
ถ้าวันธรรมดา == จริง:
เอาท์พุท = เอาท์พุท + self.getSpaces (ช่องว่าง) + WeatherText.day_of_week_short [self.night_forecast [day_number] .day_of_week]
อื่น:
เอาท์พุท = เอาท์พุท + self.getSpaces (ช่องว่าง) + WeatherText.day_of_week [self.night_forecast [day_number] .day_of_week]
elif datatype == "WF": # แบบอักษรสภาพอากาศ
output = output + self.getSpaces (ช่องว่าง) + WeatherText.conditions_weather_font [self.night_forecast [day_number] .condition_code]
ประเภทข้อมูล elif == "LT":
string = self.night_forecast [day_number] .low
ถ้า self.isNumeric (สตริง) == จริง:
ถ้าอิมพีเรียล == จริง:
string = self.convertCelsiusToFahrenheit (สตริง)
สตริง = string + tempunit
เอาท์พุท = เอาท์พุท + self.getSpaces (ช่องว่าง) + สตริง

ประเภทข้อมูล elif == "HT":
string = self.night_forecast [day_number] .high
ถ้า self.isNumeric (สตริง) == จริง:
ถ้าอิมพีเรียล == จริง:
string = self.convertCelsiusToFahrenheit (สตริง)
สตริง = string + tempunit
เอาท์พุท = เอาท์พุท + self.getSpaces (ช่องว่าง) + สตริง
ประเภทข้อมูล elif == "CC":
ถ้า self.locale == "is":
output = output + self.getSpaces (ช่องว่าง) + WeatherText.conditions_text_es [self.night_forecast [day_number] .condition_code]
elif self.locale == "fr":
output = output + self.getSpaces (ช่องว่าง) + WeatherText.conditions_text_fr [self.night_forecast [day_number] .condition_code]
อื่น:
output = output + self.getSpaces (ช่องว่าง) + WeatherText.conditions_text [self.night_forecast [day_number] .condition_code]
ประเภทข้อมูล elif == "CT":
output = output + self.getSpaces (ช่องว่าง) + self.night_forecast [day_number] .condition_text
ประเภทข้อมูล elif == "พีซี":
string = self.night_forecast [day_number] .precip
ถ้า self.isNumeric (สตริง) == จริง:
สตริง = string + u »% »
เอาท์พุท = เอาท์พุท + self.getSpaces (ช่องว่าง) + สตริง
ประเภทข้อมูล elif == "HM":
string = self.night_forecast [day_number] .humidity
ถ้า self.isNumeric (สตริง) == จริง:
สตริง = string + u »% »
เอาท์พุท = เอาท์พุท + self.getSpaces (ช่องว่าง) + สตริง
ประเภทข้อมูล elif == "WD":
string = self.night_forecast [day_number] .wind_dir
ถ้า self.locale == "is":
เอาท์พุท = เอาท์พุท + self.getSpaces (ช่องว่าง) + WeatherText.bearing_text_es [สตริง]
elif self.locale == "fr":
เอาท์พุท = เอาท์พุท + self.getSpaces (ช่องว่าง) + WeatherText.bearing_text_fr [สตริง]
อื่น:
เอาท์พุท = เอาท์พุท + self.getSpaces (ช่องว่าง) + สตริง

ประเภทข้อมูล elif == "BF":
output = output + self.getSpaces (ช่องว่าง) + WeatherText.bearing_arrow_font [self.night_forecast [day_number] .wind_dir]
ประเภทข้อมูล elif == "WS":
string = self.night_forecast [day_number] .wind_speed
ถ้า self.isNumeric (สตริง) == จริง:
ถ้าอิมพีเรียล == จริง:
string = self.convertKilometresToMiles (สตริง)
สตริง = string + speedunit
เอาท์พุท = เอาท์พุท + self.getSpaces (ช่องว่าง) + สตริง
ประเภทข้อมูล elif == "WG":
string = self.night_forecast [day_number] .wind_gusts
ถ้า self.isNumeric (สตริง) == จริง:
ถ้าอิมพีเรียล == จริง:
string = self.convertKilometresToMiles (สตริง)
สตริง = string + speedunit
เอาท์พุท = เอาท์พุท + self.getSpaces (ช่องว่าง) + สตริง
ประเภทข้อมูล elif == "CN":
output = output + self.getSpaces (ช่องว่าง) + self.night_forecast [day_number] .city
ประเภทข้อมูล elif == "SR":
output = output + self.getSpaces (ช่องว่าง) + self.night_forecast [day_number] .sunrise
ประเภทข้อมูล elif == "SS":
output = output + self.getSpaces (ช่องว่าง) + self.night_forecast [day_number] .sunset
ประเภทข้อมูล elif == "MP":
output = output + self.getSpaces (ช่องว่าง) + self.night_forecast [day_number] .moon_phase
ประเภทข้อมูล elif == "MF":
เอาท์พุท = เอาท์พุท + self.getSpaces (ช่องว่าง) + WeatherText.conditions_moon_font [self.night_forecast [day_number] .moon_icon]
ประเภทข้อมูล elif == "BR":
output = output + self.getSpaces (ช่องว่าง) + self.night_forecast [day_number] .bar_read
ประเภทข้อมูล elif == "BD":
output = output + self.getSpaces (ช่องว่าง) + self.night_forecast [day_number] .bar_desc
อื่น:
output = "\ nERROR: ไม่ทราบประเภทข้อมูลที่ร้องขอ"
ทำลาย

อื่น: ต้องการพยากรณ์ # วัน

สำหรับ day_number ในช่วง (วันที่เริ่มต้นวันที่สิ้นสุด + 1):

ถ้าประเภทข้อมูล == "DW":
ถ้า self.locale == "is":
ถ้าวันธรรมดา == จริง:
output = output + self.getSpaces (ช่องว่าง) + WeatherText.day_of_week_short_es [self.day_forecast [day_number] .day_of_week]
อื่น:
เอาท์พุท = เอาท์พุท + self.getSpaces (ช่องว่าง) + WeatherText.day_of_week_es [self.day_forecast [day_number] .day_of_week]
elif self.locale == "fr":
ถ้าวันธรรมดา == จริง:
output = output + self.getSpaces (ช่องว่าง) + WeatherText.day_of_week_short_fr [self.day_forecast [day_number] .day_of_week]
อื่น:
เอาท์พุท = เอาท์พุท + self.getSpaces (ช่องว่าง) + WeatherText.day_of_week_fr [self.day_forecast [day_number] .day_of_week]
อื่น:
ถ้าวันธรรมดา == จริง:
output = output + self.getSpaces (ช่องว่าง) + WeatherText.day_of_week_short [self.day_forecast [day_number] .day_of_week]
อื่น:
เอาท์พุท = เอาท์พุท + self.getSpaces (ช่องว่าง) + WeatherText.day_of_week [self.day_forecast [day_number] .day_of_week]
elif datatype == "WF": # แบบอักษรสภาพอากาศ
output = output + self.getSpaces (ช่องว่าง) + WeatherText.conditions_weather_font [self.day_forecast [day_number] .condition_code]
ประเภทข้อมูล elif == "LT":
string = self.day_forecast [day_number] .low
ถ้า self.isNumeric (สตริง) == จริง:
ถ้าอิมพีเรียล == จริง:
string = self.convertCelsiusToFahrenheit (สตริง)
สตริง = string + tempunit
เอาท์พุท = เอาท์พุท + self.getSpaces (ช่องว่าง) + สตริง
ประเภทข้อมูล elif == "HT":
string = self.day_forecast [day_number] .high
ถ้า self.isNumeric (สตริง) == จริง:
ถ้าอิมพีเรียล == จริง:
string = self.convertCelsiusToFahrenheit (สตริง)
สตริง = string + tempunit
เอาท์พุท = เอาท์พุท + self.getSpaces (ช่องว่าง) + สตริง
ประเภทข้อมูล elif == "CC":
ถ้า self.locale == "is":
output = output + self.getSpaces (ช่องว่าง) + WeatherText.conditions_text_es [self.day_forecast [day_number] .condition_code]
elif self.locale == "fr":
output = output + self.getSpaces (ช่องว่าง) + WeatherText.conditions_text_fr [self.day_forecast [day_number] .condition_code]
อื่น:
output = output + self.getSpaces (ช่องว่าง) + WeatherText.conditions_text [self.day_forecast [day_number] .condition_code]
ประเภทข้อมูล elif == "CT":
output = output + self.getSpaces (ช่องว่าง) + self.day_forecast [day_number] .condition_text
ประเภทข้อมูล elif == "พีซี":
string = self.day_forecast [day_number] .precip
ถ้า self.isNumeric (สตริง) == จริง:
สตริง = string + u »% »
เอาท์พุท = เอาท์พุท + self.getSpaces (ช่องว่าง) + สตริง
ประเภทข้อมูล elif == "HM":
string = self.day_forecast [day_number] .humidity
ถ้า self.isNumeric (สตริง) == จริง:
สตริง = string + u »% »
เอาท์พุท = เอาท์พุท + self.getSpaces (ช่องว่าง) + สตริง
ประเภทข้อมูล elif == "WD":
string = self.day_forecast [day_number] .wind_dir

ถ้า self.locale == "is":
เอาท์พุท = เอาท์พุท + self.getSpaces (ช่องว่าง) + WeatherText.bearing_text_es [สตริง]
elif self.locale == "fr":
เอาท์พุท = เอาท์พุท + self.getSpaces (ช่องว่าง) + WeatherText.bearing_text_fr [สตริง]
อื่น:
เอาท์พุท = เอาท์พุท + self.getSpaces (ช่องว่าง) + สตริง

ประเภทข้อมูล elif == "BF":
เอาท์พุท = เอาท์พุท + self.getSpaces (ช่องว่าง) + WeatherText.bearing_arrow_font [self.day_forecast [day_number] .wind_dir]
ประเภทข้อมูล elif == "WS":
string = self.day_forecast [day_number] .wind_speed
ถ้า self.isNumeric (สตริง) == จริง:
ถ้าอิมพีเรียล == จริง:
string = self.convertKilometresToMiles (สตริง)
สตริง = string + speedunit
เอาท์พุท = เอาท์พุท + self.getSpaces (ช่องว่าง) + สตริง
ประเภทข้อมูล elif == "WG":
string = self.day_forecast [day_number] .wind_gusts
ถ้า self.isNumeric (สตริง) == จริง:
ถ้าอิมพีเรียล == จริง:
string = self.convertKilometresToMiles (สตริง)
สตริง = string + speedunit
เอาท์พุท = เอาท์พุท + self.getSpaces (ช่องว่าง) + สตริง
ประเภทข้อมูล elif == "CN":
output = output + self.getSpaces (ช่องว่าง) + self.day_forecast [day_number] .city
ประเภทข้อมูล elif == "SR":
output = output + self.getSpaces (ช่องว่าง) + self.day_forecast [day_number] .sunrise
ประเภทข้อมูล elif == "SS":
output = output + self.getSpaces (ช่องว่าง) + self.day_forecast [day_number] .sunset
ประเภทข้อมูล elif == "MP":
output = output + self.getSpaces (ช่องว่าง) + self.day_forecast [day_number] .moon_phase
ประเภทข้อมูล elif == "MF":
output = output + self.getSpaces (ช่องว่าง) + WeatherText.conditions_moon_font [self.day_forecast [day_number] .moon_icon]
ประเภทข้อมูล elif == "BR":
output = output + self.getSpaces (ช่องว่าง) + self.day_forecast [day_number] .bar_read
ประเภทข้อมูล elif == "BD":
output = output + self.getSpaces (ช่องว่าง) + self.day_forecast [day_number] .bar_desc
อื่น:
output = u » \ nERROR: ไม่ทราบประเภทข้อมูลที่ร้องขอ»
ทำลาย

output = u »» + output.strip (u »«) # เสียช่องว่างนำหน้า / ต่อท้าย
ส่งคืนเอาต์พุต

#ยกเว้น:
#print "getOutputText: ข้อผิดพลาดที่ไม่คาดคิด:", sys.exc_info () [0]

def getOutputTextFromTemplate (ตัวเองแม่แบบ):
#ลอง:

# คีย์ข้อมูลเทมเพลต
DATATYPE_KEY = "–datatype ="
STARTDAY_KEY = "–startday ="
ENDDAY_KEY = "–endday ="
NIGHT_KEY = "- คืน"
SHORTWEEKDAY_KEY = "–shortweekday"
IMPERIAL_KEY = "- อิมพีเรียล"
HIDEUNITS_KEY = "- หน่วยซ่อน"
SPACES_KEY = "–spaces ="

เอาท์พุท = u »»

optionfound = เท็จ

# โหลดไฟล์
ลอง:
fileinput = เปิด (self.options.template)
แม่แบบ = fileinput.read ()
fileinput.close ()
ยกเว้น:
output = u »ไม่พบไฟล์เทมเพลต! »

templatelist = self.getTemplateList (เทมเพลต)

# ให้เดินผ่านรายการเทมเพลตและกำหนดผลลัพธ์สำหรับแต่ละรายการที่พบ
สำหรับฉันอยู่ในช่วง (0, len (templatelist) -1):

pos = รายการเทมเพลต [i] .find (DATATYPE_KEY)
ถ้า pos! = -1:
optionfound = จริง
pos = pos + len (DATATYPE_KEY)
datatype = เทมเพลต [i] [pos: pos + 4] .strip ("}"). strip ("{"). strip ("-"). strip ("")
อื่น:
ประเภทข้อมูล = ไม่มี

pos = รายการเทมเพลต [i] .find (STARTDAY_KEY)
ถ้า pos! = -1:
optionfound = จริง
pos = pos + len (STARTDAY_KEY)
startday = int (เทมเพลต [i] [pos: pos + 4] .strip ("}"). strip ("{"). strip ("-"). strip (""))
อื่น:
startday = ไม่มี

pos = รายการเทมเพลต [i] .find (ENDDAY_KEY)
ถ้า pos! = -1:
optionfound = จริง
pos = pos + len (ENDDAY_KEY)
endday = int (เทมเพลต [i] [pos: pos + 4] .strip ("}"). strip ("{"). strip ("-"). strip (""))
อื่น:
endday = ไม่มี

pos = รายการเทมเพลต [i] .find (NIGHT_KEY)
ถ้า pos! = -1:
optionfound = จริง
คืน = จริง
อื่น:
คืน = เท็จ

pos = รายการเทมเพลต [i] .find (SHORTWEEKDAY_KEY)
ถ้า pos! = -1:
optionfound = จริง
shortweekday = จริง
อื่น:
shortweekday = เท็จ

pos = รายการเทมเพลต [i] .find (IMPERIAL_KEY)
ถ้า pos! = -1:
optionfound = จริง
อิมพีเรียล = จริง
อื่น:
อิมพีเรียล = เท็จ

pos = รายการเทมเพลต [i] .find (HIDEUNITS_KEY)
ถ้า pos! = -1:
optionfound = จริง
hideunits = จริง
อื่น:
hideunits = เท็จ

pos = รายการเทมเพลต [i] .find (SPACES_KEY)
ถ้า pos! = -1:
optionfound = จริง
pos = pos + เลน (SPACES_KEY)
ช่องว่าง = int (templatelist [i] [pos: pos + 4] .strip («} »). strip (« {«). strip (« - «). strip (»«))
อื่น:
ช่องว่าง = 1

ถ้า optionfound == จริง:
templatelist [i] = self.getOutputText (ประเภทข้อมูลวันเริ่มต้นวันที่สิ้นสุดคืนวันสัปดาห์สั้นจักรวรรดิซ่อนยูนิตช่องว่าง)
optionfound = เท็จ

# ไปดูรายการที่เชื่อมต่อผลลัพธ์ตอนนี้ที่มีการเติมข้อมูลแล้ว
สำหรับรายการในรายการเทมเพลต:
เอาท์พุท = เอาท์พุท + รายการ

ส่งคืนเอาต์พุต

#ยกเว้น:
#print "getOutputTextFromTemplate: ข้อผิดพลาดที่ไม่คาดคิด:", sys.exc_info () [0]

def fetchData (ตัวเอง):

# ดึงข้อมูลเมตริกเสมอใช้ฟังก์ชันการสนทนากับข้อมูลนี้
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 () == เท็จ:
ถ้า os.path.exists (file_path_current):
RefetchData = เท็จ
อื่น ๆ : # ไม่มีการเชื่อมต่อไม่แคชปัง!
พิมพ์ "ไม่มีการเชื่อมต่ออินเทอร์เน็ตและไม่มีข้อมูลสภาพอากาศที่แคชไว้"
elif self.options.refetch == จริง:
RefetchData = จริง
อื่น:
# ข้อมูลจำเป็นต้องดึงข้อมูลอีกครั้งหรือไม่?
ถ้า os.path.exists (file_path_current):
lastmodDate = time.localtime (os.stat (file_path_current) [ST_MTIME])
expiryDate = (datetime.datetime.today () - datetime.timedelta (นาที = self.EXPIRY_MINUTES))

ถ้า expiryDate> lastmodDate:
RefetchData = จริง
อื่น:
RefetchData = เท็จ
อื่น:
RefetchData = จริง

# ดึงข้อมูลเงื่อนไขปัจจุบันไม่ว่าจะจากเว็บไซต์หรือโดย 'ยกเลิกการคลิก'
ถ้า RefetchData == True:

# รับข้อมูลเงื่อนไขปัจจุบันจากบริการ xoap
ลอง:

# 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 & หน่วย = m '
ถ้า self.options.verbose == จริง:
พิมพ์ >> sys.stdout, «ดึงข้อมูลสภาพอากาศจาก«, url

Usock = urllib2.urlopen (url)
xml = usock.read ()
Usock.close ()
self.weatherxmldoc = minidom.parseString (xml)
ยกเว้น:
พิมพ์ "fetchData: ข้อผิดพลาดที่ไม่คาดคิด:", sys.exc_info () [0]
พิมพ์ "ไม่สามารถติดต่อแหล่งสภาพอากาศสำหรับสภาพปัจจุบัน"

# บอกผู้ใช้ว่าสถานที่นั้นไม่ดี ...
found = xml.find ("ระบุตำแหน่งไม่ถูกต้อง")
ถ้าพบ! = -1:
พิมพ์ "ระบุตำแหน่งที่ไม่ถูกต้อง"

# ซักถามข้อมูลสภาพอากาศโหลดลงในโครงสร้างชั้นเรียนแล้วดอง
ลอง:

# เตรียมรายการข้อมูลสภาพอากาศ
ตนเอง.current_conditions = []
self.day_forecast = []
self.night_forecast = []

# รวบรวมข้อมูลทั่วไป
weather_n = self.weatherxmldoc.documentElement
location_n = weather_n.getElementsByTagName ('loc') [0]
city_n = location_n.getElementsByTagName ('dnam') [0]
เมือง = self.getText (city_n.childNodes)

# รวบรวมข้อมูลสภาพปัจจุบัน
day_of_week = u »วันนี้»
หยาดน้ำฟ้า = u » N / A »
Sunrise_n = location_n.getElementsByTagName ('sunr') [0]
พระอาทิตย์ขึ้น = self.getText (sunrise_n.childNodes)
sunset_n = location_n.getElementsByTagName ('suns') [0]
พระอาทิตย์ตก = 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 ('ไอคอน') [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 ('บาร์') [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 ('ลม') [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)
ความชื้น_n = current_condition_n.getElementsByTagName ('hmid') [0]
ความชื้น = self.getText (ความชื้น_n.childNodes)
moon_n = current_condition_n.getElementsByTagName ('ดวงจันทร์') [0]
moon_icon_n = moon_n.getElementsByTagName ('ไอคอน') [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, ฝน, ความชื้น, wind_direction, wind_speed, wind_gusts, เมือง, พระอาทิตย์ขึ้น, พระอาทิตย์ตก, moon_phase, moon_icon, bar_read, bar_desc)
self.current_conditions.append (current_conditions_data)

# รวบรวมข้อมูลการคาดการณ์
bar_read = u »ไม่มี»
bar_desc = u »ไม่มี»
moon_phase = u »ไม่ระบุ»
moon_icon = คุณ» na »
พยากรณ์อากาศ = weather_n.getElementsByTagName ('dayf') [0]
day_nodes = Forecast_n.getElementsByTagName ('วัน')

สำหรับวันใน day_nodes:
day_of_week = day.getAttribute ('t')
day_of_year = day.getAttribute ('dt')
high_temp_n = day.getElementsByTagName ('สวัสดี') [0]
high_temp = self.getText (high_temp_n.childNodes)
low_temp_n = day.getElementsByTagName ('ต่ำ') [0]
low_temp = self.getText (low_temp_n.childNodes)

Sunrise_n = day.getElementsByTagName ('sunr') [0]
พระอาทิตย์ขึ้น = self.getText (sunrise_n.childNodes)
sunset_n = day.getElementsByTagName ('suns') [0]
พระอาทิตย์ตก = self.getText (sunset_n.childNodes)

ข้อมูลเฉพาะการคาดการณ์ # วัน
daylight_n = day.getElementsByTagName ('part') [0] # วัน
condition_code_n = daylight_n.getElementsByTagName ('ไอคอน') [0]
condition_code = self.getText (condition_code_n.childNodes)
condition_n = daylight_n.getElementsByTagName ('t') [0]
เงื่อนไข = self.getText (condition_n.childNodes)
precip_n = daylight_n.getElementsByTagName ('ppcp') [0]
precip = self.getText (precip_n.childNodes)
ความชื้น_n = เวลากลางวัน_n.getElementsByTagName ('hmid') [0]
ความชื้น = self.getText (ความชื้น_n.childNodes)
wind_n = daylight_n.getElementsByTagName ('ลม') [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, เงื่อนไข, ฝน, ความชื้น, wind_direction, wind_speed, wind_gusts, เมือง, พระอาทิตย์ขึ้น, พระอาทิตย์ตก, moon_phase, moon_icon, bar_read, bar_desc)
self.day_forecast.append (day_forecast_data)

# ข้อมูลเฉพาะพยากรณ์กลางคืน
daylight_n = day.getElementsByTagName ('part') [1] # คืน
condition_code_n = daylight_n.getElementsByTagName ('ไอคอน') [0]
condition_code = self.getText (condition_code_n.childNodes)
condition_n = daylight_n.getElementsByTagName ('t') [0]
เงื่อนไข = self.getText (condition_n.childNodes)
precip_n = daylight_n.getElementsByTagName ('ppcp') [0]
precip = self.getText (precip_n.childNodes)
ความชื้น_n = เวลากลางวัน_n.getElementsByTagName ('hmid') [0]
ความชื้น = self.getText (ความชื้น_n.childNodes)
wind_n = daylight_n.getElementsByTagName ('ลม') [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, เงื่อนไข, ฝน, ความชื้น, wind_direction, wind_speed, wind_gusts, เมือง, พระอาทิตย์ขึ้น, พระอาทิตย์ตก, moon_phase, moon_icon, bar_read, bar_desc)
self.night_forecast.append (night_forecast_data)

# ดองข้อมูลไว้คราวหน้า!
fileoutput = เปิด (file_path_current, 'w')
pickle.dump (self.current_conditions, fileoutput)
fileoutput.close ()

fileoutput = เปิด (file_path_dayforecast, 'w')
pickle.dump (self.day_forecast, fileoutput)
fileoutput.close ()

fileoutput = เปิด (file_path_nightforecast, 'w')
pickle.dump (self.night_forecast, fileoutput)
fileoutput.close ()

ยกเว้น:
พิมพ์ "fetchData: ข้อผิดพลาดที่ไม่คาดคิด:", sys.exc_info () [0]
พิมพ์ "ไม่สามารถซักถามข้อมูลสภาพอากาศ"

อื่น: # ดึงข้อมูลสภาพอากาศจากไฟล์คลาสที่ถูกดอง
ถ้า self.options.verbose == จริง:
พิมพ์ >> sys.stdout, «การดึงข้อมูลสภาพอากาศจากไฟล์: «, file_path_current

fileinput = เปิด (file_path_current, 'r')
self.current_conditions = pickle.load (fileinput)
fileinput.close ()

ถ้า self.options.verbose == จริง:
พิมพ์ >> sys.stdout, "ดึงข้อมูลการคาดการณ์วันจากไฟล์:", file_path_dayforecast, file_path_nightforecast

fileinput = เปิด (file_path_dayforecast, 'r')
self.day_forecast = pickle.load (fileinput)
fileinput.close ()

ถ้า self.options.verbose == จริง:
พิมพ์ >> sys.stdout, «ดึงข้อมูลการคาดการณ์วันจากไฟล์: «, file_path_nightforecast, file_path_nightforecast

fileinput = เปิด (file_path_nightforecast, 'r')
self.night_forecast = pickle.load (fileinput)
fileinput.close ()

def outputData (ตัวเอง):
#ลอง:

ถ้า self.options.template! = ไม่มี:

เอาท์พุท = self.getOutputTextFromTemplate (self.options.template)

อื่น:

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)

พิมพ์ output.encode ("utf-8")

#ยกเว้น:
#print "outputData: ข้อผิดพลาดที่ไม่คาดคิด:", sys.exc_info () [0]

ถ้า __name__ == "__main__":

ตัวแยกวิเคราะห์ = CommandLineParser ()
(ตัวเลือก args) = parser.parse_args ()

ถ้า options.verbose == จริง:
พิมพ์ >> sys.stdout, "location:", options.location
พิมพ์ >> sys.stdout, "imperial:", options.imperial
พิมพ์ >> sys.stdout, "ประเภทข้อมูล:", options.datatype
พิมพ์ >> sys.stdout, "night:", options.night
พิมพ์ >> sys.stdout, "start day:", options.startday
พิมพ์ >> sys.stdout, "end day:", options.endday
พิมพ์ >> sys.stdout, "ช่องว่าง:", options.spaces
พิมพ์ >> sys.stdout, "verbose:", options.verbose
พิมพ์ >> sys.stdout, "refetch:", options.refetch

# สร้างวัตถุสภาพอากาศโลกใหม่
สภาพอากาศ = GlobalWeather (ตัวเลือก)
weather.fetchData ()
weather.outputData ()

เราสร้างไฟล์ ~ / Conky / scripts / myweather.template

gedit ~ / Conky / scripts / myweather.template

เราวางสิ่งต่อไปนี้ไว้ด้านใน:

{–Datatype = DW –startday = 1}: {–datatype = CC –startday = 1}
{–Datatype = HT –startday = 1} / {–datatype = LT –startday = 1} ลมจาก {–datatype = WD –startday = 1} ถึง {–datatype = WS –startday = 1}
ความชื้น: {–datatype = HM –startday = 1} ปริมาณน้ำฝน: {–datatype = PC –startday = 1}
พระอาทิตย์ขึ้น: {–datatype = SR –startday = 1} พระอาทิตย์ตก: {–datatype = SS –startday = 1}
----------------
{–Datatype = DW –startday = 2}: {–datatype = CC –startday = 2}
{–Datatype = HT –startday = 2} / {–datatype = LT –startday = 2} ลมจาก {–datatype = WD –startday = 2} ถึง {–datatype = WS –startday = 2}
ความชื้น: {–datatype = HM –startday = 2} ปริมาณน้ำฝน: {–datatype = PC –startday = 2}
พระอาทิตย์ขึ้น: {–datatype = SR –startday = 2} พระอาทิตย์ตก: {–datatype = SS –startday = 2}
----------------
{–Datatype = DW –startday = 3}: {–datatype = CC –startday = 3}
{–Datatype = HT –startday = 3} / {–datatype = LT –startday = 3} ลมจาก {–datatype = WD –startday = 3} ถึง {–datatype = WS –startday = 3}
ความชื้น: {–datatype = HM –startday = 3} ปริมาณน้ำฝน: {–datatype = PC –startday = 3}
พระอาทิตย์ขึ้น: {–datatype = SR –startday = 3} พระอาทิตย์ตก: {–datatype = SS –startday = 3}
----------------
{–Datatype = DW –startday = 4}: {–datatype = CC –startday = 4}
{–Datatype = HT –startday = 4} / {–datatype = LT –startday = 4} ลมจาก {–datatype = WD –startday = 4} ถึง {–datatype = WS –startday = 4}
ความชื้น: {–datatype = HM –startday = 4} ปริมาณน้ำฝน: {–datatype = PC –startday = 4}
พระอาทิตย์ขึ้น: {–datatype = SR –startday = 4} พระอาทิตย์ตก: {–datatype = SS –startday = 4}

เราสร้างไฟล์ ~ / Conky / scripts / mail / conkyEmail.py (เราต้องสร้างโฟลเดอร์อีเมล)

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

และวางข้อมูลต่อไปนี้ภายใน:

นำเข้าคุณ
นำเข้าสตริง

# ป้อนชื่อผู้ใช้และรหัสผ่านของคุณด้านล่างภายในเครื่องหมายคำพูดคู่
# เช่น. ชื่อผู้ใช้ = »ชื่อผู้ใช้»และรหัสผ่าน = »รหัสผ่าน»
ชื่อผู้ใช้ = »YOUR_USUARIO_SINARROBA«
รหัสผ่าน = »YOUR_KEY«

com = » wget -O - https: // » + ชื่อผู้ใช้ + »: » + รหัสผ่าน + » @ mail.google.com / mail / feed / atom –no-check-certificate »

temp = os.popen (com)
msg = temp.read ()
ดัชนี = string.find (ข้อความ, » »)
index2 = string.find (ข้อความ, » »)
fc = int (ข้อความ [ดัชนี + 11: index2])

ถ้า fc == 0:
พิมพ์ "0 ใหม่"
อื่น:
พิมพ์ str (fc) + »ใหม่»

ตอนนี้คุณมี 7 ไฟล์:

ในโฟลเดอร์: ~
-> .startconky << - ทำให้ปฏิบัติการได้

ในโฟลเดอร์: ~ / Conky
-> conkymain
-> conkyforecast
-> conkymail

และในโฟลเดอร์: ~ / Conky / scripts
-> conkyForecast.py << - ทำให้ปฏิบัติการได้
-> myweather.template

และในโฟลเดอร์: ~ / Conky / scripts / mail
conkyEmail.py << - ทำให้สามารถเรียกใช้งานได้

และนั่นคือคำชี้แจงที่ระบุว่า / home / user / ... ชื่อผู้ใช้ของคุณไปและในส่วนที่ข้อมูล Gmail ไปฉันเน้นด้วยสีที่คุณต้องใส่ข้อมูลของคุณ

เพื่อฆ่ากระบวนการที่ยุ่งเหยิงเขียนลงในคอนโซล

คิลออลคอนกี้

เพื่อเรียกใช้ conky write ไปยังคอนโซล

./.สตาร์ทคอนกี้

เมื่อคุณปรับทุกอย่างเรียบร้อยแล้วหากคุณต้องการให้ conky เริ่มต้นแต่ละเซสชัน

ระบบ—> ค่ากำหนด -> เซสชันและในโปรแกรมเริ่มต้นเราเพิ่มเข้าไป

ในชื่อเราสามารถเขียน Conky ตามลำดับ. /.startconky โดยจะเริ่มทุกครั้งที่คุณเปิดเครื่องพีซี

ฉันหวังว่ามันจะช่วยคุณได้


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา