[Модуль] Погода Яндекс (yandexweather)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Aleksandr_A
Сообщения: 32
Зарегистрирован: Ср окт 09, 2019 9:24 am
Благодарил (а): 4 раза
Поблагодарили: 6 раз

Re: [Модуль] Погода Яндекс (yandexweather)

Сообщение Aleksandr_A » Чт окт 17, 2019 3:59 pm

Может кому пригодится - функция для получения русских состояний.

Код: Выделить всё

function getCondRus($cond_str){
 $eng_str = array("overcast-thunderstorms-with-rain","partly-cloudy-and-light-rain","partly-cloudy-and-light-snow","overcast-and-light-rain","overcast-and-light-snow","partly-cloudy-and-rain","partly-cloudy-and-snow","cloudy-and-light-rain","overcast-and-wet-snow","cloudy-and-light-snow","overcast-and-rain","overcast-and-snow","cloudy-and-rain","cloudy-and-snow","partly-cloudy","overcast","cloudy","clear");
 $rus_str = array("сильный дождь, гроза","небольшой дождь","небольшой снег","небольшой дождь","небольшой снег","дождь","снег","небольшой дождь","дождь со снегом","небольшой снег","сильный дождь","снегопад","дождь","снег","малооблачно","пасмурно","облачно с прояснениями","ясно");
 return(str_replace($eng_str, $rus_str, $cond_str));
}
Последний раз редактировалось Aleksandr_A Пн окт 21, 2019 12:39 pm, всего редактировалось 1 раз.
За это сообщение автора Aleksandr_A поблагодарили (всего 2):
andrey040670 (Чт окт 17, 2019 5:29 pm) • Sergey.Chek (Чт окт 17, 2019 7:25 pm)
Рейтинг: 2.33%
AndySot
Сообщения: 24
Зарегистрирован: Пт окт 11, 2019 9:44 pm
Благодарил (а): 1 раз
Поблагодарили: 7 раз

Re: [Модуль] Погода Яндекс (yandexweather)

Сообщение AndySot » Пн окт 21, 2019 9:33 am

Зачем так сложно. В методе все есть.... решается добавлением пары строк.
Ko/|xo3HUk
Сообщения: 160
Зарегистрирован: Ср окт 07, 2015 9:36 am
Благодарил (а): 51 раз
Поблагодарили: 27 раз

Re: [Модуль] Погода Яндекс (yandexweather)

Сообщение Ko/|xo3HUk » Чт окт 31, 2019 3:19 pm

Модуль поддерживается ещё? Я только сейчас начал им пользоваться. Наткнулся на вот такие грабли:
файл "modules\yandexweather\indata.inc.php" - код, отображающий прогноз осадков:

Код: Выделить всё

$osadki="В ближайшие два часа осадки не ожидаются.";
if (($data[0]['prec_prob']!='0' )&&($data[1]['prec_prob']='0' )) $osadki="В ближайший час  ожидается прекращение осадков.";
if (($data[0]['prec_prob']!='0' )&&($data[1]['prec_prob']!='0' )&&($data[2]['prec_prob']!='0' )) $osadki="В ближайшие два часа  ожидается прекращение осадков.";

if (($data[0]['prec_prob']='0' )&&($data[1]['prec_prob']!='0' )) $osadki="В ближайший час  ожидаются  осадки.";
if (($data[0]['prec_prob']!='0' )&&($data[1]['prec_prob']!='0' )&&($data[2]['prec_prob']!='0' )) $osadki="В ближайшие два часа  ожидаются  осадки.";
Здесь есть ошибки. Во-первых:

Код: Выделить всё

($data[1]['prec_prob']='0' )
- это не сравнение, а присвоение. Должно быть

Код: Выделить всё

($data[1]['prec_prob']=='0' )
Ну и здесь не совсем логично:

Код: Выделить всё

if (($data[0]['prec_prob']!='0' )&&($data[1]['prec_prob']!='0' )&&($data[2]['prec_prob']!='0' )) $osadki="В ближайшие два часа  ожидается прекращение осадков.";
- вроде наоборот, сейчас и в следующие два часа предполагаются осадки.

Я себе вот так сделал:

Код: Выделить всё

$osadki="В ближайшие два часа осадки не ожидаются.";

if (($data[0]['prec_prob']!=0 )&&($data[1]['prec_prob']==0 )) {$osadki="В ближайший час ожидается прекращение осадков.";}
if (($data[0]['prec_prob']!=0 )&&($data[1]['prec_prob']!=0 )&&($data[2]['prec_prob']==0 )) {$osadki="Через час ожидается прекращение осадков.";}

if (($data[0]['prec_prob']==0 )&&($data[1]['prec_prob']!=0 )) {$osadki="В ближайший час  ожидаются  осадки.";}
if (($data[0]['prec_prob']==0 )&&($data[1]['prec_prob']==0 )&&($data[2]['prec_prob']!=0 )) {$osadki="Через час ожидаются осадки.";}
if (($data[0]['prec_prob']==0 )&&($data[1]['prec_prob']!=0 )&&($data[2]['prec_prob']!=0 )) {$osadki="В ближайшие два часа ожидаются осадки.";}
if (($data[0]['prec_prob']!=0 )&&($data[1]['prec_prob']!=0 )&&($data[2]['prec_prob']!=0 )) {$osadki="Сейчас и в ближайшие два часа ожидаются осадки.";}
Текущий сервер: Ноутбук: HP Probook 4515s (без монитора). ОС: Debian GNU/Linux 8.6 (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: [Модуль] Погода Яндекс (yandexweather)

Сообщение directman66 » Чт окт 31, 2019 4:26 pm

Ko/|xo3HUk писал(а):
Чт окт 31, 2019 3:19 pm
Модуль поддерживается ещё? Я только сейчас начал им пользоваться. Наткнулся на вот такие грабли:
файл "modules\yandexweather\indata.inc.php" - код, отображающий прогноз осадков:

Код: Выделить всё

$osadki="В ближайшие два часа осадки не ожидаются.";
if (($data[0]['prec_prob']!='0' )&&($data[1]['prec_prob']='0' )) $osadki="В ближайший час  ожидается прекращение осадков.";
if (($data[0]['prec_prob']!='0' )&&($data[1]['prec_prob']!='0' )&&($data[2]['prec_prob']!='0' )) $osadki="В ближайшие два часа  ожидается прекращение осадков.";

if (($data[0]['prec_prob']='0' )&&($data[1]['prec_prob']!='0' )) $osadki="В ближайший час  ожидаются  осадки.";
if (($data[0]['prec_prob']!='0' )&&($data[1]['prec_prob']!='0' )&&($data[2]['prec_prob']!='0' )) $osadki="В ближайшие два часа  ожидаются  осадки.";
Здесь есть ошибки. Во-первых:

Код: Выделить всё

($data[1]['prec_prob']='0' )
- это не сравнение, а присвоение. Должно быть

Код: Выделить всё

($data[1]['prec_prob']=='0' )
Ну и здесь не совсем логично:

Код: Выделить всё

if (($data[0]['prec_prob']!='0' )&&($data[1]['prec_prob']!='0' )&&($data[2]['prec_prob']!='0' )) $osadki="В ближайшие два часа  ожидается прекращение осадков.";
- вроде наоборот, сейчас и в следующие два часа предполагаются осадки.

Я себе вот так сделал:

Код: Выделить всё

$osadki="В ближайшие два часа осадки не ожидаются.";

if (($data[0]['prec_prob']!=0 )&&($data[1]['prec_prob']==0 )) {$osadki="В ближайший час ожидается прекращение осадков.";}
if (($data[0]['prec_prob']!=0 )&&($data[1]['prec_prob']!=0 )&&($data[2]['prec_prob']==0 )) {$osadki="Через час ожидается прекращение осадков.";}

if (($data[0]['prec_prob']==0 )&&($data[1]['prec_prob']!=0 )) {$osadki="В ближайший час  ожидаются  осадки.";}
if (($data[0]['prec_prob']==0 )&&($data[1]['prec_prob']==0 )&&($data[2]['prec_prob']!=0 )) {$osadki="Через час ожидаются осадки.";}
if (($data[0]['prec_prob']==0 )&&($data[1]['prec_prob']!=0 )&&($data[2]['prec_prob']!=0 )) {$osadki="В ближайшие два часа ожидаются осадки.";}
if (($data[0]['prec_prob']!=0 )&&($data[1]['prec_prob']!=0 )&&($data[2]['prec_prob']!=0 )) {$osadki="Сейчас и в ближайшие два часа ожидаются осадки.";}
Спасибо, с удовольствие приму доработки в виде пулреквеста )
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Ko/|xo3HUk
Сообщения: 160
Зарегистрирован: Ср окт 07, 2015 9:36 am
Благодарил (а): 51 раз
Поблагодарили: 27 раз

Re: [Модуль] Погода Яндекс (yandexweather)

Сообщение Ko/|xo3HUk » Чт окт 31, 2019 4:46 pm

Это на Гитхабе надо Pull Request создать? Я ещё пуллреквесты не делал, попробую как-нибудь :)
Текущий сервер: Ноутбук: HP Probook 4515s (без монитора). ОС: Debian GNU/Linux 8.6 (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
Ko/|xo3HUk
Сообщения: 160
Зарегистрирован: Ср окт 07, 2015 9:36 am
Благодарил (а): 51 раз
Поблагодарили: 27 раз

Re: [Модуль] Погода Яндекс (yandexweather)

Сообщение Ko/|xo3HUk » Чт окт 31, 2019 7:53 pm

Создал пуллреквест. А почему старые реквесты не закрыты? С декабря прошлого года два реквеста не закрыты. Хотя изменения по этим реквестам вроде внесены.
Текущий сервер: Ноутбук: HP Probook 4515s (без монитора). ОС: Debian GNU/Linux 8.6 (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: [Модуль] Погода Яндекс (yandexweather)

Сообщение directman66 » Чт окт 31, 2019 11:25 pm

Ko/|xo3HUk писал(а):
Чт окт 31, 2019 7:53 pm
Создал пуллреквест. А почему старые реквесты не закрыты? С декабря прошлого года два реквеста не закрыты. Хотя изменения по этим реквестам вроде внесены.
А где исправления главного файла?
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Ko/|xo3HUk
Сообщения: 160
Зарегистрирован: Ср окт 07, 2015 9:36 am
Благодарил (а): 51 раз
Поблагодарили: 27 раз

Re: [Модуль] Погода Яндекс (yandexweather)

Сообщение Ko/|xo3HUk » Чт окт 31, 2019 11:28 pm

Вон оно чё :) Я просто чайник в этом деле, только начинаю разбираться, вот и задаю глупые вопросы ))
Текущий сервер: Ноутбук: HP Probook 4515s (без монитора). ОС: Debian GNU/Linux 8.6 (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: [Модуль] Погода Яндекс (yandexweather)

Сообщение directman66 » Чт окт 31, 2019 11:30 pm

Создаешь форк всего проекта, правишь, пушишь в свой репозиторий и потом предлагаешь смержить с моей веткой. Тогда изменения будут касаться всей ветки.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Ko/|xo3HUk
Сообщения: 160
Зарегистрирован: Ср окт 07, 2015 9:36 am
Благодарил (а): 51 раз
Поблагодарили: 27 раз

Re: [Модуль] Погода Яндекс (yandexweather)

Сообщение Ko/|xo3HUk » Пт ноя 08, 2019 9:36 am

По виджетам есть замечание - прогноз на сегодня [утро, день, вечер, ночь] - нужно изменить последовательность на [ночь, утро, день, вечер]. У меня на основе этих виджетов свой был сделан и сегодня столкнулся с таким: вчера и сегодня ночью ещё была плюсовая температура, а утром уже мороз ударил. А на виджете я вижу такое: [утро: -1, день: -3, вечер: -7, ночь: +6 дождь]. И на завтра прогноз -7°С.
Текущий сервер: Ноутбук: HP Probook 4515s (без монитора). ОС: Debian GNU/Linux 8.6 (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
Ответить