h0rr0rr_drag0n 14.01.2010 15:07
Скрипты — Скрипт для получения температуры с gismeteo.ru.
На днях, внезапно, я обнаружил у себя простенький скриптик, который получает текущую температуру в Санкт-Петербурге со страницы gismeteo.ru.Незамедлительно, я прикрутил его к xmobar:Надеюсь, он еще кому-нибудь пригодится.
UPD: Для xmobar'a нужно заменить строку "exit 1" на "exit 0" в коде скрипта иначе при отсутствии интернета xmobar будет писать о невозможности запустить скрипт, вместо строки "No Data".
Donat 14.01.2010 15:50 #
+ -1 -
А можно детально? Что и как будет выглядеть для Gnome?
Вначале скрипт запрашивает страницу с данными с сервера только для того, чтобы проверить код возврата. Если он не нулевой - нет соединения с интернетом. Иначе, скрипт получает снова ту же страницу с данными, парсит ее и помещает результат в переменную CURR_TEMP, значение которой затем выводится на STDOUT.
К Gnome вы можете прикрутить этот скрипт сами, как вам угодно. Готового рецепта естественно нет.
К Gnome вы можете прикрутить этот скрипт сами, как вам угодно. Готового рецепта естественно нет.
Вначале скрипт запрашивает страницу с данными с сервера только для того, чтобы проверить код возврата.
Но фактически траффик будет?
У неё есть далеко не все города. Например, нет Кирова, где я живу. А то было бы конечно удобнее использовать его, благо ничего даже настраивать не надо, только зайди в параметры часов и вбей нужный город.
в http://welinux.ru/post/2021/ есть отсылки к нестандартным городам. Особенно везёт тем, чьих городов нет в настройках и у кого недалеко Аэропорты.
вот только овчинка не стоит возни с овцой. Можно пользоваться тыщщей и одним способами получения температуры и без возни с аэропортами:)
А я на днях прикрутил к conky изображение с вебкамеры, с интервалом обновления 5 минут.
Выглядит следующим образом:
${execi 300 wget -P ~/ -O .webcam http://webcam.perm.ru/cameras/5/jpeg/1263121827463_320x240.jpg}${image ~/.webcam -p 10,500 -f 60}
Выглядит следующим образом:
Мне кажется, или это не совсем рационально 2 раза брать одну страницу? Или по-другому - никак?
Не знаю как это будет на bash, а я в конфиге conky проверяю так:
${if_existing /proc/net/route ppp0}
//все, что связано с сетью
${else}
${alignc 0}No data
${endif}
у меня в conky давно прикручено.причем с гисметео берутся и картинки
Добавил вывод через notify-send
Пихнул в bin с именем pogoda.sh
Выполнил
И создал кнопку запуска в гноме.
Вышло красивое всплывающее окошко с погодой.
notify-send \"Температура:$CURR_TEMP\"
Пихнул в bin с именем pogoda.sh
Выполнил
sudo chmod +x pogoda.ch
И создал кнопку запуска в гноме.
Вышло красивое всплывающее окошко с погодой.
Вот весь скрипт, проверку соединения можн и пингом, так ловчей.
#!/bin/bash
#test connection
#wget -t 3 -T 10 -w 5 -O - http://www.gismeteo.ru/city/daily/4394/ &>/dev/null
ping -c 1 -W 15 gismeteo.ru
if < "$?" -ne "0" >; then
notify-send \"Ошибка\"
exit 1
fi
CURR_TEMP="`wget -O - http://www.gismeteo.ru/city/daily/4394/ 2>/dev/null |\
grep '<div class="deg">' | sed -r 's/<div class="deg">(.<0-9>+).*/\1/g' | awk \
'{print $1}'`"
notify-send \"Температура:$CURR_TEMP\"
UPD: Вместо:
надо написать:
иначе возможна некорректная работа скрипта, особенно если температура на гизметео == 0 градусов, без знака перед числом.
sed -r 's/<div class="deg">(.<0-9>+).*/\1/g'
надо написать:
sed -r 's/<div class="deg">(.?<0-9>+).*/\1/g'
иначе возможна некорректная работа скрипта, особенно если температура на гизметео == 0 градусов, без знака перед числом.