Цонки, Моја поставка

Фецфацтор ме јуче питао да објавим конфигурацију цонки-а коју приказујем на доњем снимку екрана

Као што видите постоје 3 цонкис-а, која се извршавају помоћу скрипте, на којој се заснива конфигурација исте овај пост објавио корисник Бруце М. на форумима Убунту-Ар са изменама у маил цонки, што је у мом случају за Гмаил.

У референтном посту то је Бруце врло добро објаснио, али такође као помоћ за памћење, копираћу кораке које треба следити и код мојих конкија за онога ко га има.

Па, наравно, морамо да имамо инсталиране цонки, цурл и питхон, па укуцавамо конзолу:

судо апт-гет инсталирај цонки цурл питхон

Извор времена.ттф и стрелице.ттф је овде. Извор месеца.ттф је овде након преузимања морате их копирати у / уср / схаре / фонтове

Хајде сада да креирамо нашу скрипту под називом ~. / Стартцонки

гксудо гедит ~ / .стартцонки

у празну датотеку налепимо следеће

#! / бин / басх
слееп 0 & # 0 добро за Ксфце - користите 20 до 30 за Гноме
цонки -ц ~ / Цонки / цонкимаин &
#слееп 0 & # 0 добро за Ксфце - користите 1 за Гноме
цонки -ц ~ / Цонки / цонкифорецаст &
#слееп 0 & # 0 добро за Ксфце - користите 1 за Гноме
цонки -ц ~ / Цонки / цонкимаил &

Сада креирамо датотеку цонкимаин у директоријуму ~ / Цонки, ако немамо фасциклу Цонки, мораћемо је створити.

гедит ~ / Цонки / цонкимаин

Користим фонт Цалибри, ако га немате, замените га оним што желите.

Држимо се онога што следи

позадина бр
овн_виндов да
овн_виндов_транспарент иес
овн_виндов_хинтс неукрашени, доле, лепљиви, прескочи_таскбар, прескочи_пагер
сопствени_прозор_боја црна
доубле_буффер да
усе_спацер лефт
усе_кфт да
фонт цалибри: сизе = 9
кфтфонт цалибри: величина = 9
кфталпха 0.5
упдате_интервал 5.0
велико не # постављено на да ако желите да сав текст буде написан великим словом
стипплед_бордерс 3
бордер_маргин 9
ширина_границе 10
дефаулт_цолор бела
дефаулт_оутлине_цолор блацк
дефаулт_схаде_цолор блацк
боја0 цијан
цолор1 светлоплава
боја2 наранџаста
боја3 жута
цолор4 пшеница
боја5 бела
боја6 бела
боја7 бела
боја8 бела
боја9 бела
поравнање топ_ригхт # или топ_лефт, боттом_лефт, боттом_ригхт
јаз_к 10
јаз_и 35
тект_буффер_сизе 128 # користите 1024 за прогнозу
не_буфери да # Одузимати бафере система датотека из коришћене меморије?
драв_бордерс бр
драв_оутлине иес # појачава текст ако је одговор да
драв_схадес да # нијансабоја црна

ТЕКСТ
$ {фонт цалибри: сизе = 12} $ {алигнц} $ {цолор1} $ сиснаме $ кернел на $ мацхине} $ цолор $ фонт
$ {фонт цалибри: сизе = 12} $ {алигнц} $ {цолор2} $ {екец вхоами} @ $ ноденаме $ цолор $ фонт
$ {цолор0} $ {хр 1} $ боја
$ {фонт цалибри: сизе = 20} $ {алигнц} $ {тиме% Х:% М} $ фонт
$ {фонт цалибри: сизе = 12} $ {цолор1} $ {алигнц} $ {тиме% А,% д% б. % И} $ цолор $ фонт
$ {цолор3} Време рада: $ {алигнр 2} $ уптиме $ цолор
$ {цолор0} $ {хр 1} $ боја
$ {воффсет 5} $ {цолор2} ЦПУ: $ {алигнц} $ цолор $ руннинг_процессес $ {цолор1} / $ цолор $ процеси $ {алигнр 2} $ {цолор2} $ {цпубар цпу0 14,80} $ цолор
$ {цолор1} $ {воффсет -16} $ {алигнр 5} $ цпу% $ боја
$ {воффсет 2} $ {цолор1} Учитај просечно ($ {цолор3} Мин. $ {цолор1}): $ {алигнр 2} $ {цолор3} 1: $ цолор $ {лоадавг 1} $ {цолор3} 5: $ цолор $ {лоадавг 2} $ {цолор3} 15: $ цолор $ {лоадавг 3}
$ {воффсет 5} $ {цолор2} РАМ: $ цолор $ мем $ {цолор2} / $ цолор $ меммак $ {алигнр 2} $ {цолор2} $ {мембар 14,80} $ боја
$ {цолор1} $ {воффсет -16} $ {алигнр 5} $ мемперц% $ боја
$ {воффсет 2} $ {цолор1} Бафер: $ цолор $ {буфферс} $ {алигнр 2} $ {цолор1} Кеширано: $ цолор $ {цацхед}
$ {воффсет 5} $ {цолор2} СВАП: $ цолор $ свап $ {цолор2} / $ цолор $ {свапмак} $ {алигнр 2} $ {цолор2} $ {свапбар 14,80} $ цолор
$ {цолор1} $ {воффсет -16} $ {алигнр 5} $ свапперц%
$ {цолор0} $ {хр 1} $ боја
$ {воффсет 5} $ {цолор2} ХД информације $ {цолор1} - $ боја Бесплатно $ {цолор1} - Коришћено - $ {цолор2} Укупно
$ {воффсет 5} $ {цолор1} Роот: $ цолор $ {фс_фрее_перц /}% $ {алигнр 2} $ {фс_фрее /} $ {цолор2} / $ {цолор1} $ {фс_усед /} $ цолор / $ {цолор2} $ {фс_сизе /} $ боја
$ {цолор1} Почетна: $ боја $ {фс_фрее_перц / хоме / усер}% $ {алигнр 2} $ {фс_фрее / хоме / усер} $ {цолор2} / $ {цолор1} $ {фс_усед / хоме / усер} $ цолор / $ {цолор2} $ {фс_сизе / хоме / усер} $ боја
$ {цолор0} $ {хр 1} $ боја
$ {цолор1} Од: $ цолор Буенос Аирес, Аргентина
$ {цолор1} Ширина: $ {цолор2} 34 ° 35'С $ {цолор1} Дуга: $ {цолор2} 58 ° 21'В $ {цолор1} Алт: $ {цолор2} 25 м $ боја
$ {воффсет 5} $ {цолор2} $ {фонт цалибри: сизе = 12} данас: $ фонт $ {цолор3} $ {екеци 3600 питхон ~ / Цонки / сцриптс / цонкиФорецаст.пи –лоцатион = АРБА0009 –дататипе = ЦЦ} $ боја $ {алигнр 2} $ {цолор1} СТ: $ {цолор2} $ {екеци 3600 питхон ~ / Цонки / сцриптс / цонкиФорецаст.пи –лоцатион = АРБА0009 –дататипе = ЛТ}
$ {цолор3} $ {фонт Време: сизе = 50} $ {екеци 3600 питхон ~ / Цонки / сцриптс / цонкиФорецаст.пи –лоцатион = АРБА0009 –дататипе = ВФ} $ фонт $ цолор
$ {алигнр 50} $ {воффсет -55} $ {фонт цалибри: сизе = 25} $ {екеци 3600 питхон ~ / Цонки / сцриптс / цонкиФорецаст.пи –лоцатион = АРБА0009 –дататипе = ХТ} $ фонт
$ {алигнц 20} $ {воффсет -30} $ {фонт Арровс: сизе = 20} $ {цолор4} $ {екеци 3600 питхон ~ / Цонки / сцриптс / цонкиФорецаст.пи –лоцатион = АРБА0009 –дататипе = БФ} $ цолор $ фонт
$ {алигнц 10} $ {воффсет 5} $ {цолор4} Ветар: $ {екеци 3600 питхон ~ / Цонки / сцриптс / цонкиФорецаст.пи –лоцатион = АРБА0009 –дататипе = ВС} $ цолор
$ {цолор1} Влажност: $ {цолор3} $ {екеци 3600 питхон ~ / Цонки / сцриптс / цонкиФорецаст.пи –лоцатион = АРБА0009 –дататипе = ХМ} $ {алигнр 2} $ {цолор1} Падавине: $ {цолор3} $ { екеци 3600 питхон ~ / Цонки / скрипте / цонкиФорецаст.пи –локација = АРБА0009 –дататипе = ПЦ} $ боја
$ {алигнц} $ {цолор1} Притисак: $ {цолор3} $ {екеци 3600 питхон ~ / Цонки / сцриптс / цонкиФорецаст.пи –лоцатион = АРБА0009 –дататипе = БР} - $ {цолор3} $ {екеци 3600 питхон ~ / Цонки /сцриптс/цонкиФорецаст.пи –лоцатион = АРБА0009 –дататипе = БД} $ цолор
$ {цолор4} $ {хр} $ боја
$ {цолор1} Излазак сунца: $ {цолор3} $ {екеци 3600 питхон ~ / Цонки / сцриптс / цонкиФорецаст.пи –лоцатион = АРБА0009 –дататипе = СР} $ {алигнр 2} $ {цолор1} Залазак сунца: $ {цолор3} $ { екеци 3600 питхон ~ / Цонки / скрипте / цонкиФорецаст.пи –локација = АРБА0009 –дататипе = СС} $ боја
$ {воффсет 15} $ {цолор1} Месец: $ {цолор4} $ {алигнр 2} $ {цолор3} $ {екеци 3600 питхон ~ / Цонки / сцриптс / цонкиФорецаст.пи –лоцатион = АРБА0009 –дататипе = МП} $ цолор
$ {воффсет -20} $ {оффсет 80} $ {цолор4} $ {фонт моон пхасес: сизе = 20} $ {екеци 3600 питхон ~ / Цонки / сцриптс / цонкиФорецаст.пи –лоцатион = АРБА0009 –дататипе = МФ} $ фонт $ боја
$ {цолор0} $ {хр} $ боја
$ {воффсет 5} $ {цолор2} ИП: $ {алигнц} $ цолор $ {аддр етх0}
$ {цолор1} Доље: $ цолор $ {довнспеед етх0} к / с $ {алигнр 2} $ {цолор1} Горе: $ цолор $ {упспеед етх0} к / с
$ {цолор1} Укупно: $ цолор $ {тоталдовн етх0} $ {алигнр 2} $ {цолор1} Укупно: $ цолор $ {тоталуп етх0}
$ {цолор1} Улазни: $ цолор $ {тцп_портмон 1 32767 цоунт} $ {цолор1} Одлазни: $ цолор $ {тцп_портмон 32768 61000 цоунт} $ {алигнр 2} $ {цолор1} Укупно: $ цолор $ {тцп_портмон 1 65535 цоунт}
$ {воффсет 5} $ {цолор2} Везе: $ цолор $ {тцп_портмон 32768 61000 цоунт} $ {алигнр 2} $ {цолор2} Услуга / Порт $ боја
$ {воффсет 5} $ {тцп_портмон 32768 61000 рхост 0} $ {алигнр 2} $ {тцп_портмон 32768 61000 рсервице 0}
$ {тцп_портмон 32768 61000 рхост 1} $ {алигнр 2} $ {тцп_портмон 32768 61000 рсервице 1}
$ {тцп_портмон 32768 61000 рхост 2} $ {алигнр 2} $ {тцп_портмон 32768 61000 рсервице 2}
$ {тцп_портмон 32768 61000 рхост 3} $ {алигнр 2} $ {тцп_портмон 32768 61000 рсервице 3}
$ {тцп_портмон 32768 61000 рхост 4} $ {алигнр 2} $ {тцп_портмон 32768 61000 рсервице 4}
$ {тцп_портмон 32768 61000 рхост 5} $ {алигнр 2} $ {тцп_портмон 32768 61000 рсервице 5} $ боја

креирамо датотеку ~ / Цонки / цонкифорецаст

гедит ~ / Цонки / цонкифорецаст

а унутра залепимо следеће

позадина бр
овн_виндов да
овн_виндов_транспарент иес
овн_виндов_хинтс неукрашени, доле, лепљиви, прескочи_таскбар, прескочи_пагер
сопствени_прозор_боја црна
доубле_буффер да
усе_спацер лефт
усе_кфт да
фонт цалибри: сизе = 8
кфтфонт цалибри: величина = 8
кфталпха 0.5
упдате_интервал 5.0
велико не # постављено на да ако желите да сав текст буде написан великим словом
стипплед_бордерс 3
бордер_маргин 9
ширина_границе 10
дефаулт_цолор бела
дефаулт_оутлине_цолор блацк
дефаулт_схаде_цолор блацк
боја0 цијан
цолор1 светлоплава
боја2 наранџаста
боја3 жута
цолор4 пшеница
боја5 бела
боја6 бела
боја7 бела
боја8 бела
боја9 бела
поравнање боттом_лефт # или топ_лефт, боттом_лефт, боттом_ригхт
јаз_к 10
јаз_и 35
тект_буффер_сизе 1024 # користите 1024 за прогнозу
не_буфери да # Одузимати бафере система датотека из коришћене меморије?
драв_бордерс бр
драв_оутлине иес # појачава текст ако је одговор да
драв_схадес да # нијансабоја црна

ТЕКСТ
$ {цолор4} $ {фонт цалибри: сизе = 11} Проширена прогноза $ фонт $ цолор
$ {цолор0} $ {хр} $ боја
$ {цолор4} $ {фонт цалибри: сизе = 9} $ {екеци 3600 питхон ~ / Цонки / сцриптс / цонкиФорецаст.пи –лоцатион = АРБА0009 –темплате = / хоме / усер / Цонки / сцриптс / мивеатхер.темплате} $ фонт $ боја

креирамо датотеку ~ / Цонки / цонкимаил

гедит ~ / Цонки / цонкимаил

у датотеку залепимо следеће

позадина бр
овн_виндов да
овн_виндов_транспарент иес
овн_виндов_хинтс неукрашени, доле, лепљиви, прескочи_таскбар, прескочи_пагер
сопствени_прозор_боја црна
доубле_буффер да
усе_спацер лефт
усе_кфт да
фонт цалибри: сизе = 8
кфтфонт цалибри: величина = 8
кфталпха 0.5
упдате_интервал 5.0
велико не # постављено на да ако желите да сав текст буде написан великим словом
стипплед_бордерс 3
бордер_маргин 9
ширина_границе 10
дефаулт_цолор бела
дефаулт_оутлине_цолор блацк
дефаулт_схаде_цолор блацк
боја0 цијан
цолор1 светлоплава
боја2 наранџаста
боја3 жута
цолор4 пшеница
боја5 бела
боја6 бела
боја7 бела
боја8 бела
боја9 бела
поравнање боттом_лефт # или топ_лефт, боттом_лефт, боттом_ригхт
јаз_к 565
јаз_и 35
тект_буффер_сизе 128 # користите 1024 за прогнозу
не_буфери да # Одузимати бафере система датотека из коришћене меморије?
драв_бордерс бр
драв_оутлине иес # појачава текст ако је одговор да
драв_схадес да # нијансабоја црна

ТЕКСТ
$ {фонт цалибри: сизе = 11} $ {алигнц} $ {цолор4} Гмаил
$ {цолор0} $ {хр} $ боја
$ {фонт цалибри: сизе = 11} $ {цолор4} Имамо $ {цолор3} $ {екеци 300 питхон ~ / Цонки / сцриптс / маил / цонкиЕмаил.пи} $ {цолор4} емаил (с) $ фонт

Креирамо датотеку у ~ / Цонки / сцриптс / цонкиФорецаст.пи (морамо направити директоријум скрипте)

гедит ~ / Цонки / скрипте / цонкиФорецаст.пи

#! / уср / бин / питхон
# - * - кодирање: утф-8 - * -
#################################################### ##############################
# цонкиФорецаст.пи је (не тако) једноставна (више) питхон скрипта за прикупљање
# детаља о тренутном времену за употребу у цонки-у.
#
# Аутор: Каивалаги
# Направљено: 13
# Измене:
# 14. Омогућите опсеге дана за прогнозне податке
# 14 Провери повезаност са услугом коап
18. Дозволи постављање простора за опсежне излазе
# 18. Дозволи излаз за ноћну и дневну прогнозу
# 18 Подршка за локални језик за опцију текста кода услова «ЦЦ», чека превод на шпански језик
# 18. Користите кисељење за податке класе уместо отварања кмл-а, ово заобилази потребу за испитивањем кешираних података
# 19. Додан текст на шпанском језику - Хвала Бруце М.
# 19. Додата је бројчана провера свих нумеричких излаза са суфиксом јединице
# 19 Измењено именовање датотеке киселих краставаца тако да укључује код локације
# 19/04/2008 Додато је претварање шпанских недеља дана преко локалног језика
# 20 Додан пристојан парсер за командне аргументе
# 20 Додато - опција кратког недеље, ако је дат тип дана у седмици, скраћен је на 04 знака
# 21 Фиксне локацијске опције за излаз прогнозе
# 21. Додата опција шаблона за омогућавање прилагођеног излаза помоћу једног извршног позива 🙂
21. Додата је опција –хидеунитс за уклањање, на пример, мпх и Ц из излаза
# 23/04/2008 Уклоњена –империал опција из шаблона, МОРА да се постави као стандардна опција у позиву скрипте и не користи се у датотеци шаблона.
# 23 Прочитано - царска опција за предложак, омогућавајући метричке или царске вредности по типу података. Имајте на уму када употреба шаблона командне линије неће радити.
# 23/04/2008 Додан је излазни обавештавајући корисник ако је дата локација лоша
# 24. Додато руковање због неповезивања, вратиће се на кеширане податке сада (грешка ако кеш меморија не постоји). Тестови покушајем отварања коап.веатхер.цом
# 24 Фиксна конверзија Целзијуса у Фахренхеит
# 06/05/2008 Ажурирани УРЛ који се користи након ажурирања веб услуге
09. Обједињени подаци о тренутном стању и прогнозама у један позив
# 09/05/2008 Типовима података додали су излазак и залазак сунца, они су специфични и за тренутне услове и за податке о прогнозама
# 09/05/2008 Додати месечеву фазу, очитавање барометра и опис барометра типовима података, они су специфични само за тренутне услове, па тако и Н / А у предвиђеном излазу
# 09/05/2008 Додате конверзије јединица за барометар из мб у инче (царски)
# 09/05/2008 Ажуриран текст на шпанском језику - Хвала Бруце М.
# 10/05/2008 Додати подаци о француском језику - Хвала бенпака
# 12/05/2008 Додан је нови тип података БФ (с фонтом) који даје знак стрелице (користи се са фонтом Арров.ттф) уместо НСЕВ излаза из ВД-а (смер ветра)
# 12/05/2008 Ажурирани ВД излаз биће прилагођен локалном језику, тренутно подржава задати енглески и шпански језик - Хвала Бруце М.
# 18/05/2008 Додан је нови тип података МФ (месечев фонт) за пружање знака месечевог фонта (нетачни знакови и још увек нема наменског фонта).
# 21. У тренутним условима опција –дататипе = ЛТ сада приказује температуру «осећа се као» уместо тренутне температуре
#
# СВЕ:
# Објединити пкл датотеке у једну датотеку / класу
# Додајте фонт времена на основу података о месечевој фази на основу података о месечевим иконама
# ??? Има ли још услова?

импорт сис, ос, соцкет, урллиб2, датум и време
фром кмл.дом импорт минидом
из увоза стат *
из оптпарсе импорт ОптионПарсер
локалитет увоза
импорт геттект
увозити кисели краставац
из математичког увоза *

АПП = »цонкиФорецаст.пи»
ДИР = ос.патх.дирнаме (__филе__) + '/ лоцале'
геттект.биндтектдомаин (АПП, ДИР)
геттект.тектдомаин (АПП)
_ = геттект.геттект

класа ЦоммандЛинеПарсер:

парсер = Нема

деф __инит __ (само):

селф.парсер = ОптионПарсер ()
селф.парсер.адд_оптион («- л», »- локација», дест = »локација», подразумевано = »УККСКС0103 ″, типе =» стринг », метавар =» ЦОДЕ », хелп = у» код локације за временске податке [ подразумевано:% дефаулт], Користите следећи урл да одредите код локације према имену града: хттп://коап.веатхер.цом/сеарцх/сеарцх?вхере=Норвицх »)
селф.парсер.адд_оптион ("- д", "- типе дата", дест = "дататипе", дефаулт = "ХТ", типе = "стринг", метавар = "ДАТАТИПЕ", хелп = у "[подразумевано:% дефаулт] Опције типа података су: ДВ (Дан у недељи), ВФ (Излаз фонтова за временске прилике), ЛТ (Прогноза: Ниска темп., Тренутна: Осећај темп.), ХТ (Прогноза: Висока темп., Тренутна: Тренутна темп.), ЦЦ (Тренутна Услови), ЦТ (Текст услова), ПЦ (шанса за падавине), ХМ (влажност), ВД (смер ветра), ВС (брзина ветра), ВГ (удари ветра), ЦН (назив града), СР (излазак сунца), СС (залазак сунца), МП (месечева фаза), МФ (месечев фонт), БР (очитавање барометра), БД (опис барометра). Није применљиво у командној линији када се користе шаблони. »)
селф.парсер.адд_оптион («- с», »- стартдаи», дест = »стартдаи», типе = »инт», метавар = »БРОЈ», хелп = у »дефинише број почетног дана, ако су изостављени тренутни услови . Није применљиво у командној линији када користите предлошке. »)
селф.парсер.адд_оптион ("- е", "- енддаи", дест = "енддаи", типе = "инт", метавар = "НУМБЕР", хелп = у "дефинише број завршног дана, ако су изостављени само подаци о почетном дану је излаз. Није применљиво у командној линији када се користе предлошци. »)
селф.парсер.адд_оптион («- С», »- размаци», дест = »размаци», тип = »инт», подразумевано = 1, метавар = »БРОЈ», помоћ = у »[подразумевано:% дефаулт] Дефинише број размака између опсега излаза. Није применљиво у командној линији када се користе предлошци. »)
селф.парсер.адд_оптион («- т», »- темплате», дест = »темплате», типе = »стринг», метавар = »ФИЛЕ», хелп = у »дефинишите датотеку предлошка за генерисање резултата у једном позиву. А ставка која се може приказати у датотеци је у облику {–дататипе = ХТ –стартдаи = 1}. Следеће могуће опције у оквиру сваке ставке: –дататипе, –стартдаи, –енддаи, –нигхт, –схортвеекдаи, –империал, –хидеунитс, –Простори. Имајте на уму да кратки облици опција тренутно нису подржани! Ниједна од ових опција није применљива у командној линији када се користе шаблони. »)
селф.парсер.адд_оптион («- Л», »- лоцале», дест = »лоцале», типе = »стринг», хелп = у »надјачати системску локализацију за излаз језика (ен = енглески, ес = шпански, фр = француски, још долази) »)
селф.парсер.адд_оптион ("- и", "- империал", дест = "империал", дефаулт = Фалсе, ацтион = "сторе_труе", хелп = у "захтева царске јединице, ако је изостављени излаз у метрици. Није применљиво на командна линија када користите предлошке. »)
селф.парсер.адд_оптион («- н», »- нигхт», дест = »нигхт», дефаулт = Фалсе, ацтион = »сторе_труе», хелп = у »пребаците излаз на ноћне податке, ако је изостављен дневни излаз. Није применљиво у командној линији када се користе шаблони. »)
селф.парсер.адд_оптион («- в», »- схортвеекдаи», дест = »схортвеекдаи», дефаулт = Фалсе, ацтион = »сторе_труе», хелп = у »Скратите тип података за дан у недељи на 3 знака. Није применљиво на командна линија када користите предлошке. »)
селф.парсер.адд_оптион («- у», »- скривене јединице», дест = »скривене јединице», дефаулт = Фалсе, ацтион = »сторе_труе», хелп = у »Сакриј јединице као што су мпх или Ц, симболи степени (°) су и даље приказано. Није применљиво у командној линији када користите предлошке. »)
селф.парсер.адд_оптион ("- в", "- вербосе", дест = "вербосе", дефаулт = Фалсе, ацтион = "сторе_труе", хелп = у "захтева опсежни излаз, није добра идеја када се пролази кроз цонки!" )
селф.парсер.адд_оптион ("- р", "- рефетцх", дест = "рефетцх", дефаулт = Фалсе, ацтион = "сторе_труе", хелп = у "дохватање података без обзира на истек података")

деф парсе_аргс (селф):
(опције, аргументи) = селф.парсер.парсе_аргс ()
повратак (опције, аргументи)

деф принт_хелп (само):
врати селф.парсер.принт_хелп ()

класа ВеатхерДата:
деф __инит __ (селф, даи_вееек, лов, хигх, цондитион_цоде, цондитион_тект, прецип, влажност, винд_дир, винд_спеед, винд_густс, цити, сунрисе, сунсет, моон_пхасе, моон_ицон, бар_реад, бар_десц):
селф.даи_оф_веек = у »» + даи_оф_веек
само.ниско = у »» + ниско
само.високо = у »» + високо
селф.цондитион_цоде = у »» + код_услова
само.услов_текста = у »» + услов_текста
селф.прецип = у »» + прецип
само.влажност = у »» + влажност
селф.винд_дир = у »» + винд_дир
селф.винд_спеед = у »» + брзина ветра
селф.винд_густс = у »» + удари ветра
селф.цити = у »» + град
селф.сунрисе = у »» + излазак сунца
селф.сунсет = у »» + залазак сунца
селф.моон_пхасе = у »» + моон_пхасе
селф.моон_ицон = у »» + моон_ицон
селф.бар_реад = у »» + бар_реад
селф.бар_десц = у »» + бар_десц

цласс ВеатхерТект:

погоји_текста = {
«0»: _ (у »Торнадо»),
«1»: _ (у »Тропска олуја»),
«2»: _ (у »Хуррицане»),
«3»: _ (у »Јаке олује«),
«4»: _ (у »Олуја»),
«5»: _ (у »Мешавина кише и снега»),
«6»: _ (у »Мешавина кише и суснежице»),
«7»: _ (у »Мешовите падавине»),
«8»: _ (у »Замрзавајућа киша«),
«9»: _ (у »Кишица«),
«10»: _ (у »Ледена киша»),
«11»: _ (у »Тушеви»),
«12»: _ (у »Тушеви»),
«13»: _ (у »Снежне кише«),
«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»: _ (у »Изоловане олује«),
«На»: _ (у »Н / А»),
"-": _ (а ")
}

цондитионс_тект_ес = {
«0»: _ (у »Торнадо»),
«1»: _ (у »Тропска олуја»),
«2»: _ (у »Хураца¡н»),
«3»: _ (у »Снажне олује»),
«4»: _ (у »Олује»),
«5»: _ (у »Мешавина кише и снега»),
«6»: _ (у »Мешавина кише и суснежице»),
«7»: _ (у «Слеет»),
«8»: _ (у »Замрзавајућа киша«),
«9»: _ (у »Кишица«),
«10»: _ (у »Ледена киша»), # или ледена киша
«11»: _ (у »Тушеви»),
«12»: _ (у »Тушеви»),
«13»: _ (у »Лагани снег»),
«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»: _ (у »Изоловане олује«),
«На»: _ (у »Н / А»),
"-": _ (а ")
}

погоји_текста_фр = {
«0»: _ (у »Торнаде»),
«1»: _ (у »Темпете Тропицале»),
«2»: _ (или «Оураган»),
«3»: _ (или «Орагес Виолентс»),
«4»: _ (или «Орагеук»),
«5»: _ (у »Плуие ет Неиге»),
«6»: _ (у »Плуие ет Неиге Моуиллее»),
«7»: _ (у »Варијабле авец аверссес»),
«8»: _ (у »Бруине Гивранте»),
«9»: _ (у »Бруине»),
«10»: _ (у »Плуие Глацанте»),
«11»: _ (у »Аверсес»),
«12»: _ (у »Аверсес»),
«13»: _ (у »Легере Неиге»),
«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»: _ (или «Орагес Исолес»),
«На»: _ (у »Н / А»),
"-": _ (а ")
}

цондитионс_веатхер_фонт = {
«0»: _ (у »В»),
«1»: _ (у »В»),
«2»: _ (у »В»),
«3»: _ (у »с»),
«4»: _ (у »п»),
«5»: _ (у »к»),
«6»: _ (у »к»),
«7»: _ (у »г»),
«8»: _ (у »г»),
«9»: _ (у »г»),
«10»: _ (у »х»),
«11»: _ (у »г»),
«12»: _ (у »г»),
«13»: _ (у »к»),
«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»: _ (у »ф»),
«На»: _ (у »»),
"-": _ (или "")
}

цондитионс_моон_фонт = {
«0»: _ (у »1 ″),
«1»: _ (у »Н»),
«2»: _ (у »О»),
«3»: _ (у »П»),
«4»: _ (у »К»),
«5»: _ (у »Р»),
«6»: _ (у »С»),
«7»: _ (у »Т»),
«8»: _ (у »У»),
«9»: _ (у »В»),
«10»: _ (у »В»),
«11»: _ (у »Кс»),
«12»: _ (у »И»),
«13»: _ (у »З»),
«14»: _ (у »0 ″),
«15»: _ (у »0 ″),
«16»: _ (у »А»),
«17»: _ (у »Б»),
«18»: _ (у »Ц»),
«19»: _ (у »Д»),
«20»: _ (у »Е»),
«21»: _ (у »Ф»),
«22»: _ (у »Г»),
«23»: _ (у »Х»),
«24»: _ (у »И»),
«25»: _ (у »Ј»),
«26»: _ (у »К»),
«27»: _ (у »Л»),
«28»: _ (у »М»),
«29»: _ (у »1 ″),
«На»: _ (у »»),
"-": _ (или "")
}

даи_оф_веек = {
"Данас": _ (или "Данас"),
«Понедељак»: _ (у «Понедељак»),
«Уторак»: _ (у «уторак»),
«Среда»: _ (у «среда»),
«Четвртак»: _ (у «четвртак»),
«Петак»: _ (у «петак»),
"Субота": _ (у "Субота"),
"Недеља": _ (у "Недеља")
}

даи_оф_веек_схорт = {
"Данас": _ (у "Сада"),
«Понедељак»: _ (у «Понедељак»),
«Уторак»: _ (у «уторак»),
«Среда»: _ (у «Сре»),
«Четвртак»: _ (у «Чет»),
«Петак»: _ (у «Пет»),
"Субота": _ (у "Суб"),
"Недеља": _ (у "Сунце")
}

даи_оф_веек_ес = {
"Данас": _ (у "данас"),
«Понедељак»: _ (у «Понедељак»),
«Уторак»: _ (или «уторак»),
«Среда»: _ (у «среда»),
«Четвртак»: _ (у «четвртак»),
«Петак»: _ (у «петак»),
"Субота": _ (у "Субота"),
"Недеља": _ (у "Недеља")
}

даи_оф_веек_схорт_ес = {
"Данас": _ (у "данас"),
"Понедељак": _ (у "пон"),
«Уторак»: _ (у »мору»),
«Среда»: _ (у «сри»),
«Четвртак»: _ (у «четвртак»),
«Петак»: _ (у »пет»),
"Субота": _ (у "субота"),
"Недеља": _ (у "дом")
}

даи_оф_веек_фр = {
«Данас»: _ (у »Аујоурд'хуи»),
«Понедељак»: _ (у »Лунди»),
«Уторак»: _ (у »Марди»),
«Среда»: _ (у »Мерцреди»),
«Четвртак»: _ (у »Јеуди»),
«Петак»: _ (у »Вендреди»),
"Субота": _ (у "Самеди"),
"Недеља": _ (у "Диманцхе")
}

даи_оф_веек_схорт_фр = {
«Данас»: _ (у »Ауј«),
"Понедељак": _ (у "Понедјељак"),
«Уторак»: _ (у «март»),
"Среда": _ (у "Мер"),
«Четвртак»: _ (у »Јеу«),
«Петак»: _ (у «Дођи»),
"Субота": _ (у "Сам"),
"Недеља": _ (у "Дим")
}

беаринг_арров_фонт = {
«Н»: _ (у »и»),
«ННЕ»: _ (у »ј»),
«НЕ»: _ (у »к»),
«ЕНЕ»: _ (у »л»),
«Е»: _ (у »м»),
«ЕСЕ»: _ (у »н»),
"СЕ": _ (у "о"),
«ССЕ»: _ (у »п»),
«С»: _ (у »а»),
«ССВ»: _ (у »б»),
«СВ»: _ (у »ц»),
"ВСВ": _ (у "д"),
«В»: _ (у »е»),
"ВНВ": _ (у "ф"),
«НВ»: _ (у »г»),
«ННВ»: _ (у »х»),
«Н / А»: _ (у »«)
}

беаринг_тект_ес = {
"Часна сестра"),
«ННЕ»: _ (у »ННЕ»),
«НЕ»: _ (у »НЕ»),
«ЕНЕ»: _ (у »ЕНЕ»),
«Е»: _ (у »Е»),
«ЕСЕ»: _ (у »ЕСЕ»),
«СЕ»: _ (у »СЕ»),
"ССЕ": _ (у "ССЕ"),
"Њихов"),
"ССВ": _ (у "ССО"),
«СВ»: _ (у »СО«),
"ВСВ": _ (у "ВОВ"),
«В»: _ (у »О»),
«ВНВ»: _ (у »ОНО«),
«СЗ»: _ (у »НЕ»),
«ННВ»: _ (у »ННО»),
«Н / А»: _ (у »Н \ А»)
}

беаринг_тект_фр = {
"Часна сестра"),
«ННЕ»: _ (у »ННЕ»),
«НЕ»: _ (у »НЕ»),
«ЕНЕ»: _ (у »ЕНЕ»),
«Е»: _ (у »Е»),
«ЕСЕ»: _ (у »ЕСЕ»),
«СЕ»: _ (у »СЕ»),
"ССЕ": _ (у "ССЕ"),
"Њихов"),
"ССВ": _ (у "ССО"),
«СВ»: _ (у »СО«),
"ВСВ": _ (у "ВОВ"),
«В»: _ (у »О»),
«ВНВ»: _ (у »ОНО«),
«СЗ»: _ (у »НЕ»),
«ННВ»: _ (у »ННО»),
«Н / А»: _ (у »Н \ А»)
}

класа ГлобалВеатхер:

тренутни_услови = []
дневна прогноза = []
ноћна прогноза = []

лоцале = "ин"

оптионс = Нема
веатхеркмлдоц = «»

ТЕМП_ФИЛЕПАТХ_ЦУРРЕНТ = "/тмп/цонкиФорецаст-ц-ЛОЦАТИОН.пкл"
ТЕМП_ФИЛЕПАТХ_ДАИФОРЕЦАСТ = "/тмп/цонкиФорецаст-дф-ЛОЦАТИОН.пкл"
ТЕМП_ФИЛЕПАТХ_НИГХТФОРЕЦАСТ = "/тмп/цонкиФорецаст-нф-ЛОЦАТИОН.пкл"
ЕКСПИРИ_МИНУТЕС = 30
ДЕФАУЛТ_СПАЦИНГ = у »«

деф __инит __ (селф, опције):

селф.оптионс = опције

ако селф.оптионс.лоцале == Нема:
покушати:
# селф.лоцале = лоцале.гетдефаултлоцале () [0] [0: 2]
селф.лоцале = «ес» #унцоммент тхис лине фор форце Спанисх лоцале
# селф.лоцале = "фр" #унцоммент тхис лине фор форце Френцх лоцале
осим:
испис "локалитет није постављен"
друго:
# селф.лоцале = селф.оптионс.лоцале
селф.лоцале = «ес» #унцоммент тхис лине фор форце Спанисх лоцале
# селф.лоцале = "фр" #унцоммент тхис лине фор форце Френцх лоцале

ако селф.оптионс.вербосе == Тачно:
принт >> сис.стдоут, "локалитет је постављен на", селф.лоцале

деф гетТект (селф, ноделист):
рц = «»
за чвор у листи чворова:
ако је ноде.нодеТипе == ноде.ТЕКСТ_НОДЕ:
рц = рц + ноде.дата
ретурн рц

деф гетСпацес (селф, размаци):
стринг = у »»
ако је размаци == Нема:
стринг = селф.ДЕФАУЛТ_СПАЦИНГ
друго:
за и у опсегу (0, размаци + 1):
стринг = стринг + у »«
повратни низ

деф исНумериц (селф, стринг):
покушати:
думми = флоат (стринг)
повратак Тачно
осим:
повратак Нетачно

деф исЦоннецтионАваилабле (селф):
# осигурајте да можемо приступити серверу веатхер.цом отварањем УРЛ-а
покушати:
Усоцк = урллиб2.урлопен ('хттп://коап.веатхер.цом')
Усоцк.цлосе ()
повратак Тачно
осим:
повратак Нетачно

деф гетБеарингТект (селф, беаринг):
лежај = пловак (лежај)
ако има <11.25:
повратак у »Н»
елиф лежај <33.75:
повратак у »ННЕ»
елиф лежај <56.25:
повратак у »НЕ»
елиф лежај <78.75:
повратак у »ЈАН»
елиф лежај <101.25:
повратак у »Е»
елиф лежај <123.75:
повратак у »ЕСЕ»
елиф лежај <146.25:
повратак у »СЕ»
елиф лежај <168.75:
повратак у »ССЕ»
елиф лежај <191.25:
повратак у »С»
елиф лежај <213.75:
повратак у »ССВ»
елиф лежај <236.25:
повратак у »СВ»
елиф лежај <258.75:
повратак у »ВСВ»
елиф лежај <281.25:
повратак у »В»
елиф лежај <303.75:
повратак у »ВНВ»
елиф лежај <326.25:
повратак у »СЗ»
елиф лежај <348.75:
повратак у »ННВ»
друго:
повратак «Н / А»

деф цонвертЦелсиусТоФахренхеит (селф, темп):
ретурн стр (инт (флоор (((флоат (темп) * 9.0) /5.0) +32)))

деф цонвертКилометресТоМилес (селф, дист):
ретурн стр (инт (флоор (флоат (дист) * 0.621371192)))

деф цонвертМиллибарсТоИнцхес (селф, мб):
ретурн стр (инт (флоор (флоат (мб) /33.8582)))

деф гетТемплатеЛист (селф, темплате):

темплателист = []

за темплате_парт у темплате.сплит («{«):
иф темплате_парт! = «»:
за темплате_парт у темплате_парт.сплит ("}"):
иф темплате_парт! = «»:
темплателист.аппенд (у »» + темплате_парт)

повратак темплателиста

деф гетОутпутТект (селф, тип података, дан почетка, дан, ноћ, кратки недеља, империјал, скривене јединице, размаци):
#покушати:
излаз = у »»

# дефинишите тренутне јединице за излаз
иф хидеунитс == Фалсе:
иф империал == Фалсе:
темпунит = у »° Ц»
брзина = у »км / х»
јединица притиска = у »мб»
друго:
темпунит = у »° Ф»
брзина = у »мпх»
тлачна јединица = у »у»
друго:
темпунит = у »°»
спеедунит = у »»
јединица притиска = у »»

ако је почетни дан == Ниједан: # тренутни услови

ако је тип података == "ДВ":
ако селф.лоцале == "је":
иф схортвеекдаи == Труе:
оутпут = ВеатхерТект.даи_оф_веек_схорт_ес [селф.цуррент_цондитионс [0] .даи_оф_веек]
друго:
оутпут = ВеатхерТект.даи_оф_веек_ес [селф.цуррент_цондитионс [0] .даи_оф_веек]
елиф селф.лоцале == "фр":
иф схортвеекдаи == Труе:
оутпут = ВеатхерТект.даи_оф_веек_схорт_фр [селф.цуррент_цондитионс [0] .даи_оф_веек]
друго:
оутпут = ВеатхерТект.даи_оф_веек_фр [селф.цуррент_цондитионс [0] .даи_оф_веек]
друго:
иф схортвеекдаи == Труе:
оутпут = ВеатхерТект.даи_оф_веек_схорт [селф.цуррент_цондитионс [0] .даи_оф_веек]
друго:
оутпут = ВеатхерТект.даи_оф_веек [селф.цуррент_цондитионс [0] .даи_оф_веек]
елиф дататипе == "ВФ": # фонт за време
оутпут = ВеатхерТект.цондитионс_веатхер_фонт [селф.цуррент_цондитионс [0] .цоде_цоде]
елиф тип података == "ЛТ":
стринг = селф.цуррент_цондитионс [0] .ниско
ако је селф.исНумериц (стринг) == Труе:
иф империал == Труе:
стринг = селф.цонвертЦелсиусТоФахренхеит (стринг)
стринг = стринг + темпунит
оутпут = стринг
елиф тип података == "ХТ":
стринг = селф.цуррент_цондитионс [0] .високо
ако је селф.исНумериц (стринг) == Труе:
иф империал == Труе:
стринг = селф.цонвертЦелсиусТоФахренхеит (стринг)
стринг = стринг + темпунит
оутпут = стринг
елиф тип података == "ЦЦ":
ако селф.лоцале == "је":
оутпут = ВеатхерТект.цондитионс_тект_ес [селф.цуррент_цондитионс [0] .цоде_цоде]
елиф селф.лоцале == "фр":
оутпут = ВеатхерТект.цондитионс_тект_фр [селф.цуррент_цондитионс [0] .цоде_цоде]
друго:
оутпут = ВеатхерТект.цондитионс_тект [селф.цуррент_цондитионс [0] .цоде_цоде]
елиф тип података == "ЦТ":
оутпут = селф.цуррент_цондитионс [0] .цондитион_тект
елиф дататипе == "ПЦ":
стринг = селф.цуррент_цондитионс [0] .прецип
ако је селф.исНумериц (стринг) == Труе:
стринг = стринг + у »%»
оутпут = стринг
елиф тип података == "ХМ":
стринг = селф.цуррент_цондитионс [0] .влажност
ако је селф.исНумериц (стринг) == Труе:
стринг = стринг + у »%»
оутпут = стринг
елиф тип података == "ВД":
стринг = селф.цуррент_цондитионс [0] .винд_дир
ако је селф.исНумериц (стринг) == Труе:
стринг = селф.гетБеарингТект (стринг)

ако селф.лоцале == "је":
оутпут = ВеатхерТект.беаринг_тект_ес [стринг]
елиф селф.лоцале == "фр":
оутпут = ВеатхерТект.беаринг_тект_фр [стринг]
друго:
оутпут = стринг

елиф тип података == "БФ":
стринг = селф.цуррент_цондитионс [0] .винд_дир
ако је селф.исНумериц (стринг) == Труе:
стринг = ВеатхерТект.беаринг_арров_фонт [селф.гетБеарингТект (стринг)]
оутпут = стринг
елиф тип података == "ВС":
стринг = селф.цуррент_цондитионс [0] .брзина_ветра
ако је селф.исНумериц (стринг) == Труе:
иф империал == Труе:
стринг = селф.цонвертКилометресТоМилес (стринг)
стринг = стринг + брзина
оутпут = стринг
елиф тип података == "ВГ":
стринг = селф.цуррент_цондитионс [0] .гундс_винд
ако је селф.исНумериц (стринг) == Труе:
иф империал == Труе:
стринг = селф.цонвертКилометресТоМилес (стринг)
стринг = стринг + брзина
оутпут = стринг
елиф тип података == "ЦН":
оутпут = селф.цуррент_цондитионс [0] .цити
елиф тип података == "СР":
оутпут = селф.цуррент_цондитионс [0] .излазак сунца
елиф тип података == "СС":
оутпут = селф.цуррент_цондитионс [0] .сунсет
елиф тип података == "МП":
оутпут = селф.цуррент_цондитионс [0] .фаза месеца
елиф тип података == "МФ":
оутпут = ВеатхерТект.цондитионс_моон_фонт [селф.цуррент_цондитионс [0] .моон_ицон]
елиф тип података == "БР":
стринг = селф.цуррент_цондитионс [0] .бар_реад
ако је селф.исНумериц (стринг) == Труе:
иф империал == Труе:
стринг = селф.цонвертМиллибарсТоИнцхес (стринг)
низ = низ + јединица за притисак
оутпут = стринг
елиф тип података == "БД":
оутпут = селф.цуррент_цондитионс [0] .бар_десц
друго:
оутпут = "\ нРЕШКА: Захтеван је непознати тип података"

елсе: # подаци о прогнози

ако је енддаи == Ноне: # ако није постављен енддаи, користите стартдаи
енддаи = дан почетка

ако је ноћ == Тачно: # ноћна прогноза је обавезна

за даи_нумбер у опсегу (стартдаи, енддаи + 1):

ако је тип података == "ДВ":
ако селф.лоцале == "је":
иф схортвеекдаи == Труе:
оутпут = оутпут + селф.гетСпацес (размаци) + ВеатхерТект.даи_оф_веек_схорт_ес [селф.нигхт_форецаст [даи_нумбер] .даи_оф_веек]
друго:
оутпут = оутпут + селф.гетСпацес (размаци) + ВеатхерТект.даи_оф_веек_ес [селф.нигхт_форецаст [даи_нумбер] .даи_оф_веек]
елиф селф.лоцале == "фр":
иф схортвеекдаи == Труе:
оутпут = оутпут + селф.гетСпацес (размаци) + ВеатхерТект.даи_оф_веек_схорт_фр [селф.нигхт_форецаст [даи_нумбер] .даи_оф_веек]
друго:
оутпут = оутпут + селф.гетСпацес (размаци) + ВеатхерТект.даи_оф_веек_фр [селф.нигхт_форецаст [даи_нумбер] .даи_оф_веек]
друго:
иф схортвеекдаи == Труе:
оутпут = оутпут + селф.гетСпацес (размаци) + ВеатхерТект.даи_оф_веек_схорт [селф.нигхт_форецаст [даи_нумбер] .даи_оф_веек]
друго:
оутпут = оутпут + селф.гетСпацес (размаци) + ВеатхерТект.даи_оф_веек [селф.нигхт_форецаст [даи_нумбер] .даи_оф_веек]
елиф дататипе == "ВФ": # фонт за време
оутпут = оутпут + селф.гетСпацес (размаци) + ВеатхерТект.цондитионс_веатхер_фонт [селф.нигхт_форецаст [даи_нумбер] .цондитион_цоде]
елиф тип података == "ЛТ":
стринг = селф.нигхт_форецаст [даи_нумбер] .лов
ако је селф.исНумериц (стринг) == Труе:
иф империал == Труе:
стринг = селф.цонвертЦелсиусТоФахренхеит (стринг)
стринг = стринг + темпунит
оутпут = оутпут + селф.гетСпацес (размаци) + стринг

елиф тип података == "ХТ":
стринг = селф.нигхт_форецаст [даи_нумбер] .хигх
ако је селф.исНумериц (стринг) == Труе:
иф империал == Труе:
стринг = селф.цонвертЦелсиусТоФахренхеит (стринг)
стринг = стринг + темпунит
оутпут = оутпут + селф.гетСпацес (размаци) + стринг
елиф тип података == "ЦЦ":
ако селф.лоцале == "је":
оутпут = оутпут + селф.гетСпацес (размаци) + ВеатхерТект.цондитионс_тект_ес [селф.нигхт_форецаст [даи_нумбер] .цондитион_цоде]
елиф селф.лоцале == "фр":
оутпут = оутпут + селф.гетСпацес (размаци) + ВеатхерТект.цондитионс_тект_фр [селф.нигхт_форецаст [даи_нумбер] .цондитион_цоде]
друго:
оутпут = оутпут + селф.гетСпацес (размаци) + ВеатхерТект.цондитионс_тект [селф.нигхт_форецаст [даи_нумбер] .цондитион_цоде]
елиф тип података == "ЦТ":
оутпут = оутпут + селф.гетСпацес (размаци) + селф.нигхт_форецаст [дан_броја] .цондитион_тект
елиф дататипе == "ПЦ":
стринг = селф.нигхт_форецаст [даи_нумбер] .прецип
ако је селф.исНумериц (стринг) == Труе:
стринг = стринг + у »%»
оутпут = оутпут + селф.гетСпацес (размаци) + стринг
елиф тип података == "ХМ":
стринг = селф.нигхт_форецаст [даи_нумбер] .хумидити
ако је селф.исНумериц (стринг) == Труе:
стринг = стринг + у »%»
оутпут = оутпут + селф.гетСпацес (размаци) + стринг
елиф тип података == "ВД":
стринг = селф.нигхт_форецаст [даи_нумбер] .винд_дир
ако селф.лоцале == "је":
оутпут = оутпут + селф.гетСпацес (размаци) + ВеатхерТект.беаринг_тект_ес [стринг]
елиф селф.лоцале == "фр":
оутпут = оутпут + селф.гетСпацес (размаци) + ВеатхерТект.беаринг_тект_фр [стринг]
друго:
оутпут = оутпут + селф.гетСпацес (размаци) + стринг

елиф тип података == "БФ":
оутпут = оутпут + селф.гетСпацес (размаци) + ВеатхерТект.беаринг_арров_фонт [селф.нигхт_форецаст [даи_нумбер] .винд_дир]
елиф тип података == "ВС":
стринг = селф.нигхт_форецаст [даи_нумбер] .винд_спеед
ако је селф.исНумериц (стринг) == Труе:
иф империал == Труе:
стринг = селф.цонвертКилометресТоМилес (стринг)
стринг = стринг + брзина
оутпут = оутпут + селф.гетСпацес (размаци) + стринг
елиф тип података == "ВГ":
стринг = селф.нигхт_форецаст [даи_нумбер] .винд_густс
ако је селф.исНумериц (стринг) == Труе:
иф империал == Труе:
стринг = селф.цонвертКилометресТоМилес (стринг)
стринг = стринг + брзина
оутпут = оутпут + селф.гетСпацес (размаци) + стринг
елиф тип података == "ЦН":
оутпут = оутпут + селф.гетСпацес (размаци) + селф.нигхт_форецаст [даи_нумбер] .цити
елиф тип података == "СР":
оутпут = оутпут + селф.гетСпацес (размаци) + селф.нигхт_форецаст [даи_нумбер] .сунрисе
елиф тип података == "СС":
оутпут = оутпут + селф.гетСпацес (размаци) + селф.нигхт_форецаст [даи_нумбер] .сунсет
елиф тип података == "МП":
оутпут = оутпут + селф.гетСпацес (размаци) + селф.нигхт_форецаст [даи_нумбер] .моон_пхасе
елиф тип података == "МФ":
оутпут = оутпут + селф.гетСпацес (размаци) + ВеатхерТект.цондитионс_моон_фонт [селф.нигхт_форецаст [даи_нумбер] .моон_ицон]
елиф тип података == "БР":
оутпут = оутпут + селф.гетСпацес (размаци) + селф.нигхт_форецаст [даи_нумбер] .бар_реад
елиф тип података == "БД":
оутпут = оутпут + селф.гетСпацес (размаци) + селф.нигхт_форецаст [даи_нумбер] .бар_десц
друго:
оутпут = "\ нРЕШКА: Захтеван је непознати тип података"
разбити

остало: тражи се # дневна прогноза

за даи_нумбер у опсегу (стартдаи, енддаи + 1):

ако је тип података == "ДВ":
ако селф.лоцале == "је":
иф схортвеекдаи == Труе:
оутпут = оутпут + селф.гетСпацес (размаци) + ВеатхерТект.даи_оф_веек_схорт_ес [селф.даи_форецаст [даи_нумбер] .даи_оф_веек]
друго:
оутпут = оутпут + селф.гетСпацес (размаци) + ВеатхерТект.даи_оф_веек_ес [селф.даи_форецаст [даи_нумбер] .даи_оф_веек]
елиф селф.лоцале == "фр":
иф схортвеекдаи == Труе:
оутпут = оутпут + селф.гетСпацес (размаци) + ВеатхерТект.даи_оф_веек_схорт_фр [селф.даи_форецаст [даи_нумбер] .даи_оф_веек]
друго:
оутпут = оутпут + селф.гетСпацес (размаци) + ВеатхерТект.даи_оф_веек_фр [селф.даи_форецаст [даи_нумбер] .даи_оф_веек]
друго:
иф схортвеекдаи == Труе:
оутпут = оутпут + селф.гетСпацес (размаци) + ВеатхерТект.даи_оф_веек_схорт [селф.даи_форецаст [даи_нумбер] .даи_оф_веек]
друго:
оутпут = оутпут + селф.гетСпацес (размаци) + ВеатхерТект.даи_оф_веек [селф.даи_форецаст [даи_нумбер] .даи_оф_веек]
елиф дататипе == "ВФ": # фонт за време
оутпут = оутпут + селф.гетСпацес (размаци) + ВеатхерТект.цондитионс_веатхер_фонт [селф.даи_форецаст [даи_нумбер] .цондитион_цоде]
елиф тип података == "ЛТ":
стринг = селф.даи_форецаст [даи_нумбер] .лов
ако је селф.исНумериц (стринг) == Труе:
иф империал == Труе:
стринг = селф.цонвертЦелсиусТоФахренхеит (стринг)
стринг = стринг + темпунит
оутпут = оутпут + селф.гетСпацес (размаци) + стринг
елиф тип података == "ХТ":
стринг = селф.даи_форецаст [даи_нумбер] .хигх
ако је селф.исНумериц (стринг) == Труе:
иф империал == Труе:
стринг = селф.цонвертЦелсиусТоФахренхеит (стринг)
стринг = стринг + темпунит
оутпут = оутпут + селф.гетСпацес (размаци) + стринг
елиф тип података == "ЦЦ":
ако селф.лоцале == "је":
оутпут = оутпут + селф.гетСпацес (размаци) + ВеатхерТект.цондитионс_тект_ес [селф.даи_форецаст [даи_нумбер] .цондитион_цоде]
елиф селф.лоцале == "фр":
оутпут = оутпут + селф.гетСпацес (размаци) + ВеатхерТект.цондитионс_тект_фр [селф.даи_форецаст [даи_нумбер] .цондитион_цоде]
друго:
оутпут = оутпут + селф.гетСпацес (размаци) + ВеатхерТект.цондитионс_тект [селф.даи_форецаст [даи_нумбер] .цондитион_цоде]
елиф тип података == "ЦТ":
оутпут = оутпут + селф.гетСпацес (размаци) + селф.даи_форецаст [даи_нумбер] .цондитион_тект
елиф дататипе == "ПЦ":
стринг = селф.даи_форецаст [даи_нумбер] .прецип
ако је селф.исНумериц (стринг) == Труе:
стринг = стринг + у »%»
оутпут = оутпут + селф.гетСпацес (размаци) + стринг
елиф тип података == "ХМ":
стринг = селф.даи_форецаст [даи_нумбер] .хумидити
ако је селф.исНумериц (стринг) == Труе:
стринг = стринг + у »%»
оутпут = оутпут + селф.гетСпацес (размаци) + стринг
елиф тип података == "ВД":
стринг = селф.даи_форецаст [даи_нумбер] .винд_дир

ако селф.лоцале == "је":
оутпут = оутпут + селф.гетСпацес (размаци) + ВеатхерТект.беаринг_тект_ес [стринг]
елиф селф.лоцале == "фр":
оутпут = оутпут + селф.гетСпацес (размаци) + ВеатхерТект.беаринг_тект_фр [стринг]
друго:
оутпут = оутпут + селф.гетСпацес (размаци) + стринг

елиф тип података == "БФ":
оутпут = оутпут + селф.гетСпацес (размаци) + ВеатхерТект.беаринг_арров_фонт [селф.даи_форецаст [даи_нумбер] .винд_дир]
елиф тип података == "ВС":
стринг = селф.даи_форецаст [даи_нумбер] .винд_спеед
ако је селф.исНумериц (стринг) == Труе:
иф империал == Труе:
стринг = селф.цонвертКилометресТоМилес (стринг)
стринг = стринг + брзина
оутпут = оутпут + селф.гетСпацес (размаци) + стринг
елиф тип података == "ВГ":
стринг = селф.даи_форецаст [даи_нумбер] .винд_густс
ако је селф.исНумериц (стринг) == Труе:
иф империал == Труе:
стринг = селф.цонвертКилометресТоМилес (стринг)
стринг = стринг + брзина
оутпут = оутпут + селф.гетСпацес (размаци) + стринг
елиф тип података == "ЦН":
оутпут = оутпут + селф.гетСпацес (размаци) + селф.даи_форецаст [даи_нумбер] .цити
елиф тип података == "СР":
оутпут = оутпут + селф.гетСпацес (размаци) + селф.даи_форецаст [даи_нумбер] .сунрисе
елиф тип података == "СС":
оутпут = оутпут + селф.гетСпацес (размаци) + селф.даи_форецаст [даи_нумбер] .сунсет
елиф тип података == "МП":
оутпут = оутпут + селф.гетСпацес (размаци) + селф.даи_форецаст [даи_нумбер] .моон_пхасе
елиф тип података == "МФ":
оутпут = оутпут + селф.гетСпацес (размаци) + ВеатхерТект.цондитионс_моон_фонт [селф.даи_форецаст [даи_нумбер] .моон_ицон]
елиф тип података == "БР":
оутпут = оутпут + селф.гетСпацес (размаци) + селф.даи_форецаст [даи_нумбер] .бар_реад
елиф тип података == "БД":
оутпут = оутпут + селф.гетСпацес (размаци) + селф.даи_форецаст [даи_нумбер] .бар_десц
друго:
оутпут = у »\ нПОГРЕШКА: Тражен је непознати тип података»
разбити

оутпут = у »» + оутпут.стрип (у »«) # губите водеће / пратеће размаке
повратни излаз

#осим:
#принт "гетОутпутТект: Неочекивана грешка:", сис.екц_инфо () [0]

деф гетОутпутТектФромТемплате (селф, темплате):
#покушати:

# тастера за податке шаблона
ДАТАТИПЕ_КЕИ = "–дататипе ="
СТАРТДАИ_КЕИ = "–стартдаи ="
ЕНДДАИ_КЕИ = "–енддаи ="
НИГХТ_КЕИ = "–ноћ"
СХОРТВЕЕКДАИ_КЕИ = "–кратак недеља"
ИМПЕРИАЛ_КЕИ = "–империал"
ХИДЕУНИТС_КЕИ = "–дејавне јединице"
СПАЦЕС_КЕИ = "–спацес ="

излаз = у »»

оптионфоунд = Нетачно

# учитајте датотеку
покушати:
филеинпут = отворен (селф.оптионс.темплате)
темплате = филеинпут.реад ()
филеинпут.цлосе ()
осим:
оутпут = у »Датотека предлошка није пронађена!»

темплателист = селф.гетТемплатеЛист (предложак)

# омогућава пролазак кроз листу шаблона и одређивање резултата за сваку пронађену ставку
за и у опсегу (0, лен (темплателист) -1):

пос = темплателист [и] .финд (ДАТАТИПЕ_КЕИ)
ако је поз! = -1:
оптионфоунд = Тачно
пос = пос + лен (ДАТАТИПЕ_КЕИ)
дататипе = темплателист [и] [пос: пос + 4] .стрип ("}"). стрип ("{"). стрип ("-"). стрип ("")
друго:
тип података = Нема

пос = темплателист [и] .финд (СТАРТДАИ_КЕИ)
ако је поз! = -1:
оптионфоунд = Тачно
пос = пос + лен (СТАРТДАИ_КЕИ)
стартдаи = инт (темплателист [и] [пос: пос + 4] .стрип ("}"). стрип ("{"). стрип ("-"). стрип (""))
друго:
стартдаи = Нема

пос = темплателист [и] .финд (ЕНДДАИ_КЕИ)
ако је поз! = -1:
оптионфоунд = Тачно
пос = пос + лен (ЕНДДАИ_КЕИ)
енддаи = инт (темплателист [и] [пос: пос + 4] .стрип ("}"). стрип ("{"). стрип ("-"). стрип (""))
друго:
енддаи = Нема

пос = темплателист [и] .финд (КЉУЧ НОЋ)
ако је поз! = -1:
оптионфоунд = Тачно
ноћ = Тачно
друго:
ноћ = Лажно

пос = темплателист [и] .финд (СХОРТВЕЕКДАИ_КЕИ)
ако је поз! = -1:
оптионфоунд = Тачно
схортвеекдаи = Тачно
друго:
кратки недеља = Нетачно

пос = темплателист [и] .финд (ИМПЕРИАЛ_КЕИ)
ако је поз! = -1:
оптионфоунд = Тачно
царски = Тачно
друго:
царски = Нетачно

пос = темплателист [и] .финд (ХИДЕУНИТС_КЕИ)
ако је поз! = -1:
оптионфоунд = Тачно
хидеунитс = Тачно
друго:
хидеунитс = Нетачно

пос = темплателист [и] .финд (СПАЦЕС_КЕИ)
ако је поз! = -1:
оптионфоунд = Тачно
пос = пос + лен (СПАЦЕС_КЕИ)
размаци = инт (темплателист [и] [пос: пос + 4] .стрип («}»). стрип («{«). стрип («-«). стрип (»«))
друго:
размаци = 1

иф оптионфоунд == Труе:
темплателист [и] = селф.гетОутпутТект (тип података, дан почетка, дан, ноћ, кратки недеља, царство, скривене јединице, размаци)
оптионфоунд = Нетачно

# прођите кроз листу која спаја излаз сада када је попуњен
за ставку у темплателисту:
излаз = излаз + ставка

повратни излаз

#осим:
#принт "гетОутпутТектФромТемплате: Неочекивана грешка:", сис.екц_инфо () [0]

деф фетцхДата (селф):

# увек преузми метричке податке, користи функције разговора на тим подацима
филе_патх_цуррент = селф.ТЕМП_ФИЛЕПАТХ_ЦУРРЕНТ.реплаце ("ЛОЦАТИОН", селф.оптионс.лоцатион)
филе_патх_даифорецаст = селф.ТЕМП_ФИЛЕПАТХ_ДАИФОРЕЦАСТ.реплаце ("ЛОЦАТИОН", селф.оптионс.лоцатион)
филе_патх_нигхтфорецаст = селф.ТЕМП_ФИЛЕПАТХ_НИГХТФОРЕЦАСТ.реплаце ("ЛОЦАТИОН", селф.оптионс.лоцатион)

иф селф.исЦоннецтионАваилабле () == Фалсе:
ако ос.патх.екистс (филе_патх_цуррент):
РефетцхДата = Нетачно
елсе: # нема везе, нема кеш меморије, банг!
принт "Није доступна интернет веза и не постоје кеширани временски подаци."
елиф селф.оптионс.рефетцх == Тачно:
РефетцхДата = Тачно
друго:
# да ли је потребно поновно преузимање података?
ако ос.патх.екистс (филе_патх_цуррент):
ластмодДате = тиме.лоцалтиме (ос.стат (ток_ путање_датотеке) [СТ_МТИМЕ])
датум истека = (датетиме.датетиме.тодаи () - датетиме.тимеделта (минутес = селф.ЕКСПИРИ_МИНУТЕС)). тиметупле ()

ако је датум истека> ластмодДате:
РефетцхДата = Тачно
друго:
РефетцхДата = Нетачно
друго:
РефетцхДата = Тачно

# преузмите податке о тренутним условима, било са веб локације или „откуцавањем“
ако је РефетцхДата == Труе:

# прибавите податке о тренутним условима из услуге коап
покушати:

# http://xoap.weather.com/weather/local/UKXX0103?cc=*&dayf=5&link=xoap∏=xoap&par=1061785028&key=e374effbfd74930b

урл = 'хттп://коап.веатхер.цом/веатхер/лоцал/' + селф.оптионс.лоцатион + '? цц = * & даиф = 8 & линк = коап∏ = коап & пар = 1061785028 & кеи = е374еффбфд74930б & јединица = м '
ако селф.оптионс.вербосе == Тачно:
испис >> сис.стдоут, «дохваћање временских података са«, урл

Усоцк = урллиб2.урлопен (урл)
кмл = усоцк.реад ()
Усоцк.цлосе ()
селф.веатхеркмлдоц = минидом.парсеСтринг (кмл)
осим:
испис "фетцхДата: Неочекивана грешка:", сис.екц_инфо () [0]
принт "Није могуће контактирати извор времена за тренутне услове"

# реците кориснику ако је локација лоша ...
фоунд = кмл.финд ("Наведена је неважећа локација")
ако је пронађено! = -1:
принт "Наведена је неисправна локација"

# испитујте временске податке, учитајте их у структуру класе и кисели их
покушати:

# припремите листе временских података
селф.цуррент_цондитионс = []
селф.даи_форецаст = []
селф.нигхт_форецаст = []

# прикупљати опште податке
веатхер_н = селф.веатхеркмлдоц.доцументЕлемент
лоцатион_н = веатхер_н.гетЕлементсБиТагНаме ('лоц') [0]
цити_н = лоцатион_н.гетЕлементсБиТагНаме ('днам') [0]
цити = селф.гетТект (цити_н.цхилдНодес)

# прикупља податке о тренутним условима
даи_оф_веек = у »Данас»
падавина = у »Н / А»
сунрисе_н = лоцатион_н.гетЕлементсБиТагНаме ('сунр') [0]
излазак сунца = селф.гетТект (сунрисе_н.цхилдНодес)
сунсет_н = лоцатион_н.гетЕлементсБиТагНаме ('сунца') [0]
залазак сунца = селф.гетТект (сунсет_н.цхилдНодес)
цуррент_цондитион_н = веатхер_н.гетЕлементсБиТагНаме ('цц') [0]
цуррент_десц_н = цуррент_цондитион_н.гетЕлементсБиТагНаме ('т') [0]
цуррент_десц = селф.гетТект (цуррент_десц_н.цхилдНодес)
цуррент_цоде_н = цуррент_цондитион_н.гетЕлементсБиТагНаме ('ицон') [0]
цуррент_цоде = селф.гетТект (цуррент_цоде_н.цхилдНодес)
цуррент_темп_н = цуррент_цондитион_н.гетЕлементсБиТагНаме ('тмп') [0]
цуррент_темп = селф.гетТект (цуррент_темп_н.цхилдНодес)
цуррент_темп_феелс_н = цуррент_цондитион_н.гетЕлементсБиТагНаме ('флик') [0]
цуррент_темп_феелс = селф.гетТект (цуррент_темп_феелс_н.цхилдНодес)
бар_н = цуррент_цондитион_н.гетЕлементсБиТагНаме ('бар') [0]
бар_реад_н = бар_н.гетЕлементсБиТагНаме ('р') [0]
бар_реад = селф.гетТект (бар_реад_н.цхилдНодес)
бар_десц_н = бар_н.гетЕлементсБиТагНаме ('д') [0]
бар_десц = селф.гетТект (бар_десц_н.цхилдНодес)
винд_н = цуррент_цондитион_н.гетЕлементсБиТагНаме ('винд') [0]
винд_спеед_н = винд_н.гетЕлементсБиТагНаме ('с') [0]
винд_спеед = селф.гетТект (винд_спеед_н.цхилдНодес)
винд_густ_н = винд_н.гетЕлементсБиТагНаме ('налет') [0]
удари ветра = селф.гетТект (винд_густ_н.цхилдНодес)
винд_дир_н = винд_н.гетЕлементсБиТагНаме ('д') [0]
винд_дирецтион = селф.гетТект (винд_дир_н.цхилдНодес)
влажност_н = тренутно_ стање_н.гетЕлементсБиТагНаме ('хмид') [0]
влажност = селф.гетТект (влажност_н.цхилдНодес)
моон_н = цуррент_цондитион_н.гетЕлементсБиТагНаме ('моон') [0]
моон_ицон_н = моон_н.гетЕлементсБиТагНаме ('икона') [0]
моон_ицон = селф.гетТект (моон_ицон_н.цхилдНодес)
моон_пхасе_н = моон_н.гетЕлементсБиТагНаме ('т') [0]
моон_пхасе = селф.гетТект (моон_пхасе_н.цхилдНодес)
цуррент_цондитионс_дата = Временски подаци (даи_веек, цуррент_темп_феелс, цуррент_темп, цуррент_цоде, цуррент_десц, прецип, влажност, правац ветра, брзина_ветра, удари ветра, град, излазак, залазак сунца, моон_пхасе, моон_ицон, бар_реад, бар_десц)
селф.цуррент_цондитионс.аппенд (цуррент_цондитионс_дата)

# прикупља податке о прогнозама
бар_реад = у »Н / А»
бар_десц = у »Н / А»
моон_пхасе = у »Н / А»
моон_ицон = у »на»
форецаст_н = веатхер_н.гетЕлементсБиТагНаме ('даиф') [0]
даи_нодес = форецаст_н.гетЕлементсБиТагНаме ('дан')

за дан у даи_нодес:
даи_оф_веек = даи.гетАттрибуте ('т')
даи_оф_иеар = даи.гетАттрибуте ('дт')
хигх_темп_н = даи.гетЕлементсБиТагНаме ('хи') [0]
хигх_темп = селф.гетТект (хигх_темп_н.цхилдНодес)
лов_темп_н = даи.гетЕлементсБиТагНаме ('ниско') [0]
лов_темп = селф.гетТект (лов_темп_н.цхилдНодес)

сунрисе_н = даи.гетЕлементсБиТагНаме ('сунр') [0]
излазак сунца = селф.гетТект (сунрисе_н.цхилдНодес)
сунсет_н = даи.гетЕлементсБиТагНаме ('сунца') [0]
залазак сунца = селф.гетТект (сунсет_н.цхилдНодес)

Подаци за # дневну прогнозу
даитиме_н = даи.гетЕлементсБиТагНаме ('парт') [0] # дан
цондитион_цоде_н = даитиме_н.гетЕлементсБиТагНаме ('ицон') [0]
цондитион_цоде = селф.гетТект (цоде_цоде_н.цхилдНодес)
цондитион_н = даитиме_н.гетЕлементсБиТагНаме ('т') [0]
цондитион = селф.гетТект (цондитион_н.цхилдНодес)
прецип_н = даитиме_н.гетЕлементсБиТагНаме ('ппцп') [0]
прецип = селф.гетТект (прецип_н.цхилдНодес)
влажност_н = дневно_н.гетЕлементсБиТагНаме ('хмид') [0]
влажност = селф.гетТект (влажност_н.цхилдНодес)
винд_н = даитиме_н.гетЕлементсБиТагНаме ('винд') [0]
винд_спеед_н = винд_н.гетЕлементсБиТагНаме ('с') [0]
винд_спеед = селф.гетТект (винд_спеед_н.цхилдНодес)
винд_дирецтион_н = винд_н.гетЕлементсБиТагНаме ('т') [0]
винд_дирецтион = селф.гетТект (винд_дирецтион_н.цхилдНодес)
винд_густс_н = винд_н.гетЕлементсБиТагНаме ('густ') [0]
удари ветра = селф.гетТект (вјетрови_напади.н.цхилдНодес)
даи_форецаст_дата = Временски подаци (даи_веек, лов_темп, хигх_темп, цондитион_цоде, цондитион, прецип, влажност, правац ветра, брзина ветра, удари ветра, град, излазак сунца, залазак сунца, моон_пхасе, моон_ицон, бар_реад, бар_десц)
селф.даи_форецаст.аппенд (даи_форецаст_дата)

# специфични подаци за ноћну прогнозу
даитиме_н = даи.гетЕлементсБиТагНаме ('парт') [1] # ноћ
цондитион_цоде_н = даитиме_н.гетЕлементсБиТагНаме ('ицон') [0]
цондитион_цоде = селф.гетТект (цоде_цоде_н.цхилдНодес)
цондитион_н = даитиме_н.гетЕлементсБиТагНаме ('т') [0]
цондитион = селф.гетТект (цондитион_н.цхилдНодес)
прецип_н = даитиме_н.гетЕлементсБиТагНаме ('ппцп') [0]
прецип = селф.гетТект (прецип_н.цхилдНодес)
влажност_н = дневно_н.гетЕлементсБиТагНаме ('хмид') [0]
влажност = селф.гетТект (влажност_н.цхилдНодес)
винд_н = даитиме_н.гетЕлементсБиТагНаме ('винд') [0]
винд_спеед_н = винд_н.гетЕлементсБиТагНаме ('с') [0]
винд_спеед = селф.гетТект (винд_спеед_н.цхилдНодес)
винд_дирецтион_н = винд_н.гетЕлементсБиТагНаме ('т') [0]
винд_дирецтион = селф.гетТект (винд_дирецтион_н.цхилдНодес)
винд_густс_н = винд_н.гетЕлементсБиТагНаме ('густ') [0]
удари ветра = селф.гетТект (вјетрови_напади.н.цхилдНодес)
нигхт_форецаст_дата = Подаци о времену (Веатхер_ата) (дан_недеље, ниска_темп, висока_темп, стање_код, стање, преципитат, влажност, смјер ветра, брзина_ветра, удари ветра, град, излазак сунца, залазак сунца, фаза_месеца, моон_ицон, бар_реад, бар_десц)
селф.нигхт_форецаст.аппенд (нигхт_форецаст_дата)

# кисели податке за следећи пут!
филеоутпут = опен (филе_патх_цуррент, 'в')
пицкле.думп (селф.цуррент_цондитионс, филеоутпут)
филеоутпут.цлосе ()

филеоутпут = опен (филе_патх_даифорецаст, 'в')
пицкле.думп (селф.даи_форецаст, филеоутпут)
филеоутпут.цлосе ()

филеоутпут = опен (филе_патх_нигхтфорецаст, 'в')
пицкле.думп (селф.нигхт_форецаст, филеоутпут)
филеоутпут.цлосе ()

осим:
испис "фетцхДата: Неочекивана грешка:", сис.екц_инфо () [0]
принт "Није могуће испитати временске податке"

елсе: # преузима податке о времену из укисељених датотека класе
ако селф.оптионс.вербосе == Тачно:
испис >> сис.стдоут, «преузимање временских података из датотеке:«, филе_патх_цуррент

филеинпут = отворен (филе_патх_цуррент, 'р')
селф.цуррент_цондитионс = пицкле.лоад (унос датотеке)
филеинпут.цлосе ()

ако селф.оптионс.вербосе == Тачно:
испис >> сис.стдоут, "преузимање података о предвиђању дана из датотека:", филе_патх_даифорецаст, филе_патх_нигхтфорецаст

филеинпут = опен (филе_патх_даифорецаст, 'р')
селф.даи_форецаст = пицкле.лоад (унос датотеке)
филеинпут.цлосе ()

ако селф.оптионс.вербосе == Тачно:
испис >> сис.стдоут, "преузимање података прогнозе дана из датотека:", филе_патх_нигхтфорецаст, филе_патх_нигхтфорецаст

филеинпут = опен (филе_патх_нигхтфорецаст, 'р')
селф.нигхт_форецаст = пицкле.лоад (унос датотеке)
филеинпут.цлосе ()

деф оутпутДата (селф):
#покушати:

иф селф.оптионс.темплате! = Нема:

оутпут = селф.гетОутпутТектФромТемплате (селф.оптионс.темплате)

друго:

оутпут = селф.гетОутпутТект (селф.оптионс.дататипе, селф.оптионс.стартдаи, селф.оптионс.енддаи, селф.оптионс.нигхт, селф.оптионс.схортвеекдаи, селф.оптионс.империал, селф.оптионс.хидеунитс, селф. оптионс.спацес)

испис излаза.енцоде ("утф-8")

#осим:
#принт «оутпутДата: Неочекивана грешка:«, сис.екц_инфо () [0]

ако је __наме__ == "__главно__":

парсер = ЦоммандЛинеПарсер ()
(оптионс, аргс) = парсер.парсе_аргс ()

ако оптионс.вербосе == Тачно:
испис >> сис.стдоут, "лоцатион:", оптионс.лоцатион
испис >> сис.стдоут, "империал:", оптионс.империал
испис >> сис.стдоут, "тип података:", оптионс.дататипе
испис >> сис.стдоут, "нигхт:", оптионс.нигхт
испис >> сис.стдоут, "старт даи:", оптионс.стартдаи
испис >> сис.стдоут, "енд даи:", оптионс.енддаи
испис >> сис.стдоут, "размаци:", оптионс.спацес
испис >> сис.стдоут, "вербосе:", оптионс.вербосе
испис >> сис.стдоут, "рефетцх:", оптионс.рефетцх

# креирајте нови глобални временски објекат
време = ГлобалВеатхер (опције)
веатхер.фетцхДата ()
веатхер.оутпутДата ()

Креирамо датотеку ~ / Цонки / сцриптс / мивеатхер.темплате

гедит ~ / Цонки / сцриптс / мивеатхер.темплате

унутра залепимо следеће:

{–Дататипе = ДВ –стартдаи = 1}: {–дататипе = ЦЦ –стартдаи = 1}
{–Дататипе = ХТ –стартдаи = 1} / {–дататипе = ЛТ –стартдаи = 1} Ветар од {–дататипе = ВД –стартдаи = 1} до {–дататипе = ВС –стартдаи = 1}
Влажност: {–дататипе = ХМ –стартдаи = 1} Падавине: {–дататипе = ПЦ –стартдаи = 1}
Излазак сунца: {–дататипе = СР –стартдаи = 1} Залазак сунца: {–дататипе = СС –стартдаи = 1}
———————————————––
{–Дататипе = ДВ –стартдаи = 2}: {–дататипе = ЦЦ –стартдаи = 2}
{–Дататипе = ХТ –стартдаи = 2} / {–дататипе = ЛТ –стартдаи = 2} Ветар од {–дататипе = ВД –стартдаи = 2} до {–дататипе = ВС –стартдаи = 2}
Влажност: {–дататипе = ХМ –стартдаи = 2} Падавине: {–дататипе = ПЦ –стартдаи = 2}
Излазак сунца: {–дататипе = СР –стартдаи = 2} Залазак сунца: {–дататипе = СС –стартдаи = 2}
———————————————––
{–Дататипе = ДВ –стартдаи = 3}: {–дататипе = ЦЦ –стартдаи = 3}
{–Дататипе = ХТ –стартдаи = 3} / {–дататипе = ЛТ –стартдаи = 3} Ветар од {–дататипе = ВД –стартдаи = 3} до {–дататипе = ВС –стартдаи = 3}
Влажност: {–дататипе = ХМ –стартдаи = 3} Падавине: {–дататипе = ПЦ –стартдаи = 3}
Излазак сунца: {–дататипе = СР –стартдаи = 3} Залазак сунца: {–дататипе = СС –стартдаи = 3}
———————————————––
{–Дататипе = ДВ –стартдаи = 4}: {–дататипе = ЦЦ –стартдаи = 4}
{–Дататипе = ХТ –стартдаи = 4} / {–дататипе = ЛТ –стартдаи = 4} Ветар од {–дататипе = ВД –стартдаи = 4} до {–дататипе = ВС –стартдаи = 4}
Влажност: {–дататипе = ХМ –стартдаи = 4} Падавине: {–дататипе = ПЦ –стартдаи = 4}
Излазак сунца: {–дататипе = СР –стартдаи = 4} Залазак сунца: {–дататипе = СС –стартдаи = 4}

Креирамо датотеку ~ / Цонки / сцриптс / маил / цонкиЕмаил.пи (морамо креирати фасциклу поште)

гедит ~ / Цонки / скрипте / пошта / цонкиЕмаил.пи

и залепите следеће:

увези те
стринг за увоз

# Унесите своје корисничко име и лозинку испод двоструких наводника
# на пример. корисничко име = »корисничко име» и лозинка = »лозинка»
усернаме = »ИОУР_УСУАРИО_СИНАРРОБА«
лозинка = »ИОУР_КЕИ«

цом = »вгет -О - хттпс: //» + корисничко име + »:» + лозинка + »@ маил.гоогле.цом / маил / феед / атом –но-цхецк-цертифицате»

темп = ос.попен (цом)
мсг = темп.реад ()
индек = стринг.финд (мсг, » »)
индек2 = стринг.финд (мсг, » »)
фц = инт (мсг [индекс + 11: индекс2])

ако је фц == 0:
одштампај "0 нових"
друго:
принт стр (фц) + »ново»

Дакле, сада имате 7 датотека:

У фасцикли: ~
-> .стартцонки << - направити извршну датотеку

У фасцикли: ~ / Цонки
-> цонкимаин
-> цонкифорецаст
-> цонкимаил

а у фасцикли: ~ / Цонки / скрипте
-> цонкиФорецаст.пи << - направи извршну датотеку
-> мивеатхер.темплате

а у фасцикли: ~ / Цонки / сцриптс / маил
цонкиЕмаил.пи << - направити извршну датотеку

И то је то, појашњења, тамо где стоји / дом / корисник / ... иде ваше корисничко име, а у делу где иду подаци Гмаил-а истакнуо сам бојама где морате да ставите своје податке.

да би се убио цонки процес упишите у конзолу

киллалл цонки

за покретање цонки писања у конзолу

./.стартцонки

када све прилагодите, ако желите да цонки започне сваку сесију

Систем—> Поставке—> Сесије и у програмима за покретање га додајемо

У Наме можемо написати Цонки, а у Ордер ./.стартцонки започиње сваки пут када укључите рачунар.

То је то, надам се да ће вам помоћи.


Оставите свој коментар

Ваша емаил адреса неће бити објављена. Обавезна поља су означена са *

*

*

  1. За податке одговоран: Мигуел Ангел Гатон
  2. Сврха података: Контрола нежељене поште, управљање коментарима.
  3. Легитимација: Ваш пристанак
  4. Комуникација података: Подаци се неће преносити трећим лицима, осим по законској обавези.
  5. Похрана података: База података коју хостује Оццентус Нетворкс (ЕУ)
  6. Права: У било ком тренутку можете ограничити, опоравити и избрисати своје податке.