Не все картинки показывает)nick7zmail писал(а):Знаю)) выковыривал значки откуда мог)) даже у тех девайсов, у которых в описании нет presentationURL))) Ща бум пакеты снифить, смотреть что куда шлёт.
Synology картинку не отображает.
Модератор: immortal
Не все картинки показывает)nick7zmail писал(а):Знаю)) выковыривал значки откуда мог)) даже у тех девайсов, у которых в описании нет presentationURL))) Ща бум пакеты снифить, смотреть что куда шлёт.
Код: Выделить всё
require_once(DIR_MODULES.'/app_dlna/upnp/vendor/autoload.php');
use jalder\Upnp\Upnp;
$upnp = new Upnp();
$everything = $upnp->discover();
$result = [];
foreach ($everything as $device) {
if (!array_search_result($result, 'UUID', $device['description']['device']["UDN"])) {
$result[] = [
"TITLE" => $device['description']['device']["friendlyName"],
"UUID" => $device['description']['device']["UDN"],
"LOGO" => getDefImg($device),
"JDATA"=>$device
];
}
}
print_r($result);
function array_search_result($array, $key, $value)
{
foreach ($array as $k => $v) {
if (array_key_exists($key, $v) && ($v[$key] == $value)) {
return true;
}
}
}
function getIp($dev)
{
$result = explode(":", $dev['description']['device']["presentationURL"])[1];
return str_replace("//", "", $result);
}
function getDefImg($dev)
{
if($dev['description']['device']["presentationURL"] && $dev['description']['device']["iconList"]["icon"]["0"]["url"]) {
$img_url = substr($dev['description']['device']["presentationURL"], 0, -1). $dev['description']['device']["iconList"]["icon"]["0"]["url"];
} elseif ($dev['description']['device']["iconList"]["icon"]["0"]["url"]) {
$img_url = str_replace('\\','', $dev["location"]);
$parsed_url = parse_url($img_url);
$img_url = $parsed_url['scheme'].'://'.$parsed_url['host'].':'.$parsed_url['port'].$dev['description']['device']["iconList"]["icon"]["0"]["url"];
} elseif ($dev['description']['device']["manufacturer"] == "Google Inc." && $dev['description']['device']["modelName"] == "Eureka Dongle") {
$img_url = "/templates/app_dlna/img/chromecast.png";
} elseif (($dev['description']['device']["manufacturer"] == "LG Electronics." || $dev['description']['device']["manufacturer"] == "LG Electronics") && ($dev['description']['device']["modelName"] == "LG TV" || $dev['description']['device']["modelName"] == "LG Smart TV")) {
$img_url = "/templates/app_dlna/img/tv.png";
} elseif ($dev['description']['device']["manufacturer"] == "Synology" || $dev['description']['device']["manufacturer"] == "Synology Inc") {
$img_url = "/templates/app_dlna/img/synology.png";
} elseif ($dev['description']['device']["manufacturer"] == "Emby" && $dev['description']['device']["modelName"] == "Emby") {
$img_url = $dev["presentationURL"] . $dev["iconList"]["icon"]["4"]["url"];
} elseif ($dev['description']['device']["manufacturer"] == "Linksys" || $dev['description']['device']["manufacturer"] == "Cisco") {
$img_url = "/templates/app_dlna/img/router.png";
} elseif ($dev['description']['device']["manufacturer"] == "XBMC Foundation") {
$img_url = "/templates/app_dlna/img/kodi.png";
}elseif ($dev['description']['device']["manufacturer"] == "Bubblesoft") {
$img_url = "/templates/app_dlna/img/bubleupnp.png";
}elseif ($dev['description']['device']["manufacturer"] == "BlackBerry") {
$img_url = "/templates/app_dlna/img/blackberry.jpg";
}elseif ($dev['description']['device']["manufacturer"] == "ASUSTeK Corporation" || $dev['description']['device']["manufacturer"] == "ASUSTeK Computer Inc.") {
$img_url = "/templates/app_dlna/img/ASUSRouter.png";
}elseif ($dev['description']['device']["manufacturer"] == "HIKVISION") {
$img_url = "/templates/app_dlna/img/cam.png";
}elseif ($dev['description']['device']["manufacturer"] == "Samsung Electronics") {
$img_url = "/templates/app_dlna/img/samsung.png";
} else {
$img_url = "/templates/app_dlna/img/unk.png";
}
return $img_url;
}
Скрипт выдаёт ошибку "Warning: socket_recvfrom(): in C:\_majordomo\htdocs\modules\app_dlna\upnp\vendor\jalder\upnp\src\Core.php on line 33"nick7zmail писал(а):А что выводит скрипт
Интересуют поля location icon и presentationURL у устройства, которое не отобразилось.
nick7zmail писал(а):после неё кучу текста пишет...
Именно он.nick7zmail писал(а): / пропущен