[Модуль] SSDP Finder (ssdp_finder)

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

Модератор: immortal

Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

Re: [Модуль] SSDP Finder (ssdp_finder)

Сообщение tarasfrompir » Сб апр 20, 2019 9:06 am

запусти htdocs\modules\ssdp_finder\test.php и ответ сюда
Спасибо нам ПОМОЖЕТ..!
kosem
Сообщения: 120
Зарегистрирован: Вт дек 18, 2018 3:26 pm
Откуда: Москва
Благодарил (а): 35 раз
Поблагодарили: 4 раза

Re: [Модуль] SSDP Finder (ssdp_finder)

Сообщение kosem » Сб апр 20, 2019 12:39 pm

tarasfrompir писал(а):
Сб апр 20, 2019 9:06 am
запусти htdocs\modules\ssdp_finder\test.php и ответ сюда
это?

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

<?php
require('upnp/vendor/autoload.php');
use jalder\Upnp\Upnp;

$upnp = new Upnp();
print('searching...'.PHP_EOL);
$everything = $upnp->discover_3rddevice();
if(!count($everything)){
	print_r('no upnp devices found'.PHP_EOL);
}
foreach($everything as $device){
	print_r($device);
	print_r("\r\n");
	//u	ncomment to see all available array elements for a device.
		   // 	$info = $device['description']['device'];
	// 	$summary = $info['friendlyName'].', '.$info['modelName'].', '.$info['UDN'];
	// 	print($summary.PHP_EOL);
}

function startsWith($haystack, $needle)
{
     $length = strlen($needle);
     return (substr($haystack, 0, $length) === $needle);
}

function getServices($dev){
	$services = $dev["serviceList"]["service"];
	$result = array();
	if($services){
		$servType = $services["serviceType"];
		//print "Serv Type: " . $servType;
		if(startsWith($servType,"urn") ){ // && empty($servType)
			//print "First cond->";
			$name = explode(":", $servType)[3];
			array_push($result,$name);
		}
		else{
		
			foreach($services as $k => $v){
					$value = $v["serviceType"];
				
						$name = explode(":", $value)[3];
					
						array_push($result,$name);
					}
			}
	}
	return implode(",",$result);
}

function endsWith($haystack, $needle)
{
	return $needle === '' || substr_compare($haystack, $needle, -strlen($needle)) === 0;
}

function SearchArray($array, $searchIndex, $searchValue)
{
    if (!is_array($array) || $searchIndex == '')
        return false;

    foreach ($array as $k => $v)
    {
        if (is_array($v) && array_key_exists($searchIndex, $v) && $v[$searchIndex] == $searchValue)
            return $k;
    }

    return false;
}

function getDefImg($dev)
{
    $baseUrl = $dev["presentationURL"];
    print "BAse URL:" . $baseUrl;
	if( !empty($baseUrl) && endsWith($baseUrl,"/")){
		print "First improove ->";
		$baseUrl=  rtrim($baseUrl,"/");//$baseUrl . ;
    }
    else if( $dev["location"]){
		print "Second improove ->";
        $img_url = str_replace('\\','', $dev["location"]);
		$parsed_url = parse_url($img_url);
		$baseUrl = $parsed_url['scheme'].'://'.$parsed_url['host'].':'.$parsed_url['port'];//.$dev["iconList"]["icon"]["0"]["url"];
    }
    print "Base url after improove:" . $baseUrl;


	if( $dev["iconList"]["icon"]["0"]["url"]){
        
        /*$icons = $dev["iconList"]["icon"];

		$searchedValue = 48; // Value to search.
		$index48 = SearchArray($icons,"width",48);

		$img48 =""; //empty by def
		if($index48 !=false){
			$img48 = $icons[$index48]["url"];
		}else{
			$img48 = $icons[0]["url"];
		}
		return $baseUrl . $img48;*/
		return $baseUrl . $dev["iconList"]["icon"]["0"]["url"];
	}else{
        $type =explode(":", $dev["deviceType"])[3];
		return "/templates/SSDPFinder/img/".$type. ".png";//"Icons not found... (((";
	}
}
?>
Win10
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

Re: [Модуль] SSDP Finder (ssdp_finder)

Сообщение tarasfrompir » Сб апр 20, 2019 12:55 pm

kosem писал(а):
Сб апр 20, 2019 12:39 pm
tarasfrompir писал(а):
Сб апр 20, 2019 9:06 am
запусти htdocs\modules\ssdp_finder\test.php и ответ сюда
это?

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

<?php
require('upnp/vendor/autoload.php');
use jalder\Upnp\Upnp;

$upnp = new Upnp();
print('searching...'.PHP_EOL);
$everything = $upnp->discover_3rddevice();
if(!count($everything)){
	print_r('no upnp devices found'.PHP_EOL);
}
foreach($everything as $device){
	print_r($device);
	print_r("\r\n");
	//u	ncomment to see all available array elements for a device.
		   // 	$info = $device['description']['device'];
	// 	$summary = $info['friendlyName'].', '.$info['modelName'].', '.$info['UDN'];
	// 	print($summary.PHP_EOL);
}

function startsWith($haystack, $needle)
{
     $length = strlen($needle);
     return (substr($haystack, 0, $length) === $needle);
}

function getServices($dev){
	$services = $dev["serviceList"]["service"];
	$result = array();
	if($services){
		$servType = $services["serviceType"];
		//print "Serv Type: " . $servType;
		if(startsWith($servType,"urn") ){ // && empty($servType)
			//print "First cond->";
			$name = explode(":", $servType)[3];
			array_push($result,$name);
		}
		else{
		
			foreach($services as $k => $v){
					$value = $v["serviceType"];
				
						$name = explode(":", $value)[3];
					
						array_push($result,$name);
					}
			}
	}
	return implode(",",$result);
}

function endsWith($haystack, $needle)
{
	return $needle === '' || substr_compare($haystack, $needle, -strlen($needle)) === 0;
}

function SearchArray($array, $searchIndex, $searchValue)
{
    if (!is_array($array) || $searchIndex == '')
        return false;

    foreach ($array as $k => $v)
    {
        if (is_array($v) && array_key_exists($searchIndex, $v) && $v[$searchIndex] == $searchValue)
            return $k;
    }

    return false;
}

function getDefImg($dev)
{
    $baseUrl = $dev["presentationURL"];
    print "BAse URL:" . $baseUrl;
	if( !empty($baseUrl) && endsWith($baseUrl,"/")){
		print "First improove ->";
		$baseUrl=  rtrim($baseUrl,"/");//$baseUrl . ;
    }
    else if( $dev["location"]){
		print "Second improove ->";
        $img_url = str_replace('\\','', $dev["location"]);
		$parsed_url = parse_url($img_url);
		$baseUrl = $parsed_url['scheme'].'://'.$parsed_url['host'].':'.$parsed_url['port'];//.$dev["iconList"]["icon"]["0"]["url"];
    }
    print "Base url after improove:" . $baseUrl;


	if( $dev["iconList"]["icon"]["0"]["url"]){
        
        /*$icons = $dev["iconList"]["icon"];

		$searchedValue = 48; // Value to search.
		$index48 = SearchArray($icons,"width",48);

		$img48 =""; //empty by def
		if($index48 !=false){
			$img48 = $icons[$index48]["url"];
		}else{
			$img48 = $icons[0]["url"];
		}
		return $baseUrl . $img48;*/
		return $baseUrl . $dev["iconList"]["icon"]["0"]["url"];
	}else{
        $type =explode(":", $dev["deviceType"])[3];
		return "/templates/SSDPFinder/img/".$type. ".png";//"Icons not found... (((";
	}
}
?>
ага... :lol: :lol: :oops: :oops: :oops: :oops:
За это сообщение автора tarasfrompir поблагодарил:
Unripe (Сб апр 20, 2019 9:26 pm)
Рейтинг: 1.16%
Спасибо нам ПОМОЖЕТ..!
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

Re: [Модуль] SSDP Finder (ssdp_finder)

Сообщение tarasfrompir » Сб апр 20, 2019 9:37 pm

kosem писал(а):
Сб апр 20, 2019 12:39 pm
tarasfrompir писал(а):
Сб апр 20, 2019 9:06 am
запусти htdocs\modules\ssdp_finder\test.php и ответ сюда
это?

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

<?php
require('upnp/vendor/autoload.php');
use jalder\Upnp\Upnp;

$upnp = new Upnp();
print('searching...'.PHP_EOL);
$everything = $upnp->discover_3rddevice();
if(!count($everything)){
	print_r('no upnp devices found'.PHP_EOL);
}
foreach($everything as $device){
	print_r($device);
	print_r("\r\n");
	//u	ncomment to see all available array elements for a device.
		   // 	$info = $device['description']['device'];
	// 	$summary = $info['friendlyName'].', '.$info['modelName'].', '.$info['UDN'];
	// 	print($summary.PHP_EOL);
}

function startsWith($haystack, $needle)
{
     $length = strlen($needle);
     return (substr($haystack, 0, $length) === $needle);
}

function getServices($dev){
	$services = $dev["serviceList"]["service"];
	$result = array();
	if($services){
		$servType = $services["serviceType"];
		//print "Serv Type: " . $servType;
		if(startsWith($servType,"urn") ){ // && empty($servType)
			//print "First cond->";
			$name = explode(":", $servType)[3];
			array_push($result,$name);
		}
		else{
		
			foreach($services as $k => $v){
					$value = $v["serviceType"];
				
						$name = explode(":", $value)[3];
					
						array_push($result,$name);
					}
			}
	}
	return implode(",",$result);
}

function endsWith($haystack, $needle)
{
	return $needle === '' || substr_compare($haystack, $needle, -strlen($needle)) === 0;
}

function SearchArray($array, $searchIndex, $searchValue)
{
    if (!is_array($array) || $searchIndex == '')
        return false;

    foreach ($array as $k => $v)
    {
        if (is_array($v) && array_key_exists($searchIndex, $v) && $v[$searchIndex] == $searchValue)
            return $k;
    }

    return false;
}

function getDefImg($dev)
{
    $baseUrl = $dev["presentationURL"];
    print "BAse URL:" . $baseUrl;
	if( !empty($baseUrl) && endsWith($baseUrl,"/")){
		print "First improove ->";
		$baseUrl=  rtrim($baseUrl,"/");//$baseUrl . ;
    }
    else if( $dev["location"]){
		print "Second improove ->";
        $img_url = str_replace('\\','', $dev["location"]);
		$parsed_url = parse_url($img_url);
		$baseUrl = $parsed_url['scheme'].'://'.$parsed_url['host'].':'.$parsed_url['port'];//.$dev["iconList"]["icon"]["0"]["url"];
    }
    print "Base url after improove:" . $baseUrl;


	if( $dev["iconList"]["icon"]["0"]["url"]){
        
        /*$icons = $dev["iconList"]["icon"];

		$searchedValue = 48; // Value to search.
		$index48 = SearchArray($icons,"width",48);

		$img48 =""; //empty by def
		if($index48 !=false){
			$img48 = $icons[$index48]["url"];
		}else{
			$img48 = $icons[0]["url"];
		}
		return $baseUrl . $img48;*/
		return $baseUrl . $dev["iconList"]["icon"]["0"]["url"];
	}else{
        $type =explode(":", $dev["deviceType"])[3];
		return "/templates/SSDPFinder/img/".$type. ".png";//"Icons not found... (((";
	}
}
?>
ну так что там с ответами...
Спасибо нам ПОМОЖЕТ..!
kosem
Сообщения: 120
Зарегистрирован: Вт дек 18, 2018 3:26 pm
Откуда: Москва
Благодарил (а): 35 раз
Поблагодарили: 4 раза

Re: [Модуль] SSDP Finder (ssdp_finder)

Сообщение kosem » Вс апр 21, 2019 6:21 am

Решил переустановить МД. Скорей всего, я чего-то наковырял и теперь все приблуды или работают криво или, как эта, вообще не работает...
Win10
kosem
Сообщения: 120
Зарегистрирован: Вт дек 18, 2018 3:26 pm
Откуда: Москва
Благодарил (а): 35 раз
Поблагодарили: 4 раза

Re: [Модуль] SSDP Finder (ssdp_finder)

Сообщение kosem » Вс апр 21, 2019 3:04 pm

дело было не в бобине...
переустановил - результат тот же - ничего не находит
так еще появилась какая-то ошибка после установок, обновлений и настроек модулей:
Fatal error: Maximum execution time of 60 seconds exceeded in C:\_majordomo\htdocs\modules\ssdp_finder\ssdp_devices_scan.inc.php on line 301

htdocs\modules\ssdp_finder\test.php выдает:

Fatal error: Uncaught Error: Undefined constant 'htdocs\modules\ssdp_finder\test' in C:\_majordomo\htdocs\modules\inc_panel_ajax.php(17) : eval()'d code:1
Stack trace:
#0 C:\_majordomo\htdocs\modules\inc_panel_ajax.php(17): eval()
#1 C:\_majordomo\htdocs\modules\panel.class.php(116): include_once('C:\\_majordomo\\h...')
#2 C:\_majordomo\htdocs\admin.php(34): panel->run()
#3 {main}
thrown in C:\_majordomo\htdocs\modules\inc_panel_ajax.php(17) : eval()'d code on line 1
Win10
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

Re: [Модуль] SSDP Finder (ssdp_finder)

Сообщение tarasfrompir » Вс апр 21, 2019 3:23 pm

kosem писал(а):
Вс апр 21, 2019 3:04 pm
дело было не в бобине...
переустановил - результат тот же - ничего не находит
так еще появилась какая-то ошибка после установок, обновлений и настроек модулей:
Fatal error: Maximum execution time of 60 seconds exceeded in C:\_majordomo\htdocs\modules\ssdp_finder\ssdp_devices_scan.inc.php on line 301

htdocs\modules\ssdp_finder\test.php выдает:

Fatal error: Uncaught Error: Undefined constant 'htdocs\modules\ssdp_finder\test' in C:\_majordomo\htdocs\modules\inc_panel_ajax.php(17) : eval()'d code:1
Stack trace:
#0 C:\_majordomo\htdocs\modules\inc_panel_ajax.php(17): eval()
#1 C:\_majordomo\htdocs\modules\panel.class.php(116): include_once('C:\\_majordomo\\h...')
#2 C:\_majordomo\htdocs\admin.php(34): panel->run()
#3 {main}
thrown in C:\_majordomo\htdocs\modules\inc_panel_ajax.php(17) : eval()'d code on line 1
естественно - надо запускать так
http://ip-majordomo/modules/ssdp_finder/test.php
Спасибо нам ПОМОЖЕТ..!
kosem
Сообщения: 120
Зарегистрирован: Вт дек 18, 2018 3:26 pm
Откуда: Москва
Благодарил (а): 35 раз
Поблагодарили: 4 раза

Re: [Модуль] SSDP Finder (ssdp_finder)

Сообщение kosem » Вс апр 21, 2019 5:10 pm

tarasfrompir писал(а):
Вс апр 21, 2019 3:23 pm

естественно - надо запускать так
http://ip-majordomo/modules/ssdp_finder/test.php
прошу прощения, за свою бестолковость, но никак не пойму, где и как надо запустить этот test.php
Первый раз запустил в браузере хром по строке C:/_majordomo/htdocs/modules/ssdp_finder/test.php (полный путь до файла) и похоже просто его открыл.
Затем htdocs\modules\ssdp_finder\test.php запустил в консоли МД - тоже что-то не то.
Теперь перепробовал все возможные варианты в хроме с http://ip-majordomo/modules/ssdp_finder/test.php (вместо ip - localhost и 192.168... и полный путь) в результате "404".
Напишите, пожалуйста, полный синтаксис и где его запускать?
Win10
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

Re: [Модуль] SSDP Finder (ssdp_finder)

Сообщение tarasfrompir » Вс апр 21, 2019 5:52 pm

в адресной строке браузера http://192.168.0.100/modules/ssdp_finder/test.php
За это сообщение автора tarasfrompir поблагодарил:
kosem (Вс апр 21, 2019 10:33 pm)
Рейтинг: 1.16%
Спасибо нам ПОМОЖЕТ..!
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

Re: [Модуль] SSDP Finder (ssdp_finder)

Сообщение tarasfrompir » Вс апр 21, 2019 5:52 pm

только айпи свой укажи
Спасибо нам ПОМОЖЕТ..!
Ответить