קונקי, ההתקנה שלי

Fecfactor ביקש ממני לפרסם אתמול את תצורת הקונקי שאני מראה בצילום המסך למטה

כפי שאתה יכול לראות יש 3 קונקים, שמבוצעים באמצעות סקריפט, התצורה שלו מבוססת על הפוסט הזה פורסם על ידי המשתמש ברוס מ 'בפורומים של אובונטו-אר עם כמה שינויים בקונקי הדואר, שבמקרה שלי מיועד לג'ימייל.

בפוסט ההפניה זה מוסבר היטב על ידי ברוס, אבל גם כעזרת זיכרון עבורי, אעתיק את הצעדים שיש לעקוב אחריהם ואת קוד שיחותי למי שיש לו את זה.

ובכן, כמובן שעלינו להתקין קונקי, סלסול ופיתון ולכן אנו מקלידים קונסולה:

sudo apt-get להתקין פיתון תלתל קונקי

מקור מזג האוויר.טף וחצים.טטף פה. מקור הירח .ttf פה לאחר ההורדה עליך להעתיק אותם אל / usr / share / fonts

בואו ניצור כעת את התסריט שלנו שנקרא ~. / Startconky

gksudo gedit ~ / .startconky

בתוך הקובץ הריק אנו מדביקים את הדברים הבאים

#! / bin / bash
שינה 0 & # 0 טוב עבור Xfce - השתמש 20 עד 30 עבור Gnome
conky -c ~ / Conky / conkymain &
# שינה 0 & # 0 טוב ל- Xfce - השתמש 1 ב- Gnome
conky -c ~ / Conky / conkyforecast &
# שינה 0 & # 0 טוב ל- Xfce - השתמש 1 ב- Gnome
conky -c ~ / Conky / conkymail &

כעת אנו יוצרים את קובץ ה- conkymain בתיקיה ~ / Conky, אחרת יש לנו את תיקיית Conky, נצטרך ליצור אותה.

gedit ~ / Conky / conkymain

אני משתמש בגופן Calibri, אם אין לך אותו, החלף אותו בכל מה שתרצה.

אנו נעוצים בתוך הדברים הבאים

רקע לא
חלון משלו כן
חלון משלו_ שקוף כן
חלון_רימוי משלו לא מקושט, למטה, דביק, דלג על שורת המשימות, דלג_עמוד
חלון_צבע_ שחור
double_buffer כן
use_spacer שמאל
use_xft כן
גופן קליברי: גודל = 9
xftfont calibri: גודל = 9
xftalpha 0.5
עדכון_מרווח 5.0
רישיות לא # הגדרו כן אם ברצונך שכל הטקסט יהיה באותיות רישיות
3
גבול_גבול 9
רוחב גבול 10
ברירת מחדל_צבע לבן
ברירת מחדל_מתאר_צבע שחור
ברירת מחדל_גוון_צבע שחור
צבע 0 ציאן
צבע כחול בהיר
צבע 2 כתום
צבע 3 צהוב
חיטה color4
צבע 5 לבן
צבע 6 לבן
צבע 7 לבן
צבע 8 לבן
צבע 9 לבן
יישור עליונה עליונה # או שמאלה למעלה, שמאלה תחתונה, ימינה תחתונה
פער 10
פער 35
text_buffer_size 128 # השתמש ב- 1024 לתחזית
no_buffers כן # מחסירים מאגרי מערכת קבצים מהזיכרון המשומש?
שולחנים לא
draw_outline כן # מגביר טקסט אם כן
ציורי_גוונים כן # צבע שחור

טקסט
$ {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} $ צבע
$ {font calibri: size = 20} $ {alignc} $ {time% H:% M} $ font
$ {font calibri: size = 12} $ {color1} $ {alignc} $ {time% A,% d% b. % Y} $ צבע $ גופן
$ {color3} UpTime: $ {alignr 2} $ uptime $ color
$ {color0} $ {hr 1} $ צבע
מעבד $ {voffset 5} $ {color2}: $ {alignc} $ color $ running_processes $ {color1} / $ color $ processes $ {alignr 2} $ {color2} $ {cpubar cpu0 14,80} $ $ צבע
$ {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} $ צבע
$ {color1} $ {voffset -16} $ {alignr 5} $ memperc% $ color
$ {voffset 2} $ {color1} מאגר: $ color $ {buffers} $ {alignr 2} $ {color1} מטמון: $ 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} $ צבע
$ {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 /} $ צבע
$ {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} $ צבע
$ {color1} מאת: $ color בואנוס איירס, ארגנטינה
$ {color1} Lat: $ {color2} 34 ° 35'S $ {color1} ארוך: $ {color2} 58 ° 21'W $ {color1} Alt: $ {color2} 25 מ '$ צבע
$ {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} $ {גופן חצים: size = 20} $ {color4} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = BF} $ color $ גוֹפָן
$ {alignc 10} $ {voffset 5} $ {color4} רוח: $ {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} $ צבע
$ {color4} $ {hr} $ צבע
$ {color1} Sunrise: $ {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} $ {phases moon moon: size = 20} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = MF} $ font $ צבע
$ {color0} $ {hr} $ צבע
$ {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} חיבורים: $ 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

ואנחנו מדביקים את הדברים הבאים בפנים

רקע לא
חלון משלו כן
חלון משלו_ שקוף כן
חלון_רימוי משלו לא מקושט, למטה, דביק, דלג על שורת המשימות, דלג_עמוד
חלון_צבע_ שחור
double_buffer כן
use_spacer שמאל
use_xft כן
גופן קליברי: גודל = 8
xftfont calibri: גודל = 8
xftalpha 0.5
עדכון_מרווח 5.0
רישיות לא # הגדרו כן אם ברצונך שכל הטקסט יהיה באותיות רישיות
3
גבול_גבול 9
רוחב גבול 10
ברירת מחדל_צבע לבן
ברירת מחדל_מתאר_צבע שחור
ברירת מחדל_גוון_צבע שחור
צבע 0 ציאן
צבע כחול בהיר
צבע 2 כתום
צבע 3 צהוב
חיטה color4
צבע 5 לבן
צבע 6 לבן
צבע 7 לבן
צבע 8 לבן
צבע 9 לבן
יישור שמאל למטה # או שמאלה למעלה, שמאל למטה, ימני למטה
פער 10
פער 35
text_buffer_size 1024 # השתמש ב- 1024 לתחזית
no_buffers כן # מחסירים מאגרי מערכת קבצים מהזיכרון המשומש?
שולחנים לא
draw_outline כן # מגביר טקסט אם כן
ציורי_גוונים כן # צבע שחור

טקסט
$ {color4} $ {font calibri: size = 11} תחזית מורחבת $ font $ color
$ {color0} $ {hr} $ צבע
$ {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

אנו מדביקים את הדברים הבאים בקובץ

רקע לא
חלון משלו כן
חלון משלו_ שקוף כן
חלון_רימוי משלו לא מקושט, למטה, דביק, דלג על שורת המשימות, דלג_עמוד
חלון_צבע_ שחור
double_buffer כן
use_spacer שמאל
use_xft כן
גופן קליברי: גודל = 8
xftfont calibri: גודל = 8
xftalpha 0.5
עדכון_מרווח 5.0
רישיות לא # הגדרו כן אם ברצונך שכל הטקסט יהיה באותיות רישיות
3
גבול_גבול 9
רוחב גבול 10
ברירת מחדל_צבע לבן
ברירת מחדל_מתאר_צבע שחור
ברירת מחדל_גוון_צבע שחור
צבע 0 ציאן
צבע כחול בהיר
צבע 2 כתום
צבע 3 צהוב
חיטה color4
צבע 5 לבן
צבע 6 לבן
צבע 7 לבן
צבע 8 לבן
צבע 9 לבן
יישור שמאל למטה # או שמאלה למעלה, שמאל למטה, ימני למטה
פער 565
פער 35
text_buffer_size 128 # השתמש ב- 1024 לתחזית
no_buffers כן # מחסירים מאגרי מערכת קבצים מהזיכרון המשומש?
שולחנים לא
draw_outline כן # מגביר טקסט אם כן
ציורי_גוונים כן # צבע שחור

טקסט
$ {font calibri: size = 11} $ {alignc} $ {color4} Gmail
$ {color0} $ {hr} $ צבע
$ {font calibri: size = 11} $ {color4} יש לנו $ {color3} $ {execi 300 python ~ / Conky / scripts / mail / conkyEmail.py} $ {color4} email (s) $ font

אנו יוצרים קובץ ב- ~ / Conky / scripts / conkyForecast.py (עלינו ליצור את תיקיית ה- scripts)

gedit ~ / Conky / scripts / conkyForecast.py

#! / usr / bin / python
# - * - קידוד: utf-8 - * -
################################################################ ##################################
# conkyForecast.py הוא קובץ פיתון פשוט (לא כל כך פשוט) לאיסוף
# פרטים על מזג האוויר הנוכחי לשימוש ב- 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 נוסף טקסט תנאי ספרדי - תודה ברוס מ
# 19/04/2008 נוסף בדיקה איזנומרית על כל הפלט המספרי עם סיומת יחידות
# 19/04/2008 שמות קובץ מלפפון חמוץ השתנה כך שיכלול קוד מיקום
# 19/04/2008 נוספה המרה בימי השבוע הספרדית דרך האזור
# 20/04/2008 נוסף מנתח טיעוני פקודה הגון
# 20/04/2008 נוסף –אפשרות יום השבוע הקצר, אם נתון יום בשבוע סוג הנתונים מקוצר ל -3 תווים
# 21/04/2008 אפשרויות אזור קבועות לפלט התחזית
# 21/04/2008 נוספה –אפשרות התבנית לאפשר פלט מותאם אישית באמצעות שיחת ביצוע אחת single
# 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 כתובת האתר המעודכנת המשמשת לאחר עדכון שירות האתר
# 09/05/2008 המצב הנוכחי המאוחד ונתוני התחזית מועברים לשיחה אחת
# 09/05/2008 זריחה ושקיעה נוספו לסוגי הנתונים, אלה ספציפיים הן לתנאים הנוכחיים והן לנתוני התחזית
# 09/05/2008 נוסף שלב הירח, קריאת הברומטר ותיאור הברומטר לסוגי הנתונים, אלה ספציפיים רק לתנאים הנוכחיים וכך גם N / A בתפוקה החזויה
# 09/05/2008 הוסיפו המרות יחידה לברומטר ממ"מ לסנטימטרים (קיסרי)
# 09/05/2008 טקסט התנאי הספרדי עודכן - תודה ברוס מ
# 10/05/2008 נוספו נתוני אזור צרפתית - תודה benpaka
# 12/05/2008 נוסף סוג נתונים מסוג BF (נושא גופן) חדש כדי לספק תו חץ (שימוש עם גופן Arrow.ttf) במקום פלט NSEW מ- WD (כיוון רוח)
# 12/05/2008 פלט WD עודכן להיות ספציפי למיקום, תומך כרגע באנגלית וספרדית המוגדרת כברירת מחדל - תודה ברוס מ
# 18/05/2008 נוסף סוג נתונים MF (גופן ירח) חדש המספק תו של גופן ירח (תווים שגויים ואין עדיין גופן ייעודי).
# 21/05/2008 בתנאים הנוכחיים האפשרות –datatype = LT מציגה כעת טמפרטורה "מרגישה כמו" ולא הטמפרטורה הנוכחית
#
# הכל:
# איחד קבצי pkl לקובץ / מחלקה אחד
# הוסף גופן מזג אוויר המבוסס על פלט שלב הירח על סמך נתוני סמל הירח
# ??? יש עוד דרישות שם?

ייבוא ​​sys, os, socket, urllib2, זמן זמן, זמן
מ- xml.dom minidom יבוא
מייבוא ​​סטטי *
מ- OptParser לייבוא ​​אופטי
ייבוא ​​אזור
ייבא גטקסט
מלפפון חמוץ
מייבוא ​​מתמטיקה *

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

מחלקה CommandLineParser:

מנתח = אין

def __init __ (עצמי):

self.parser = OptionParser ()
self.parser.add_option («- l», »- מיקום», dest = »מיקום», ברירת מחדל = »UKXX0103 ″, סוג =» מחרוזת », metavar =» CODE », help = u» קוד מיקום לנתוני מזג אוויר [ ברירת מחדל:% ברירת מחדל], השתמש בכתובת האתר הבאה כדי לקבוע את קוד המיקום שלך לפי שם עיר: http://xoap.weather.com/search/search?where=Norwich »)
self.parser.add_option ("- d", "- datatype", dest = "datatype", default = "HT", type = "string", metavar = "DATATYPE", help = u "[ברירת מחדל: ברירת מחדל%] אפשרויות סוג הנתונים הן: DW (יום בשבוע), WF (פלט גופן מזג אוויר), LT (תחזית: טמפ 'נמוכה, זרם: מרגיש כמו טמפ'), HT (תחזית: טמפ 'גבוהה, זרם: טמפ' נוכחית), CC (נוכחי תנאים), CT (טקסט תנאים), PC (סיכוי למשקעים), HM (לחות), WD (כיוון רוח), WS (מהירות רוח), WG (משבי רוח), CN (שם עיר), SR (זריחה), SS (שקיעה), MP (שלב הירח), MF (גופן ירח), BR (קריאת ברומטר), BD (תיאור ברומטר). לא ישים בשורת הפקודה בעת שימוש בתבניות. »)
self.parser.add_option («- s», »- startday», dest = »day start», 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 = »רווחים», סוג = »int», ברירת מחדל = 1, metavar = »מספר», עזרה = u »[ברירת מחדל:% ברירת מחדל] מגדיר את מספר הרווחים בין הפלט בטווח. לא ישים בשורת הפקודה בעת שימוש בתבניות. »)
self.parser.add_option («- t», »- תבנית», dest = »תבנית», סוג = »מחרוזת», metavar = »FILE», help = u »מגדירים קובץ תבנית ליצירת פלט בשיחה אחת. הפריט הניתן לתצוגה בקובץ הוא בצורה {–datatype = HT –dayday = 1}. להלן אפשרויות אפשריות בכל פריט: –datatype, –dayday, –endday, –night, –shortweekday, –imperial, –hideunits, –מרווחים. שים לב כי הטפסים הקצרים של האפשרויות אינם נתמכים כרגע! אף אחת מהאפשרויות הללו איננה רלוונטית בשורת הפקודה בעת שימוש בתבניות. »)
self.parser.add_option («- L», »- locale», dest = »locale», type = »string», help = u »עוקפים את אזור המערכת לפלט שפה (en = אנגלית, es = ספרדית, fr = צרפתית, עוד לבוא) »)
self.parser.add_option ("- i", "- imperial", dest = "imperial", default = False, action = "store_true", help = u "לבקש יחידות אימפריאליות, אם הפלט שהושמט הוא במדד. שורת פקודה בעת שימוש בתבניות. »)
self.parser.add_option («- n», »- לילה», dest = »לילה», ברירת מחדל = שקר, פעולה = »חנות_אמת», עזרה = u »להחליף פלט לנתוני לילה, אם יושמט פלט יום. לא ישים בשורת הפקודה בעת שימוש בתבניות. »)
self.parser.add_option («- w», »- shortweekday», dest = »shortweekday», default = False, action = »store_true», help = u »קצר את סוג הנתונים של יום השבוע ל -3 תווים. שורת פקודה בעת שימוש בתבניות. »)
self.parser.add_option («- u», »- יחידות מסתור», dest = »יחידות מסתור», ברירת מחדל = שקר, פעולה = »חנות_אמת», עזרה = u »הסתר יחידות כמו קמ"ש או C, סמלי מעלות (°) הם עדיין מוצג. לא ישים בשורת הפקודה בעת שימוש בתבניות. »)
self.parser.add_option ("- v", "- verbose", dest = "verbose", default = False, action = "store_true", help = u "בקש פלט מילולי, אין רעיון טוב כשרצים דרך קונקי!" )
self.parser.add_option ("- r", "- retetch", dest = "retetch", default = False, action = "store_true", help = u "אחזור נתונים ללא תום תפוגת הנתונים")

def parse_args (עצמי):
(אפשרויות, טענות) = self.parser.parse_args ()
החזר (אפשרויות, טענות)

def print_help (עצמי):
החזר self.parser.print_help ()

Class WeatherData:
def __init __ (עצמי, יום_שבוע, נמוך, גבוה, קוד תנאי, תנאי_טקסט, משקע, לחות, רוח_דיר, מהירות רוח, משבי רוח, עיר, זריחה, שקיעה, שלב הירח, ירח_אייקון, בר_קרא, בר_דסק):
self.day_of_week = u »» + day_of_week
self.low = u »» + נמוך
self.high = u »» + גבוה
self.condition_code = u »» + קוד תנאי
self.condition_text = u »» + condition_text
self.precip = u »» + משקעים
לחות עצמית = u »» + לחות
self.wind_dir = u »» + wind_dir
self.wind_speed = u »» + מהירות רוח
self.wind_gusts = u »» + משבי רוח
self.city = u »» + עיר
self.sunrise = u »» + זריחה
self.sunset = u »» + שקיעה
self.moon_phase = u »» + moon_phase
self.moon_icon = u »» + ירח_אייקון
self.bar_read = u »» + bar_read
self.bar_desc = u »» + bar_desc

כיתת WeatherText:

תנאי_טקסט = {
«0»: _ (u »טורנדו»),
«1»: _ (u »סופה טרופית»),
«2»: _ (u »הוריקן»),
«3»: _ (u »סופות רעמים קשות»),
«4»: _ (u »סופות רעמים»),
«5»: _ (u »מעורב גשם ושלג»),
«6»: _ (u »מעורב גשם וגשם"),
«7»: _ (u »משקעים מעורבים»),
«8»: _ (u »טפטוף מקפיא»),
«9»: _ (u »טפטוף»),
«10»: _ (u »גשם מקפיא»),
«11»: _ (u »מקלחות»),
«12»: _ (u »מקלחות»),
«13»: _ (u »שלגיה שלג»),
«14»: _ (u »ממטרי שלג קלים»),
«15»: _ (u »נושף שלג»),
«16»: _ (u »שלג»),
«17»: _ (u »שלום"),
«18»: _ (u »Sleet»),
«19»: _ (u »אבק»),
«20»: _ (u »ערפל»),
«21»: _ (u »Haze»),
«22»: _ (u »עשן»),
«23»: _ (u »Blustery»),
«24»: _ (u »Windy»),
«25»: _ (u »קר»),
«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»: _ (u »שלג כבד»),
«42»: _ (u »ממטרי שלג מפוזרים»),
«43»: _ (u »שלג כבד»),
«44»: _ (u »מעונן חלקית»),
«45»: _ (u »מקלחות רעמים»),
«46»: _ (u »ממטרי שלג»),
«47»: _ (u »סופות רעמים מבודדות»),
«Na»: _ (u »N / A»),
"-": _ (א ")
}

conditions_text_en = {
«0»: _ (u »טורנדו»),
«1»: _ (u »סופה טרופית»),
«2»: _ (u »Huracá¡n»),
«3»: _ (u »סופות חזקות»),
«4»: _ (u »סופות»),
«5»: _ (u »מעורב גשם ושלג»),
«6»: _ (u »מעורב גשם וגשם"),
«7»: _ (u »Sleet»),
«8»: _ (u »טפטוף מקפיא»),
«9»: _ (u »טפטוף»),
«10»: _ (u »גשם מקפיא»), גשם # או קפוא
«11»: _ (u »מקלחות»),
«12»: _ (u »מקלחות»),
«13»: _ (u »שלג קל»),
«14»: _ (u »שלג קל»),
«15»: _ (u »Snow Blizzard»),
«16»: _ (u »שלג»),
«17»: _ (u »שלום"),
«18»: _ (u »Sleet»),
«19»: _ (u »אבקה»),
«20»: _ (u »ערפל»),
«21»: _ (u »Haze»),
«22»: _ (u »עשן»),
«23»: _ (u »סערה»),
«24»: _ (u »Windy»),
«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 »Heat»),
«37»: _ (u »סופות מבודדות»),
«38»: _ (u »סופות פזורות»),
«39»: _ (u »סופות פזורות»),
«40»: _ (u »מקלחות מפוזרות»),
«41»: _ (u »שלג כבד»),
«42»: _ (u »שלג חלש ומפוזר»),
«43»: _ (u »נבדה אינטנסיבית»),
«44»: _ (u »עננים פזורים»),
«45»: _ (u »סופות»),
«46»: _ (u »שלג מפוזר»),
«47»: _ (u »סופות מבודדות»),
«Na»: _ (u »N / A»),
"-": _ (א ")
}

תנאי_טקסט_פר = {
«0»: _ (u »Tornade»),
«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 »הימנעות ממקור משתנה»),
«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»: _ (או »Orages Isolés»),
«38»: _ (או »Orages Localisés»),
«39»: _ (או »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»: _ (או »Orages»),
«46»: _ (u »Tempête de Neige»),
«47»: _ (או »Orages Isolés»),
«Na»: _ (u »N / A»),
"-": _ (א ")
}

conditions_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 »»),
"-": _ (או "")
}

conditions_moon_font = {
«0»: _ (u »1 ″),
«1»: _ (u »N»),
«2»: _ (u »O»),
«3»: _ (u »P»),
«4»: _ (u »Q»),
«5»: _ (u »R»),
«6»: _ (u »S»),
«7»: _ (u »T»),
«8»: _ (u »U»),
«9»: _ (u »V»),
«10»: _ (u »W»),
«11»: _ (u »X»),
«12»: _ (u »Y»),
«13»: _ (u »Z»),
«14»: _ (u »0 ″),
«15»: _ (u »0 ″),
«16»: _ (u »A»),
«17»: _ (u »B»),
«18»: _ (u »C»),
«19»: _ (u »D»),
«20»: _ (u »E»),
«21»: _ (u »F»),
«22»: _ (u »G»),
«23»: _ (u »H»),
«24»: _ (u »I»),
«25»: _ (u »J»),
«26»: _ (u »K»),
«27»: _ (u »L»),
«28»: _ (u »M»),
«29»: _ (u »1 ″),
«Na»: _ (u »»),
"-": _ (או "")
}

יום_של_שבוע = {
"היום": _ (או "היום"),
«יום שני»: _ (u »יום שני»),
«יום שלישי»: _ (u »יום שלישי»),
«יום רביעי»: _ (u »יום רביעי»),
«יום חמישי»: _ (u »יום חמישי»),
«יום שישי»: _ (u »יום שישי»),
"שבת": _ (u "שבת"),
"יום ראשון": _ (u "יום ראשון")
}

day_of_week_short = {
"היום": _ (u "עכשיו"),
«יום שני»: _ (u »שני"),
«יום שלישי»: _ (u »יום שלישי»),
"יום רביעי": _ (u "Wed"),
«יום חמישי»: _ (u »Thu»),
«יום שישי»: _ (u »ו '),
"שבת": _ (u "שבת"),
"יום ראשון": _ (u "שמש")
}

day_of_week_en = {
"היום": _ (u "היום"),
«יום שני»: _ (u »יום שני»),
«יום שלישי»: _ (u »יום שלישי»),
«יום רביעי»: _ (u »יום רביעי»),
«יום חמישי»: _ (u »יום חמישי»),
«יום שישי»: _ (u »יום שישי»),
"שבת": _ (u "שבת"),
"יום ראשון": _ (u "יום ראשון")
}

day_of_week_short_en = {
"היום": _ (u "היום"),
"יום שני": _ (u "mon"),
«יום שלישי»: _ (u »ים»),
«יום רביעי»: _ (u »wed»),
«יום חמישי»: _ (u »חמישי»),
«יום שישי»: _ (u »fri»),
"שבת": _ (אתה "ישב"),
"יום ראשון": _ (u "dom")
}

day_of_week_fr = {
«היום»: _ (u »Aujourd'hui»),
«יום שני»: _ (u »Lundi»),
«יום שלישי»: _ (u »Mardi»),
«יום רביעי»: _ (u »Mercredi»),
«יום חמישי»: _ (u »Jeudi»),
«יום שישי»: _ (u »Vendredi»),
"שבת": _ (u "Samedi"),
"יום ראשון": _ (u "Dimanche")
}

day_of_week_short_fr = {
«היום»: _ (u »Auj»),
"יום שני": _ (u "שני"),
«יום שלישי»: _ (u »Mar»),
"יום רביעי": _ (u "Mer"),
«יום חמישי»: _ (u »Jeu»),
«יום שישי»: _ (u »בוא»),
"שבת": _ (u "Sam"),
"יום ראשון": _ (u "עמום")
}

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

Bearing_text_es = {
«N»: _ (u »N»),
«NNE»: _ (u »NNE»),
«NE»: _ (u »NE»),
«ENE»: _ (u »ENE»),
«E»: _ (u »E»),
«ESE»: _ (u »ESE»),
«SE»: _ (u »SE»),
"SSE": _ (u "SSE"),
"שֶׁלָהֶם"),
"SSW": _ (u "SSO"),
«SW»: _ (u »SO»),
"WSW": _ (u "WOW"),
«W»: _ (u »O»),
«WNW»: _ (u »ONO»),
«NW»: _ (u »NO»),
«NNW»: _ (u »NNO»),
«N / A»: _ (u »N \ A»)
}

Bearing_text_fr = {
«N»: _ (u »N»),
«NNE»: _ (u »NNE»),
«NE»: _ (u »NE»),
«ENE»: _ (u »ENE»),
«E»: _ (u »E»),
«ESE»: _ (u »ESE»),
«SE»: _ (u »SE»),
"SSE": _ (u "SSE"),
"שֶׁלָהֶם"),
"SSW": _ (u "SSO"),
«SW»: _ (u »SO»),
"WSW": _ (u "WOW"),
«W»: _ (u »O»),
«WNW»: _ (u »ONO»),
«NW»: _ (u »NO»),
«NNW»: _ (u »NNO»),
«N / A»: _ (u »N \ A»)
}

כיתה GlobalWeather:

התנאים הנוכחיים = []
תחזית יום = []
תחזית לילה = []

locale = "in"

אפשרויות = אין
weatherxmldoc = ""

TEMP_FILEPATH_CURRENT = "/tmp/conkyForecast-c-LOCATION.pkl"
TEMP_FILEPATH_DAYFORECAST = "/tmp/conkyForecast-df-LOCATION.pkl"
TEMP_FILEPATH_NIGHTFORECAST = "/tmp/conkyForecast-nf-LOCATION.pkl"
EXPIRY_MINUTES = 30
DEFAULT_SPACING = u »«

def __init __ (עצמי, אפשרויות):

self.options = אפשרויות

אם self.options.locale == אין:
נסה:
# self.locale = locale.getdefaultlocale () [0] [0: 2]
self.locale = «es» # הגדר את השורה הזו כדי לאלץ את המקום הספרדי
# self.locale = "fr" # הגדר את השורה הזו כדי לאלץ את המקום הצרפתי
מלבד:
הדפס "מקום לא מוגדר"
else
# self.locale = self.options.locale
self.locale = «es» # הגדר את השורה הזו כדי לאלץ את המקום הספרדי
# self.locale = "fr" # הגדר את השורה הזו כדי לאלץ את המקום הצרפתי

אם self.options.verbose == נכון:
הדפס >> sys.stdout, "אזור מוגדר ל", self.locale

def getText (עצמי, רשימת צירים):
rc = ""
לצומת ברשימה:
אם node.nodeType == node.TEXT_NODE:
rc = rc + node.data
להחזיר rc

def getSpaces (עצמי, רווחים):
מחרוזת = u »»
אם רווחים == אין:
מחרוזת = עצמי.DEFAULT_SPACING
else
עבור i בטווח (0, רווחים + 1):
מחרוזת = מחרוזת + u »«
מחרוזת החזרה

def isNumeric (עצמי, מחרוזת):
נסה:
דמה = צף (מחרוזת)
להחזיר נכון
מלבד:
להחזיר שקר

def isConnectionAvailable (עצמי):
# ודא שאנחנו יכולים לגשת לשרת weather.com על ידי פתיחת url
נסה:
Usock = urllib2.urlopen ('http://xoap.weather.com')
Usock.close ()
להחזיר נכון
מלבד:
להחזיר שקר

def getBearingText (עצמי, נושא):
מיסב = צף (נושא)
אם נושא <11.25:
החזר u »N»
נושאת אליף <33.75:
החזר u »NNE»
נושאת אליף <56.25:
החזר u »NE»
נושאת אליף <78.75:
להחזיר אותך »JAN»
נושאת אליף <101.25:
החזר u »E»
נושאת אליף <123.75:
החזר u »ESE»
נושאת אליף <146.25:
החזר u »SE»
נושאת אליף <168.75:
החזר u »SSE»
נושאת אליף <191.25:
החזר u »S»
נושאת אליף <213.75:
החזר u »SSW»
נושאת אליף <236.25:
החזר u »SW»
נושאת אליף <258.75:
החזר u »WSW»
נושאת אליף <281.25:
החזר u »W»
נושאת אליף <303.75:
החזר u »WNW»
נושאת אליף <326.25:
החזר u »NW»
נושאת אליף <348.75:
החזר u »NNW»
else
החזר «לא מתאים"

def להמיר CeliusToFahrenheit (עצמי, temp):
החזר str (int (רצפה (((float (temp) * 9.0) / 5.0) +32)))

def convertKilometresToMiles (עצמי, dist):
החזר str (int (רצפה (float (dist) * 0.621371192)))

def convertMillibarsToInches (עצמי, mb):
החזר str (int (רצפה (float (mb) / 33.8582)))

def getTemplateList (עצמי, תבנית):

תבנית רשימה = []

עבור template_part בתבנית.split («{«):
אם template_part! = «»:
עבור template_part ב- template_part.split ("}"):
אם template_part! = «»:
templatelist.append (u »» + template_part)

להחזיר תבנית רשימה

def getOutputText (עצמי, סוג נתונים, יום התחלה, יום סיום, לילה, יום חול קצר, קיסרי, יחידות מסתור, רווחים):
#לְנַסוֹת:
פלט = u »»

# הגדירו את היחידות הנוכחיות לפלט
אם יחידות מסתור == שקר:
אם קיסרי == שקר:
tempunit = u »° C»
speedunit = u »קמ"ש»
יחידת לחץ = u »mb»
else
tempunit = u »° F»
speedunit = u »קמ"ש»
יחידת לחץ = u »ב»
else
tempunit = u »°»
speedunit = u »»
יחידת לחץ = u »»

אם יום התחלה == אין: # התנאים הנוכחיים

אם סוג נתונים == "DW":
אם self.locale == "is":
אם יום חול קצר == נכון:
פלט = WeatherText.day_of_week_short_es [self.current_conditions [0] .day_of_week]
else
פלט = 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]
else
פלט = WeatherText.day_of_week_fr [self.current_conditions [0] .day_of_week]
else
אם יום חול קצר == נכון:
פלט = WeatherText.day_of_week_short [self.current_conditions [0] .day_of_week]
else
פלט = WeatherText.day_of_week [self.current_conditions [0] .day_of_week]
elif datatype == "WF": גופן מזג אוויר #
פלט = WeatherText.conditions_weather_font [self.current_conditions [0] .condition_code]
elatatatype == "LT":
מחרוזת = self.current_conditions [0] .low
אם self.isNumeric (מחרוזת) == נכון:
אם קיסרי == נכון:
מחרוזת = self.convertCelsiusToFahrenheit (מחרוזת)
מחרוזת = מחרוזת + tempunit
פלט = מחרוזת
elif datatype == "HT":
string = self.current_conditions [0] .high
אם self.isNumeric (מחרוזת) == נכון:
אם קיסרי == נכון:
מחרוזת = self.convertCelsiusToFahrenheit (מחרוזת)
מחרוזת = מחרוזת + 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]
else
פלט = WeatherText.conditions_text [self.current_conditions [0] .condition_code]
סוג נתונים elif == "CT":
פלט = self.current_conditions [0] .condition_text
elif datatype == "PC":
מחרוזת = self.current_conditions [0] .precip
אם self.isNumeric (מחרוזת) == נכון:
מחרוזת = מחרוזת + u »%»
פלט = מחרוזת
סוג נתונים elif == "HM":
מחרוזת = self.current_conditions [0]. לחות
אם self.isNumeric (מחרוזת) == נכון:
מחרוזת = מחרוזת + u »%»
פלט = מחרוזת
סוג נתונים elif == "WD":
string = self.current_conditions [0] .wind_dir
אם self.isNumeric (מחרוזת) == נכון:
מחרוזת = self.getBearingText (מחרוזת)

אם self.locale == "is":
פלט = WeatherText.bearing_text_es [string]
elif self.locale == "fr":
פלט = WeatherText.bearing_text_fr [string]
else
פלט = מחרוזת

סוג הנתונים elif == "BF":
string = self.current_conditions [0] .wind_dir
אם self.isNumeric (מחרוזת) == נכון:
string = WeatherText.bearing_arrow_font [self.getBearingText (string)]
פלט = מחרוזת
סוג נתונים elif == "WS":
מחרוזת = self.current_conditions [0]. רוח_מהירות
אם self.isNumeric (מחרוזת) == נכון:
אם קיסרי == נכון:
מחרוזת = self.convertKilometresToMiles (מחרוזת)
מחרוזת = מחרוזת + מהירות יחידה
פלט = מחרוזת
סוג הנתונים elif == "WG":
מחרוזת = self.current_conditions [0]. רוח_משבצות
אם self.isNumeric (מחרוזת) == נכון:
אם קיסרי == נכון:
מחרוזת = self.convertKilometresToMiles (מחרוזת)
מחרוזת = מחרוזת + מהירות יחידה
פלט = מחרוזת
סוג נתונים elif == "CN":
פלט = self.current_conditions [0] .city
סוג elif == "SR":
פלט = self.current_conditions [0]. sunrise
elif datatype == "SS":
פלט = self.current_conditions [0]. שקיעה
סוג נתונים 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 (מחרוזת) == נכון:
אם קיסרי == נכון:
מחרוזת = self.convertMillibarsToInches (מחרוזת)
מחרוזת = מחרוזת + יחידת לחץ
פלט = מחרוזת
elif datatype == "BD":
פלט = self.current_conditions [0] .bar_desc
else
output = "\ n שגיאה: סוג נתונים לא ידוע מתבקש"

אחר: # נתוני תחזית

אם יום סוף == אין: # אם לא נקבע יום סיום השתמש ביום התחלה
יום סיום = יום התחלה

אם לילה == נכון: נדרשת תחזית לילה אחת

למספר יום בטווח (יום התחלה, יום סיום + 1):

אם סוג נתונים == "DW":
אם self.locale == "is":
אם יום חול קצר == נכון:
פלט = פלט + self.getSpaces (רווחים) + WeatherText.day_of_week_short_es [self.night_forecast [day_number] .day_of_week]
else
פלט = פלט + self.getSpaces (רווחים) + WeatherText.day_of_week_es [self.night_forecast [day_number] .day_of_week]
elif self.locale == "fr":
אם יום חול קצר == נכון:
פלט = פלט + self.getSpaces (רווחים) + WeatherText.day_of_week_short_fr [self.night_forecast [day_number]. day_of_week]
else
פלט = פלט + self.getSpaces (רווחים) + WeatherText.day_of_week_fr [self.night_forecast [day_number]. day_of_week]
else
אם יום חול קצר == נכון:
פלט = פלט + self.getSpaces (רווחים) + WeatherText.day_of_week_short [self.night_forecast [day_number]. day_of_week]
else
פלט = פלט + self.getSpaces (רווחים) + WeatherText.day_of_week [self.night_forecast [day_number] .day_of_week]
elif datatype == "WF": גופן מזג אוויר #
פלט = פלט + self.getSpaces (רווחים) + WeatherText.conditions_weather_font [self.night_forecast [day_number] .condition_code]
elatatatype == "LT":
string = self.night_forecast [day_number] .low
אם self.isNumeric (מחרוזת) == נכון:
אם קיסרי == נכון:
מחרוזת = self.convertCelsiusToFahrenheit (מחרוזת)
מחרוזת = מחרוזת + tempunit
פלט = פלט + self.getSpaces (רווחים) + מחרוזת

elif datatype == "HT":
string = self.night_forecast [day_number] .high
אם self.isNumeric (מחרוזת) == נכון:
אם קיסרי == נכון:
מחרוזת = self.convertCelsiusToFahrenheit (מחרוזת)
מחרוזת = מחרוזת + tempunit
פלט = פלט + self.getSpaces (רווחים) + מחרוזת
סוג נתונים elif == "CC":
אם self.locale == "is":
פלט = פלט + self.getSpaces (רווחים) + WeatherText.conditions_text_es [self.night_forecast [day_number] .condition_code]
elif self.locale == "fr":
פלט = פלט + self.getSpaces (רווחים) + WeatherText.conditions_text_fr [self.night_forecast [day_number] .condition_code]
else
פלט = פלט + self.getSpaces (רווחים) + WeatherText.conditions_text [self.night_forecast [day_number] .condition_code]
סוג נתונים elif == "CT":
פלט = פלט + self.getSpaces (רווחים) + self.night_forecast [day_number] .condition_text
elif datatype == "PC":
string = self.night_forecast [day_number] .precip
אם self.isNumeric (מחרוזת) == נכון:
מחרוזת = מחרוזת + u »%»
פלט = פלט + self.getSpaces (רווחים) + מחרוזת
סוג נתונים elif == "HM":
string = self.night_forecast [day_number]. לחות
אם self.isNumeric (מחרוזת) == נכון:
מחרוזת = מחרוזת + 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 [מחרוזת]
else
פלט = פלט + self.getSpaces (רווחים) + מחרוזת

סוג הנתונים elif == "BF":
פלט = פלט + self.getSpaces (רווחים) + WeatherText.bearing_arrow_font [self.night_forecast [day_number] .wind_dir]
סוג נתונים elif == "WS":
מחרוזת = self.night_forecast [יום_מספר]. רוח_מהירות
אם self.isNumeric (מחרוזת) == נכון:
אם קיסרי == נכון:
מחרוזת = self.convertKilometresToMiles (מחרוזת)
מחרוזת = מחרוזת + מהירות יחידה
פלט = פלט + self.getSpaces (רווחים) + מחרוזת
סוג הנתונים elif == "WG":
string = self.night_forecast [day_number] .wind_gusts
אם self.isNumeric (מחרוזת) == נכון:
אם קיסרי == נכון:
מחרוזת = self.convertKilometresToMiles (מחרוזת)
מחרוזת = מחרוזת + מהירות יחידה
פלט = פלט + self.getSpaces (רווחים) + מחרוזת
סוג נתונים elif == "CN":
פלט = פלט + self.getSpaces (רווחים) + self.night_forecast [יום_מספר] .city
סוג elif == "SR":
פלט = פלט + self.getSpaces (רווחים) + self.night_forecast [יום_מספר] .זריחה
elif datatype == "SS":
פלט = פלט + self.getSpaces (רווחים) + self.night_forecast [יום_מספר].
סוג נתונים elif == "MP":
פלט = פלט + self.getSpaces (רווחים) + self.night_forecast [יום_מספר]. Moon_phase
סוג נתונים elif == "MF":
פלט = פלט + self.getSpaces (רווחים) + WeatherText.conditions_moon_font [self.night_forecast [day_number] .moon_icon]
סוג נתונים elif == "BR":
פלט = פלט + self.getSpaces (רווחים) + self.night_forecast [יום_מספר] .bar_read
elif datatype == "BD":
פלט = פלט + self.getSpaces (רווחים) + self.night_forecast [יום_מספר] .bar_desc
else
output = "\ n שגיאה: סוג נתונים לא ידוע מתבקש"
לשבור

אחר: תחזית יום # רצויה

למספר יום בטווח (יום התחלה, יום סיום + 1):

אם סוג נתונים == "DW":
אם self.locale == "is":
אם יום חול קצר == נכון:
פלט = פלט + self.getSpaces (רווחים) + WeatherText.day_of_week_short_es [self.day_forecast [day_number] .day_of_week]
else
פלט = פלט + self.getSpaces (רווחים) + WeatherText.day_of_week_es [self.day_forecast [day_number] .day_of_week]
elif self.locale == "fr":
אם יום חול קצר == נכון:
פלט = פלט + self.getSpaces (רווחים) + WeatherText.day_of_week_short_fr [self.day_forecast [day_number] .day_of_week]
else
פלט = פלט + self.getSpaces (רווחים) + WeatherText.day_of_week_fr [self.day_forecast [day_number] .day_of_week]
else
אם יום חול קצר == נכון:
פלט = פלט + self.getSpaces (רווחים) + WeatherText.day_of_week_short [self.day_forecast [day_number] .day_of_week]
else
פלט = פלט + self.getSpaces (רווחים) + WeatherText.day_of_week [self.day_forecast [day_number] .day_of_week]
elif datatype == "WF": גופן מזג אוויר #
פלט = פלט + self.getSpaces (רווחים) + WeatherText.conditions_weather_font [self.day_forecast [day_number] .condition_code]
elatatatype == "LT":
string = self.day_forecast [day_number] .low
אם self.isNumeric (מחרוזת) == נכון:
אם קיסרי == נכון:
מחרוזת = self.convertCelsiusToFahrenheit (מחרוזת)
מחרוזת = מחרוזת + tempunit
פלט = פלט + self.getSpaces (רווחים) + מחרוזת
elif datatype == "HT":
string = self.day_forecast [day_number] .high
אם self.isNumeric (מחרוזת) == נכון:
אם קיסרי == נכון:
מחרוזת = self.convertCelsiusToFahrenheit (מחרוזת)
מחרוזת = מחרוזת + tempunit
פלט = פלט + self.getSpaces (רווחים) + מחרוזת
סוג נתונים elif == "CC":
אם self.locale == "is":
פלט = פלט + self.getSpaces (רווחים) + WeatherText.conditions_text_es [self.day_forecast [day_number] .condition_code]
elif self.locale == "fr":
פלט = פלט + self.getSpaces (רווחים) + WeatherText.conditions_text_fr [self.day_forecast [day_number] .condition_code]
else
פלט = פלט + self.getSpaces (רווחים) + WeatherText.conditions_text [self.day_forecast [day_number] .condition_code]
סוג נתונים elif == "CT":
פלט = פלט + self.getSpaces (רווחים) + self.day_forecast [day_number] .condition_text
elif datatype == "PC":
string = self.day_forecast [day_number] .precip
אם self.isNumeric (מחרוזת) == נכון:
מחרוזת = מחרוזת + u »%»
פלט = פלט + self.getSpaces (רווחים) + מחרוזת
סוג נתונים elif == "HM":
מחרוזת = תחזית יום יום [מספר_יום]. לחות
אם self.isNumeric (מחרוזת) == נכון:
מחרוזת = מחרוזת + 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 [מחרוזת]
else
פלט = פלט + 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 (מחרוזת) == נכון:
אם קיסרי == נכון:
מחרוזת = self.convertKilometresToMiles (מחרוזת)
מחרוזת = מחרוזת + מהירות יחידה
פלט = פלט + self.getSpaces (רווחים) + מחרוזת
סוג הנתונים elif == "WG":
string = self.day_forecast [day_number] .wind_gusts
אם self.isNumeric (מחרוזת) == נכון:
אם קיסרי == נכון:
מחרוזת = self.convertKilometresToMiles (מחרוזת)
מחרוזת = מחרוזת + מהירות יחידה
פלט = פלט + self.getSpaces (רווחים) + מחרוזת
סוג נתונים elif == "CN":
פלט = פלט + self.getSpaces (רווחים) + self.day_forecast [day_number] .city
סוג elif == "SR":
פלט = פלט + self.getSpaces (רווחים) + self.day_forecast [יום_מספר] .זריחה
elif datatype == "SS":
פלט = פלט + self.getSpaces (רווחים) + self.day_forecast [יום_מספר].
סוג נתונים elif == "MP":
פלט = פלט + self.getSpaces (רווחים) + self.day_forecast [day_number] .moon_phase
סוג נתונים elif == "MF":
פלט = פלט + self.getSpaces (רווחים) + WeatherText.conditions_moon_font [self.day_forecast [day_number] .moon_icon]
סוג נתונים elif == "BR":
פלט = פלט + self.getSpaces (רווחים) + self.day_forecast [day_number] .bar_read
elif datatype == "BD":
פלט = פלט + self.getSpaces (רווחים) + self.day_forecast [day_number] .bar_desc
else
פלט = u »\ n שגיאה: סוג נתונים לא ידוע מתבקש»
לשבור

פלט = u »» + פלט.סטריפ (u »«) # לאבד רווחים מובילים / נגררים
תפוקת החזר

#מלבד:
#print "getOutputText: שגיאה לא צפויה:", sys.exc_info () [0]

def getOutputTextFromTemplate (עצמי, תבנית):
#לְנַסוֹת:

# מקשים לנתוני תבנית
DATATYPE_KEY = "–datatype ="
STARTDAY_KEY = "–startday ="
ENDDAY_KEY = "–endday ="
NIGHT_KEY = "–לילה"
SHORTWEEKDAY_KEY = "- יום שבוע קצר"
IMPERIAL_KEY = "–קיסרי"
HIDEUNITS_KEY = "–מכשירי הסתרה"
SPACES_KEY = "–spaces ="

פלט = u »»

optionfound = שקר

# טען את הקובץ
נסה:
fileinput = open (self.options.template)
תבנית = fileinput.read ()
fileinput.close ()
מלבד:
output = u »קובץ התבנית לא נמצא!»

תבנית רשימה = self.getTemplateList (תבנית)

# מאפשר לעבור על רשימת התבניות ולקבוע את הפלט עבור כל פריט שנמצא
עבור i בטווח (0, len (תבנית רשימה) -1):

pos = תבנית רשימה [i]. find (DATATYPE_KEY)
אם pos! = -1:
optionfound = נכון
pos = pos + len (DATATYPE_KEY)
datatype = תבנית רשימה [i] [pos: pos + 4]. סטריפ («}»). רצועה («{«). רצועה («-«). רצועה (»«)
else
סוג נתונים = אין

pos = תבנית רשימה [i] .find (STARTDAY_KEY)
אם pos! = -1:
optionfound = נכון
pos = pos + len (STARTDAY_KEY)
startday = int (תבנית רשימה [i] [pos: pos + 4]. סטריפ ("}"). רצועה ("{"). רצועה ("-"). רצועה (""))
else
יום התחלה = אין

pos = תבנית רשימה [i] .find (ENDDAY_KEY)
אם pos! = -1:
optionfound = נכון
pos = pos + len (ENDDAY_KEY)
endday = int (תבנית רשימה [i] [pos: pos + 4]. strip ("}"). strip ("{"). strip ("-"). strip (""))
else
יום סיום = אין

pos = תבנית רשימה [i] .find (NIGHT_KEY)
אם pos! = -1:
optionfound = נכון
לילה = נכון
else
לילה = שקר

pos = תבנית רשימה [i] .find (SHORTWEEKDAY_KEY)
אם pos! = -1:
optionfound = נכון
יום חול קצר = נכון
else
יום חול קצר = שקר

pos = תבנית רשימה [i] .find (IMPERIAL_KEY)
אם pos! = -1:
optionfound = נכון
אימפריאלי = נכון
else
אימפריאלי = שקר

pos = תבנית רשימה [i] .find (HIDEUNITS_KEY)
אם pos! = -1:
optionfound = נכון
מסתתר = נכון
else
יחידות מסתתר = שקר

pos = תבנית רשימה [i] .find (SPACES_KEY)
אם pos! = -1:
optionfound = נכון
pos = pos + len (SPACES_KEY)
רווחים = int (תבנית רשימה [i] [pos: pos + 4]. סטריפ («}»). רצועה («{«). רצועה («-«). רצועה (»«))
else
רווחים = 1

אם optionfound == נכון:
תבנית רשימה [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)

if self.isConnectionAvailable () == שקר:
אם os.path.exists (file_path_current):
RefetchData = שקר
אחר: # אין חיבור, אין מטמון, בנג!
הדפס "אין חיבור לאינטרנט ואין נתוני מזג אוויר במטמון."
elif self.options.refetch == נכון:
RefetchData = נכון
else
# האם הנתונים צריכים להיות אחזרים שוב?
אם 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 = נכון
else
RefetchData = שקר
else
RefetchData = נכון

# הבא את נתוני התנאים הנוכחיים, מהאתר או על ידי 'ביטול הבחירה'
אם RefetchData == נכון:

# השג את נתוני התנאים הנוכחיים משירות 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 & יחידה = מ '
אם 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]
הדפס "לא ניתן ליצור קשר עם מקור מזג האוויר לתנאים הנוכחיים"

# אמור למשתמש אם המיקום רע ...
נמצא = xml.find ("ניתן מיקום לא חוקי")
אם נמצא! = -1:
הדפס "סיפק מיקום לא חוקי"

# לחקור נתוני מזג אוויר, לטעון למבנה הכיתה ולהחמיר אותם
נסה:

# הכינו רשימות נתוני מזג אוויר
self.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 »לא רלוונטי»
sunrise_n = location_n.getElementsByTagName ('sunr') [0]
זריחה = self.getText (sunrise_n.childNodes)
sunset_n = location_n.getElementsByTagName ('שמש') [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 ('משב') [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)
moist_n = current_condition_n.getElementsByTagName ('hmid') [0]
לחות = self.getText (לחות_נ.צילדות)
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 = נתוני מזג אוויר (יום_שבוע, זמן_זמן_זמן_זמן_זמן_זמן_זמן_זמן_זמן_זמן_זמן הנוכחי, גשם, לחות, כיוון רוח, מהירות רוח, משבי רוח, עיר, זריחה, שקיעה, שלב ירח, סמל ירח, קריאת בר, בר_דסק)
self.current_conditions.append (current_conditions_data)

# אסוף נתוני תחזית
bar_read = u »לא מתאים»
bar_desc = u »N / A»
moon_phase = u »N / A»
moon_icon = u »na»
forecast_n = weather_n.getElementsByTagName ('dayf') [0]
day_nodes = forecast_n.getElementsByTagName ('יום')

ליום בצמתים_יום:
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 ('שמש') [0]
שקיעה = self.getText (sunset_n.childNodes)

נתונים ספציפיים לחיזוי יום
daytime_n = day.getElementsByTagName ('חלק') [0] יום אחד
condition_code_n = daytime_n.getElementsByTagName ('סמל') [0]
condition_code = self.getText (condition_code_n.childNodes)
condition_n = daytime_n.getElementsByTagName ('t') [0]
תנאי = self.getText (condition_n.childNodes)
precip_n = daytime_n.getElementsByTagName ('ppcp') [0]
נפילה = self.getText (precip_n.childNodes)
moist_n = daytime_n.getElementsByTagName ('hmid') [0]
לחות = self.getText (לחות_נ.צילדות)
wind_n = daytime_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 ('משב') [0]
wind_gusts = self.getText (wind_gusts_n.childNodes)
day_forecast_data = מזג אוויר
self.day_forecast.append (day_forecast_data)

# ספציפי תחזית לילה
daytime_n = day.getElementsByTagName ('חלק') [1] # לילה
condition_code_n = daytime_n.getElementsByTagName ('סמל') [0]
condition_code = self.getText (condition_code_n.childNodes)
condition_n = daytime_n.getElementsByTagName ('t') [0]
תנאי = self.getText (condition_n.childNodes)
precip_n = daytime_n.getElementsByTagName ('ppcp') [0]
נפילה = self.getText (precip_n.childNodes)
moist_n = daytime_n.getElementsByTagName ('hmid') [0]
לחות = self.getText (לחות_נ.צילדות)
wind_n = daytime_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 ('משב') [0]
wind_gusts = self.getText (wind_gusts_n.childNodes)
לילה_תחזית_נתונים = WeatherData (יום_שבוע, זמן נמוך, זמן גבוה, מצב קוד, מצב, משקעים, לחות, כיוון רוח, מהירות רוח, משבי רוח, עיר, זריחה, שקיעה, שלב הירח, ירח_אייקון, קריאת בר, בר_דסק)
self.night_forecast.append (data_forecast_data)

# בחר את הנתונים בפעם הבאה!
fileoutput = open (file_path_current, 'w')
pickle.dump (self.current_conditions, output file)
fileoutput.close ()

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

fileoutput = open (file_path_nightforecast, 'w')
pickle.dump (self.night_forecast, פלט קבצים)
fileoutput.close ()

מלבד:
הדפס "fetchData: שגיאה לא צפויה:", sys.exc_info () [0]
הדפס "לא ניתן לחקור את נתוני מזג האוויר"

אחר: # הבא נתוני מזג אוויר מקבצי מחלקה כבושים
אם self.options.verbose == נכון:
הדפס >> sys.stdout, «אחזור נתוני מזג אוויר מהקובץ:«, file_path_current

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

אם self.options.verbose == נכון:
הדפס >> sys.stdout, "אחזור נתוני תחזית יום מקבצים:", תחזית file_path_day, file_path_night

fileinput = open (file_path_dayforecast, 'r')
self.day_forecast = pickle.load (הקלט קובץ)
fileinput.close ()

אם self.options.verbose == נכון:
הדפס >> sys.stdout, «אחזור נתוני תחזית יום מקבצים:«, תחזית file_path_night, file_path_night

fileinput = open (file_path_nightforecast, 'r')
self.night_forecast = pickle.load (הקלט קובץ)
fileinput.close ()

def פלט נתונים (עצמי):
#לְנַסוֹת:

אם self.options.template! = אין:

פלט = self.getOutputTextFromTemplate (self.options.template)

else

פלט = 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)

פלט הדפסה. encode ("utf-8")

#מלבד:
#print «outputData: שגיאה לא צפויה:«, sys.exc_info () [0]

אם __name__ == "__main__":

מנתח = CommandLineParser ()
(options, args) = parser.parse_args ()

אם options.verbose == נכון:
הדפס >> sys.stdout, "מיקום:", options.location
הדפס >> sys.stdout, "imperial:", options.imperial
הדפס >> sys.stdout, "datatype:", options.datatype
הדפס >> sys.stdout, "לילה:", options.night
הדפס >> sys.stdout, "יום התחלה:", options.startday
הדפס >> sys.stdout, "יום סוף:", options.endday
הדפס >> sys.stdout, "spaces:", options.spaces
הדפס >> sys.stdout, "verbose:", options.verbose
הדפס >> sys.stdout, "retetch:", options.refetch

# צור אובייקט מזג אוויר עולמי חדש
מזג האוויר = GlobalWeather (אפשרויות)
weather.fetchData ()
weather.outputData ()

אנו יוצרים את הקובץ ~ / Conky / scripts / myweather.template

gedit ~ / Conky / scripts / myweather.template

אנו מדביקים את הדברים הבאים בפנים:

{–Datatype = DW –dayday = 1}: {–datatype = CC –dayday = 1}
{–Datatype = HT –startday = 1} / {–datatype = LT –dayday = 1} רוח מ {–datatype = WD –dayday = 1} ל- {–datatype = WS – startday = 1}
לחות: {–datatype = HM – startday = 1} משקעים: {–datatype = PC –startday = 1}
זריחה: {–datatype = SR –dayday = 1} שקיעה: {–datatype = SS –dayday = 1}
————————————————
{–Datatype = DW –dayday = 2}: {–datatype = CC –dayday = 2}
{–Datatype = HT –startday = 2} / {–datatype = LT –dayday = 2} רוח מ {–datatype = WD –dayday = 2} ל- {–datatype = WS – startday = 2}
לחות: {–datatype = HM – startday = 2} משקעים: {–datatype = PC –startday = 2}
זריחה: {–datatype = SR –dayday = 2} שקיעה: {–datatype = SS –dayday = 2}
————————————————
{–Datatype = DW –dayday = 3}: {–datatype = CC –dayday = 3}
{–Datatype = HT –startday = 3} / {–datatype = LT –dayday = 3} רוח מ {–datatype = WD –dayday = 3} ל- {–datatype = WS – startday = 3}
לחות: {–datatype = HM – startday = 3} משקעים: {–datatype = PC –startday = 3}
זריחה: {–datatype = SR –dayday = 3} שקיעה: {–datatype = SS –dayday = 3}
————————————————
{–Datatype = DW –dayday = 4}: {–datatype = CC –dayday = 4}
{–Datatype = HT –startday = 4} / {–datatype = LT –dayday = 4} רוח מ {–datatype = WD –dayday = 4} ל- {–datatype = WS – startday = 4}
לחות: {–datatype = HM – startday = 4} משקעים: {–datatype = PC –startday = 4}
זריחה: {–datatype = SR –dayday = 4} שקיעה: {–datatype = SS –dayday = 4}

אנו יוצרים את הקובץ ~ / Conky / scripts / mail / conkyEmail.py (עלינו ליצור את תיקיית הדואר)

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

ואנחנו מדביקים את הדברים הבאים בפנים:

יבוא os
ייבוא ​​מחרוזת

# הזן את שם המשתמש והסיסמה שלך למטה בהצעות מחיר כפולות
# למשל. שם משתמש = »שם משתמש» וסיסמה = »סיסמה»
שם משתמש = »YOUR_USUARIO_SINARROBA«
סיסמא = »המפתח שלך«

com = »wget -O - https: //» + שם משתמש + »:» + סיסמה + »@ mail.google.com / mail / feed / atom – no-check-certificate»

temp = os.popen (com)
msg = temp.read ()
אינדקס = string.find (msg, » »)
index2 = string.find (msg, » »)
fc = int (msg [index + 11: index2])

אם fc == 0:
הדפס "0 חדש"
else
הדפסת str (fc) + »חדש»

אז עכשיו יש לכם 7 קבצים:

בתיקיה: ~
-> .startconky << - הפוך להפעלה

בתיקיה: ~ / Conky
-> משכנע
-> תחזית קונקי
-> קונקימייל

ובתיקייה: ~ / Conky / scripts
-> conkyForecast.py << - הפוך להפעלה
-> myweather.template

ובתיקייה: ~ / Conky / scripts / mail
conkyEmail.py << - הפוך להפעלה

וזהו, הבהרות, איפה כתוב / home / user / ... שם המשתמש שלך הולך ובחלק אליו עוברים נתוני Gmail, הדגשתי בצבעים איפה אתה צריך לשים את הנתונים שלך.

להרוג את תהליך הקונקי לכתוב למסוף

קונלי

כדי להריץ קונקי לכתוב למסוף

./.startconky

ברגע שיש לך הכל מותאם, אם אתה רוצה conky להתחיל כל מפגש

מערכת -> העדפות -> מושבים ובתוכניות הפעלה אנו מוסיפים אותה

בשם אנחנו יכולים לכתוב את Conky, לפי סדר ./.startconky עם זה זה יתחיל בכל פעם שתפעיל את המחשב.

זהו, אני מקווה שזה יעזור לך.


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.