Conky: Простой вывод погоды

Создание панелей Conky включающих только текст

В conky предусмотрена переменная weather. Казалось бы, с ее помощью мы легко сможем отобразить всю интересующую нас информацию о погоде, но мы пойдем другим путем. Вот почему: на данный момент эта переменная все еще является экспериментальной, поэтому привязываться к ней не стоит. К тому же, сейчас в качестве параметров можно передать два источника метеоданных. Первый предоставляет данные только для Америки (если вы живете в Америке, то это может стать вашим выбором), а второй требует регистрации (но нам лень).

РЕКОМЕНДУЕМ: Создание панелей Conky включающих только текст

Для получения текущей погоды воспользуемся сервисом Yahoo. Например, чтобы узнать сведения о погоде в Москве перейдите по ссылке: http://xml.weather.yahoo.com/forecastrss?w=2346910&u=c. Если у вас установлено приложение или плагин браузера для просмотра rss-фидов, то вы увидите что-то подобное:

За этим содержимым стоит обычный xml-код. Он нам и нужен. Обратите внимание, что на конце url используется два параметра: w и u. Первый из них определяет место, для которого мы хотим узнать погоду, а второй позволяет выбрать единицы измерения температуры (градусы Цельсия c или Фаренгейта f). Параметр w означает WOEID — Where On Earth IDentifier. Найти его для вашего города можно на сайте http://woeid.rosselliot.co.nz/lookup.

Например, на скриншоте выше показано, что я ввел в строку поиска «velikiy novgorod», и получил на запрос два результата. Первый результат относится к району, а второй непосредственно к городу. Поэтому я запоминаю соответствующий WOEID — 2122471.

Следующий шаг — получение непосредственных данных. Для этого создадим простой скрипт ~/.scripts/weather.sh:

На вход он принимает единственный параметр — WOEID нужного нам места. Обратите внимание, что для работы скрипта вам понадобится curl. Также в скрипте используется немного awk (см. AWK: Примеры программ).

Попробуем запустить скрипт с найденным ранее WOEID:

В результате имеем такой выход:

Вывод информации об осадках осуществляется на английском. При желании можно доработать скрипт, добавив в него преобразование, которое будет выполнять перевод этой строки на нужный вам язык. А можно вообще не выводить эти данные и ограничиться только текущей температурой. В этом случае получаем такой скрипт:

Вывести все это с помощью conky уже дело техники. Вы можете поместить панель туда, где вам покажется удобней, а я просто переделаю файл конфигурации из прошлой статьи, с помощью которого мы выводили уведомления о новых сообщениях на электронной почте:

Внешне выглядит довольно примитивно, но вы сами можете подобрать цвета и шрифты, чтобы такая панель лучше вписывалась в ваше оформление.

При желании вы также можете переработать скрипт, и, например, добавить вывод не только текущей температуры, но и прогноз на ближайшие дни.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий