Re: [Модуль] Yandex.Traffic (app_yatraffic)
Добавлено: Ср янв 22, 2020 10:46 am
Ага, было бы не плохо.
Да, видимо сломалось, потому как ссылка на выбор регионов яндекса уже ведет в никуда https://yandex.ru/yaca/geo.c2n редирект на https://yandex.ru/support/nick7zmail писал(а): Ср янв 22, 2020 6:43 amТам есть автоматическое определение региона...раньше работало, как часы...но оно не сбрасывало, если регион вручную перебить....ща, возможно, что то сломалось...могу его выключить.S_Nick писал(а): Вт янв 21, 2020 11:39 pm Модуль периодически сбрасывает прописаный в настройках регион, меняет, в моем случае, на какое-то "Сасово"). Как лечить?
Код: Выделить всё
if (isset($params["level"])) $level = $params["level"]; else $level = 1;
if (!isOnline('Internet')) { say("Нет доступа в Интернет!", $level); return; }
if (isset($params["change"])) $change = $params["change"];
$region = 157; //Минск
$traffic_url = "https://export.yandex.ru/bar/reginfo.xml?region=" . $region;
$xml = simplexml_load_file($traffic_url); // раскладываем xml на массив
//print_arr($xml);
$ret = "Дорожная ситуация: ";
if ($xml) {
$traffic_level = $xml->traffic->region->level;
if ($traffic_level) {
$traffic_hint = $xml->traffic->region->hint;
if ($traffic_hint) {
$ret .= $traffic_hint . ". ";
sg("ThisComputer.yandexTrafficHint", $traffic_hint);
}
$traffic_icon = $xml->traffic->region->icon;
if ($traffic_icon) {
sg("ThisComputer.yandexTrafficIcon", $traffic_icon);
}
$ball = "баллов";
if ($traffic_level == 0) $ball = "баллов";
if ($traffic_level == 1) $ball = "балл";
if ($traffic_level == 2) $ball = "балла";
if ($traffic_level == 3) $ball = "балла";
if ($traffic_level == 4) $ball = "балла";
if ($traffic_level == 5) $ball = "баллов";
if ($traffic_level == 6) $ball = "баллов";
if ($traffic_level == 7) $ball = "баллов. Лучше сидеть дома";
if ($traffic_level == 8) $ball = "баллов. Лучше сидеть дома";
if ($traffic_level == 9) $ball = "баллов. Лучше сидеть дома";
if ($traffic_level == 10) $ball = "баллов. Лучше сидеть дома";
$ret .= "Уровень пробок сейчас " . $traffic_level . " " . $ball . ". ";
if ($change) {
$ret = "";
if ($traffic_level == 0) $ball = "баллов";
if ($traffic_level == 1) $ball = "балла";
if ($traffic_level == 2) $ball = "баллов";
if ($traffic_level == 3) $ball = "баллов";
if ($traffic_level == 4) $ball = "баллов";
if ($traffic_level == 5) $ball = "баллов";
if ($traffic_level == 6) $ball = "баллов";
if ($traffic_level == 7) $ball = "баллов. Лучше сидеть дома";
if ($traffic_level == 8) $ball = "баллов. Лучше сидеть дома";
if ($traffic_level == 9) $ball = "баллов. Лучше сидеть дома";
if ($traffic_level == 10) $ball = "баллов. Лучше сидеть дома";
if ($traffic_level < gg("ThisComputer.yandexTrafficLevel")) {
$ret = "Уровень пробок на дорогах снизился до " . $traffic_level . " " . $ball . ". ";
$ret .= $traffic_hint . ". ";
}
if ($traffic_level > gg("ThisComputer.yandexTrafficLevel")) {
$ret = "Уровень пробок на дорогах возрос до " . $traffic_level . " " . $ball . ". ";
$ret .= $traffic_hint . ". ";
}
}
sg("ThisComputer.yandexTrafficLevel", $traffic_level);
} else {
$ret .= "Данные не получены. ";
}
} else {
$ret .= "Данные не получены. ";
}
$ret = trim($ret);
if ($ret) {
say($ret, $level);
echo "<br>" . $ret;
}
Код: Выделить всё
runScript("yandexTraffic", array("change"=>"1")); //Проверка изменились ли пробки
Аналогично и у меня.S_Nick писал(а): Вт янв 21, 2020 11:39 pm Модуль периодически сбрасывает прописаный в настройках регион, меняет, в моем случае, на какое-то "Сасово"). Как лечить?
У меня тоже, замучился каждый день руками вбивать.S_Nick писал(а): Вт янв 21, 2020 11:39 pm Модуль периодически сбрасывает прописаный в настройках регион, меняет, в моем случае, на какое-то "Сасово"). Как лечить?
Ровно страницу назад.
Автор обещал исправить, но пока дело не двинулось, на сколько мне известно.pasha413 писал(а): Вс фев 02, 2020 10:08 am Здравствуйте. подскажите, как победить автоматическую смену города на Сасово?
Мой вариант решения с подсказки "SmoKE_xDDD"pasha413 писал(а): Вс фев 02, 2020 10:08 am Здравствуйте. подскажите, как победить автоматическую смену города на Сасово?
Код: Выделить всё
/*
include_once(DIR_MODULES."app_yatraffic/app_yatraffic.class.php");
$app_yatraffic=new app_yatraffic();
$app_yatraffic->get_traffic(gg("yt_settings.reg_id"));
*/
//Регион
$myRegion = '213'; // пишем свой регион
//Получаем данные от Яндекса
$getYandex = simplexml_load_string(file_get_contents('https://export.yandex.ru/bar/reginfo.xml?region='.$myRegion));
$getYandex = json_decode(json_encode($getYandex), TRUE);
//Уровень пробок от 1 до 9
$trafficBall = $getYandex["traffic"]["region"]["level"];
sg("yt_info.level",$trafficBall);
//Текстовый статус, зеленый, желтый, красный (На инглише)
$trafficColor = $getYandex["traffic"]["region"]["icon"];
sg("yt_info.icon",$trafficColor);
sg('yt_info.color_level','<font color='.$trafficColor.'>'.gg('yt_info.level').'</font>');
//Текстовое оповещение - Дороги почти свободны
$trafficText = $getYandex["traffic"]["region"]["hint"][0];
sg("yt_info.val",$trafficText);
//Время последнего обновления
$trafficTime = $getYandex["traffic"]["region"]["time"];
sg("yt_info.time",$trafficTime);
//
$trafficTend = $getYandex["traffic"]["region"]["tend"];
sg("yt_info.tend",$trafficTend);
//Название города
$trafficSity = $getYandex["region"]["title"];
sg("yt_info.city_title",$trafficSity);Код: Выделить всё
callMethodSafe('yt_info'.'.'.'update');спасибо, помоглоkas5858 писал(а): Пн фев 03, 2020 7:29 pmМой вариант решения с подсказки "SmoKE_xDDD"pasha413 писал(а): Вс фев 02, 2020 10:08 am Здравствуйте. подскажите, как победить автоматическую смену города на Сасово?
Меняем код в методе updateВ методе onNewHour обьекта ClockChimeКод: Выделить всё
/* include_once(DIR_MODULES."app_yatraffic/app_yatraffic.class.php"); $app_yatraffic=new app_yatraffic(); $app_yatraffic->get_traffic(gg("yt_settings.reg_id")); */ //Регион $myRegion = '213'; // пишем свой регион //Получаем данные от Яндекса $getYandex = simplexml_load_string(file_get_contents('https://export.yandex.ru/bar/reginfo.xml?region='.$myRegion)); $getYandex = json_decode(json_encode($getYandex), TRUE); //Уровень пробок от 1 до 9 $trafficBall = $getYandex["traffic"]["region"]["level"]; sg("yt_info.level",$trafficBall); //Текстовый статус, зеленый, желтый, красный (На инглише) $trafficColor = $getYandex["traffic"]["region"]["icon"]; sg("yt_info.icon",$trafficColor); sg('yt_info.color_level','<font color='.$trafficColor.'>'.gg('yt_info.level').'</font>'); //Текстовое оповещение - Дороги почти свободны $trafficText = $getYandex["traffic"]["region"]["hint"][0]; sg("yt_info.val",$trafficText); //Время последнего обновления $trafficTime = $getYandex["traffic"]["region"]["time"]; sg("yt_info.time",$trafficTime); // $trafficTend = $getYandex["traffic"]["region"]["tend"]; sg("yt_info.tend",$trafficTend); //Название города $trafficSity = $getYandex["region"]["title"]; sg("yt_info.city_title",$trafficSity);
в концеВ настройках модуля убрать частоту обновления.Код: Выделить всё
callMethodSafe('yt_info'.'.'.'update');
Если модуль поправят, можно оперативно все вернуть.