Как я могу получить Конки для отображения погоды?

Я изо всех сил пытался заставить conky показывать погоду, я просто установил его и обнаружил, что yahoo прекратил использовать api url, который использовался в conky теме ( http: //weather.yahooapis. com / forecastrss? w = 1103816 & u = c ), я попытался изменить URL-адрес на accweather и openweather, и ничего. Я просто не понимаю, как это работает вообще, и я понятия не имею, как заставить его работать должным образом, вот код:

##Weather
${image .jelly-weather-icons/conky_icons/circle2.png -s 190x190}
${texeci 1300 curl -s "http://rss.accuweather.com/rss/liveweather_rss.asp\?metric\=${METRIC}#\&locCode\=$LOCCOD" -o #~/.cache/weather.xml}
${voffset -110}${offset 425}${font ITC Avant Garde Gothic Pro:bold:size=20}${execi 1300 grep #"yweather:condition" ~/.cache/weather.xml | grep -o "temp=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | #grep -o "[^\"]*"}${font ITC Avant Garde Gothic Pro:bold:size=8}${voffset -16}o${voffset 14}${font}#${color1}
${execi 1300 cp -f .weather-icons/$(grep "yweather:condition" ~/.cache/weather.xml | grep -o #"code=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*").png ~/.cache/weather.png}${image #~/.cache/weather.png -p 425,23 -s 35x35}
${offset 420}${voffset -105}${font ITC Avant Garde Gothic Pro:size=14} Sevilla

Кстати, я не нашел в Интернете ничего, что могло бы помочь мне. .. заранее спасибо:)

Edit1: Вот API, который conky тема сохраняет в cache / weather.xml http://api.openweathermap.org/data/2.5/forecast? id = 6361046 & APPID = 6be5e3a6e62680c28044791e8fc7b568 Я медленно понимаю, как это работает

Edit2: Вот как теперь выглядит код, я заметил, что некоторые набрали #, пытаясь прокомментировать всю погодную часть. Я просто не понимаю, как conky читает xml (я не знаю, как читать xml сам, но, полагаю, я могу решить это с помощью нескольких руководств xml: P)

##Weather
${image .jelly-weather-icons/conky_icons/circle2.png -s 190x190}
${texeci 1300 curl -s "http://api.openweathermap.org/data/2.5/forecast?id=6361046&APPID=6be5e3a6e62680c28044791e8fc7b568&units=metric" -o ~/.cache/weather.xml}
${voffset -110}${offset 425}${font ITC Avant Garde Gothic Pro:bold:size=20}${execi 1300 grep "weather:description" ~/.cache/weather.xml | grep -o "temp=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*"}${font ITC Avant Garde Gothic Pro:bold:size=8}${voffset -16}o${voffset 14}${font}${color1}
${execi 1300 cp -f .weather-icons/$(grep "yweather:condition" ~/.cache/weather.xml | grep -o "code=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*").png ~/.cache/weather.png}${image ~/.cache/weather.png -p 425,23 -s 35x35}
${offset 420}${voffset -105}${font ITC Avant Garde Gothic Pro:size=14} Sevilla

Edit3: Итак, я наконец-то он заработал благодаря @ WinEunuuchs2Unix и @steeldriver , вот как в конечном итоге выглядит код для тех, кто хочет использовать его в своем простом коде:

##Weather

${voffset -80}${offset 435}${font ITC Avant Garde Gothic Pro:bold:size=20}${execi 1300 curl -s "http://api.openweathermap.org/data/2.5/forecast?id=6361046&APPID=6be5e3a6e62680c28044791e8fc7b568&units=metric" | jq -r '.list[0].main.temp' | awk '{printf("%.0f\n", $1)}'}${font ITC Avant Garde Gothic Pro:bold:size=8}${voffset -16}o${voffset 24}${font}${color1}
${execi 1300 cp -f .iconos/$(curl -s "http://api.openweathermap.org/data/2.5/forecast?id=6361046&APPID=6be5e3a6e62680c28044791e8fc7b568&units=metric" | jq -r '.list[0].weather[].icon').png ~/.cache/weather.png}${image ~/.cache/weather.png -p 425,20 -s 60x60}
${offset 420}${voffset -115}${font ITC Avant Garde Gothic Pro:bold:size=14} Sevilla

По сути, он читает json из URL openweather, используя curl, и с помощью jq выполняет поиск значений .list[0].weather[].icon и .list[0].main.temp относительно температуры, он выводит значение с двумя десятичными цифрами, которые я отключите для личных предпочтений, используя awk '{printf("%.0f\n", $1)}' остальную часть кода, просто способ conky понять, где вы хотите и как вы хотите. Если вы хотите использовать его для себя, просто измените Sevilla для своего города и измените curl -s "...your location api url...", обратите внимание, что если вы используете другой сайт для своего URL-адреса, вам придется изменить jq, чтобы он соответствовал новым данным json. Также обратите внимание, что вам придется создать папку со всеми значками из этого списка значков или использовать свои собственные значки, но не забывайте использовать одно и то же наименование (01d.png, 02d.png, ...) и также не забудьте отредактировать ${execi 1300 cp -f .iconos/$(curl -s "http:/... и заменить .iconos/ на каталог вашей папки.

Здесь , если вы хотите опробовать хитрую тему

2
задан 25 November 2019 в 03:26

3 ответа

Погода является слишком большой информацией для сжатия в мой носатый дисплей, который уже довольно полон. Так вместо этого я поместил его в мой терминальный экран-заставка :

terminal splash screen.png

можно получить ту же информацию из командной строки, которую можно назвать от носатого:

$ curl wttr.in/Edmonton?0 --silent --max-time 3

Weather report: Edmonton

     \   /     Clear
      .-.      7..8 °C        
   ― (   ) ―   → 6 km/h       
      `-’      10 km          
     /   \     0.0 mm         

Для получения названия города для wttr.in см.:

Дисплей изображение в носатом

я сохранил картинку сегодняшней погоды из darksky.net и отобразил его в носатом с эти ${image} команда:

Weather in conky.png

соответствующие носатые команды:

#------------+
# Brightness |
#------------+
${color orange}${voffset 2}${hr 1}
${color1}${goto 5}Rise: ${color green}${execpi 300 cat /usr/local/bin/.eyesome-sunrise} ${goto 155}${color1}Set: ${color green}${execpi 300 cat /usr/local/bin/.eyesome-sunset} ${alignr}${color1}Level: ${color green}${execpi 10 cat /sys/class/backlight/intel_backlight/brightness}







#------------+
# Image      |
#------------+
${image /home/rick/Pictures/Weather.png -p 0,1080 -s 400x120}
  • я включал раздел незадолго до для ссылки
  • Уведомление, которое Видят все пустые строки для создания носатого окна более высоким для вписываний в изображение
  • : Переменные в Носатом для получения дополнительной информации о ${image} команда.
3
ответ дан 2 December 2019 в 02:11

Правовая оговорка: Я не помню, где я получил это.

у меня есть немного сценария weather.sh

#!/bin/sh
#AccuWeather (r) RSS weather tool for conky
#
#USAGE: weather.sh <locationcode>
#
#(c) Michael Seiler 2007

METRIC=0 #Should be 0 or 1; 0 for F, 1 for C

if [ -z $1 ]; then
    echo
    echo "USAGE: weather.sh <locationcode>"
    echo
    exit 0;
fi

curl -s http://rss.accuweather.com/rss/liveweather_rss.asp\?metric\=${METRIC}\&locCode\=$1 | perl -ne 'if (/Currently/) {chomp;/\<title\>Currently: (.*)?\<\/title\>/; print "$1"; }'

Затем в .conkyrc, который Вы имеете

${exec [location of script]/weather.sh [zip code]}

, конечный результат

enter image description here

1
ответ дан 2 December 2019 в 02:11

Я создал сценарий оболочки, который использует приложение wethr snap. Это приложение показывает погоду в зависимости от вашего местоположения на терминале.

$ wethr

Асунсьон, Парагвай: 31C ☀️

В настоящее время Conky не очень хорошо обрабатывает смайлики, поэтому мне пришлось использовать pangoview, чтобы преобразовать текст в изображение.

Я использую его на conky with

${image /tmp/weather-1000.jpg -p 95,328}

Добавьте еще эту строку, чтобы разрешить перезагрузку изображений в conky

imlib_cache_flush_interval=1500,

Вот скрипт

https://github.com/alefq/helper-scripts/blob/master/ bin/weather.sh

Обновление Crontab каждые 30 минут

33 * * * * /opt/helper-scripts/bin/weather.sh

Окончательный результат

enter image description here

0
ответ дан 2 January 2021 в 15:21

Другие вопросы по тегам:

Похожие вопросы: