среда, 23 ноября 2011 г.

Погода с сайта http://www.wunderground.com/ в conky часть II

Вывод иконок погоды производится скриптом function_draw_image.lua
Скрипт содержит две функции draw_image_rect(cr, x, y, width) и image_weather().


Первая - draw_image_rect(cr, x, y, width) получает от скрипта main.lua данные о положении на экране и размеры иконки. Получив эти данные функция забирает название иконки из функции image_weather() и по этому названию забирает иконку из папки weathwericons с помощью строки

image = (usrhome .. "/conky_20.03.2011/weathericons/" .. image_weather())

затем, как я уже писал в "Вывод картинок (иконок) в конки" в марте 2011, производится вывод изображения иконки погоды.

Вторая функция - image_weather() с помощью программы sunwait определяет какой тип иконок надо будет брать, для дня или ночи. Строки

local sunrise = conky_parse("${exec sunwait -p 59.58N 30.18E | grep rises | awk '{print $3}'}")
local sunset = conky_parse("${exec sunwait -p 59.58N 30.18E | grep rises | awk '{print $6}'}")

присваивают значения sunrise (время восхода) и sunset (время заката) вызывая программу sunwait с необходимыми координатами места получения прогноза. 59.58N 30.18E это широта и долгота Санкт-Петербурга.

Эти данные в строке

if conky_parse("${time %H:%M}") > sunrise and conky_parse("${time %H:%M}") < sunset then

сравниваются с текущим временем, и если время приходится на день, то строка

image = conky_parse("${exec sed -n '5p' /tmp/weathertext}")

забирает название полученной погоды из /tmp/weathertext и выбирает, согласно названия и времени суток, подходящую иконку и передает данные о ней первой функции, которая выводит изображение на экран.

Так как иконок не очень много, а названий состояния погоды очень много, то некоторые иконки выводят изображение нескольких состояний погоды. Проще говоря облачно, облачно с дымкой,  облачно с легким ветерком - выводятся как облачно.

Если будете использовать эти конки, не забудьте дать права скриптам, и измените координаты на координаты своего города. Для получения кода погоды своего города необходимо зайти на сайт http://www.wunderground.com и вписать название своего города. Если город будет найден вы перейдете на страницу с прогнозом погоды. В правом верхнем углу находятся две кнопки ICAL(зелёная) and RSS(красная). Щелкните правой кнопкой мыши по красной кнопке и скопируйте ссылку на адресс.

В скрипте pogoda.sh (находится в папке scripts) необходимо заменить строку с адресом

"http://rss.wunderground.com/auto/rss_full/global/stations/26063.xml?units=metric"

на скопированную вами.

Для переключения иконок с дневных на ночные необходимо зайти в папку sunwait, находится в общей папке этих коньков и дать команду

$ make

будет создан файл sunwait который необходимо поместить в /usr/local/bin.

Кажется ничего не забыл.

Удачных коньков.

Комментариев нет:

Отправить комментарий