LINUX.ORG.RU

О погоде (чиним MATE weather applet)

 


0

1

В данной теме (заметке) описана починка mate weather applet (Weather Report) в составе MATE Desktop Environment v1.26.2 на ОС Gentoo Linux.

Несколько дней назад погодный ресурс https://aviationweather.gov, откуда libmateweather (форк libgnomeweather в составе MATE DE) берёт данные, внёс изменения в REST API. В следствие чего сломалась работа апплета.

Разработчики libmateweather оперативно выпустили патчи (https://github.com/mate-desktop/libmateweather/issues/135#issuecomment-330698...). Однако в дистрибутивы они попадут не сразу, кроме того не все хотят/могут установить свежий пакет. А текущую погоду хотелось бы видеть уже сейчас.

В Gentoo Linux есть встроенный функционал для применения пользовательских патчей при сборке пакета, что позволяет избежать необходимости создания собственного оверлея с модифицированным ebuild`ом libmateweather.

Итак определяем установленную версию libmateweather

# eix -I weather
[I] dev-libs/libmateweather
     Available versions:  1.26.3 **1.27.1 {debug}
     Installed versions:  1.26.3(03:27:16 PM 09/20/2025)(-debug)
     Homepage:            https://mate-desktop.org
     Description:         MATE library to access weather information from online services

Согласно описанию с https://wiki.gentoo.org/wiki//etc/portage/patches создаем директорию

mkdir -p /etc/portage/patches/dev-libs/libmateweather-1.26.3/
И помещаем туда файл c патчем:
Для ветки 1.26:
wget -O libmateweather-issue135.patch https://github.com/mate-desktop/libmateweather/commit/7e7baca66d1da49d26fd22c923e8787f85597e76.diff 
Для ветки 1.28:
wget -O libmateweather-issue135.patch https://github.com/mate-desktop/libmateweather/commit/80b5f259864f7fecfb3c936f8f9aeade2d327f56.diff

Переходим в каталог ebuild`а

cd /mnt/portage/dev-libs/libmateweather/
И проверяем применимость патча
ebuild libmateweather-1.26.3.ebuild clean prepare

В случае успеха пересобираем пакет:

emerge dev-libs/libmateweather --usepkg=n
И прибиваем апплет, чтобы он перезагрузиляся:
pkill -e mateweather-app

Тем, кому эта инструкция не походит, но погода за окном всё же важна, можно предложить запрос напрямую через REST API в веб-браузере следующим образом:
Заходим на страницу https://aviationweather.gov/data/api/#cache и скачиваем Stations listing
в XML
https://aviationweather.gov/data/cache/stations.cache.xml.gz
или JSON формате
https://aviationweather.gov/data/cache/stations.cache.json.gz
(там примерно 200-300KB)

Находим в списках ближайший аэропорт и копируем его station_id. Например для Волгограда ID будет URWW, и URL выглдит так:
https://aviationweather.gov/api/data/metar?ids=URWW&format=json

Результат запроса (в веб-браузере) примерно такой:

0	
icaoId	"URWW"
receiptTime	"2025-09-20T14:06:37.088Z"
obsTime	1758376800
reportTime	"2025-09-20T14:00:00.000Z"
temp	20
dewp	4
wdir	150
wspd	4
visib	"6+"
altim	1015
qcField	0
metarType	"METAR"
rawOb	"METAR URWW 201400Z 15002MPS 140V210 CAVOK 20/04 Q1015 R23/010070 TEMPO -TSRAGR BKN020CB"
lat	48.788
lon	44.336
elev	131
name	"Volgograd Intl, VG, RU"
cover	"CAVOK"
clouds	[]
fltCat	"VFR"
Погодные данные есть не для всех аэропортов из списка. Если данных нет, то API вернет код 204 (no content).
Подробности по работе с API - на странице https://aviationweather.gov/data/api/ .

Ответ на: комментарий от jura12

(голосом судьи из Angry Birds) А смирение не всегда полезно!

hobbit ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.