Conky ، تنظیمات من

دیروز Fecfactor از من خواست که پیکربندی conky را که در تصویر زیر نشان می دهم منتشر کنم

همانطور که مشاهده می کنید 3 کانکی وجود دارد که از طریق یک اسکریپت اجرا می شوند ، پیکربندی همان بر اساس است این پست ارسال شده توسط کاربر Bruce M. در انجمن های اوبونتو-آر با برخی تغییرات در نامه نویسی نامه الکترونیکی ، که در مورد من برای Gmail است.

در پست مرجع توسط بروس به خوبی توضیح داده شده است ، اما همچنین به عنوان یک کمک حافظه برای من ، من مراحل دنبال کردن و کد conkys خود را برای هر کسی که داشته باشد کپی می کنم.

خوب ، البته ما باید conky ، curl و python را نصب کنیم تا در یک کنسول تایپ کنیم:

sudo apt-get پایتون حلقوی حلقوی را نصب کنید

منبع weather.ttf و arrows.ttf اینجاست. منبع moon.ttf اینجاست پس از بارگیری ، باید آنها را در / usr / share / قلم ها کپی کنید

بیایید اکنون اسکریپت خود را به نام create / 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 استفاده می کنم ، اگر آن را ندارید ، هرچه می خواهید جایگزین کنید.

ما به آنچه در زیر می آید می چسبیم

پس زمینه شماره
خود_پنجره بله
ویندوز_شفاف خود بله
self_window_ نکات تزئین نشده ، زیر ، چسبنده ، skip_taskbar ، skip_pager
رنگ_پنجره_خود مشکی
Double_buffer بله
use_spacer باقی مانده است
use_xft بله
کالیبراسیون قلم: اندازه = 9
کالیبره xftfont: اندازه = 9
xftalpha 0.5
update_interval 5.0
اگر می خواهید همه متن با حروف بزرگ باشد ، حرف بزرگ # را روی بله تنظیم کنید
3
حاشیه_ حاشیه 9
عرض_حاشیه 10
پیش فرض_رنگ سفید
پیش فرض_رنگ مشکی
پیش فرض_ سایه_رنگ مشکی
رنگ 0 فیروزه ای
1 رنگ روشن
رنگ 2 نارنجی
رنگ 3 زرد
رنگ 4 گندم
رنگ 5 سفید
رنگ 6 سفید
رنگ 7 سفید
رنگ 8 سفید
رنگ 9 سفید
تراز بندی بالا_راست # یا بالا_ چپ ، پایین_ چپ ، پایین_ راست
فاصله_خ 10
فاصله 35
text_buffer_size 128 # از 1024 برای پیش بینی استفاده کنید
no_buffers yes # بافر سیستم پرونده را از حافظه استفاده شده کم کنید؟
مرزهای رسم هیچ
draw_outline yes # متن را در صورت مثبت تکثیر می کند
سایه_های بکشید بله # سایه رنگ سیاه

TEXT
$ {font calibri: size = 12} $ {alignc} $ {color1} $ sysname $ kernel on $ machine} $ color $ font
$ {font calibri: size = 12} $ {alignc} $ {color2} $ {exec whoami} @ $ nodename $ color $ font
$ {color0} $ {hr 1} $ color
$ {font calibri: size = 20} $ {alignc} $ {time٪ H:٪ M} $ font
$ {font calibri: size = 12} $ {color1} $ {alignc} $ {time٪ A،٪ d٪ b. ٪ Y} $ color $ قلم
$ {color3} UpTime: $ {alignr 2} $ uptime $ color
$ {color0} $ {hr 1} $ color
$ {voffset 5} $ {color2} CPU: $ {alignc} $ color $ running_proceses $ {color1} / $ color $ پردازش $ {alignr 2} $ {color2} $ {cpubar cpu0 14,80} $ color
$ {color1} $ {voffset -16} $ {alignr 5} $ cpu٪ $ color
$ {voffset 2} $ {color1} متوسط ​​بار ($ {color3} حداقل $ {color1}): $ {alignr 2} $ {color3} 1: $ color $ {loadavg 1} $ {color3} 5: $ color $ {loadavg 2} $ {color3} 15: $ color $ {loadavg 3}
$ {voffset 5} $ {color2} RAM: $ color $ mem $ {color2} / $ color $ memmax $ {alignr 2} $ {color2} $ {membar 14,80} $ color
$ {color1} $ {voffset -16} $ {alignr 5} $ memperc٪ $ color
$ {voffset 2} $ {color1} بافر: $ color $ {buffers} $ {alignr 2} $ {color1} ذخیره شده: $ color $ {cached}
$ {voffset 5} $ {color2} SWAP: $ color $ swap $ {color2} / $ color $ {swapmax} $ {alignr 2} $ {color2} $ {swapbar 14,80} $ color
$ {color1} $ {voffset -16} $ {alignr 5} $ swapperc٪
$ {color0} $ {hr 1} $ color
$ {voffset 5} $ {color2} اطلاعات HD $ $ {color1} - $ color رایگان $ {color1} - استفاده شده - $ {color2} کل
$ {voffset 5} $ {color1} Root: $ 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} $ color
$ {color1} از: $ color بوینس آیرس ، آرژانتین
$ {color1} Lat: $ {color2} 34 ° 35'S $ {color1} طولانی: $ {color2} 58 ° 21'W $ {color1} Alt: $ {color2} 25 m $ color
$ {voffset 5} $ {color2} $ {font calibri: size = 12} امروز: $ font $ {color3} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = CC} $ رنگ $ {alignr 2} $ {color1} ST: $ {color2} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –dataype = 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 –dataype = HT} $ font
$ {alignc 20} $ {voffset -30} $ {font Arrows: size = 20} $ {color4} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = BF} $ color $ قلم
$ {alignc 10} $ {voffset 5} $ {color4} Wind: $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –dataype = WS} $ color
$ {color1} رطوبت: $ {color3} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = HM} $ {alignr 2} $ {color1} بارش: $ {color3} $ { execi 3600 python ~ / Conky / اسکریپت ها / conkyForecast.py –location = ARBA0009 –dataype = PC} $ color
$ {alignc} $ {color1} Pressure: $ {color3} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –dataype = BR} - $ {color3} $ {execi 3600 python ... /scripts/conkyForecast.py –location = ARBA0009 –dataype = BD} $ رنگ
$ {color4} $ {hr} $ color
$ {color1} طلوع آفتاب: $ {color3} $ {execi 3600 python / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = SR} $ {alignr 2} $ {color1} غروب آفتاب: $ {color3} $ { execi 3600 python ~ / Conky / اسکریپت ها / conkyForecast.py –location = ARBA0009 –dataype = SS} $ color
$ {voffset 15} $ {color1} Moon: $ {color4} $ {alignr 2} $ {color3} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = MP} $ color
$ {voffset -20} $ {offset 80} $ {color4} $ {font فازهای ماه: size = 20} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –datatype = MF} $ font $ font رنگ $
$ {color0} $ {hr} $ color
$ {voffset 5} $ {color2} IP: $ {alignc} $ color $ {addr eth0}
$ {color1} پایین: $ color $ {downspeed eth0} k / s $ {alignr 2} $ {color1} بالاتر: $ color $ {upspeed eth0} k / s
$ {color1} Total: $ color $ {totaldown eth0} $ {alignr 2} $ {color1} Total: $ color $ {totalup eth0}
$ {color1} ورودی: $ color $ {tcp_portmon 1 32767 count} $ {color1} خروجی: $ color $ {tcp_portmon 32768 61000 شمارش} $ {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 خدمات 0}
$ {tcp_portmon 32768 61000 rhost 1} $ {alignr 2} $ {tcp_portmon 32768 61000 خدمات 1)
$ {tcp_portmon 32768 61000 rhost 2} $ {alignr 2} $ {tcp_portmon 32768 61000 خدمات 2)
$ {tcp_portmon 32768 61000 rhost 3} $ {alignr 2} $ {tcp_portmon 32768 61000 خدمات 3)
$ {tcp_portmon 32768 61000 rhost 4} $ {alignr 2} $ {tcp_portmon 32768 61000 خدمات 4)
$ {tcp_portmon 32768 61000 rhost 5} $ {alignr 2} $ {tcp_portmon 32768 61000 خدمات 5} $ رنگ

ما پرونده create / Conky / conkyforecast را ایجاد می کنیم

gedit ~ / Conky / conkyforecast

و موارد زیر را داخل آن چسباندیم

پس زمینه شماره
خود_پنجره بله
ویندوز_شفاف خود بله
self_window_ نکات تزئین نشده ، زیر ، چسبنده ، skip_taskbar ، skip_pager
رنگ_پنجره_خود مشکی
Double_buffer بله
use_spacer باقی مانده است
use_xft بله
کالیبراسیون قلم: اندازه = 8
کالیبره xftfont: اندازه = 8
xftalpha 0.5
update_interval 5.0
اگر می خواهید همه متن با حروف بزرگ باشد ، حرف بزرگ # را روی بله تنظیم کنید
3
حاشیه_ حاشیه 9
عرض_حاشیه 10
پیش فرض_رنگ سفید
پیش فرض_رنگ مشکی
پیش فرض_ سایه_رنگ مشکی
رنگ 0 فیروزه ای
1 رنگ روشن
رنگ 2 نارنجی
رنگ 3 زرد
رنگ 4 گندم
رنگ 5 سفید
رنگ 6 سفید
رنگ 7 سفید
رنگ 8 سفید
رنگ 9 سفید
تراز بندی پایین_سمت # یا بالا_ چپ ، پایین_ چپ ، پایین_ راست
فاصله_خ 10
فاصله 35
text_buffer_size 1024 # از 1024 برای پیش بینی استفاده کنید
no_buffers yes # بافر سیستم پرونده را از حافظه استفاده شده کم کنید؟
مرزهای رسم هیچ
draw_outline yes # متن را در صورت مثبت تکثیر می کند
سایه_های بکشید بله # سایه رنگ سیاه

TEXT
$ {color4} $ {font calibri: size = 11} پیش بینی تمدید $ font $ color
$ {color0} $ {hr} $ color
$ {color4} $ {font calibri: size = 9} $ {execi 3600 python ~ / Conky / scripts / conkyForecast.py –location = ARBA0009 –template = / home / user / Conky / اسکریپت ها / myweather.template} $ font $ رنگ

ما پرونده ~ / Conky / conkymail را ایجاد می کنیم

gedit ~ / Conky / پیام کوتاه

موارد زیر را در پرونده وارد می کنیم

پس زمینه شماره
خود_پنجره بله
ویندوز_شفاف خود بله
self_window_ نکات تزئین نشده ، زیر ، چسبنده ، skip_taskbar ، skip_pager
رنگ_پنجره_خود مشکی
Double_buffer بله
use_spacer باقی مانده است
use_xft بله
کالیبراسیون قلم: اندازه = 8
کالیبره xftfont: اندازه = 8
xftalpha 0.5
update_interval 5.0
اگر می خواهید همه متن با حروف بزرگ باشد ، حرف بزرگ # را روی بله تنظیم کنید
3
حاشیه_ حاشیه 9
عرض_حاشیه 10
پیش فرض_رنگ سفید
پیش فرض_رنگ مشکی
پیش فرض_ سایه_رنگ مشکی
رنگ 0 فیروزه ای
1 رنگ روشن
رنگ 2 نارنجی
رنگ 3 زرد
رنگ 4 گندم
رنگ 5 سفید
رنگ 6 سفید
رنگ 7 سفید
رنگ 8 سفید
رنگ 9 سفید
تراز بندی پایین_سمت # یا بالا_ چپ ، پایین_ چپ ، پایین_ راست
فاصله_خ 565
فاصله 35
text_buffer_size 128 # از 1024 برای پیش بینی استفاده کنید
no_buffers yes # بافر سیستم پرونده را از حافظه استفاده شده کم کنید؟
مرزهای رسم هیچ
draw_outline yes # متن را در صورت مثبت تکثیر می کند
سایه_های بکشید بله # سایه رنگ سیاه

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

ما یک پرونده در ~ / Conky / scripts / conkyForecast.py ایجاد می کنیم (ما باید پوشه اسکریپت ها را ایجاد کنیم)

gedit ~ / Conky / اسکریپت ها / conkyForecast.py

#! / usr / bin / python
# - * - کدگذاری: utf-8 - * -
######################################################## #################################
# conkyForecast.py یک اسکریپت پایتون (نه چندان) ساده (دیگر) برای جمع آوری است
# جزئیات آب و هوای فعلی برای استفاده در کانکی.
#
# نویسنده: کایوالاگی
# ایجاد شده: 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 گزینه -shortweekday اضافه شده ، اگر در روز هفته داده شود نوع داده به 3 حرف کوتاه می شود
# 21/04/2008 گزینه های محلی ثابت برای تولید پیش بینی
# 21/04/2008 گزینه الگوی اضافه شده برای اجازه دادن به خروجی سفارشی با استفاده از تنها یک تماس اجرایی
# 21/04/2008 گزینه –hideunits برای حذف مثلاً mph و C از خروجی اضافه شد
# 23/04/2008 گزینه Imperial از الگو حذف شد ، این باید به عنوان یک گزینه استاندارد در تماس اسکریپت تنظیم شود و در پرونده الگو استفاده نشود.
# 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 تبدیل واحد برای فشار سنج از mb به اینچ (امپریال)
# 09/05/2008 متن به روز شده اسپانیایی - با تشکر بروس م
# 10/05/2008 اطلاعات محلی فرانسه اضافه شد - با تشکر benpaka
# 12/05/2008 به جای خروجی NSEW از WD (جهت باد) نوع داده جدید BF (تحمل قلم) اضافه شد تا یک کاراکتر پیکان (با قلم Arrow.ttf استفاده کنید)
# 12/05/2008 به روز شده خروجی WD مخصوص محلی است ، در حال حاضر از انگلیسی و اسپانیایی پیش فرض پشتیبانی می کند - با تشکر Bruce M
# 18/05/2008 نوع داده جدید MF (قلم ماه) را برای ارائه یک شخصیت قلم ماه اضافه کرد (نویسه نادرست است و هنوز فونت اختصاصی ندارد).
# 21/05/2008 برای شرایط فعلی گزینه –datatype = LT اکنون دمای "احساس" را نشان می دهد تا دمای فعلی
#
# همه چیز:
# پرونده های pkl را در یک فایل / کلاس ادغام کنید
# بر اساس داده های نماد ماه ، قلم هوا را بر اساس خروجی فاز ماه اضافه کنید
# ؟؟؟ آیا احتیاج بیشتری وجود دارد؟

وارد کردن sys ، os ، socket ، urllib2 ، datetime ، time
از xml.dom واردات minidom
از واردات آمار *
از optparse واردات OptionParser
وارد کردن محلی
وارد کردن متن
ترشی وارد کنید
از واردات ریاضی *

APP = »conkyForecast.py»
DIR = os.path.dirname (__file__) + '/ locale'
gettext.bindtextdomain (برنامه ، DIR)
gettext.textdomain (APP)
_ = gettext.gettext

کلاس CommandLineParser:

تجزیه کننده = هیچ

def __init __ (خود):

self.parser = OptionParser ()
self.parser.add_option («- l» ، »- مکان» ، dest = »مکان» ، پیش فرض = »UKXX0103 ، نوع =» رشته »، metavar =» CODE »، راهنما = u» کد مکان برای داده های آب و هوا [ پیش فرض:٪ پیش فرض] ، برای تعیین کد مکان خود بر اساس نام شهر از آدرس زیر استفاده کنید: http://xoap.weather.com/search/search؟place=Norwich »)
self.parser.add_option ("- d" ، "- نوع داده" ، dest = "نوع داده" ، پیش فرض = "HT" ، نوع = "رشته" ، metavar = "DATATYPE" ، راهنما = u "[پیش فرض:٪ پیش فرض] گزینه های نوع داده عبارتند از: DW (Day of Week) ، WF (Weather Font Output) ، LT (پیش بینی: دمای پایین ، جریان: احساس دما مانند) ، HT (پیش بینی: دمای بالا ، جریان: دمای فعلی) ، CC (جریان) شرایط) ، CT (متن شرایط) ، رایانه شخصی (احتمال بارش) ، HM (رطوبت) ، WD (جهت باد) ، WS (سرعت باد) ، WG (وزش باد) ، CN (نام شهر) ، SR (طلوع آفتاب) ، SS (غروب خورشید) ، MP (فاز ماه) ، MF (قلم ماه) ، BR (خواندن فشارسنج) ، BD (شرح فشارسنج). هنگام استفاده از الگوها در خط فرمان قابل استفاده نیست. »)
self.parser.add_option («- s» ، »- startday» ، dest = »startday» ، نوع = »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 ، متاوار = »تعداد» ، راهنما = u »[پیش فرض:٪ پیش فرض] تعریف می کند تعداد فاصله بین خروجی بازه. هنگام استفاده از الگوها در خط فرمان قابل استفاده نیست. »)
self.parser.add_option («- t» ، »- الگو» ، dest = »الگو» ، نوع = »رشته» ، metavar = «FILE» ، راهنما = u »یک فایل الگو را برای تولید خروجی در یک تماس تعریف کنید. A مورد قابل نمایش در پرونده به شکل {–datatype = HT –startday = 1} است. گزینه های زیر در هر مورد امکان پذیر است: –dataype ، –startday ، –endday ، –night ، –shortweekday ، –imperial ، –hideunits ، - فضاها. توجه داشته باشید که فرم های کوتاه گزینه ها در حال حاضر پشتیبانی نمی شوند! هیچ یک از این گزینه ها هنگام استفاده از الگوها در خط فرمان قابل استفاده نیستند. »)
self.parser.add_option («- L» ، »- locale» ، dest = »locale» ، نوع = »رشته» ، help = u »جایگزین محلی سیستم برای خروجی زبان می شود (en = انگلیسی ، es = اسپانیایی ، fr = فرانسوی ، بیشتر می آیند) »)
self.parser.add_option ("- من" ، "- امپریالیستی" ، dest = "امپریالیستی" ، پیش فرض = نادرست ، اقدام = "فروشگاه واقعی" ، راهنما = تو "درخواست واحد های سلطنتی ، اگر خروجی حذف شده در متریک باشد. در خط فرمان هنگام استفاده از الگوها. »)
self.parser.add_option («- n» ، »- شب» ، dest = »شب» ، پیش فرض = نادرست ، اقدام = »store_true» ، راهنما = u »خروجی را به داده شب تغییر دهید ، اگر حذف نشود ، خروجی روز خارج می شود. هنگام استفاده از الگوها در خط فرمان قابل استفاده نیست. »)
self.parser.add_option («- w» ، »- shortweekday» ، dest = »shortweekday» ، پیش فرض = نادرست ، اقدام = »store_true» ، راهنما = u »نوع داده روز روز را به 3 حرف کوتاه کنید. در خط فرمان هنگام استفاده از الگوها. »)
self.parser.add_option («- شما» ، »- واحدهای پنهان» ، dest = »واحدهای پنهان» ، پیش فرض = نادرست ، اقدام = »فروشگاه واقعی» ، help = u »مخفی کردن واحدهایی مانند mph یا C ، نمادهای درجه (°) هستند هنوز نشان داده شده است. هنگام استفاده از الگوها در خط فرمان قابل استفاده نیست. ")
self.parser.add_option ("- v" ، "- verbose" ، dest = "verbose" ، پیش فرض = False ، action = "store_true" ، راهنما = u "درخواست خروجی پر زرق و برق دارید ، ایده خوبی نیست که از طریق کانکی استفاده کنید!") )
self.parser.add_option ("- r" ، "- refetch"، dest = "refetch"، default = False، action = "store_true"، help = u "واکشی داده بدون توجه به انقضا داده")

دکمه های تجزیه پارس (خود):
(گزینه ها ، آرک ها) = self.parser.parse_args ()
بازگشت (گزینه ها ، قوس ها)

def print_help (خود):
بازگشت self.parser.print_help ()

کلاس WeatherData:
def __init __ (خود ، روز_هفته ، کم ، زیاد ، کد_شرایط ، متن_شرایط ، باران ، رطوبت ، باد_دیر ، سرعت_ باد ، طوفانهای_باد ، شهر ، طلوع آفتاب ، غروب آفتاب ، فاز_ماه ، آیکون_ماه ، بار_خوان ، نوار_دست):
خود روز_هفته = تو »» + روز_هفته
self.low = u »» + کم
self.high = u »» + high
self.condition_code = u »» + کد_شرایط
self.condition_text = u »» + شرایط_متن
self.precip = u »» + باران
رطوبت خود = u »» + رطوبت
self.wind_dir = u »» + wind_dir
self.wind_speed = u »» + سرعت_ باد
self.wind_gusts = u »» + وزش باد
self.city = u »» + شهر
خود طلوع = تو »» + طلوع آفتاب
غروب خورشید = تو »» + غروب خورشید
self.moon_phase = u »» + فاز_ماه
self.moon_icon = u »» + icon_ Moon
self.bar_read = u »» + bar_read
self.bar_desc = u »» + bar_desc

کلاس WeatherText:

شرایط_متک = {
«0»: _ (تو »گردباد») ،
«1»: _ (تو »طوفان گرمسیری») ،
«2»: _ (تو »توفان») ،
«3»: _ (تو »طوفان های شدید») ،
«4»: _ (تو »رعد و برق») ،
«5»: _ (تو »مخلوط باران و برف») ،
«6»: _ (تو »مخلوط باران و باران») ،
«7»: _ (تو »بارش مخلوط») ،
«8»: _ (شما »انجماد ریز کردن») ،
«9»: _ (تو »چکه کن») ،
«10»: _ (تو »باران یخ زده») ،
«11»: _ (تو »دوش») ،
«12»: _ (تو »دوش») ،
«13»: _ (تو »Snow Flurries») ،
«14»: _ (شما »بارش برف سبک») ،
«15»: _ (تو »برف زدن) ،
«16»: _ (تو »برف») ،
«17»: _ (تو »سلام») ،
«18»: _ (شما »ناوگان») ،
«19»: _ (تو »گرد و غبار») ،
«20»: _ (تو »مه») ،
«21»: _ (تو »مه») ،
«22»: _ (تو «دود») ،
«23»: _ (تو »توهین») ،
«24»: _ (تو »بادگیر») ،
«25»: _ (تو »سرد») ،
«26»: _ (تو »ابری») ،
«27»: _ (تو »بیشتر ابری») ،
«28»: _ (تو »بیشتر ابری») ،
«29»: _ (تو »کمی ابری») ،
«30»: _ (تو »کمی ابری») ،
«31»: _ (تو »پاک کن») ،
«32»: _ (تو »پاک کن») ،
«33»: _ (تو »منصفانه») ،
«34»: _ (تو »منصفانه») ،
«35»: _ (تو »باران و تگرگ مختلط») ،
«36»: _ (شما داغ ») ،
«37»: _ (تو »طوفان های منزوی جدا شده») ،
«38»: _ (تو »طوفان های پراکنده») ،
«39»: _ (تو »طوفان های پراکنده») ،
«40»: _ (تو »دوش پراکنده») ،
«41»: _ (تو »برف سنگین») ،
«42»: _ (تو »بارش برف پراکنده») ،
«43»: _ (تو »برف سنگین») ،
«44»: _ (تو »کمی ابری») ،
«45»: _ (تو »رعد و برق») ،
«46»: _ (تو »بارش برف») ،
«47»: _ (تو »طوفان های منزوی جدا شده») ،
«Na»: _ (u »N / A») ،
"-": _(آ")
}

merc_text_es = {
«0»: _ (تو »گردباد») ،
«1»: _ (تو »طوفان گرمسیری») ،
«2»: _ (تو »Huracá¡n») ،
«3»: _ (تو »طوفان های قوی») ،
«4»: _ (تو »طوفان») ،
«5»: _ (تو »مخلوط باران و برف») ،
«6»: _ (تو »مخلوط باران و باران») ،
«7»: _ (u »Sleet») ،
«8»: _ (شما »انجماد ریز کردن») ،
«9»: _ (تو »چکه کن») ،
«10»: _ (شما »باران منجمد») ، # یا باران منجمد
«11»: _ (تو »دوش») ،
«12»: _ (تو »دوش») ،
«13»: _ (تو »برف سبک») ،
«14»: _ (تو »برف سبک») ،
«15»: _ (تو »Snow Blizzard») ،
«16»: _ (تو »برف») ،
«17»: _ (تو »سلام») ،
«18»: _ (u »Sleet») ،
«19»: _ (تو »پودر») ،
«20»: _ (تو »مه») ،
«21»: _ (تو »مه») ،
«22»: _ (تو «دود») ،
«23»: _ (تو »توفان») ،
«24»: _ (تو »بادگیر») ،
«25»: _ (تو »فرائو») ،
«26»: _ (تو »بسیار ابری») ،
«27»: _ (تو »بیشتر ابری») ،
«28»: _ (تو »بیشتر ابری») ،
«29»: _ (تو »کمی ابری») ،
«30»: _ (تو »کمی ابری») ،
«31»: _ (تو »پاک کن») ،
«32»: _ (تو »پاک کن») ،
«33»: _ (تو »چیزی ابری») ،
«34»: _ (تو »چیزی ابری») ،
«35»: _ (تو »باران همراه با تگرگ») ،
«36»: _ (تو »گرما») ،
«37»: _ (تو »طوفان های جدا شده») ،
«38»: _ (تو »طوفان های پراکنده») ،
«39»: _ (تو »طوفان های پراکنده») ،
«40»: _ (تو »دوش پراکنده») ،
«41»: _ (تو »برف سنگین») ،
«42»: _ (تو »بارش برف ضعیف و پراکنده») ،
«43»: _ (تو »نوادا شدید») ،
«44»: _ (تو »ابرهای پراکنده») ،
«45»: _ (تو »طوفان») ،
«46»: _ (تو »بارش برف پراکنده») ،
«47»: _ (تو »طوفان های جدا شده») ،
«Na»: _ (u »N / A») ،
"-": _(آ")
}

merc_text_fr = {
«0»: _ (تو »Tornade») ،
«1»: _ (شما »Tempête Tropicale») ،
«2»: _ (یا «اوراگان») ،
«3»: _ (یا «متخلفان Orages») ،
«4»: _ (یا «Orageux») ،
«5»: _ (تو »Pluie et Neige») ،
«6»: _ (شما »Pluie و Neige Mouillée») ،
«7»: _ (شما »متغیرهای avec مخالف هستند») ،
«8»: _ (تو »Bruine Givrante») ،
«9»: _ (تو »کروین») ،
«10»: _ (تو »Pluie Glacante») ،
«11»: _ (شما »مخالف هستید)) ،
«12»: _ (شما »مخالف هستید)) ،
«13»: _ (شما »لگر نیج») ،
«14»: _ (تو »Forte Neige») ،
«15»: _ (شما »Tempête de Neige») ،
«16»: _ (تو »Neige») ،
«17»: _ (تو »Grêle») ،
«18»: _ (تو »Pluie / Neige») ،
«19»: _ (شما »زبان پیشگویی») ،
«20»: _ (تو »Brouillard») ،
«21»: _ (تو »بروم») ،
«22»: _ (تو »Fumée») ،
«23»: _ (تو »Tres Venteux») ،
«24»: _ (شما »Venteux») ،
«25»: _ (شما »Froid») ،
«26»: _ (شما »Nuageux») ،
«27»: _ (تو »Tres Nuageux») ،
«28»: _ (تو »Tres Nuageux») ،
«29»: _ (شما »Nuages ​​Disséminés») ،
«30»: _ (شما »Nuages ​​Disséminés») ،
«31»: _ (تو »Beau») ،
«32»: _ (تو »Beau») ،
«33»: _ (تو »بلز laclaircies») ،
«34»: _ (تو »بلز laclaircies») ،
«35»: _ (تو »Pluie avec Grêle») ،
«36»: _ (تو »Chaleur») ،
«37»: _ (یا «Orages Isolés») ،
«38»: _ (یا «Orages Localisés») ،
«39»: _ (یا «Orages Localisés») ،
«40»: _ (شما »Averses Localisées») ،
«41»: _ (تو Neige Lourde ») ،
«42»: _ (شما »Tempête de Neige Localisées») ،
«43»: _ (تو Neige Lourde ») ،
«44»: _ (شما »Nuages ​​Disséminés») ،
«45»: _ (یا «Orages») ،
«46»: _ (شما »Tempête de Neige») ،
«47»: _ (یا «Orages Isolés») ،
«Na»: _ (u »N / A») ،
"-": _(آ")
}

Font_weather_weather = {
«0»: _ (تو »W») ،
«1»: _ (تو »V») ،
«2»: _ (تو »W») ،
«3»: _ (تو ») ،
«4»: _ (تو »ص) ،
«5»: _ (u »k») ،
«6»: _ (u »k») ،
«7»: _ (u »g») ،
«8»: _ (u »g») ،
«9»: _ (u »g») ،
«10»: _ (تو »ساعت) ،
«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»: _ (تو ») ،
«20»: _ (تو ») ،
«21»: _ (تو ») ،
«22»: _ (تو ») ،
«23»: _ (تو ») ،
«24»: _ (تو ») ،
«25»: _ (تو ») ،
«26»: _ (تو ») ،
«27»: _ (تو ») ،
«28»: _ (تو ») ،
«29»: _ (u »c») ،
«30»: _ (u »c») ،
«31»: _ (تو ») ،
«32»: _ (تو ») ،
«33»: _ (تو »ب») ،
«34»: _ (تو »ب») ،
«35»: _ (u »k») ،
«36»: _ (تو ») ،
«37»: _ (تو ») ،
«38»: _ (تو ») ،
«39»: _ (تو ») ،
«40»: _ (u »g») ،
«41»: _ (u »k») ،
«42»: _ (u »k») ،
«43»: _ (u »k») ،
«44»: _ (تو »ب») ،
«45»: _ (u »g») ،
«46»: _ (u »k») ،
«47»: _ (تو ») ،
«Na»: _ (تو ») ،
"-": _(یا"")
}

شرایط_ماه_فونت = {
«0»: _ (تو »1) ،
«1»: _ (تو »N») ،
«2»: _ (تو »O) ،
«3»: _ (تو »پ») ،
«4»: _ (تو »س») ،
«5»: _ (تو »R») ،
«6»: _ (تو »S») ،
«7»: _ (تو »T) ،
«8»: _ (تو »تو») ،
«9»: _ (تو »V») ،
«10»: _ (تو »W») ،
«11»: _ (تو »X») ،
«12»: _ (تو »Y») ،
«13»: _ (تو »Z») ،
«14»: _ (تو »0) ،
«15»: _ (تو »0) ،
«16»: _ (تو »A») ،
«17»: _ (تو »ب») ،
«18»: _ (تو »C») ،
«19»: _ (تو »D») ،
«20»: _ (تو »E») ،
«21»: _ (تو »F») ،
«22»: _ (تو »G») ،
«23»: _ (تو »H») ،
«24»: _ (تو »من») ،
«25»: _ (تو »ج») ،
«26»: _ (تو »K») ،
«27»: _ (تو »ل») ،
«28»: _ (تو »م») ،
«29»: _ (تو »1) ،
«Na»: _ (تو ») ،
"-": _(یا"")
}

روز_هفته = {
"امروز": _ (یا "امروز") ،
«دوشنبه»: _ (تو »دوشنبه») ،
«سه شنبه»: _ (تو »سه شنبه») ،
«چهارشنبه»: _ (تو »چهارشنبه») ،
«پنجشنبه»: _ (تو »پنجشنبه») ،
"جمعه": _ (تو "جمعه") ،
"شنبه": _ (تو "شنبه") ،
"یکشنبه": _ (تو "یکشنبه")
}

روز_ هفته_کوتاه = {
"امروز": _ (شما "اکنون") ،
«دوشنبه»: _ (تو »دوشنبه») ،
«سه شنبه»: _ (تو »سه شنبه») ،
"چهارشنبه": _ (تو "چهارشنبه") ،
«پنجشنبه»: _ (تو »پنجشنبه) ،
«جمعه»: _ (شما »جمعه») ،
"شنبه": _ (تو "شنبه") ،
"یکشنبه": _ (تو "خورشید")
}

روز_هفته_وز = {
"امروز": _ (تو "امروز") ،
«دوشنبه»: _ (تو »دوشنبه») ،
«سه شنبه»: _ (یا «سه شنبه») ،
«چهارشنبه»: _ (تو »چهارشنبه») ،
«پنجشنبه»: _ (تو »پنجشنبه») ،
«جمعه»: _ (تو »جمعه») ،
"شنبه": _ (تو "شنبه") ،
"یکشنبه": _ (تو "یکشنبه")
}

روز_هفته_كوتاه = {
"امروز": _ (تو "امروز") ،
"دوشنبه": _ (تو "دوشنبه") ،
«سه شنبه»: _ (تو »دریا») ،
«چهارشنبه»: _ (تو »ازدواج کردی) ،
«پنجشنبه»: _ (تو »پنجشنبه») ،
«جمعه»: _ (شما »جمعه») ،
"شنبه": _ (تو "نشسته ای") ،
"یکشنبه": _ (تو "dom")
}

روز_هفته_فر = {
«امروز»: _ (تو »Aujourd'hui») ،
«دوشنبه»: _ (تو »لوندی») ،
«سه شنبه»: _ (تو »ماردی») ،
«چهارشنبه»: _ (تو »مرکردی») ،
«پنجشنبه»: _ (تو »جودی») ،
«جمعه»: _ (شما »Vendredi») ،
"شنبه": _ (تو "سامدی") ،
"یکشنبه": _ (تو "دیمانچه")
}

روز_هفته_کوتاه = {
«امروز»: _ (تو »اوج») ،
"دوشنبه": _ (تو "دوشنبه") ،
«سه شنبه»: _ (تو »مار») ،
"چهارشنبه": _ (تو "Mer") ،
«پنجشنبه»: _ (تو »Jeu») ،
«جمعه»: _ (تو »بیا») ،
"شنبه": _ (تو "سام") ،
"یکشنبه": _ (تو "کم نور")
}

bearing_arrow_font = {
«N»: _ (تو »من) ،
«NNE»: _ (u »j») ،
«NE»: _ (u »k») ،
«ENE»: _ (u »l») ،
«E»: _ (تو »m) ،
«ESE»: _ (u »n») ،
"SE": _ (تو "ای") ،
«SSE»: _ (u »p») ،
«S»: _ (تو ») ،
«SSW»: _ (u »b») ،
«SW»: _ (u »c») ،
"WSW": _ (تو "d") ،
«W»: _ (تو ») ،
"WNW": _ (تو "f") ،
«NW»: _ (u »g») ،
«NNW»: _ (u »h») ،
«N / A»: _ (تو »«)
}

bearing_text_en = {
«N»: _ (تو »N») ،
«NNE»: _ (تو »NNE») ،
«NE»: _ (تو »NE») ،
«ENE»: _ (شما »ENE») ،
«E»: _ (تو »E») ،
«ESE»: _ (شما »ESE») ،
«SE»: _ (تو »SE») ،
"SSE": _ (شما "SSE") ،
"آنها") ،
"SSW": _ (شما "SSO") ،
«SW»: _ (تو »بنابراین») ،
"WSW": _ (تو "WOW") ،
«W»: _ (تو »O) ،
«WNW»: _ (تو »ONO)) ،
«NW»: _ (تو »NO») ،
«NNW»: _ (شما »NNO») ،
«N / A»: _ (u »N \ A»)
}

bearing_text_fr = {
«N»: _ (تو »N») ،
«NNE»: _ (تو »NNE») ،
«NE»: _ (تو »NE») ،
«ENE»: _ (شما »ENE») ،
«E»: _ (تو »E») ،
«ESE»: _ (شما »ESE») ،
«SE»: _ (تو »SE») ،
"SSE": _ (شما "SSE") ،
"آنها") ،
"SSW": _ (شما "SSO") ،
«SW»: _ (تو »بنابراین») ،
"WSW": _ (تو "WOW") ،
«W»: _ (تو »O) ،
«WNW»: _ (تو »ONO)) ،
«NW»: _ (تو »NO») ،
«NNW»: _ (شما »NNO») ،
«N / A»: _ (u »N \ A»)
}

کلاس GlobalWeather:

شرایط فعلی = []
روز_پیش بینی = []
پیش بینی شب = []

locale = "در"

گزینه ها = هیچ
weatherxmldoc = ""

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

def __init __ (خود ، گزینه ها):

self.options = گزینه ها

اگر self.options.locale == هیچکدام:
تلاش كردن:
# self.locale = locale.getdefaultlocale () [0] [0: 2]
self.locale = «es» # این خط را توصیف نمی کند تا محلی اسپانیایی را مجبور کند
# self.locale = "fr" # این خط را توصیف نکنید تا محلی فرانسه را مجبور کنید
جز:
چاپ "محلی تنظیم نشده است"
دیگری:
# self.locale = self.options.locale
self.locale = «es» # این خط را توصیف نمی کند تا محلی اسپانیایی را مجبور کند
# self.locale = "fr" # این خط را توصیف نکنید تا محلی فرانسه را مجبور کنید

اگر self.options.verbose == درست است:
print >> sys.stdout ، "locale set to" ، self.locale

def getText (خود ، لیست گره):
rc = ""
برای گره در لیست گره:
اگر node.nodeType == node.TEXT_NODE:
rc = rc + node.data
بازگشت rc

def getSpaces (خود ، فضاها):
رشته = تو »»
اگر فضاها == هیچکدام:
رشته = خود. DEFAULT_SPACING
دیگری:
برای i در محدوده (0 ، فاصله + 1):
رشته = رشته + تو »«
رشته برگشت

def isNumeric (خود ، رشته):
تلاش كردن:
ساختگی = شناور (رشته)
بازگشت درست است
جز:
بازگشت نادرست

def isConnectionAvailable (خود):
# اطمینان حاصل کنید که با باز کردن آدرس اینترنتی می توانیم به سرور weather.com دسترسی پیدا کنیم
تلاش كردن:
Usock = urllib2.urlopen ('http://xoap.weather.com')
Usock.close ()
بازگشت درست است
جز:
بازگشت نادرست

def getBearingText (خود ، تحمل):
بلبرینگ = شناور (بلبرینگ)
اگر دارای <11.25 باشد:
بازگشت شما »N»
تحمل elif <33.75:
برگرد تو »NNE»
تحمل elif <56.25:
بازگشت شما »NE»
تحمل elif <78.75:
برگرد تو »ژان»
تحمل elif <101.25:
برگرد تو »ای»
تحمل elif <123.75:
برگرد »ESE»
تحمل elif <146.25:
بازگشت تو »SE»
تحمل elif <168.75:
برگرد »SSE»
تحمل elif <191.25:
برگرد تو »S»
تحمل elif <213.75:
بازگشت »SSW»
تحمل elif <236.25:
بازگشت تو »SW»
تحمل elif <258.75:
بازگشت تو »WSW»
تحمل elif <281.25:
بازگشت تو »W»
تحمل elif <303.75:
بازگشت تو »WNW»
تحمل elif <326.25:
بازگشت به شما »NW»
تحمل elif <348.75:
برگرد تو »NNW»
دیگری:
بازگشت «N / A»

def convertCelsiusToFahrenheit (self، temp):
str str (int (طبقه (((float (دما) * 9.0) / 5.0) +32)))

def convertKilometresToMiles (خود ، فاصله):
خیابان برگشت (int (طبقه (شناور (فاصله) * 0.621371192)))

Def convertMillibarsToInches (خود ، mb):
str str (int (طبقه (float (mb) / 33.8582))))

def getTemplateList (خود ، الگو):

فهرست راهنما = []

برای template_part در template.split («{« «):
if template_part! = «»:
برای template_part در template_part.split ("}"):
if template_part! = «»:
templatelist.append (u »» + template_part)

فهرست راهنمای بازگشت

def getOutputText (خود ، نوع داده ، روز شروع ، روز آخر ، شب ، هفته کوتاه ، سلطنتی ، واحد مخفی ، فضاها):
#تلاش كردن:
خروجی = تو »»

# واحدهای فعلی را برای خروجی تعریف کنید
اگر واحدهای مخفی == نادرست:
اگر شاهنشاهی == نادرست:
tempunit = u »° C»
سرعت واحد = شما »کیلومتر در ساعت»
واحد فشار = شما »mb»
دیگری:
tempunit = u »° F»
سرعت واحد = شما »مایل در ساعت»
فشار واحد = شما »در»
دیگری:
tempunit = u »°»
speedunit = تو »»
فشار واحد = تو »»

اگر startday == هیچکدام: # شرایط فعلی

اگر نوع داده == "DW":
اگر self.locale == "باشد":
اگر هفته کوتاه == درست است:
خروجی = WeatherText.day_of_week_short_es [self.current_conditions [0] .day_of_week]
دیگری:
خروجی = WeatherText.day_of_week_es [self.current_conditions [0] .day_of_week]
elif self.locale == "fr":
اگر هفته کوتاه == درست است:
خروجی = WeatherText.day_of_week_short_fr [self.current_conditions [0] .day_of_week]
دیگری:
خروجی = WeatherText.day_of_week_fr [self.current_conditions [0] .day_of_week]
دیگری:
اگر هفته کوتاه == درست است:
خروجی = WeatherText.day_of_week_short [self.current_conditions [0] .day_of_week]
دیگری:
خروجی = WeatherText.day_of_week [self.current_conditions [0] .day_of_week]
elif datatype == "WF": # فونت هواشناسی
خروجی = WeatherText.conditions_weather_font [self.current_conditions [0] .condition_code]
نوع داده elif == "LT":
string = self.current_conditions [0] .low
if self.isNumeric (رشته) == درست است:
اگر شاهنشاهی == درست است:
string = self.convertCelsiusToFahrenheit (رشته)
رشته = رشته + تمپونیت
خروجی = رشته
elif datatype == "HT":
string = self.current_conditions [0] .بالا
if self.isNumeric (رشته) == درست است:
اگر شاهنشاهی == درست است:
string = self.convertCelsiusToFahrenheit (رشته)
رشته = رشته + تمپونیت
خروجی = رشته
نوع داده elif == "CC":
اگر self.locale == "باشد":
خروجی = WeatherText.conditions_text_es [self.current_conditions [0] .condition_code]
elif self.locale == "fr":
خروجی = WeatherText.conditions_text_fr [self.current_conditions [0] .condition_code]
دیگری:
خروجی = WeatherText.conditions_text [self.current_conditions [0] .condition_code]
elif datatype == "CT":
خروجی = self.current_conditions [0] .condition_text
elif datatype == "PC":
string = self.current_conditions [0]. پیش بینی
if self.isNumeric (رشته) == درست است:
رشته = رشته + تو »٪»
خروجی = رشته
نوع داده elif == "HM":
رشته = self.current_conditions [0]. رطوبت
if self.isNumeric (رشته) == درست است:
رشته = رشته + تو »٪»
خروجی = رشته
نوع داده elif == "WD":
string = self.current_conditions [0]. wind_dir
if self.isNumeric (رشته) == درست است:
رشته = self.getBearingText (رشته)

اگر self.locale == "باشد":
خروجی = WeatherText.bearing_text_es [رشته]
elif self.locale == "fr":
خروجی = WeatherText.bearing_text_fr [رشته]
دیگری:
خروجی = رشته

نوع داده elif == "BF":
string = self.current_conditions [0]. wind_dir
if self.isNumeric (رشته) == درست است:
string = WeatherText.bearing_arrow_font [self.getBearingText (رشته)]
خروجی = رشته
نوع داده elif == "WS":
string = self.current_conditions [0]. wind_speed
if self.isNumeric (رشته) == درست است:
اگر شاهنشاهی == درست است:
string = self.convertKilometresToMiles (رشته)
رشته = رشته + واحد سرعت
خروجی = رشته
نوع داده elif == "WG":
string = self.current_conditions [0]. wind_gusts
if self.isNumeric (رشته) == درست است:
اگر شاهنشاهی == درست است:
string = self.convertKilometresToMiles (رشته)
رشته = رشته + واحد سرعت
خروجی = رشته
نوع داده elif == "CN":
خروجی = خود. شرایط فعلی [0] .شهر
نوع داده elif == "SR":
خروجی = self.current_conditions [0]. طلوع آفتاب
elif datatype == "SS":
خروجی = self.current_conditions [0]. غروب غروب
elif datatype == "MP":
خروجی = self.current_conditions [0] .ماه_فاز
نوع داده elif == "MF":
خروجی = WeatherText.conditions_moon_font [self.current_conditions [0] .moon_icon]
نوع داده elif == "BR":
string = self.current_conditions [0] .bar_read
if self.isNumeric (رشته) == درست است:
اگر شاهنشاهی == درست است:
string = self.convertMillibarsToInches (رشته)
رشته = رشته + واحد فشار
خروجی = رشته
نوع داده elif == "BD":
خروجی = self.current_conditions [0] .bar_desc
دیگری:
output = "\ n خطا: نوع داده ناشناخته درخواست شد"

else: # داده پیش بینی

اگر پایان روز == هیچکدام: # اگر هیچ روز پایانی تعیین نشده است از روز شروع استفاده کنید
روز پایان = روز شروع

اگر شب == درست است: پیش بینی # شب لازم است

برای تعداد_روز در محدوده (روز شروع ، روز پایان + 1):

اگر نوع داده == "DW":
اگر self.locale == "باشد":
اگر هفته کوتاه == درست است:
خروجی = خروجی + self.getSpaces (فضاها) + WeatherText.day_of_week_short_es [self.night_forecast [day_number] .day_of_week]
دیگری:
خروجی = خروجی + self.getSpaces (فضاها) + WeatherText.day_of_week_es [self.night_forecast [day_number] .day_of_week]
elif self.locale == "fr":
اگر هفته کوتاه == درست است:
خروجی = خروجی + self.getSpaces (فضاها) + WeatherText.day_of_week_short_fr [self.night_forecast [day_number] .day_of_week]
دیگری:
خروجی = خروجی + self.getSpaces (فضاها) + WeatherText.day_of_week_fr [self.night_forecast [day_number] .day_of_week]
دیگری:
اگر هفته کوتاه == درست است:
خروجی = خروجی + self.getSpaces (فضاها) + WeatherText.day_of_week_short [self.night_forecast [day_number] .day_of_week]
دیگری:
خروجی = خروجی + self.getSpaces (فضاها) + WeatherText.day_of_week [self.night_forecast [day_number] .day_of_week]
elif datatype == "WF": # فونت هواشناسی
خروجی = خروجی + self.getSpaces (فضاها) + WeatherText.conditions_weather_font [self.night_forecast [day_number] .condition_code]
نوع داده elif == "LT":
string = self.night_forecast [تعداد_روز]. پایین
if self.isNumeric (رشته) == درست است:
اگر شاهنشاهی == درست است:
string = self.convertCelsiusToFahrenheit (رشته)
رشته = رشته + تمپونیت
خروجی = خروجی + self.getSpaces (فضاها) + رشته

elif datatype == "HT":
رشته = خود. شب پیش بینی [تعداد_روز] .بالا
if self.isNumeric (رشته) == درست است:
اگر شاهنشاهی == درست است:
string = self.convertCelsiusToFahrenheit (رشته)
رشته = رشته + تمپونیت
خروجی = خروجی + self.getSpaces (فضاها) + رشته
نوع داده elif == "CC":
اگر self.locale == "باشد":
خروجی = خروجی + 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]
دیگری:
خروجی = خروجی + self.getSpaces (فضاها) + WeatherText.conditions_text [self.night_forecast [day_number] .condition_code]
elif datatype == "CT":
خروجی = خروجی + self.getSpaces (فضاها) + self.night_forecast [تعداد_روز]. شرایط_متن
elif datatype == "PC":
string = self.night_forecast [تعداد_روز]. پیش بینی
if self.isNumeric (رشته) == درست است:
رشته = رشته + تو »٪»
خروجی = خروجی + self.getSpaces (فضاها) + رشته
نوع داده elif == "HM":
رشته = خود. شب پیش بینی [تعداد_روز] .رطوبت
if self.isNumeric (رشته) == درست است:
رشته = رشته + تو »٪»
خروجی = خروجی + self.getSpaces (فضاها) + رشته
نوع داده elif == "WD":
string = self.night_forecast [تعداد_روز]. wind_dir
اگر self.locale == "باشد":
خروجی = خروجی + self.getSpaces (فضاها) + WeatherText.bearing_text_es [رشته]
elif self.locale == "fr":
خروجی = خروجی + self.getSpaces (فضاها) + WeatherText.bearing_text_fr [رشته]
دیگری:
خروجی = خروجی + self.getSpaces (فضاها) + رشته

نوع داده elif == "BF":
خروجی = خروجی + self.getSpaces (فضاها) + WeatherText.bearing_arrow_font [self.night_forecast [day_number] .wind_dir]
نوع داده elif == "WS":
string = self.night_forecast [day_number]. wind_speed
if self.isNumeric (رشته) == درست است:
اگر شاهنشاهی == درست است:
string = self.convertKilometresToMiles (رشته)
رشته = رشته + واحد سرعت
خروجی = خروجی + self.getSpaces (فضاها) + رشته
نوع داده elif == "WG":
string = self.night_forecast [روز_شمار]. wind_gusts
if self.isNumeric (رشته) == درست است:
اگر شاهنشاهی == درست است:
string = self.convertKilometresToMiles (رشته)
رشته = رشته + واحد سرعت
خروجی = خروجی + self.getSpaces (فضاها) + رشته
نوع داده elif == "CN":
خروجی = خروجی + self.getSpaces (فضاها) + self.night_forecast [تعداد_روز] .شهر
نوع داده elif == "SR":
خروجی = خروجی + self.getSpaces (فضاها) + self.night_forecast [تعداد_روز]. طلوع آفتاب
elif datatype == "SS":
خروجی = خروجی + self.getSpaces (فضاها) + self.night_forecast [تعداد_روز]. غروب خورشید
elif datatype == "MP":
خروجی = خروجی + self.getSpaces (فضاها) + self.night_forecast [تعداد_روز] .ماه_فاز
نوع داده 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 == "BD":
خروجی = خروجی + self.getSpaces (فضاها) + self.night_forecast [day_number] .bar_desc
دیگری:
output = "\ n خطا: نوع داده ناشناخته درخواست شد"
شکستن

else: پیش بینی # روز می خواهد

برای تعداد_روز در محدوده (روز شروع ، روز پایان + 1):

اگر نوع داده == "DW":
اگر self.locale == "باشد":
اگر هفته کوتاه == درست است:
خروجی = خروجی + self.getSpaces (فضاها) + WeatherText.day_of_week_short_es [self.day_forecast [day_number] .day_of_week]
دیگری:
خروجی = خروجی + self.getSpaces (فضاها) + WeatherText.day_of_week_es [self.day_forecast [day_number] .day_of_week]
elif self.locale == "fr":
اگر هفته کوتاه == درست است:
خروجی = خروجی + self.getSpaces (فضاها) + WeatherText.day_of_week_short_fr [self.day_forecast [day_number] .day_of_week]
دیگری:
خروجی = خروجی + self.getSpaces (فضاها) + WeatherText.day_of_week_fr [self.day_forecast [day_number] .day_of_week]
دیگری:
اگر هفته کوتاه == درست است:
خروجی = خروجی + self.getSpaces (فضاها) + WeatherText.day_of_week_short [self.day_forecast [day_number] .day_of_week]
دیگری:
خروجی = خروجی + self.getSpaces (فضاها) + WeatherText.day_of_week [self.day_forecast [day_number] .day_of_week]
elif datatype == "WF": # فونت هواشناسی
خروجی = خروجی + self.getSpaces (فضاها) + WeatherText.conditions_weather_font [self.day_forecast [day_number] .condition_code]
نوع داده elif == "LT":
رشته = self.day_forecast [تعداد_روز]. پایین
if self.isNumeric (رشته) == درست است:
اگر شاهنشاهی == درست است:
string = self.convertCelsiusToFahrenheit (رشته)
رشته = رشته + تمپونیت
خروجی = خروجی + self.getSpaces (فضاها) + رشته
elif datatype == "HT":
رشته = self.day_forecast [تعداد_روز] .بالا
if self.isNumeric (رشته) == درست است:
اگر شاهنشاهی == درست است:
string = self.convertCelsiusToFahrenheit (رشته)
رشته = رشته + تمپونیت
خروجی = خروجی + self.getSpaces (فضاها) + رشته
نوع داده elif == "CC":
اگر self.locale == "باشد":
خروجی = خروجی + 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]
دیگری:
خروجی = خروجی + self.getSpaces (فضاها) + WeatherText.conditions_text [self.day_forecast [day_number] .condition_code]
elif datatype == "CT":
خروجی = خروجی + self.getSpaces (فضاها) + self.day_forecast [تعداد_روز]. شرایط_متن
elif datatype == "PC":
رشته = self.day_forecast [تعداد_روز]. پیش بینی
if self.isNumeric (رشته) == درست است:
رشته = رشته + تو »٪»
خروجی = خروجی + self.getSpaces (فضاها) + رشته
نوع داده elif == "HM":
رشته = self.day_forecast [تعداد_روز] .رطوبت
if self.isNumeric (رشته) == درست است:
رشته = رشته + تو »٪»
خروجی = خروجی + self.getSpaces (فضاها) + رشته
نوع داده elif == "WD":
رشته = self.day_forecast [تعداد_روز]. wind_dir

اگر self.locale == "باشد":
خروجی = خروجی + self.getSpaces (فضاها) + WeatherText.bearing_text_es [رشته]
elif self.locale == "fr":
خروجی = خروجی + self.getSpaces (فضاها) + WeatherText.bearing_text_fr [رشته]
دیگری:
خروجی = خروجی + self.getSpaces (فضاها) + رشته

نوع داده elif == "BF":
خروجی = خروجی + self.getSpaces (فضاها) + WeatherText.bearing_arrow_font [self.day_forecast [day_number] .wind_dir]
نوع داده elif == "WS":
رشته = self.day_forecast [تعداد_روز]. سرعت باد
if self.isNumeric (رشته) == درست است:
اگر شاهنشاهی == درست است:
string = self.convertKilometresToMiles (رشته)
رشته = رشته + واحد سرعت
خروجی = خروجی + self.getSpaces (فضاها) + رشته
نوع داده elif == "WG":
رشته = self.day_forecast [تعداد_روز]. winds_gusts
if self.isNumeric (رشته) == درست است:
اگر شاهنشاهی == درست است:
string = self.convertKilometresToMiles (رشته)
رشته = رشته + واحد سرعت
خروجی = خروجی + self.getSpaces (فضاها) + رشته
نوع داده elif == "CN":
خروجی = خروجی + self.getSpaces (فضاها) + self.day_forecast [تعداد_روز] .شهر
نوع داده elif == "SR":
خروجی = خروجی + self.getSpaces (فضاها) + self.day_forecast [تعداد_روز]. طلوع آفتاب
elif datatype == "SS":
خروجی = خروجی + self.getSpaces (فضاها) + self.day_forecast [تعداد_روز]. غروب خورشید
elif datatype == "MP":
خروجی = خروجی + self.getSpaces (فضاها) + self.day_forecast [تعداد_روز] .ماه_فاز
نوع داده elif == "MF":
خروجی = خروجی + self.getSpaces (فضاها) + WeatherText.conditions_moon_font [self.day_forecast [day_number] .moon_icon]
نوع داده elif == "BR":
خروجی = خروجی + self.getSpaces (فضاها) + self.day_forecast [روز_شمار] .bar_read
نوع داده elif == "BD":
خروجی = خروجی + self.getSpaces (فضاها) + self.day_forecast [تعداد_روز] .bar_desc
دیگری:
خروجی = تو »\ n خطا: نوع داده ناشناخته درخواست شد»
شکستن

خروجی = تو »» + خروجی. نوار (تو »«) # فضای پیشرو / انتهایی را از دست می دهید
بازده بازگشت

#بجز:
#print "getOutputText: خطای غیرمنتظره:"، sys.exc_info () [0]

def getOutputTextFromTemplate (خود ، الگو):
#تلاش كردن:

# کلید داده های الگو
DATATYPE_KEY = "- نوع داده ="
STARTDAY_KEY = "- روز شروع ="
ENDDAY_KEY = "– پایان روز ="
NIGHT_KEY = "– شب"
SHORTWEEKDAY_KEY = "- کوتاه هفته"
IMPERIAL_KEY = "- امپراطوری"
HIDEUNITS_KEY = "واحدهای پنهان"
SPACES_KEY = "–فضا ="

خروجی = تو »»

optionfound = نادرست است

پرونده را بارگیری کنید
تلاش كردن:
fileinput = باز (self.options.template)
الگو = fileinput.read ()
fileinput.close ()
جز:
خروجی = تو »پرونده الگو یافت نشد!»

templatelist = self.getTemplateList (الگو)

# اجازه می دهد تا از طریق لیست الگو عبور کرده و خروجی هر مورد پیدا شده را تعیین کنیم
برای i در محدوده (0 ، len (فهرست جهانی) -1):

pos = فهرست الگو [i]. پیدا کردن (DATATYPE_KEY)
اگر pos! = -1:
optionfound = درست است
pos = pos + len (DATATYPE_KEY)
datatype = templatelist [i] [pos: pos + 4] .strip («}»). strip («{« «). strip (« - «). strip (» «)
دیگری:
نوع داده = ندارد

pos = فهرست جهانی [i]. پیدا کردن (STARTDAY_KEY)
اگر pos! = -1:
optionfound = درست است
pos = pos + len (STARTDAY_KEY)
startday = int (فهرست جهانی [i] [pos: pos + 4] .strip ("}"). نوار ("{"). نوار ("-") نوار (""))
دیگری:
startday = هیچ

pos = فهرست جهانی [i]. پیدا کردن (ENDDAY_KEY)
اگر pos! = -1:
optionfound = درست است
pos = pos + len (ENDDAY_KEY)
endday = int (فهرست جهانی [i] [pos: pos + 4] .strip ("}"). strip ("{"). strip ("-") strip (""))
دیگری:
روز آخر = هیچ

pos = فهرست الگو [i]. پیدا کردن (NIGHT_KEY)
اگر pos! = -1:
optionfound = درست است
شب = درست است
دیگری:
شب = نادرست

pos = فهرست جهانی [i]. پیدا کردن (SHORTWEEKDAY_KEY)
اگر pos! = -1:
optionfound = درست است
هفته کوتاه = درست است
دیگری:
هفته کوتاه = نادرست

pos = فهرست جهانی [i]. پیدا کردن (IMPERIAL_KEY)
اگر pos! = -1:
optionfound = درست است
شاهنشاهی = درست است
دیگری:
شاهنشاهی = نادرست

pos = فهرست جهانی [i]. پیدا کردن (HIDEUNITS_KEY)
اگر pos! = -1:
optionfound = درست است
واحد های مخفی = درست است
دیگری:
hideunits = نادرست است

pos = فهرست الگو [i]. پیدا کردن (SPACES_KEY)
اگر pos! = -1:
optionfound = درست است
pos = pos + len (SPACES_KEY)
فضاها = int (فهرست جهانی [i] [pos: pos + 4]. نوار («}»). نوار («{« «). نوار (« - «). نوار (» «)]
دیگری:
فضاها = 1

اگر optionfound == درست است:
templatelist [i] = self.getOutputText (نوع داده ، روز شروع ، روز آخر ، شب ، هفته کوتاه ، امپراتوری ، واحد مخفی ، فضاها)
optionfound = نادرست است

# اکنون لیست را برای جمع کردن خروجی که جمع شده است ، مرور کنید
برای مورد در فهرست جهانی:
خروجی = خروجی + مورد

بازده بازگشت

#بجز:
#print "getOutputTextFromTemplate: خطای غیرمنتظره:"، sys.exc_info () [0]

def fetchData (خود):

# همیشه داده های متریک را واکشی کنید ، از توابع مکالمه در این داده ها استفاده کنید
file_path_current = self.TEMP_FILEPATH_CURRENT.replace ("LOCATION"، self.options.location)
file_path_dayforecast = self.TEMP_FILEPATH_DAYFORECAST.replace ("LOCATION"، self.options.location)
file_path_nightforecast = self.TEMP_FILEPATH_NIGHTFORECAST.replace ("LOCATION"، self.options.location)

if self.isConnectionAvailable () == نادرست:
اگر os.path.exists وجود دارد (file_path_current):
RefetchData = نادرست است
else: # بدون اتصال ، بدون حافظه پنهان ، بنگ!
print "هیچ اتصال اینترنتی در دسترس نیست و داده های آب و هوایی پنهان شده وجود ندارد."
elif self.options.refetch == درست است:
RefetchData = درست است
دیگری:
# آیا داده ها دوباره نیاز به بازیابی دارند؟
اگر os.path.exists وجود دارد (file_path_current):
lastmodDate = time.localtime (os.stat (file_path_current) [ST_MTIME])
expiryDate = (datetime.datetime.today () - datetime.timedelta (دقیقه = خود. EXPIRY_MINUTES)). timetuple ()

if expiryDate> lastmodDate:
RefetchData = درست است
دیگری:
RefetchData = نادرست است
دیگری:
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 == درست است:
print >> sys.stdout ، «واکشی داده های هوا از» ، url

Usock = urllib2.urlopen (آدرس اینترنتی)
xml = usock.read ()
Usock.close ()
self.weatherxmldoc = minidom.parseString (xml)
جز:
چاپ "fetchData: خطای غیرمنتظره:" ، sys.exc_info () [0]
چاپ "امکان تماس با منبع آب و هوا برای شرایط فعلی وجود ندارد"

# اگر مکان نامناسب است به کاربر بگویید
found = xml.find ("مکان نامعتبر ارائه شده است")
اگر پیدا شود! = -1:
چاپ "مکان نامعتبر ارائه شده است"

# داده های آب و هوا را بازجویی کنید ، در ساختار کلاس بارگیری کنید و آنها را ترشی کنید
تلاش كردن:

# لیست های داده های هوا را تهیه کنید
self.current_conditions = []
self.day_forecast = []
self.night_forecast = []

# جمع آوری داده های کلی
weather_n = self.weatherxmldoc.documentElement
location_n = weather_n.getElementByTagName ('loc') [0]
city_n = location_n.getElementByTagName ('dnam') [0]
شهر = self.getText (city_n.childNodes)

# داده های شرایط فعلی را جمع آوری کنید
day_of_week = u »امروز»
بارش = تو »N / A»
sunrise_n = location_n.getElementByTagName ('sunr') [0]
طلوع آفتاب = self.getText (طلوع_نورود_نوزادان کودک)
غروب_ن = location_n.getElementByTagName ('خورشید') [0]
غروب آفتاب = self.getText (غروب آفتاب_ نود کودک)
current_condition_n = weather_n.getElementByTagName ('cc') [0]
current_desc_n = current_condition_n.getElementByTagName ('t') [0]
current_desc = self.getText (current_desc_n.childNodes)
current_code_n = current_condition_n.getElementByTagName ('نماد') [0]
کد فعلی = self.getText (جریان_کد_ن. گره های کودک)
current_temp_n = current_condition_n.getElementByTagName ('tmp') [0]
current_temp = self.getText (current_temp_n.childNodes)
current_temp_feels_n = current_condition_n.getElementByTagName ('flik') [0]
current_temp_feels = self.getText (current_temp_feels_n.childNodes)
bar_n = current_condition_n.getElementByTagName ("نوار") [0]
bar_read_n = bar_n.getElementByTagName ('r') [0]
bar_read = self.getText (bar_read_n.childNodes)
bar_desc_n = bar_n.getElementByTagName ('d') [0]
bar_desc = self.getText (bar_desc_n.childNodes)
wind_n = current_condition_n.getElementByTagName ('باد') [0]
wind_speed_n = wind_n.getElementByTagName ('s) [0]
wind_speed = self.getText (wind_speed_n.childNodes)
wind_gust_n = wind_n.getElementByTagName ('طوفان') [0]
wind_gusts = self.getText (wind_gust_n.childNodes)
wind_dir_n = wind_n.getElementByTagName ('d') [0]
جهت_ باد = self.getText (wind_dir_n.childNodes)
humidity_n = current_condition_n.getElementByTagName ('hmid') [0]
رطوبت = self.getText (humidity_n.childNodes)
moon_n = current_condition_n.getElementByTagName ('ماه') [0]
moon_icon_n = moon_n.getElementByTagName ('نماد') [0]
moon_icon = self.getText (moon_icon_n.childNodes)
moon_phase_n = moon_n.getElementByTagName ('t') [0]
ماه_فاز = self.getText (ماه_فاز_ن. گره های کودک)
current_conditions_data = WeatherData (روز_هفته ، دمای فعلی_حساس ، دمای فعلی ، کد_جاری ، دمای فعلی ، بارندگی ، رطوبت ، جهت باد ، سرعت باد ، طوفان های باد ، شهر ، طلوع آفتاب ، غروب آفتاب ، فاز ماه ، طوفان ماه ، بار_خط ، بار_دست)
self.current_conditions.append (داده های_شروط_حال)

# جمع آوری داده های پیش بینی
bar_read = u »N / A»
bar_desc = u »N / A»
ماه_فاز = تو »N / A»
moon_icon = تو »na»
پیش بینی_ ن = weather_n.getElementByTagName ('dayf') [0]
day_nodes = forecast_n.getElementByTagName ("روز")

برای روز در گره های روز:
day_of_week = day.getAttribute ('t')
day_of_year = day.getAttribute ('dt')
high_temp_n = day.getElementByTagName ('سلام') [0]
high_temp = self.getText (high_temp_n.childNodes)
low_temp_n = day.getElementByTagName ('کم') [0]
low_temp = self.getText (low_temp_n.childNodes)

sunrise_n = day.getElementByTagName ('sunr') [0]
طلوع آفتاب = self.getText (طلوع_نورود_نوزادان کودک)
غروب_ن = day.getElementByTagName ('خورشید') [0]
غروب آفتاب = self.getText (غروب آفتاب_ نود کودک)

# روز پیش بینی داده های خاص
daytime_n = day.getElementByTagName ('قسمت') [0] # روز
condition_code_n = daytime_n.getElementByTagName ('نماد') [0]
condition_code = self.getText (condition_code_n.childNodes)
condition_n = daytime_n.getElementByTagName ('t') [0]
شرط = self.getText (condition_n.childNodes)
precip_n = daytime_n.getElementByTagName ('ppcp') [0]
precip = self.getText (precip_n.childNodes)
humidity_n = daytime_n.getElementByTagName ('hmid') [0]
رطوبت = self.getText (humidity_n.childNodes)
wind_n = daytime_n.getElementByTagName ('باد') [0]
wind_speed_n = wind_n.getElementByTagName ('s) [0]
wind_speed = self.getText (wind_speed_n.childNodes)
wind_direction_n = wind_n.getElementByTagName ('t') [0]
جهت_ باد = self.getText (wind_direction_n.childNodes)
wind_gusts_n = wind_n.getElementByTagName ('هجوم') [0]
wind_gusts = self.getText (wind_gusts_n.childNodes)
day_forecast_data = WeatherData (روز_هفته ، کم دما ، دمای بالا ، کد_شرایط ، شرایط ، نزولات هوا ، رطوبت ، جهت باد ، سرعت باد ، طوفان های باد ، شهر ، طلوع آفتاب ، غروب آفتاب ، فاز ماه ، آیکون ماه ، بار_خوان ، بار_دست)
self.day_forecast.append (day_forecast_data)

# داده های خاص پیش بینی شب
daytime_n = day.getElementByTagName ('قسمت') [1] # شب
condition_code_n = daytime_n.getElementByTagName ('نماد') [0]
condition_code = self.getText (condition_code_n.childNodes)
condition_n = daytime_n.getElementByTagName ('t') [0]
شرط = self.getText (condition_n.childNodes)
precip_n = daytime_n.getElementByTagName ('ppcp') [0]
precip = self.getText (precip_n.childNodes)
humidity_n = daytime_n.getElementByTagName ('hmid') [0]
رطوبت = self.getText (humidity_n.childNodes)
wind_n = daytime_n.getElementByTagName ('باد') [0]
wind_speed_n = wind_n.getElementByTagName ('s) [0]
wind_speed = self.getText (wind_speed_n.childNodes)
wind_direction_n = wind_n.getElementByTagName ('t') [0]
جهت_ باد = self.getText (wind_direction_n.childNodes)
wind_gusts_n = wind_n.getElementByTagName ('هجوم') [0]
wind_gusts = self.getText (wind_gusts_n.childNodes)
data_forecast_ شب = داده های WeatherData (روز_هفته ، کم دما ، دمای بالا ، کد_شرایط ، شرایط ، بارندگی ، رطوبت ، جهت باد ، سرعت_زش باد ، طوفان های باد ، شهر ، طلوع آفتاب ، غروب خورشید ، مرحله_ماه ، آیکون_ماه ، بار_خوان ، بار_دست)
self.night_forecast.append (شب_پیش بینی_ داده)

# ترشی داده ها برای دفعه بعدی!
fileoutput = open (file_path_current ، 'w')
pickle.dump (self.current_conditions ، fileoutput)
fileoutput.close ()

fileoutput = باز (file_path_dayforecast ، "w")
pickle.dump (self.day_forecast ، fileoutput)
fileoutput.close ()

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

جز:
چاپ "fetchData: خطای غیرمنتظره:" ، sys.exc_info () [0]
چاپ "امکان بازجویی از داده های آب و هوا وجود ندارد"

else: # واکشی داده های آب و هوا از پرونده های کلاس ترشی
اگر self.options.verbose == درست است:
print >> sys.stdout، «واکشی داده های آب و هوا از پرونده:«، file_path_current

fileinput = باز (file_path_current ، 'r')
self.current_conditions = pickle.load (fileinput)
fileinput.close ()

اگر self.options.verbose == درست است:
print >> sys.stdout، "واکشی داده های پیش بینی روز از پرونده ها:"، file_path_dayforecast، file_path_nightforecast

fileinput = باز (file_path_dayforecast ، 'r')
self.day_forecast = pickle.load (fileinput)
fileinput.close ()

اگر self.options.verbose == درست است:
print >> sys.stdout، "واکشی داده های پیش بینی روز از پرونده ها:"، file_path_nightforecast، file_path_nightforecast

fileinput = باز (file_path_nightforecast ، 'r')
self.night_forecast = pickle.load (fileinput)
fileinput.close ()

خروجی def داده (خود):
#تلاش كردن:

if self.options.template! = هیچ کدام:

خروجی = self.getOutputTextFromTemplate (self.options.template)

دیگری:

خروجی = self.getOutputText (self.options.datatype ، self.options.startday ، self.options.endday ، self.options.night ، self.options.shortweekday ، self.options.imperial ، self.options.hideunits ، self. گزینه ها. فضاها)

خروجی چاپ. کد ("utf-8")

#بجز:
# چاپ «outputData: خطای غیرمنتظره:«، sys.exc_info () [0]

اگر __name__ == "__ اصلی__":

تجزیه کننده = CommandLineParser ()
(گزینه ها ، قوس ها) = parser.parse_args ()

اگر options.verbose == درست است:
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، "فضاها:"، options.spaces
print >> sys.stdout، "verbose:"، options.verbose
print >> sys.stdout، "refetch:"، options.refetch

# ایجاد آب و هوا جهانی جدید
هوا = GlobalWeather (گزینه ها)
weather.fetchData ()
weather.outputData ()

ما پرونده ~ / Conky / اسکریپت ها / myweather.template را ایجاد می کنیم

gedit ~ / Conky / اسکریپت ها / myweather.template

موارد زیر را داخل آن چسباندیم:

{–Datatype = DW –startday = 1}: {–datatype = CC –startday = 1}
{–Datatype = HT –startday = 1} / {–datatype = LT –startday = 1} وزش باد از {–datatype = WD –startday = 1} تا {–datatype = WS –startday = 1}
رطوبت: {–dataype = HM –startday = 1} بارش: {–datatype = PC –startday = 1}
طلوع آفتاب: {–datatype = SR –startday = 1} غروب آفتاب: {–datatype = SS –startday = 1}
————————————————
{–Datatype = DW –startday = 2}: {–datatype = CC –startday = 2}
{–Datatype = HT –startday = 2} / {–datatype = LT –startday = 2} وزش باد از {–datatype = WD –startday = 2} تا {–datatype = WS –startday = 2}
رطوبت: {–dataype = HM –startday = 2} بارش: {–datatype = PC –startday = 2}
طلوع آفتاب: {–datatype = SR –startday = 2} غروب آفتاب: {–datatype = SS –startday = 2}
————————————————
{–Datatype = DW –startday = 3}: {–datatype = CC –startday = 3}
{–Datatype = HT –startday = 3} / {–datatype = LT –startday = 3} وزش باد از {–datatype = WD –startday = 3} تا {–datatype = WS –startday = 3}
رطوبت: {–dataype = HM –startday = 3} بارش: {–datatype = PC –startday = 3}
طلوع آفتاب: {–datatype = SR –startday = 3} غروب آفتاب: {–datatype = SS –startday = 3}
————————————————
{–Datatype = DW –startday = 4}: {–datatype = CC –startday = 4}
{–Datatype = HT –startday = 4} / {–datatype = LT –startday = 4} وزش باد از {–datatype = WD –startday = 4} تا {–datatype = WS –startday = 4}
رطوبت: {–dataype = HM –startday = 4} بارش: {–datatype = PC –startday = 4}
طلوع آفتاب: {–datatype = SR –startday = 4} غروب آفتاب: {–datatype = SS –startday = 4}

ما پرونده ~ / Conky / اسکریپت ها / نامه / conkyEmail.py را ایجاد می کنیم (ما باید پوشه نامه را ایجاد کنیم)

gedit ~ / Conky / اسکریپت ها / نامه / conkyEmail.py

و موارد زیر را داخل آن بچسبانید:

وارد کردنت
وارد کردن رشته

# نام کاربری و رمز ورود خود را در زیر وارد کنید
# به عنوان مثال. نام کاربری = »نام کاربری» و گذرواژه = »رمزعبور»
نام کاربری = »YOUR_USUARIO_SINARROBA شما«
رمز عبور = »کلید شما«

com = »wget -O - https: //» + نام کاربری + »:» + رمز عبور + »@ mail.google.com / mail / feed / atom - بدون گواهی چک»

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

اگر fc == 0:
چاپ "0 جدید"
دیگری:
چاپ خیابان (fc) + »جدید»

بنابراین اکنون 7 پرونده دارید:

در پوشه:
-> .startconky << - قابل اجرا است

در پوشه: ~ / Conky
-> conkymain
-> conkyforecast
-> پیام کوتاه

و در پوشه: ~ / Conky / اسکریپت ها
-> conkyForecast.py << - قابل اجرا کنید
-> myweather.template

و در پوشه: ~ / Conky / اسکریپت ها / نامه
conkyEmail.py << - قابل اجرا است

و این تمام ، توضیحات ، جایی که می گوید / خانه / کاربر / ... نام کاربری شما می رود و در بخشی که داده های Gmail می رود ، من با رنگ هایی که باید داده های خود را قرار دهید برجسته کردم.

برای از بین بردن روند conky نوشتن در یک کنسول

کیلال کانکی

برای اجرای نوشتن conky در یک کنسول

./.startconky

پس از تنظیم همه چیز ، اگر می خواهید برای شروع هر جلسه راحت باشید

سیستم -> تنظیمات ترجیحی -> جلسات و در برنامه های راه اندازی آن را اضافه می کنیم

در Name می توانیم Conky را به ترتیب بنویسیم ./startconky با این کار هر بار که رایانه را روشن کنید شروع می شود.

همین ، امیدوارم به شما کمک کند.


محتوای مقاله به اصول ما پیوست اخلاق تحریریه. برای گزارش یک خطا کلیک کنید اینجا.

اولین کسی باشید که نظر

نظر خود را بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند با *

*

*

  1. مسئول داده ها: میگل آنخل گاتون
  2. هدف از داده ها: کنترل هرزنامه ، مدیریت نظرات.
  3. مشروعیت: رضایت شما
  4. ارتباط داده ها: داده ها به اشخاص ثالث منتقل نمی شوند مگر با تعهد قانونی.
  5. ذخیره سازی داده ها: پایگاه داده به میزبانی شبکه های Occentus (EU)
  6. حقوق: در هر زمان می توانید اطلاعات خود را محدود ، بازیابی و حذف کنید.