Conky, thiết lập của tôi

Fecfactor đã yêu cầu tôi ngày hôm qua xuất bản cấu hình của conky mà tôi hiển thị trong ảnh chụp màn hình bên dưới

Như bạn có thể thấy, có 3 conkys, được thực thi bằng một tập lệnh, cấu hình của nó dựa trên bài viết này được đăng bởi người dùng Bruce M. trong các diễn đàn của Ubuntu-Ar với một số sửa đổi trong conky thư, trong trường hợp của tôi là dành cho Gmail.

Trong bài đăng tham khảo, nó được Bruce giải thích rất tốt, nhưng cũng như một sự hỗ trợ trí nhớ cho tôi, tôi sẽ sao chép các bước để làm theo và mã của conkys của tôi cho bất kỳ ai có nó.

Tất nhiên, chúng ta cần cài đặt conky, curl và python để chúng ta nhập bảng điều khiển:

Sudo apt-get cài đặt conky curl python

Nguồn của weather.ttf và arrows.ttf ở đây. Nguồn moon.ttf ở đây sau khi tải xuống, bạn phải sao chép chúng vào / usr / share / fonts

Bây giờ chúng ta hãy tạo tập lệnh của chúng ta có tên ~. / Startconky

gksudo gedit ~ / .startconky

bên trong tệp trống, chúng tôi dán phần sau

#! / bin / bash
ngủ 0 & # 0 tốt cho Xfce - sử dụng 20 đến 30 cho Gnome
conky -c ~ / Conky / conkymain &
#sleep 0 & # 0 tốt cho Xfce - sử dụng 1 cho Gnome
conky -c ~ / Conky / conkyforecast &
#sleep 0 & # 0 tốt cho Xfce - sử dụng 1 cho Gnome
conky -c ~ / Conky / conkymail &

Bây giờ chúng ta tạo tệp conkymain trong thư mục ~ / Conky, nếu không chúng ta có thư mục Conky, chúng ta sẽ phải tạo nó.

gedit ~ / Conky / conkymain

Tôi sử dụng phông chữ Calibri, nếu bạn không có nó, hãy thay thế nó bằng bất cứ thứ gì bạn muốn.

Chúng tôi dính vào bên trong những gì sau đây

lý lịch không
own_window vâng
own_window_transparent vâng
own_window_hints chưa được trang trí, bên dưới, dính, thanh tẩy qua_task, bỏ qua_pager
own_window_colour màu đen
double_buffer vâng
use_spacer còn lại
use_xft vâng
font Calibre: size = 9
xftfont calibri: size = 9
xftalpha 0.5
update_interval 5.0
chữ hoa không # được đặt thành có nếu bạn muốn tất cả văn bản đều ở dạng chữ hoa
stippled_border 3
viền_lề 9
biên giới_width 10
default_color màu trắng
default_outline_color màu đen
default_shade_color màu đen
màu 0 lục lam
color1 xanh lam nhạt
color2 cam
color3 màu vàng
lúa mì màu 4
màu 5 trắng
màu 6 trắng
màu 7 trắng
màu 8 trắng
màu 9 trắng
căn chỉnh top_right # hoặc top_left, bottom_left, bottom_right
khoảng cách_x 10
khoảng cách_y 35
text_buffer_size 128 # sử dụng 1024 cho dự báo
no_buffers yes # Trừ bộ đệm hệ thống tệp khỏi bộ nhớ đã sử dụng?
draw_borders không
draw_outline yes # khuếch đại văn bản nếu có
draw_shades yes # shadecolor màu đen

TEXT
$ {font calibri: size = 12} $ {alignc} $ {color1} $ sysname $ kernel trên $ machine} $ color $ font
$ {font calibri: size = 12} $ {alignc} $ {color2} $ {executive 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 $ font
$ {color3} Thời gian hoạt động: $ {alignr 2} $ thời gian hoạt động $ color
$ {color0} $ {hr 1} $ color
$ {voffset 5} $ {color2} CPU: $ {alignc} $ color $ running_processes $ {color1} / $ color $ process $ {alignr 2} $ {color2} $ {cpubar cpu0 14,80} $ color
$ {color1} $ {voffset -16} $ {alignr 5} $ cpu% $ color
$ {voffset 2} $ {color1} Tải trung bình ($ {color3} Tối thiểu $ {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} Đã lưu vào bộ đệm: $ color $ {buffers} $ {alignr 2} $ {color1} Bộ nhớ đệm: $ color $ {đã lưu vào bộ nhớ cache}
$ {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} Thông tin HD $ {color1} - $ color Miễn phí $ {color1} - Đã sử dụng - Tổng $ {color2}
$ {voffset 5} $ {color1} Gốc: $ color $ {fs_free_perc /}% $ {alignr 2} $ {fs_free /} $ {color2} / $ {color1} $ {fs_used /} $ color / $ {color2} $ {fs_size /} $ color
$ {color1} Trang chủ: $ 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} Từ: $ color Buenos Aires, Argentina
$ {color1} Vĩ độ: $ {color2} 34 ° 35'S $ {color1} Dài: $ {color2} 58 ° 21'W $ {color1} Thay thế: $ {color2} 25 m $ color
$ {voffset 5} $ {color2} $ {font calibri: size = 12} hôm nay: $ 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 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} $ {executei 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = BF} $ color $ nét chữ
$ {alignc 10} $ {voffset 5} $ {color4} Wind: $ {executei 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = WS} $ color
$ {color1} Độ ẩm: $ {color3} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = HM} $ {alignr 2} $ {color1} Lượng mưa: $ {color3} $ { executive 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = PC} $ color
$ {alignc} $ {color1} Áp suất: $ {color3} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = BR} - $ {color3} $ {executive 3600 python ~ / Conky /scripts/conkyForecast.py –location = ARBA0009 –datatype = BD} $ color
$ {color4} $ {hr} $ color
$ {color1} Bình minh: $ {color3} $ {executive 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = SR} $ {alignr 2} $ {color1} Hoàng hôn: $ {color3} $ { executive 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = SS} $ color
$ {voffset 15} $ {color1} Mặt trăng: $ {color4} $ {alignr 2} $ {color3} $ {executive 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = MP} $ color
$ {voffset -20} $ {offset 80} $ {color4} $ {font moon moon: size = 20} $ {executive 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = MF} $ font $ màu
$ {color0} $ {hr} $ color
$ {voffset 5} $ {color2} IP: $ {alignc} $ color $ {addr eth0}
$ {color1} Xuống: $ color $ {Downpeed eth0} k / s $ {alignr 2} $ {color1} Lên: $ color $ {upspeed eth0} k / s
$ {color1} Tổng: $ color $ {totaldown eth0} $ {alignr 2} $ {color1} Tổng: $ color $ {totalup eth0}
$ {color1} Đến: $ color $ {tcp_portmon 1 32767 count} $ {color1} Đi: $ color $ {tcp_portmon 32768 61000 count} $ {alignr 2} $ {color1} Tổng: $ color $ {tcp_portmon 1 65535 count}
Kết nối $ {voffset 5} $ {color2}: $ color $ {tcp_portmon 32768 61000 count} $ {alignr 2} $ {color2} Dịch vụ / Cổng $ 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

chúng tôi tạo tệp ~ / Conky / conkyforecast

gedit ~ / Conky / conkyforecast

và chúng tôi dán những thứ sau vào bên trong

lý lịch không
own_window vâng
own_window_transparent vâng
own_window_hints chưa được trang trí, bên dưới, dính, thanh tẩy qua_task, bỏ qua_pager
own_window_colour màu đen
double_buffer vâng
use_spacer còn lại
use_xft vâng
font Calibre: size = 8
xftfont calibri: size = 8
xftalpha 0.5
update_interval 5.0
chữ hoa không # được đặt thành có nếu bạn muốn tất cả văn bản đều ở dạng chữ hoa
stippled_border 3
viền_lề 9
biên giới_width 10
default_color màu trắng
default_outline_color màu đen
default_shade_color màu đen
màu 0 lục lam
color1 xanh lam nhạt
color2 cam
color3 màu vàng
lúa mì màu 4
màu 5 trắng
màu 6 trắng
màu 7 trắng
màu 8 trắng
màu 9 trắng
căn chỉnh bottom_left # hoặc top_left, bottom_left, bottom_right
khoảng cách_x 10
khoảng cách_y 35
text_buffer_size 1024 # sử dụng 1024 cho dự báo
no_buffers yes # Trừ bộ đệm hệ thống tệp khỏi bộ nhớ đã sử dụng?
draw_borders không
draw_outline yes # khuếch đại văn bản nếu có
draw_shades yes # shadecolor màu đen

TEXT
$ {color4} $ {font calibri: size = 11} Dự báo mở rộng $ 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 $ màu sắc

chúng tôi tạo tệp ~ / Conky / conkymail

gedit ~ / Conky / conkymail

chúng tôi dán phần sau vào tệp

lý lịch không
own_window vâng
own_window_transparent vâng
own_window_hints chưa được trang trí, bên dưới, dính, thanh tẩy qua_task, bỏ qua_pager
own_window_colour màu đen
double_buffer vâng
use_spacer còn lại
use_xft vâng
font Calibre: size = 8
xftfont calibri: size = 8
xftalpha 0.5
update_interval 5.0
chữ hoa không # được đặt thành có nếu bạn muốn tất cả văn bản đều ở dạng chữ hoa
stippled_border 3
viền_lề 9
biên giới_width 10
default_color màu trắng
default_outline_color màu đen
default_shade_color màu đen
màu 0 lục lam
color1 xanh lam nhạt
color2 cam
color3 màu vàng
lúa mì màu 4
màu 5 trắng
màu 6 trắng
màu 7 trắng
màu 8 trắng
màu 9 trắng
căn chỉnh bottom_left # hoặc top_left, bottom_left, bottom_right
khoảng cách_x 565
khoảng cách_y 35
text_buffer_size 128 # sử dụng 1024 cho dự báo
no_buffers yes # Trừ bộ đệm hệ thống tệp khỏi bộ nhớ đã sử dụng?
draw_borders không
draw_outline yes # khuếch đại văn bản nếu có
draw_shades yes # shadecolor màu đen

TEXT
$ {font calibri: size = 11} $ {alignc} $ {color4} Gmail
$ {color0} $ {hr} $ color
$ {font calibri: size = 11} $ {color4} Chúng tôi có $ {color3} $ {executei 300 python ~ / Conky / scripts / mail / conkyEmail.py} $ {color4} email $ font

Chúng tôi tạo một tệp trong ~ / Conky / scripts / conkyForecast.py (chúng tôi phải tạo thư mục script)

gedit ~ / Conky / scripts / conkyForecast.py

#! / usr / bin / python
# - * - mã hóa: utf-8 - * -
##################################################### ###############################
# conkyForecast.py là một tập lệnh python (không còn đơn giản (nữa) để thu thập
# thông tin chi tiết về thời tiết hiện tại để sử dụng trong conky.
#
# Tác giả: Kaivalagi
# Ngày tạo: 13/04/2008
# Sửa đổi:
# 14/04/2008 Cho phép phạm vi ngày cho dữ liệu dự báo
# 14/04/2008 Kiểm tra kết nối với dịch vụ xoap
# 18/04/2008 Cho phép thiết lập khoảng trắng cho đầu ra có phạm vi
# 18/04/2008 Cho phép xuất dự báo Đêm và Ngày
# 18/04/2008 Hỗ trợ ngôn ngữ cho tùy chọn văn bản mã điều kiện «CC», đang chờ bản dịch sang tiếng Tây Ban Nha
# 18/04/2008 Sử dụng chọn dữ liệu lớp thay vì mở xml, điều này bỏ qua nhu cầu thẩm vấn dữ liệu đã lưu trong bộ nhớ cache
# 19/04/2008 Đã thêm văn bản điều kiện tiếng Tây Ban Nha - Cảm ơn Bruce M
# 19/04/2008 Đã thêm kiểm tra số trên tất cả đầu ra số với hậu tố đơn vị
# 19/04/2008 Đã thay đổi cách đặt tên tệp dưa chua để bao gồm mã vị trí
# 19/04/2008 Đã thêm chuyển đổi ngày trong tuần tiếng Tây Ban Nha qua ngôn ngữ
# 20/04/2008 Đã thêm trình phân tích cú pháp đối số lệnh phù hợp
# 20/04/2008 Đã thêm tùy chọn –shortweekday, nếu được cung cấp loại dữ liệu ngày trong tuần được rút ngắn còn 3 ký tự
# 21/04/2008 Tùy chọn ngôn ngữ cố định cho đầu ra dự báo
# 21/04/2008 Đã thêm tùy chọn –template để cho phép đầu ra tùy chỉnh bằng cách sử dụng một lệnh gọi thực thi duy nhất 🙂
# 21/04/2008 Đã thêm tùy chọn –hideunits để xóa, ví dụ: mph và C khỏi đầu ra
# 23/04/2008 Đã xóa tùy chọn –imperial khỏi mẫu, tùy chọn này PHẢI được đặt làm tùy chọn tiêu chuẩn trong lệnh gọi tập lệnh và không được sử dụng trong tệp mẫu.
# 23/04/2008 Readded –imperial option để tạo mẫu, cho phép giá trị hệ mét hoặc hệ Anh trên mỗi loại dữ liệu. Lưu ý khi sử dụng mẫu tùy chọn dòng lệnh sẽ không hoạt động.
# 23/04/2008 Đã thêm đầu ra thông báo cho người dùng nếu vị trí được cung cấp là xấu
# 24/04/2008 Đã thêm xử lý không có kết nối, sẽ hoàn nguyên về dữ liệu đã lưu trong bộ nhớ cache ngay bây giờ (sẽ xảy ra lỗi nếu không có bộ nhớ cache). Kiểm tra bằng cách thử mở xoap.weather.com
# 24/04/2008 Đã sửa lỗi chuyển đổi độ C thành độ F
# 06/05/2008 Url cập nhật được sử dụng sau khi cập nhật dịch vụ web
# 09/05/2008 Điều kiện hiện tại hợp nhất và dữ liệu dự báo tìm nạp vào một cuộc gọi
# 09/05/2008 Đã thêm Bình minh và hoàng hôn vào các kiểu dữ liệu, những kiểu này dành riêng cho cả điều kiện hiện tại và dữ liệu dự báo
# 09/05/2008 Đã thêm tuần trăng, đọc phong vũ biểu và mô tả phong vũ biểu vào các kiểu dữ liệu, những kiểu này chỉ cụ thể cho các điều kiện hiện tại và N / A trong sản lượng dự báo cũng vậy
# 09/05/2008 Đã thêm chuyển đổi đơn vị cho phong vũ biểu từ mb sang inch (hệ Anh)
# 09/05/2008 Cập nhật văn bản điều kiện tiếng Tây Ban Nha - Cảm ơn Bruce M
# 10/05/2008 Đã thêm dữ liệu ngôn ngữ Pháp - Cảm ơn benpaka
# 12/05/2008 Đã thêm loại dữ liệu BF (phông chữ mang) mới để cung cấp ký tự mũi tên (sử dụng với phông chữ Arrow.ttf) thay vì đầu ra NSEW từ WD (hướng gió)
# 12/05/2008 Đã cập nhật đầu ra WD thành từng ngôn ngữ cụ thể, hiện hỗ trợ mặc định tiếng Anh và tiếng Tây Ban Nha - Cảm ơn Bruce M
# 18/05/2008 Đã thêm loại dữ liệu MF (phông chữ mặt trăng) mới để cung cấp ký tự phông chữ mặt trăng (các ký tự không chính xác và chưa có phông chữ chuyên dụng).
# 21/05/2008 Đối với các điều kiện hiện tại, tùy chọn –datatype = LT hiện hiển thị nhiệt độ «cảm thấy như» thay vì nhiệt độ hiện tại
#
# MỌI ĐIỀU:
# Hợp nhất các tệp pkl thành một tệp / lớp
# Thêm phông chữ thời tiết dựa trên kết quả tuần trăng dựa trên dữ liệu biểu tượng mặt trăng
# ??? Có thêm yêu cầu nào không?

nhập hệ thống, hệ điều hành, ổ cắm, urllib2, ngày giờ, thời gian
từ xml.dom nhập minidom
từ nhập thống kê *
từ optparse import OptionParser
nhập khẩu ngôn ngữ
nhập gettext
nhập khẩu dưa chua
từ nhập toán học *

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

lớp CommandLineParser:

parser = Không có

def __init __ (bản thân):

self.parser = OptionParser ()
self.parser.add_option («- l», »- location», dest = »location», default = »UKXX0103 ″, type =» string », metavar =» CODE », help = u» mã vị trí cho dữ liệu thời tiết [ default:% default], Sử dụng url sau để xác định mã vị trí của bạn theo tên thành phố: http://xoap.weather.com/search/search?where=Norwich »)
self.parser.add_option ("- d", "- datatype", dest = "datatype", default = "HT", type = "string", metavar = "DATATYPE", help = u "[default:% default] Các tùy chọn kiểu dữ liệu là: DW (Ngày trong tuần), WF (Đầu ra phông chữ thời tiết), LT (Dự báo: Nhiệt độ thấp, Hiện tại: Cảm thấy thích nhiệt độ), HT (Dự báo: Nhiệt độ cao, Hiện tại: Nhiệt độ hiện tại), CC (Hiện tại Điều kiện), CT (Văn bản điều kiện), PC (Cơ hội có mưa), HM (Độ ẩm), WD (Hướng gió), WS (Tốc độ gió), WG (Gió giật), CN (Tên thành phố), SR (mặt trời mọc), SS (hoàng hôn), MP (tuần trăng), MF (phông chữ mặt trăng), BR (đọc phong vũ biểu), BD (mô tả phong vũ biểu). Không áp dụng ở dòng lệnh khi sử dụng mẫu. »)
self.parser.add_option («- s», »- startday», dest = »startday», type = »int», metavar = »NUMBER», help = u »xác định số ngày bắt đầu, nếu điều kiện hiện tại bị bỏ qua sẽ được xuất . Không áp dụng tại dòng lệnh khi sử dụng các mẫu. »)
self.parser.add_option ("- e", "- endday", dest = "endday", type = "int", metavar = "NUMBER", help = u "xác định số ngày kết thúc, nếu bỏ qua chỉ dữ liệu ngày bắt đầu là đầu ra. Không áp dụng tại dòng lệnh khi sử dụng các mẫu. »)
self.parser.add_option («- S», »- dấu cách», dest = »dấu cách», type = »int», default = 1, metavar = »NUMBER», help = u »[default:% default] Xác định số khoảng cách giữa các đầu ra có phạm vi. Không áp dụng tại dòng lệnh khi sử dụng các mẫu. »)
self.parser.add_option («- t», »- template», dest = »template», type = »string», metavar = »FILE», help = u »xác định tệp mẫu để tạo đầu ra trong một lần gọi. A mục có thể hiển thị trong tệp có dạng {–datatype = HT –startday = 1}. Sau đây là các tùy chọn có thể có trong mỗi mục: –datatype, –startday, –endday, –night, –shortweekday, –imperial, –hideunits, –Không gian. Lưu ý rằng các dạng ngắn của các tùy chọn hiện không được hỗ trợ! Không có tùy chọn nào trong số này có thể áp dụng tại dòng lệnh khi sử dụng các mẫu. »)
self.parser.add_option («- L», »- locale», dest = »locale», type = »string», help = u »ghi đè ngôn ngữ hệ thống cho đầu ra ngôn ngữ (en = english, es = spanish, fr = tiếng Pháp, nhiều hơn nữa sẽ đến) »)
self.parser.add_option ("- i", "- Imperial", dest = "Imperial", default = False, action = "store_true", help = u "yêu cầu đơn vị hệ Anh, nếu đầu ra bị bỏ qua là theo hệ mét. Không áp dụng tại dòng lệnh khi sử dụng các mẫu. »)
self.parser.add_option («- n», »- night», dest = »night», default = False, action = »store_true», help = u »chuyển đầu ra sang dữ liệu ban đêm, nếu bỏ qua đầu ra ngày sẽ được xuất. Không áp dụng tại dòng lệnh khi sử dụng các mẫu. »)
self.parser.add_option («- w», »- shortweekday», dest = »shortweekday», default = False, action = »store_true», help = u »Rút ngắn kiểu dữ liệu ngày trong tuần còn 3 ký tự. Không áp dụng tại dòng lệnh khi sử dụng các mẫu. »)
self.parser.add_option («- u», »- hideunits», dest = »hideunits», default = False, action = »store_true», help = u »Ẩn các đơn vị như mph hoặc C, ký hiệu độ (°) là vẫn được hiển thị. Không áp dụng tại dòng lệnh khi sử dụng các mẫu. »)
self.parser.add_option ("- v", "- verbose", dest = "verbose", default = False, action = "store_true", help = u "yêu cầu đầu ra chi tiết, không có ý kiến ​​hay khi chạy qua conky!" )
self.parser.add_option ("- r", "- refetch", dest = "refetch", default = False, action = "store_true", help = u "tìm nạp dữ liệu bất kể dữ liệu hết hạn")

def parse_args (tự):
(options, args) = self.parser.parse_args ()
return (tùy chọn, args)

def print_help (self):
trả về self.parser.print_help ()

lớp WeatherData:
def __init __ (self, day_of_week, low, high, condition_code, condition_text, lượng mưa, độ ẩm, gió_dir, wind_speed, wind_gusts, thành phố, bình minh, hoàng hôn, moon_phase, moon_icon, bar_read, bar_desc):
self.day_of_week = u »» + day_of_week
self.low = u »» + low
self.high = u »» + cao
self.condition_code = u »» + condition_code
self.condition_text = u »» + condition_text
self.precip = u »» + kết tủa
self.humidity = u »» + độ ẩm
self.wind_dir = u »» + wind_dir
self.wind_speed = u »» + wind_speed
self.wind_gusts = u »» + wind_gusts
self.city = u »» + thành phố
self.sunrise = u »» + mặt trời mọc
self.sunset = u »» + hoàng hôn
self.moon_phase = u »» + moon_phase
self.moon_icon = u »» + moon_icon
self.bar_read = u »» + bar_read
self.bar_desc = u »» + bar_desc

lớp WeatherText:

điều kiện_text = {
«0»: _ (u »Tornado»),
«1»: _ (u »Bão nhiệt đới»),
«2»: _ (u »Bão»),
«3»: _ (u »Sấm sét nghiêm trọng»),
«4»: _ (u »Sấm sét»),
«5»: _ (u »Mưa và Tuyết hỗn hợp»),
«6»: _ (u »Mưa và Mưa hỗn hợp»),
«7»: _ (u »Lượng mưa hỗn hợp»),
«8»: _ (u »Mưa phùn lạnh giá»),
«9»: _ (u »Mưa phùn»),
«10»: _ (u »Mưa đóng băng»),
«11»: _ (u »Mưa rào»),
«12»: _ (u »Mưa rào»),
«13»: _ (u »Snow Flurries»),
«14»: _ (u »Mưa tuyết nhẹ»),
«15»: _ (u »Tuyết thổi»),
«16»: _ (u »Tuyết»),
«17»: _ (u »Mưa đá»),
«18»: _ (u »Sleet»),
«19»: _ (u »Bụi»),
«20»: _ (u »Sương mù»),
«21»: _ (u »Haze»),
«22»: _ (u »Khói»),
«23»: _ (u »Blustery»),
«24»: _ (u »Có gió»),
«25»: _ (u »Lạnh»),
«26»: _ (u »Có mây»),
«27»: _ (u »Nhiều Mây»),
«28»: _ (u »Nhiều Mây»),
«29»: _ (u »Có Mây Một Phần»),
«30»: _ (u »Có Mây Một Phần»),
«31»: _ (u »Rõ ràng»),
«32»: _ (u »Rõ ràng»),
«33»: _ (u »Công bằng»),
«34»: _ (u »Công bằng»),
«35»: _ (u »Mưa hỗn hợp và Mưa đá»),
«36»: _ (u »Nóng»),
«37»: _ (u »Giông tố Cô lập»),
«38»: _ (u »Sấm sét Rải rác»),
«39»: _ (u »Sấm sét Rải rác»),
«40»: _ (u »Mưa rào»),
«41»: _ (u »Tuyết rơi dày»),
«42»: _ (u »Mưa tuyết rải rác»),
«43»: _ (u »Tuyết rơi dày»),
«44»: _ (u »Có Mây Một Phần»),
«45»: _ (u »Sấm sét»),
«46»: _ (u »Mưa tuyết»),
«47»: _ (u »Giông tố Cô lập»),
«Na»: _ (u »N / A»),
"-": _ (a ")
}

điều kiện_text_es = {
«0»: _ (u »Tornado»),
«1»: _ (u »Bão nhiệt đới»),
«2»: _ (u »Huracá¡n»),
«3»: _ (u »Bão mạnh»),
«4»: _ (u »Bão»),
«5»: _ (u »Mưa và Tuyết hỗn hợp»),
«6»: _ (u »Mưa và Mưa hỗn hợp»),
«7»: _ (u »Sleet»),
«8»: _ (u »Mưa phùn lạnh giá»),
«9»: _ (u »Mưa phùn»),
«10»: _ (u »Mưa đóng băng»), # hoặc mưa đóng băng
«11»: _ (u »Mưa rào»),
«12»: _ (u »Mưa rào»),
«13»: _ (u »Tuyết nhẹ»),
«14»: _ (u »Tuyết nhẹ»),
«15»: _ (u »Bão tuyết»),
«16»: _ (u »Tuyết»),
«17»: _ (u »Mưa đá»),
«18»: _ (u »Sleet»),
«19»: _ (u »Bột»),
«20»: _ (u »Sương mù»),
«21»: _ (u »Haze»),
«22»: _ (u »Khói»),
«23»: _ (u »Tempest»),
«24»: _ (u »Có gió»),
«25»: _ (u »Fráo»),
«26»: _ (u »Nhiều Mây»),
«27»: _ (u »Nhiều Mây»),
«28»: _ (u »Nhiều Mây»),
«29»: _ (u »Có Mây Một Phần»),
«30»: _ (u »Có Mây Một Phần»),
«31»: _ (u »Rõ ràng»),
«32»: _ (u »Rõ ràng»),
«33»: _ (u »Có gì đó có mây»),
«34»: _ (u »Có gì đó có mây»),
«35»: _ (u »Mưa kèm theo Mưa đá»),
«36»: _ (u »Nhiệt»),
«37»: _ (u »Bão Biệt lập»),
«38»: _ (u »Bão rải rác»),
«39»: _ (u »Bão rải rác»),
«40»: _ (u »Mưa rào»),
«41»: _ (u »Tuyết rơi dày»),
«42»: _ (u »Tuyết rơi Rải rác và Yếu»),
«43»: _ (u »Nevada cường độ cao»),
«44»: _ (u »Mây Rải rác»),
«45»: _ (u »Bão»),
«46»: _ (hoặc »Tuyết rơi rải rác»),
«47»: _ (u »Bão Biệt lập»),
«Na»: _ (u »N / A»),
"-": _ (a ")
}

điều kiện_text_fr = {
«0»: _ (u »Tornade»),
«1»: _ (u »Tempête Tropicale»),
«2»: _ (hoặc »Ouragan»),
«3»: _ (hoặc »Bạo lực Orages»),
«4»: _ (hoặc »Orageux»),
«5»: _ (u »Pluie et Neige»),
«6»: _ (u »Pluie et Neige Mouillée»),
«7»: _ (u »Biến avec phản đối»),
«8»: _ (u »Bruine Givrante»),
«9»: _ (u »Bruine»),
«10»: _ (u »Pluie Glacante»),
«11»: _ (u »Averses»),
«12»: _ (u »Averses»),
«13»: _ (u »Légère Neige»),
«14»: _ (u »Forte Neige»),
«15»: _ (u »Tempête de Neige»),
«16»: _ (u »Neige»),
«17»: _ (u »Grêle»),
«18»: _ (u »Pluie / Neige»),
«19»: _ (u »Nuage de poussière»),
«20»: _ (u »Brouillard»),
«21»: _ (u »Brume»),
«22»: _ (u »Fumée»),
«23»: _ (u »Tres Venteux»),
«24»: _ (u »Venteux»),
«25»: _ (u »Froid»),
«26»: _ (u »Nuageux»),
«27»: _ (u »Tres Nuageux»),
«28»: _ (u »Tres Nuageux»),
«29»: _ (u »Nuages ​​Disséminés»),
«30»: _ (u »Nuages ​​Disséminés»),
«31»: _ (u »Beau»),
«32»: _ (u »Beau»),
«33»: _ (u »Belles Éclaircies»),
«34»: _ (u »Belles Éclaircies»),
«35»: _ (u »Pluie avec Grêle»),
«36»: _ (u »Chaleur»),
«37»: _ (hoặc »Orages Isolés»),
«38»: _ (hoặc »Orages Localisés»),
«39»: _ (hoặc »Orages Localisés»),
«40»: _ (u »Averses Localisées»),
«41»: _ (u »Neige Lourde»),
«42»: _ (u »Tempête de Neige Localisées»),
«43»: _ (u »Neige Lourde»),
«44»: _ (u »Nuages ​​Disséminés»),
«45»: _ (hoặc »Orages»),
«46»: _ (u »Tempête de Neige»),
«47»: _ (hoặc »Orages Isolés»),
«Na»: _ (u »N / A»),
"-": _ (a ")
}

điều kiện_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 »»),
"-": _(hoặc là"")
}

điều kiện_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 »»),
"-": _(hoặc là"")
}

ngày_của_tuần = {
"Hôm nay": _ (hoặc "Hôm nay"),
«Thứ Hai»: _ (u »Thứ Hai»),
«Thứ Ba»: _ (u »Thứ Ba»),
«Thứ Tư»: _ (u »Thứ Tư»),
«Thứ Năm»: _ (u »Thứ Năm»),
"Thứ sáu": _ (u "Thứ sáu"),
"Thứ Bảy": _ (u "Thứ Bảy"),
"Chủ nhật": _ (u "Chủ nhật")
}

ngày_of_week_ngắn = {
"Hôm nay": _ (u "Bây giờ"),
«Thứ Hai»: _ (u »Thứ Hai»),
«Thứ Ba»: _ (u »Thứ»),
«Thứ Tư»: _ (u »Thứ Tư»),
«Thứ Năm»: _ (u »Thu»),
«Thứ Sáu»: _ (u »Thứ Sáu»),
"Thứ Bảy": _ (u "Thứ Bảy"),
"Chủ nhật": _ (u "Sun")
}

ngày_của_tuần_vi = {
"Hôm nay": _ (u "hôm nay"),
"Thứ Hai": _ (u "Thứ Hai"),
«Thứ Ba»: _ (hoặc »Thứ Ba»),
«Thứ Tư»: _ (u »Thứ Tư»),
«Thứ Năm»: _ (u »Thứ Năm»),
«Thứ sáu»: _ (u »Thứ sáu»),
"Thứ Bảy": _ (u "Thứ Bảy"),
"Chủ nhật": _ (u "Chủ nhật")
}

day_of_week_short_en = {
"Hôm nay": _ (u "hôm nay"),
"Thứ Hai": _ (u "mon"),
«Thứ Ba»: _ (u »biển»),
«Thứ Tư»: _ (u »wed»),
«Thứ Năm»: _ (u »Thứ Năm»),
«Thứ Sáu»: _ (u »fri»),
"Thứ Bảy": _ (u "sat"),
"Chủ nhật": _ (u "dom")
}

ngày_of_week_fr = {
«Hôm nay»: _ (u »Aujourd'hui»),
«Thứ Hai»: _ (u »Lundi»),
«Thứ Ba»: _ (u »Mardi»),
«Thứ Tư»: _ (u »Mercredi»),
«Thứ Năm»: _ (u »Jeudi»),
«Thứ Sáu»: _ (u »Vendredi»),
"Thứ Bảy": _ (u "Samedi"),
"Chủ nhật": _ (u "Dimanche")
}

ngày_of_week_short_fr = {
«Hôm nay»: _ (u »Auj»),
"Thứ Hai": _ (u "Thứ Hai"),
«Thứ Ba»: _ (u »Tháng Ba»),
"Thứ Tư": _ (u "Mer"),
«Thứ Năm»: _ (u »Jeu»),
«Thứ Sáu»: _ (u »Hãy đến»),
"Thứ Bảy": _ (u "Sam"),
"Chủ nhật": _ (u "Dim")
}

mang_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»),
«Không có»: _ (u »«)
}

mang_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"),
"Của chúng"),
"SSW": _ (u "SSO"),
«SW»: _ (u »SO»),
"WSW": _ (u "WOW"),
«W»: _ (u »O»),
«WNW»: _ (u »ONO»),
«KHÔNG»: _ (u »KHÔNG»),
«NNW»: _ (u »NNO»),
«N / A»: _ (u »N \ A»)
}

mang_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"),
"Của chúng"),
"SSW": _ (u "SSO"),
«SW»: _ (u »SO»),
"WSW": _ (u "WOW"),
«W»: _ (u »O»),
«WNW»: _ (u »ONO»),
«KHÔNG»: _ (u »KHÔNG»),
«NNW»: _ (u »NNO»),
«N / A»: _ (u »N \ A»)
}

lớp GlobalWeather:

điều_kiện_hiện_tại = []
ngày_dự báo = []
night_forecast = []

locale = "trong"

tùy chọn = Không có
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"
HẾT_PHÚT = 30
DEFAULT_SPACING = u »«

def __init __ (bản thân, tùy chọn):

self.options = tùy chọn

if self.options.locale == Không có:
thử:
# self.locale = locale.getdefaultlocale () [0] [0: 2]
self.locale = «es» #uncomment dòng này để buộc ngôn ngữ Tây Ban Nha
# self.locale = "fr" #uncomment dòng này để buộc ngôn ngữ Pháp
ngoại trừ:
print "locale not set"
khác:
# self.locale = self.options.locale
self.locale = «es» #uncomment dòng này để buộc ngôn ngữ Tây Ban Nha
# self.locale = "fr" #uncomment dòng này để buộc ngôn ngữ Pháp

if self.options.verbose == Đúng:
print >> sys.stdout, "locale set to", self.locale

def getText (self, gật gù):
rc = ""
cho nút trong danh sách nút:
nếu node.nodeType == node.TEXT_NODE:
rc = rc + nút.data
trả lại rc

def getSpaces (self, khoảng trắng):
string = u »»
nếu dấu cách == Không có:
chuỗi = self.DEFAULT_SPACING
khác:
cho tôi trong phạm vi (0, dấu cách + 1):
string = string + u »«
chuỗi trả về

def isNumeric (self, string):
thử:
dummy = float (string)
trả về True
ngoại trừ:
trả về Sai

def isConnectionAvailable (tự):
# đảm bảo chúng tôi có thể truy cập máy chủ của weather.com bằng cách mở url
thử:
Usock = urllib2.urlopen ('http://xoap.weather.com')
Usock.close ()
trả về True
ngoại trừ:
trả về Sai

def getBashingText (tự, mang):
mang = phao (vòng bi)
nếu mang <11.25:
trả lại u »N»
vòng bi elif <33.75:
trả về u »NNE»
vòng bi elif <56.25:
trả về u »NE»
vòng bi elif <78.75:
trả về u »JAN»
vòng bi elif <101.25:
trả lại u »E»
vòng bi elif <123.75:
trả về u »ESE»
vòng bi elif <146.25:
trả về u »SE»
vòng bi elif <168.75:
trả về u »SSE»
vòng bi elif <191.25:
trả lại u »S»
vòng bi elif <213.75:
trả về u »SSW»
vòng bi elif <236.25:
trả về u »SW»
vòng bi elif <258.75:
trả về u »WSW»
vòng bi elif <281.25:
trả lại u »W»
vòng bi elif <303.75:
trả về u »WNW»
vòng bi elif <326.25:
trả về u »NW»
vòng bi elif <348.75:
trả về u »NNW»
khác:
trả về «N / A»

def convertC CelsiusToFahrenheit (self, temp):
trả về str (int (floor (((float (temp) * 9.0) /5.0) +32)))

def convertKilometresToMiles (self, dist):
return str (int (floor (float (dist) * 0.621371192)))

def convertMillibarsToIches (self, mb):
return str (int (floor (float (mb) /33.8582)))

def getTemplateList (self, template):

danh sách mẫu = []

cho template_part trong template.split («{«):
nếu template_part! = «»:
cho template_part trong template_part.split ("}"):
nếu template_part! = «»:
templatelist.append (u »» + template_part)

trả lại templatelist

def getOutputText (self, datatype, startday, endday, night, shortweekday, Imperial, hideunits, space):
#thử:
đầu ra = u »»

# xác định đơn vị hiện tại cho đầu ra
if hideunits == Sai:
if hoàng đế == Sai:
tempunit = u »° C»
speedunit = u »kph»
áp suất = u »mb»
khác:
tempunit = u »° F»
speedunit = u »mph»
áp suất = u »trong»
khác:
tempunit = u »°»
speedunit = u »»
áp suất = u »»

nếu ngày bắt đầu == Không có: # điều kiện hiện tại

if datatype == "DW":
nếu self.locale == "là":
nếu shortweekday == Đúng:
output = WeatherText.day_of_week_short_es [self.current_conditions [0] .day_of_week]
khác:
output = WeatherText.day_of_week_es [self.current_conditions [0] .day_of_week]
elif self.locale == "fr":
nếu shortweekday == Đúng:
output = WeatherText.day_of_week_short_fr [self.current_conditions [0] .day_of_week]
khác:
output = WeatherText.day_of_week_fr [self.current_conditions [0] .day_of_week]
khác:
nếu shortweekday == Đúng:
output = WeatherText.day_of_week_short [self.current_conditions [0] .day_of_week]
khác:
output = WeatherText.day_of_week [self.current_conditions [0] .day_of_week]
elif datatype == "WF": # phông chữ thời tiết
output = WeatherText.conditions_weather_font [self.current_conditions [0] .condition_code]
elif datatype == "LT":
string = self.current_conditions [0] .low
if self.isNumeric (string) == True:
nếu đế quốc == Đúng:
string = self.convertC CelsiusToFahrenheit (string)
chuỗi = chuỗi + tempunit
đầu ra = chuỗi
elif datatype == "HT":
string = self.current_conditions [0] .high
if self.isNumeric (string) == True:
nếu đế quốc == Đúng:
string = self.convertC CelsiusToFahrenheit (string)
chuỗi = chuỗi + tempunit
đầu ra = chuỗi
elif datatype == "CC":
nếu self.locale == "là":
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]
khác:
output = WeatherText.conditions_text [self.current_conditions [0] .condition_code]
elif datatype == "CT":
output = self.current_conditions [0] .condition_text
elif datatype == "PC":
string = self.current_conditions [0] .precip
if self.isNumeric (string) == True:
string = string + u »%»
đầu ra = chuỗi
elif datatype == "HM":
string = self.current_conditions [0] .humidity
if self.isNumeric (string) == True:
string = string + u »%»
đầu ra = chuỗi
elif datatype == "WD":
string = self.current_conditions [0] .wind_dir
if self.isNumeric (string) == True:
string = self.getBashingText (string)

nếu self.locale == "là":
output = WeatherText.bnking_text_es [string]
elif self.locale == "fr":
output = WeatherText.bnking_text_fr [string]
khác:
đầu ra = chuỗi

elif datatype == "BF":
string = self.current_conditions [0] .wind_dir
if self.isNumeric (string) == True:
string = WeatherText.bnking_arrow_font [self.getBashingText (string)]
đầu ra = chuỗi
elif datatype == "WS":
string = self.current_conditions [0] .wind_speed
if self.isNumeric (string) == True:
nếu đế quốc == Đúng:
string = self.convertKilometresToMiles (string)
chuỗi = chuỗi + đơn vị tốc độ
đầu ra = chuỗi
elif datatype == "WG":
string = self.current_conditions [0] .wind_gusts
if self.isNumeric (string) == True:
nếu đế quốc == Đúng:
string = self.convertKilometresToMiles (string)
chuỗi = chuỗi + đơn vị tốc độ
đầu ra = chuỗi
elif datatype == "CN":
output = self.current_conditions [0] .city
elif datatype == "SR":
output = self.current_conditions [0] .sunrise
elif datatype == "SS":
output = self.current_conditions [0] .sunset
elif datatype == "MP":
output = self.current_conditions [0] .moon_phase
elif datatype == "MF":
output = WeatherText.conditions_moon_font [self.current_conditions [0] .moon_icon]
elif datatype == "BR":
string = self.current_conditions [0] .bar_read
if self.isNumeric (string) == True:
nếu đế quốc == Đúng:
string = self.convertMillibarsToIches (string)
string = string + áp suất
đầu ra = chuỗi
elif datatype == "BD":
output = self.current_conditions [0] .bar_desc
khác:
output = "\ nERROR: Đã yêu cầu loại dữ liệu không xác định"

khác: # dữ liệu dự báo

if endday == Không có: # nếu không có ngày cuối cùng được đặt, sử dụng ngày bắt đầu
endday = ngày bắt đầu

nếu ban đêm == Đúng: yêu cầu dự báo # đêm

cho day_number trong phạm vi (ngày bắt đầu, ngày cuối cùng + 1):

if datatype == "DW":
nếu self.locale == "là":
nếu shortweekday == Đúng:
output = output + self.getSpaces (dấu cách) + WeatherText.day_of_week_short_es [self.night_forecast [day_number] .day_of_week]
khác:
output = output + self.getSpaces (dấu cách) + WeatherText.day_of_week_es [self.night_forecast [day_number] .day_of_week]
elif self.locale == "fr":
nếu shortweekday == Đúng:
output = output + self.getSpaces (dấu cách) + WeatherText.day_of_week_short_fr [self.night_forecast [day_number] .day_of_week]
khác:
output = output + self.getSpaces (dấu cách) + WeatherText.day_of_week_fr [self.night_forecast [day_number] .day_of_week]
khác:
nếu shortweekday == Đúng:
output = output + self.getSpaces (dấu cách) + WeatherText.day_of_week_short [self.night_forecast [day_number] .day_of_week]
khác:
output = output + self.getSpaces (dấu cách) + WeatherText.day_of_week [self.night_forecast [day_number] .day_of_week]
elif datatype == "WF": # phông chữ thời tiết
output = output + self.getSpaces (dấu cách) + WeatherText.conditions_weather_font [self.night_forecast [day_number] .condition_code]
elif datatype == "LT":
string = self.night_forecast [day_number] .low
if self.isNumeric (string) == True:
nếu đế quốc == Đúng:
string = self.convertC CelsiusToFahrenheit (string)
chuỗi = chuỗi + tempunit
output = output + self.getSpaces (dấu cách) + chuỗi

elif datatype == "HT":
string = self.night_forecast [day_number] .high
if self.isNumeric (string) == True:
nếu đế quốc == Đúng:
string = self.convertC CelsiusToFahrenheit (string)
chuỗi = chuỗi + tempunit
output = output + self.getSpaces (dấu cách) + chuỗi
elif datatype == "CC":
nếu self.locale == "là":
output = output + self.getSpaces (dấu cách) + WeatherText.conditions_text_es [self.night_forecast [day_number] .condition_code]
elif self.locale == "fr":
output = output + self.getSpaces (dấu cách) + WeatherText.conditions_text_fr [self.night_forecast [day_number] .condition_code]
khác:
output = output + self.getSpaces (dấu cách) + WeatherText.conditions_text [self.night_forecast [day_number] .condition_code]
elif datatype == "CT":
output = output + self.getSpaces (dấu cách) + self.night_forecast [day_number] .condition_text
elif datatype == "PC":
string = self.night_forecast [day_number] .precip
if self.isNumeric (string) == True:
string = string + u »%»
output = output + self.getSpaces (dấu cách) + chuỗi
elif datatype == "HM":
string = self.night_forecast [day_number] .humidity
if self.isNumeric (string) == True:
string = string + u »%»
output = output + self.getSpaces (dấu cách) + chuỗi
elif datatype == "WD":
string = self.night_forecast [day_number] .wind_dir
nếu self.locale == "là":
output = output + self.getSpaces (dấu cách) + WeatherText.bnking_text_es [string]
elif self.locale == "fr":
output = output + self.getSpaces (dấu cách) + WeatherText.bnking_text_fr [string]
khác:
output = output + self.getSpaces (dấu cách) + chuỗi

elif datatype == "BF":
output = output + self.getSpaces (dấu cách) + WeatherText.bnking_arrow_font [self.night_forecast [day_number] .wind_dir]
elif datatype == "WS":
string = self.night_forecast [day_number] .wind_speed
if self.isNumeric (string) == True:
nếu đế quốc == Đúng:
string = self.convertKilometresToMiles (string)
chuỗi = chuỗi + đơn vị tốc độ
output = output + self.getSpaces (dấu cách) + chuỗi
elif datatype == "WG":
string = self.night_forecast [day_number] .wind_gusts
if self.isNumeric (string) == True:
nếu đế quốc == Đúng:
string = self.convertKilometresToMiles (string)
chuỗi = chuỗi + đơn vị tốc độ
output = output + self.getSpaces (dấu cách) + chuỗi
elif datatype == "CN":
output = output + self.getSpaces (dấu cách) + self.night_forecast [day_number] .city
elif datatype == "SR":
output = output + self.getSpaces (dấu cách) + self.night_forecast [day_number] .sunrise
elif datatype == "SS":
output = output + self.getSpaces (dấu cách) + self.night_forecast [day_number] .sunset
elif datatype == "MP":
output = output + self.getSpaces (dấu cách) + self.night_forecast [day_number] .moon_phase
elif datatype == "MF":
output = output + self.getSpaces (dấu cách) + WeatherText.conditions_moon_font [self.night_forecast [day_number] .moon_icon]
elif datatype == "BR":
output = output + self.getSpaces (dấu cách) + self.night_forecast [day_number] .bar_read
elif datatype == "BD":
output = output + self.getSpaces (dấu cách) + self.night_forecast [day_number] .bar_desc
khác:
output = "\ nERROR: Đã yêu cầu loại dữ liệu không xác định"
phá vỡ

khác: dự báo # ngày muốn

cho day_number trong phạm vi (ngày bắt đầu, ngày cuối cùng + 1):

if datatype == "DW":
nếu self.locale == "là":
nếu shortweekday == Đúng:
output = output + self.getSpaces (dấu cách) + WeatherText.day_of_week_short_es [self.day_forecast [day_number] .day_of_week]
khác:
output = output + self.getSpaces (dấu cách) + WeatherText.day_of_week_es [self.day_forecast [day_number] .day_of_week]
elif self.locale == "fr":
nếu shortweekday == Đúng:
output = output + self.getSpaces (dấu cách) + WeatherText.day_of_week_short_fr [self.day_forecast [day_number] .day_of_week]
khác:
output = output + self.getSpaces (dấu cách) + WeatherText.day_of_week_fr [self.day_forecast [day_number] .day_of_week]
khác:
nếu shortweekday == Đúng:
output = output + self.getSpaces (dấu cách) + WeatherText.day_of_week_short [self.day_forecast [day_number] .day_of_week]
khác:
output = output + self.getSpaces (dấu cách) + WeatherText.day_of_week [self.day_forecast [day_number] .day_of_week]
elif datatype == "WF": # phông chữ thời tiết
output = output + self.getSpaces (dấu cách) + WeatherText.conditions_weather_font [self.day_forecast [day_number] .condition_code]
elif datatype == "LT":
string = self.day_forecast [day_number] .low
if self.isNumeric (string) == True:
nếu đế quốc == Đúng:
string = self.convertC CelsiusToFahrenheit (string)
chuỗi = chuỗi + tempunit
output = output + self.getSpaces (dấu cách) + chuỗi
elif datatype == "HT":
string = self.day_forecast [day_number] .high
if self.isNumeric (string) == True:
nếu đế quốc == Đúng:
string = self.convertC CelsiusToFahrenheit (string)
chuỗi = chuỗi + tempunit
output = output + self.getSpaces (dấu cách) + chuỗi
elif datatype == "CC":
nếu self.locale == "là":
output = output + self.getSpaces (dấu cách) + WeatherText.conditions_text_es [self.day_forecast [day_number] .condition_code]
elif self.locale == "fr":
output = output + self.getSpaces (dấu cách) + WeatherText.conditions_text_fr [self.day_forecast [day_number] .condition_code]
khác:
output = output + self.getSpaces (dấu cách) + WeatherText.conditions_text [self.day_forecast [day_number] .condition_code]
elif datatype == "CT":
output = output + self.getSpaces (dấu cách) + self.day_forecast [day_number] .condition_text
elif datatype == "PC":
string = self.day_forecast [day_number] .precip
if self.isNumeric (string) == True:
string = string + u »%»
output = output + self.getSpaces (dấu cách) + chuỗi
elif datatype == "HM":
string = self.day_forecast [day_number] .humidity
if self.isNumeric (string) == True:
string = string + u »%»
output = output + self.getSpaces (dấu cách) + chuỗi
elif datatype == "WD":
string = self.day_forecast [day_number] .wind_dir

nếu self.locale == "là":
output = output + self.getSpaces (dấu cách) + WeatherText.bnking_text_es [string]
elif self.locale == "fr":
output = output + self.getSpaces (dấu cách) + WeatherText.bnking_text_fr [string]
khác:
output = output + self.getSpaces (dấu cách) + chuỗi

elif datatype == "BF":
output = output + self.getSpaces (dấu cách) + WeatherText.bnking_arrow_font [self.day_forecast [day_number] .wind_dir]
elif datatype == "WS":
string = self.day_forecast [day_number] .wind_speed
if self.isNumeric (string) == True:
nếu đế quốc == Đúng:
string = self.convertKilometresToMiles (string)
chuỗi = chuỗi + đơn vị tốc độ
output = output + self.getSpaces (dấu cách) + chuỗi
elif datatype == "WG":
string = self.day_forecast [day_number] .wind_gusts
if self.isNumeric (string) == True:
nếu đế quốc == Đúng:
string = self.convertKilometresToMiles (string)
chuỗi = chuỗi + đơn vị tốc độ
output = output + self.getSpaces (dấu cách) + chuỗi
elif datatype == "CN":
output = output + self.getSpaces (dấu cách) + self.day_forecast [day_number] .city
elif datatype == "SR":
output = output + self.getSpaces (dấu cách) + self.day_forecast [day_number] .sunrise
elif datatype == "SS":
output = output + self.getSpaces (dấu cách) + self.day_forecast [day_number] .sunset
elif datatype == "MP":
output = output + self.getSpaces (dấu cách) + self.day_forecast [day_number] .moon_phase
elif datatype == "MF":
output = output + self.getSpaces (dấu cách) + WeatherText.conditions_moon_font [self.day_forecast [day_number] .moon_icon]
elif datatype == "BR":
output = output + self.getSpaces (dấu cách) + self.day_forecast [day_number] .bar_read
elif datatype == "BD":
output = output + self.getSpaces (dấu cách) + self.day_forecast [day_number] .bar_desc
khác:
output = u »\ nERROR: Đã yêu cầu loại dữ liệu không xác định»
phá vỡ

output = u »» + output.strip (u »«) # mất dấu cách ở đầu / cuối
trả lại đầu ra

#ngoại trừ:
#print "getOutputText: Lỗi không mong muốn:", sys.exc_info () [0]

def getOutputTextFromTemplate (self, template):
#thử:

# phím cho dữ liệu mẫu
DATATYPE_KEY = "–datatype ="
STARTDAY_KEY = "–startday ="
ENDDAY_KEY = "–endday ="
NIGHT_KEY = "–đêm"
SHORTWEEKDAY_KEY = "–shortweekday"
IMPERIAL_KEY = "–imperial"
HIDEUNITS_KEY = "–hideunits"
SPACES_KEY = "–spaces ="

đầu ra = u »»

optionfound = Sai

#load tệp
thử:
fileinput = open (self.options.template)
template = fileinput.read ()
fileinput.close ()
ngoại trừ:
output = u »Không tìm thấy tệp mẫu!»

templatelist = self.getTemplateList (mẫu)

# hãy xem qua danh sách mẫu và xác định đầu ra cho từng mục được tìm thấy
cho tôi trong phạm vi (0, len (templatelist) -1):

pos = templatelist [i] .find (DATATYPE_KEY)
nếu pos! = -1:
optionfound = Đúng
pos = pos + len (DATATYPE_KEY)
datatype = templatelist [i] [pos: pos + 4] .strip ("}"). dải ("{"). dải ("-"). dải ("")
khác:
datatype = Không có

pos = templatelist [i] .find (STARTDAY_KEY)
nếu pos! = -1:
optionfound = Đúng
pos = pos + len (STARTDAY_KEY)
startday = int (templatelist [i] [pos: pos + 4] .strip ("}"). dải ("{"). dải ("-"). dải (""))
khác:
ngày đầu tiên = Không có

pos = templatelist [i] .find (ENDDAY_KEY)
nếu pos! = -1:
optionfound = Đúng
pos = pos + len (ENDDAY_KEY)
endday = int (templatelist [i] [pos: pos + 4] .strip ("}"). dải ("{"). dải ("-"). dải (""))
khác:
endday = Không có

pos = templatelist [i] .find (NIGHT_KEY)
nếu pos! = -1:
optionfound = Đúng
đêm = Đúng
khác:
đêm = Sai

pos = templatelist [i] .find (SHORTWEEKDAY_KEY)
nếu pos! = -1:
optionfound = Đúng
shortweekday = Đúng
khác:
shortweekday = Sai

pos = templatelist [i] .find (IMPERIAL_KEY)
nếu pos! = -1:
optionfound = Đúng
đế quốc = True
khác:
Imperial = Sai

pos = templatelist [i] .find (HIDEUNITS_KEY)
nếu pos! = -1:
optionfound = Đúng
hideunits = Đúng
khác:
hideunits = Sai

pos = templatelist [i] .find (SPACES_KEY)
nếu pos! = -1:
optionfound = Đúng
pos = pos + len (SPACES_KEY)
space = int (templatelist [i] [pos: pos + 4] .strip («}»). dải («{«). dải («-«). dải (»«))
khác:
dấu cách = 1

nếu optionfound == Đúng:
templatelist [i] = self.getOutputText (kiểu dữ liệu, ngày bắt đầu, ngày cuối cùng, ban đêm, ngày ngắn hạn, hệ Anh, đơn vị ẩn, dấu cách)
optionfound = Sai

# xem qua danh sách nối kết quả bây giờ mà nó đã được điền
cho mục trong danh sách tạm thời:
đầu ra = đầu ra + mặt hàng

trả lại đầu ra

#ngoại trừ:
#print "getOutputTextFromTemplate: Lỗi không mong muốn:", sys.exc_info () [0]

def fetchData (self):

# luôn tìm nạp dữ liệu chỉ số, sử dụng các hàm hội thoại trên dữ liệu này
file_path_current = self.TEMP_FILEPATH_CURRENT.replace ("LOCATION", self.options.location)
file_path_dayforecast = self.TEMP_FILEPATH_DAYFORECAST.replace ("LOCATION", self.options.location)
file_path_nightforecast = self.TEMP_FILEPATH_NIGHTFORECAST.replace ("LOCATION", self.options.location)

if self.isConnectionAvailable () == Sai:
nếu os.path.exists (file_path_current):
RefetchData = Sai
khác: # không có kết nối, không có bộ nhớ cache, tiếng nổ!
print "Không có kết nối internet và không có dữ liệu thời tiết được lưu trong bộ nhớ cache."
elif self.options.refetch == Đúng:
Tải lại dữ liệu = Đúng
khác:
# có cần truy xuất lại dữ liệu không?
nếu os.path.exists (file_path_current):
lastmodDate = time.localtime (os.stat (file_path_current) [ST_MTIME])
Hạn sử dụng = (datetime.datetime.today () - datetime.timedelta (phút = self.EXPIRY_MINUTES)). timetuple ()

nếu deadlineDate> lastmodDate:
Tải lại dữ liệu = Đúng
khác:
RefetchData = Sai
khác:
Tải lại dữ liệu = Đúng

# tìm nạp dữ liệu điều kiện hiện tại, từ trang web hoặc bằng cách 'bỏ chọn'
nếu RefetchData == True:

# lấy dữ liệu điều kiện hiện tại từ dịch vụ xoap
thử:

# 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 & đơn vị = m '
if self.options.verbose == Đúng:
print >> sys.stdout, «tìm nạp dữ liệu thời tiết từ«, url

Usock = urllib2.urlopen (url)
xml = usock.read ()
Usock.close ()
self.weatherxmldoc = minidom.parseString (xml)
ngoại trừ:
print "fetchData: Lỗi không mong muốn:", sys.exc_info () [0]
in "Không thể liên hệ với nguồn thời tiết cho các điều kiện hiện tại"

# cho người dùng biết nếu vị trí kém…
found = xml.find ("Vị trí được cung cấp không hợp lệ")
nếu tìm thấy! = -1:
print "Vị trí được cung cấp không hợp lệ"

# thẩm vấn dữ liệu thời tiết, tải vào cấu trúc lớp và chọn nó
thử:

# chuẩn bị danh sách dữ liệu thời tiết
self.current_conditions = []
self.day_forecast = []
self.night_forecast = []

# thu thập dữ liệu chung
thời tiết_n = self.weatherxmldoc.documentElement
location_n = weather_n.getElementsByTagName ('loc') [0]
city_n = location_n.getElementsByTagName ('dnam') [0]
city ​​= self.getText (city_n.childNodes)

# thu thập dữ liệu điều kiện hiện tại
day_of_week = u »Hôm nay»
tủa = u »N / A»
Sunrise_n = location_n.getElementsByTagName ('sunr') [0]
Sunrise = self.getText (Sunrise_n.childNodes)
Sunset_n = location_n.getElementsByTagName ('mặt trời') [0]
Sunset = self.getText (Suns_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 ('flk') [0]
current_temp_feels = self.getText (current_temp_feels_n.childNodes)
bar_n = current_condition_n.getElementsByTagName ('bar') [0]
bar_read_n = bar_n.getElementsByTagName ('r') [0]
bar_read = self.getText (bar_read_n.childNodes)
bar_desc_n = bar_n.getElementsByTagName ('d') [0]
bar_desc = self.getText (bar_desc_n.childNodes)
wind_n = current_condition_n.getElementsByTagName ('wind') [0]
wind_speed_n = wind_n.getElementsByTagName ('s') [0]
wind_speed = self.getText (wind_speed_n.childNodes)
wind_gust_n = wind_n.getElementsByTagName ('gust') [0]
wind_gusts = self.getText (wind_gust_n.childNodes)
wind_dir_n = wind_n.getElementsByTagName ('d') [0]
wind_direction = self.getText (wind_dir_n.childNodes)
độ ẩm_n = current_condition_n.getElementsByTagName ('hmid') [0]
độ ẩm = self.getText (độ ẩm_n.childNodes)
moon_n = current_condition_n.getElementsByTagName ('moon') [0]
moon_icon_n = moon_n.getElementsByTagName ('biểu tượng') [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, lượng mưa, độ ẩm, wind_direction, wind_speed, wind_gusts, thành phố, bình minh, hoàng hôn, moon_phase, moon_icon, bar_read, bar_desc)
self.current_conditions.append (current_conditions_data)

# thu thập dữ liệu dự báo
bar_read = u »N / A»
bar_desc = u »Không có»
moon_phase = u »Không có»
moon_icon = u »na»
dự báo_n = weather_n.getElementsByTagName ('dayf') [0]
day_nodes = dự báo_n.getElementsByTagName ('ngày')

cho ngày trong ngày_nodes:
day_of_week = day.getAttribute ('t')
day_of_year = day.getAttribute ('dt')
high_temp_n = day.getElementsByTagName ('hi') [0]
high_temp = self.getText (high_temp_n.childNodes)
low_temp_n = day.getElementsByTagName ('low') [0]
low_temp = self.getText (low_temp_n.childNodes)

Sunrise_n = day.getElementsByTagName ('sunr') [0]
Sunrise = self.getText (Sunrise_n.childNodes)
Suns_n = day.getElementsByTagName ('mặt trời') [0]
Sunset = self.getText (Suns_n.childNodes)

dữ liệu cụ thể về dự báo # ngày
daily_n = day.getElementsByTagName ('part') [0] # ngày
condition_code_n = daily_n.getElementsByTagName ('biểu tượng') [0]
condition_code = self.getText (condition_code_n.childNodes)
condition_n = daily_n.getElementsByTagName ('t') [0]
condition = self.getText (condition_n.childNodes)
tủa_n = daily_n.getElementsByTagName ('ppcp') [0]
tủa = self.getText (tủa_n.childNodes)
độ ẩm_n = daily_n.getElementsByTagName ('hmid') [0]
độ ẩm = self.getText (độ ẩm_n.childNodes)
wind_n = daily_n.getElementsByTagName ('wind') [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, điều kiện, lượng mưa, độ ẩm, wind_direction, wind_speed, wind_gusts, thành phố, bình minh, hoàng hôn, moon_phase, moon_icon, bar_read, bar_desc)
self.day_forecast.append (day_forecast_data)

dữ liệu cụ thể về dự báo ban đêm
daily_n = day.getElementsByTagName ('part') [1] # đêm
condition_code_n = daily_n.getElementsByTagName ('biểu tượng') [0]
condition_code = self.getText (condition_code_n.childNodes)
condition_n = daily_n.getElementsByTagName ('t') [0]
condition = self.getText (condition_n.childNodes)
tủa_n = daily_n.getElementsByTagName ('ppcp') [0]
tủa = self.getText (tủa_n.childNodes)
độ ẩm_n = daily_n.getElementsByTagName ('hmid') [0]
độ ẩm = self.getText (độ ẩm_n.childNodes)
wind_n = daily_n.getElementsByTagName ('wind') [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, tình trạng, lượng mưa, độ ẩm, gió_direction, wind_speed, wind_gusts, thành phố, bình minh, hoàng hôn, moon_phase, moon_icon, bar_read, bar_desc)
self.night_forecast.append (night_forecast_data)

# chọn dữ liệu cho lần sau!
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 ()

ngoại trừ:
print "fetchData: Lỗi không mong muốn:", sys.exc_info () [0]
print "Không thể thẩm vấn dữ liệu thời tiết"

khác: # tìm nạp dữ liệu thời tiết từ các tệp lớp đã chọn
if self.options.verbose == Đúng:
print >> sys.stdout, «tìm nạp dữ liệu thời tiết từ tệp:«, file_path_current

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

if self.options.verbose == Đúng:
print >> sys.stdout, "tìm nạp dữ liệu dự báo ngày từ các tệp:", file_path_dayforecast, file_path_nightforecast

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

if self.options.verbose == Đúng:
print >> sys.stdout, «tìm nạp dữ liệu dự báo ngày từ các tệp:«, file_path_nightforecast, file_path_nightforecast

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

def outputData (self):
#thử:

if self.options.template! = Không có:

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

khác:

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")

#ngoại trừ:
#print «outputData: Lỗi không mong muốn:«, sys.exc_info () [0]

nếu __name__ == "__main__":

phân tích cú pháp = CommandLineParser ()
(options, args) = parser.parse_args ()

if options.verbose == Đúng:
print >> sys.stdout, "location:", options.location
print >> sys.stdout, "Imperial:", options.imperial
print >> sys.stdout, "datatype:", options.datatype
print >> sys.stdout, "night:", options.night
print >> sys.stdout, "start day:", options.startday
print >> sys.stdout, "end day:", options.endday
print >> sys.stdout, "space:", options.spaces
print >> sys.stdout, "verbose:", options.verbose
print >> sys.stdout, "refetch:", options.refetch

# tạo đối tượng thời tiết toàn cầu mới
thời tiết = GlobalWeather (tùy chọn)
weather.fetchData ()
weather.outputData ()

Chúng tôi tạo tệp ~ / Conky / scripts / myweather.template

gedit ~ / Conky / scripts / myweather.template

chúng tôi dán những thứ sau vào bên trong:

{–Datatype = DW –startday = 1}: {–datatype = CC –startday = 1}
{–Datatype = HT –startday = 1} / {–datatype = LT –startday = 1} Gió từ {–datatype = WD –startday = 1} đến {–datatype = WS –startday = 1}
Độ ẩm: {–datatype = HM –startday = 1} Lượng mưa: {–datatype = PC –startday = 1}
Bình minh: {–datatype = SR –startday = 1} Hoàng hôn: {–datatype = SS –startday = 1}
————————————————–
{–Datatype = DW –startday = 2}: {–datatype = CC –startday = 2}
{–Datatype = HT –startday = 2} / {–datatype = LT –startday = 2} Gió từ {–datatype = WD –startday = 2} đến {–datatype = WS –startday = 2}
Độ ẩm: {–datatype = HM –startday = 2} Lượng mưa: {–datatype = PC –startday = 2}
Bình minh: {–datatype = SR –startday = 2} Hoàng hôn: {–datatype = SS –startday = 2}
————————————————–
{–Datatype = DW –startday = 3}: {–datatype = CC –startday = 3}
{–Datatype = HT –startday = 3} / {–datatype = LT –startday = 3} Gió từ {–datatype = WD –startday = 3} đến {–datatype = WS –startday = 3}
Độ ẩm: {–datatype = HM –startday = 3} Lượng mưa: {–datatype = PC –startday = 3}
Bình minh: {–datatype = SR –startday = 3} Hoàng hôn: {–datatype = SS –startday = 3}
————————————————–
{–Datatype = DW –startday = 4}: {–datatype = CC –startday = 4}
{–Datatype = HT –startday = 4} / {–datatype = LT –startday = 4} Gió từ {–datatype = WD –startday = 4} đến {–datatype = WS –startday = 4}
Độ ẩm: {–datatype = HM –startday = 4} Lượng mưa: {–datatype = PC –startday = 4}
Bình minh: {–datatype = SR –startday = 4} Hoàng hôn: {–datatype = SS –startday = 4}

Chúng tôi tạo tệp ~ / Conky / scripts / mail / conkyEmail.py (chúng tôi phải tạo thư mục thư)

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

và dán những thứ sau vào bên trong:

nhập khẩu os
nhập chuỗi

# Nhập tên người dùng và mật khẩu của bạn bên dưới trong dấu ngoặc kép
# ví dụ. tên người dùng = »tên người dùng» và mật khẩu = »mật khẩu»
tên người dùng = »YOUR_USUARIO_SINARROBA«
mật khẩu = »CỦA BẠN«

com = »wget -O - https: //» + tên người dùng + »:» + mật khẩu + »@ mail.google.com / mail / feed / atom –no-check-certificate»

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

nếu fc == 0:
in "0 mới"
khác:
print str (fc) + »mới»

Vì vậy, bây giờ bạn có 7 tệp:

Trong thư mục: ~
-> .startconky << - thực thi

Trong thư mục: ~ / Conky
-> conkymain
-> conkyforecast
-> conkymail

và trong thư mục: ~ / Conky / scripts
-> conkyForecast.py << - thực thi
-> myweather.template

và trong thư mục: ~ / Conky / scripts / mail
conkyEmail.py << - thực thi

Và đó là nó, giải thích rõ ràng, nơi nó nói / home / user / ... tên người dùng của bạn đi và trong phần dữ liệu Gmail đi, tôi đã đánh dấu bằng màu sắc nơi bạn phải đặt dữ liệu của mình.

để giết quá trình khó ghi vào bảng điều khiển

giết conky

để chạy conky ghi vào bảng điều khiển

./.startconky

khi bạn đã điều chỉnh mọi thứ, nếu bạn muốn conky bắt đầu mỗi phiên

Hệ thống—> Tùy chọn—> Phiên và trong các chương trình khởi động, chúng tôi thêm nó

Trong Tên, chúng ta có thể viết Conky, theo Thứ tự ./.startconky với nghĩa là nó sẽ bắt đầu mỗi khi bạn bật máy tính.

Đó là nó, tôi hy vọng nó sẽ giúp bạn.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.