dicson 02.05.2010 12:45
Скрипты — Загружаем картинки погоды с gismeteo.by и показываем в conky
Использую для показа погоды в conky.Кусок конфига conky:
${voffset -10}${goto 75}${color3}влажность:$alignr${color1} ${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py -u --humidity}%
${goto 75}${color3}давление:$alignr${color1}${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py --bar}
${goto 75}${color3}ветер:$alignr${color1} ${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py --wind_num}m/c
${goto 10}${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py --day_temp}°/${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py --night_temp}°
${voffset 68}${goto 10}${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py -s 1 --day_temp}°/${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py -s 1 --night_temp}°${goto 65}${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py -s 2 --day_temp}°/${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py -s 2 --night_temp}°${goto 135}${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py -s 3 --day_temp}°/${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py -s 3 --night_temp}°${alignr}${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py -s 4 --day_temp}°/${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py -s 4 --night_temp}°
${voffset -75}${goto 15}${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py -s 1 -d}${goto 75}${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py -s 2 -d}${goto 145}${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py -s 3 -d}${alignr 15}${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py -s 4 -d}
${image /home/test/scripts/conky_/0-done.png -p 0,505 -s 35x35}
${image /home/test/scripts/conky_/1-done.png -p 0,583 -s 35x35}${image /home/test/scripts/conky_/2-done.png -p 60,583 -s 35x35}
${image /home/test/scripts/conky_/3-done.png -p 130,583 -s 35x35}${image /home/test/scripts/conky_/4-done.png -p 205,583 -s 35x35}
${goto 75}${color3}давление:$alignr${color1}${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py --bar}
${goto 75}${color3}ветер:$alignr${color1} ${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py --wind_num}m/c
${goto 10}${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py --day_temp}°/${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py --night_temp}°
${voffset 68}${goto 10}${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py -s 1 --day_temp}°/${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py -s 1 --night_temp}°${goto 65}${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py -s 2 --day_temp}°/${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py -s 2 --night_temp}°${goto 135}${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py -s 3 --day_temp}°/${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py -s 3 --night_temp}°${alignr}${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py -s 4 --day_temp}°/${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py -s 4 --night_temp}°
${voffset -75}${goto 15}${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py -s 1 -d}${goto 75}${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py -s 2 -d}${goto 145}${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py -s 3 -d}${alignr 15}${execpi 1800 /home/test/scripts/conky_/pygismeteo/pygismeteo.py -s 4 -d}
${image /home/test/scripts/conky_/0-done.png -p 0,505 -s 35x35}
${image /home/test/scripts/conky_/1-done.png -p 0,583 -s 35x35}${image /home/test/scripts/conky_/2-done.png -p 60,583 -s 35x35}
${image /home/test/scripts/conky_/3-done.png -p 130,583 -s 35x35}${image /home/test/scripts/conky_/4-done.png -p 205,583 -s 35x35}
При первом запуске скрипт создает конфиг в ~/.config/pygismeteo/.
В секции конфига находятся собственно настройки:
workdir = /home/test/Desktop/pygismeteo
id = 4248
workdir - путь сохранения картинок,id - код города
скачать скрипт
Выглядит примерно так:
Username 02.05.2010 13:03 #
+ 0 -
Плюсую, симпатично.
Есть еще скрипт из 10 строк для вывода дня недели. Если надо - выложу. Погоду брал с Forecast. руки не дошли переделать под гисметео.Если надо кому - сделаю
Самая левая - Shutter. Скриншотики делает,сама заливает и ссылку в буфер кладёт и еще кучу всего умеет. Вторая - самопальный гуй для xmms2 Splean
Надо таки сесть как-то да освоить питон уже :) Хотя бы на "бытовом" уровне :)
ну... некоторые наверное то же самое легко напишут и без питона,раз умеют такое
Пожалуй, что время - это основной критерий. И хочется осваивать на конкретных задачах :). Не люблю "абстракции" до определенной степени. :)
Время :) Мало его. И пожалуй не накоплена "критическая масса" необходимости курить этот язык :). Но будет время - поковыряю его :). Хотя бы в контексте парсинга каких-нибудь интересных веб-страниц с динамической информацией :).
Дело не в языке, а в мозгах программиста.
В одной строчке на баше больше духа Юникс, чем в десяти тысячах строках на Си.
Пишите на том, что нравится. Просто знайте свой язык.
В одной строчке на баше больше духа Юникс, чем в десяти тысячах строках на Си.
Пишите на том, что нравится. Просто знайте свой язык.
Ну я не буду щас устраивать срач о том что каждому инструменту своя ниша и т.п.
На питоне можно сделать какие-то вещи изящнее чем на баше. Что-то наоборот.
На питоне можно сделать какие-то вещи изящнее чем на баше. Что-то наоборот.
ну... некоторые наверное то же самое легко напишут и без питона,раз умеют такое
У меня почему-то вместо погоды показывает (null) и одну png.
При этом ругается:
Изображения лежат на месте.
Так же выдает:
Я один такой особенный?
При этом ругается:
Conky: Unable to load image '/home/rap3r/.conky/weather/0-done.png'
Conky: Unable to load image '/home/rap3r/.conky/weather/1-done.png'
Conky: Unable to load image '/home/rap3r/.conky/weather/1-done.png'
Изображения лежат на месте.
Так же выдает:
File "/home/rap3r/.conky/gismeteo.py", line 27, in download(tmp<0><0>, 0)
File "/home/rap3r/.conky/gismeteo.py", line 14, in download time.sleep(3)
File "/home/rap3r/.conky/gismeteo.py", line 14, in download time.sleep(3)
Я один такой особенный?
я мало что понял, лучше пришлите вывод ошибки питона в личку полностью,а не две строки с середины. А По поводу ошибок коньков - у меня нет идей(какая версия установлена? что за дистр?). В профиле есть моё мыло и джабер.
14 строчку в скрипте изменил. проблем с паузой теперь не будет. скипт писал давно,ступил.
забираем еще и картинку для ветра. Добавить в скрипт строки:
re_dict = re.compile(
ur'\s*<li class="c1"><span>(?P<Bar>.+)</span></li>\n'
ur'\s*\n'
ur'\s*<li class="c2" title="(?P<wind>.+)"><div class="wind(?P<wind_ico>.+)"' \
'>(?P<wind1>.+)<br /> <b>(?P<wind_num>.+)</b></div></li>\n'
ur'\s*<li class="c3">(?P<humidity>.+)<span>%</span></li>\n',
re.MULTILINE|re.UNICODE)
dict = re_dict.search(html).groupdict()
url = 'http://i.gismeteo.com/static/images/ico/wind/%s.gif' % dict<'wind_ico'>
command = 'cd %s && /usr/bin/wget -q %s -O wind.gif' \
' && convert wind.gif wind.png && rm wind.gif' % (target, url)
p = subprocess.Popen(command, shell=True,stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=True)
p.communicate()
Спасибо за скрипт. Только есть пара вопросов:
1) Почему показывается только картинка, без текста и температуры. И как можно сделать, чтобы было как на скриншоте
2) Такое ощущение, что скрипт просто показывает весь набор картинок. И кажется не все картинки показывает, нет просто "Солнце"
1) Почему показывается только картинка, без текста и температуры. И как можно сделать, чтобы было как на скриншоте
2) Такое ощущение, что скрипт просто показывает весь набор картинок. И кажется не все картинки показывает, нет просто "Солнце"
на сколько я понимаю какая-то проблема со переменной day
aceback (most recent call last):
File "/home/user/.conky/pygismeteo.py", line 25, in <module>
download(tmp<0>, day)
IndexError: list index out of range
Скорее всего на гисметео нет данных,такое бывает.я просто обернул всё в try except. чтоб при отсутствии данных скрипт не валился
поправил.
1) у меня скрипт такой. причесывать его мне лениво. если хотите разобаться что там к чему - пожалуйста пользуйте ))
1) у меня скрипт такой. причесывать его мне лениво. если хотите разобаться что там к чему - пожалуйста пользуйте ))
Могу в принципе порезать свой скрипт на куски чтоб отделить форматирование от данных. будет для ветра - один скрипт,для температуры другой,для давления третий и т д .Нужно?
Да.
Можешь выложить хотябы весь комплект. (ТВОЙ конфиг конки, скрипт для получения погоды, срипт для вывода дней недели итд, т.е. все компоненты)
Можешь выложить хотябы весь комплект. (ТВОЙ конфиг конки, скрипт для получения погоды, срипт для вывода дней недели итд, т.е. все компоненты)
толи с лыжами что-то, толи я...
что-то абракадабра выходит
Вот код моих коньков, если не сложно, скажите где дурак.
ОСь openSUSE 11.3-RC1, пробовал на убунте, там вроде коньки собраны со всем подряд - тот же результат.
что-то абракадабра выходит
Вот код моих коньков, если не сложно, скажите где дурак.
#!/usr/bin/conky -d -c
## .conkyrc configuration
alignment top_right
background no
border_inner_margin 5
border_width 5
#color0 FFFFFF # white
#color0 555555 # grey
#color0 D3C7B7 #
color0 000000 # Black
color1 258C06 # YEllow
cpu_avg_samples 2
default_color e1e1e1 # szary a7a7a7
default_outline_color 000000 # Black
default_shade_color 000000 # Black
double_buffer yes
draw_borders no
draw_graph_borders yes
draw_outline no
draw_shades no
gap_x 5
gap_y 40
max_specials 1024
max_user_text 10000
maximum_width 200
minimum_size 850
net_avg_samples 2
no_buffers yes
override_utf8_locale yes
own_window yes
own_window_colour 000000 # Black
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
own_window_transparent yes
own_window_type override ## normal
pad_percents 2 # to co nizej, miejsc po przecinku
short_units yes # krotka wersja podawania wielkosci dyskow np. 612.21M/3.80G
stippled_borders 3
text_buffer_size 8000
total_run_times 0
update_interval 1.0
uppercase no
use_spacer right
use_xft yes
xftalpha 0.75
xftfont sans:size=7
TEXT
${color0}${goto 10}${font DejaVu Sans Mono:size=44}${time %H}${font DejaVu Sans Mono:size=20}${voffset -25}'${time %M}${font DejaVu Sans Mono:size=8}${voffset -12}${time %S}
${color0}${goto 85}${voffset 10}${font :size=8}${time %A}
${color0}${goto 85}${voffset 1}${font :size=8}${time %d %B %Y}${color}
${color2}
${font DejaVu Sans Mono:size=8}${execpi 3600 DJS=`date +%_d`; cal | sed '1d' | sed '/./!d' | sed 's/$/ /' | fold -w 21 | sed -n '/^.\{21\}/p' | sed 's/^/${alignc} /' | sed /" $DJS "/s/" $DJS "/" "'${color0}'"$DJS"'${color2}'" "/}${font}
${color0}System ${hr 1}
Hostname: $alignr$nodename
Kernel: $alignr$kernel
Uptime: $alignr$uptime
CPU Temp: ${alignr}${acpitemp} C
CPU: ${alignr}${freq} MHz
Processes: ${alignr}$processes ($running_processes running)
Load: ${alignr}$loadavg
CPU1 ${alignr}${cpu cpu1}%
${cpubar 4 cpu1}
CPU2 ${alignr}${cpu cpu2}%
${cpubar 4 cpu2}
Ram ${alignr}$mem / $memmax ($memperc%)
${membar 4}
Swap ${alignr}$swap / $swapmax ($swapperc%)
${swapbar 4}
Highest CPU $alignr CPU% MEM%
${top name 1}$alignr${top cpu 1}${top mem 1}
${top name 2}$alignr${top cpu 2}${top mem 2}
${top name 3}$alignr${top cpu 3}${top mem 3}
Highest MEM $alignr CPU% MEM%
${top_mem name 1}$alignr${top_mem cpu 1}${top_mem mem 1}
${top_mem name 2}$alignr${top_mem cpu 2}${top_mem mem 2}
${top_mem name 3}$alignr${top_mem cpu 3}${top_mem mem 3}
Filesystem ${hr 1}
Root: ${alignr}${fs_free /} / ${fs_size /}
${fs_bar 4 /}
Home: ${alignr}${fs_free /home} / ${fs_size /home}
${fs_bar 4 /home}
Win: ${alignr}${fs_free /mnt/win} / ${fs_size /mnt/win}
${fs_bar 4 /mnt/win}
Data: ${alignr}${fs_free /mnt/data} / ${fs_size /mnt/data}
${fs_bar 4 /mnt/data}
Network ${hr 1}
Down ${downspeed eth0}b/s ${alignr}Up ${upspeed eth0}b/s
${downspeedgraph eth0 25,95} ${alignr}${upspeedgraph eth0 25,95}
Total ${totaldown eth0}b ${alignr}Total ${totalup eth0}b
Weather ${hr 1}
${execi 800 /home/faust/.conky/pygismeteo.py}
${image /home/faust/.conky/0-done.png -p 0,790 -s 30x30}
${image /home/faust/.conky/1-done.png -p 0,830 -s 30x30}${image /home/faust/.conky/2-done.png -p 45,830 -s 30x30}
${image /home/faust/.conky/3-done.png -p 90,830 -s 30x30}${image /home/faust/.conky/4-done.png -p 135,830 -s 30x30}
${if_mpd_playing}${font led:size=9}MPD ${font}${mpd_status} $hr
${alignc}${mpd_artist} - "${mpd_title}"
${alignc}${mpd_album}
${alignc}${mpd_bar 3,150}
${alignc}${mpd_elapsed}/${mpd_length}
${endif}
ОСь openSUSE 11.3-RC1, пробовал на убунте, там вроде коньки собраны со всем подряд - тот же результат.
с вашим конфигом ничего не показывает вообще ниже надписи weather.
Заменил в 109 строке execi на excpi и всё заработало
Заменил в 109 строке execi на excpi и всё заработало
Наверное "execpi".
А картинки не показывает, наверное из-за того что в репах коньки не скомпилены с поддержкой?
А картинки не показывает, наверное из-за того что в репах коньки не скомпилены с поддержкой?
вот этого я не знаю
The latest Conky has integrated Imlib2 support for drawing images. To get started using images in Conky, you'll need a copy of Conky 1.7.1 or newer.
The latest Conky has integrated Imlib2 support for drawing images. To get started using images in Conky, you'll need a copy of Conky 1.7.1 or newer.
Conky 1.7.2 compiled Fri Oct 30 14:43:51 UTC 2009 for Linux 2.6.31 (i686)
обновил с другой репы до 1.8.0. Всё заработало :)
Conky 1.8.0 compiled Thu Jun 17 15:45:47 UTC 2010 for Linux 2.6.32 (i686)
А на самом деле, можно финальный скрин? У меня, увы, Ваш скрипт не работает как нужно, файлы картинок в папке созданы, но открыть их невозможно, вес у них нулевой. Выполнив скрипт просто в консоли, стало понятно, что данные в текстовом виде получаются нормально, а вот с картинками беда. Если скрипт выполнять просто из консольки, то ошибок никаких нет, но картинки весят 0.
скрин
ну и скрипт, хоть и не просили ссылка
старый вариант уже не работает. гисметео сменил код страницы
ну и скрипт, хоть и не просили ссылка
старый вариант уже не работает. гисметео сменил код страницы
Увы, сейчас нет времени опробовать совсем, но по скриншоту - именно то, как я вижу погодный информер. Очень рад, что самому не придется его писать, и у нас с Вами схожий взгляд. Огромное Вам спасибо за материал.