Online video hd

Смотреть узбекский видео

Официальный сайт rosregistr 24/7/365

Смотреть видео бесплатно

mrded 04.02.2010 00:14

Tips & tricksСоздание pipe menu с выводом погоды

нашел хороший pipe menu, который выводит прогноз погоды.
Скриншот:


я его малость перевел на родной язык и добавил в прогноз пятницу (видимо автор не очень ее любил:))
щас опишу процесс установки.

создаем файл (например здесь ~/.config/openbox/scripts/gweather.py):
 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
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import urllib
from string import maketrans
#from xml.sax import make_parser, handler
from xml.sax import handler, parseString
class ElementProcesser(handler.ContentHandler):

def startElement(self, name, attrs):

if name == "city":
print "<separator label='" + attrs<"data"> + "' />"
elif name == "current_conditions":
print "<separator label='Текущая погода' />"
elif name == "condition":
print "<item label='Weather: " + attrs<"data"> + "' />"
elif name == "humidity":
print "<item label='" + attrs<"data"> + "' />"
elif name == "wind_condition":
print "<item label='" + attrs<"data"> + "' />"
elif name == "day_of_week":
print "<separator label='" + self.getDayOfWeek(attrs<"data">) + "' />"

#Celsius
elif name == "temp_c":
print "<item label='Temperature " + attrs<"data"> + " C' />"
elif name == "low":
print "<item label='Minimun " + attrs<"data"> + " C' />"
elif name == "high":
print "<item label='Maximun " + attrs<"data"> + " C' />"

def endElement(self, name):

if name == "current_conditions":
print "<separator label='Прогноз' />"


def startDocument(self):
print '<openbox_pipe_menu>'

def endDocument(self):
print '</openbox_pipe_menu>'

def getDayOfWeek(self,day):
day_mass = {"Mon":"Понедельник", "Tue":"Вторник", "Wed":"Среда", "Thu":"Четверг", "Fri":"Пятница", "Sat":"Суббота", "Sun":"Воскресенье"}
return day_mass<day>


# You should use your local version of google to have the messages in your language and metric system
f = urllib.urlopen("http://www.google.com/ig/api?weather="+sys.argv<1>)
xml = f.read()
f.close()

#Avoid problems with non english characters
trans=maketrans("\xe1\xe9\xed\xf3\xfa","aeiou")
xml = xml.translate(trans)

#parser.parse("http://www.google.es/ig/api?weather="+sys.argv<1>)
parseString(xml,ElementProcesser())</day>



теперь осталось в ~/.config/openbox/menu.xml добавить:
<menu id="pipe-weather" label="Weather" execute="python ~/.config/openbox/scripts/gweather.py YOURCITY" />
где YOURCITY это ваш город.


Тэги: OpenBox pipe menu weather
+ 9 -
Похожие Поделиться

Sta2s 04.02.2010 09:23 #
+ 2 -
ух ты снова погода!
ps спасибо!
xT 04.02.2010 09:53 #
+ 1 -
elif day == "Fri":
return "Пятница"
elif day == "Sat":
return "Суббота"
elif day == "Sun":
return "Sunday"
На воскресенье не хватило сил? :)
ner_uto 04.02.2010 11:14 #
+ 3 -
Видимо тут mrded солидарен с автором скрипта, и они дружно не любят воскресенье:)
HTaeD 04.02.2010 11:27 #
+ 3 -
"Sunday" и есть воскресение ))
ner_uto 04.02.2010 21:51 #
+ 1 -
Упс... ну да, лоханулся, каюсь, и чуть-чуть не то сказал... Воскресенье автор любит, а mrded не любит, когда не любят пятницу:)
mrded 04.02.2010 22:01 #
+ 1 -
грех пятницу не любить:)
а вот после воскресенья идет рабочая неделя:(
mrded 04.02.2010 11:35 #
+ 2 -
о, фак! я так возмущастя по поводу того, что автор пятницу пропустил, что сам забыл про воскресенье:)
krig 04.02.2010 11:52 #
+ 2 -
Хинт: вместо кучи elif можно использовать словарь и 2 строки кода =)
Sokoloff 04.02.2010 12:14 #
+ 0 -
Причем словари можно сделать 2-х мерными, с префиксом локали.
mrded 04.02.2010 12:38 #
+ 0 -
day_mass = {"Mon":"Понедельник", "Tue":"Вторник", "Wed":"Среда", "Thu":"Четверг", "Fri":"Пятница", "Sat":"Суббота", "Sun":"Воскресенье"}
return day_mass
готово. я особо оригинал не переделывал:)
Suinly 04.08.2011 18:16 #
+ 0 -
1
2
elif name == "low":
   print "<item label='Minimun " + attrs&lt;"data"&gt; + " C'></item>"


На деле скрипт. почему-то. выводит температуру в Фаренгейте. Добавляем "celsium=0", чтобы исправить, тут:
1
def startElement(self, name, attrs, celsium=0):

И тут:
1
2
3
elif name == "low":
   cel = '%d' % ((float(attrs["data"]) - 32) / 2)
   print "<item label='Maximun " + cel + " C'></item>"

Смотреть онлайн бесплатно

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн