diff --git a/ffrouter_parsen.function.php b/ffrouter_parsen.function.php index e93eaab..a6b15f2 100644 --- a/ffrouter_parsen.function.php +++ b/ffrouter_parsen.function.php @@ -1,254 +1,117 @@ hersteller, $router_tmp[$x]['hersteller']) == 0) && (strcasecmp($router[$z]->modell, $router_tmp[$x]['modell']) == 0) && (strcasecmp($router[$z]->version, $router_tmp[$x]['version']) == 0)) { - $entinst = $entwicklung[$i].$installation[$j]; - $entinstlink = $entwicklung[$i].$installation[$j]."link"; - $router[$z]->$entinst = 1; - $router[$z]->$entinstlink = $firmware_download_path.$entwicklung[$i]."/".$installation[$j]."/".$files[$entwicklung[$i]][$installation[$j]][$x]; - $router_neu = 0; - break; - } - } - } - if($router_neu == 1) { - $z = count($router); - $router[$z] = new ffrouter(); - $router[$z]->hersteller = $router_tmp[$x]['hersteller']; - $router[$z]->version = $router_tmp[$x]['version']; - $router[$z]->modell = $router_tmp[$x]['modell']; - $entinst = $entwicklung[$i].$installation[$j]; - $entinstlink = $entwicklung[$i].$installation[$j]."link"; - $router[$z]->$entinst = 1; - $router[$z]->$entinstlink = $firmware_download_path.$entwicklung[$i]."/".$installation[$j]."/".$files[$entwicklung[$i]][$installation[$j]][$x]; - } - } - } - } - $router_tmp = array(); - } - } -}else{ - //Check if URL is reachable - if (!remoteFileExists($firmware_download_path)) { - throw new Exception("Firmwareverzeichnis offline oder nicht existent!"); - } - $err = 0; - $entwicklung_count = count($entwicklung); - $installation_count = count($installation); - for( $i=0; $i<$entwicklung_count; $i++ ) { - if (remoteFileExists($firmware_download_path.$entwicklung[$i]."/")) { - for( $j=0; $j<$installation_count; $j++ ) { - //Check if URL has index file (refer to https://forums.phpfreaks.com/topic/112764-using-scandir-on-other-websites/?p=579166 <- scandir has problem with index files) - if ((@remoteFileExists($firmware_download_path.$entwicklung[$i]."/".$installation[$j]."/index.htm"))||(@remoteFileExists($firmware_download_path.$entwicklung[$i]."/".$installation[$j]."/index.html"))||(@remoteFileExists($firmware_download_path.$entwicklung[$i]."/".$installation[$j]."/index.php"))) { - throw new Exception("Firmwareverzeichnis darf keine index files besitzen!"); - } - $variante[$entwicklung[$i]][$installation[$j]] = 1; - preg_match_all('/href=[\'"]?([^\'" >]+)/', file_get_contents($firmware_download_path.$entwicklung[$i]."/".$installation[$j]."/"), $files_in_HTTP); - foreach($files_in_HTTP["0"] as $key=>$value){ - if ((strpos($value, 'manifest') !== false) || (strpos($value, '?C=M;O=A') !== false) || (strpos($value, '?C=S;O=A') !== false) || (strpos($value, '?C=S;O=A') !== false)) { - unset($files_in_HTTP["0"][$key]); - } - } - foreach($files_in_HTTP["0"] as $key=>$value){ - $files_in_HTTP["0"][$key]=substr($value, 6); - } - $files[$entwicklung[$i]][$installation[$j]] = array_slice($files_in_HTTP["0"], 1); - } - } - } - - for( $i=0; $i<$entwicklung_count; $i++ ) { - for( $j=0; $j<$installation_count; $j++ ) { - if($variante[$entwicklung[$i]][$installation[$j]] == 1) { - $x = 0; - while($files[$entwicklung[$i]][$installation[$j]][$x] !== false) { - $pos_hersteller[$entwicklung[$i]][$installation[$j]] = stripos($files[$entwicklung[$i]][$installation[$j]][$x], "tp-link"); - if ($pos_hersteller[$entwicklung[$i]][$installation[$j]] !== false) { - break; - } - $x++; - } - } else { - $pos_hersteller[$entwicklung[$i]][$installation[$j]] = 0; - } - } - } - $router = array(); - for( $i=0; $i<$entwicklung_count; $i++ ) { - for( $j=0; $j<$installation_count; $j++ ) { - if($variante[$entwicklung[$i]][$installation[$j]] == 1) { - $file_count = count($files[$entwicklung[$i]][$installation[$j]]); - for( $x=0; $x<$file_count; $x++) { - $anzahl_hersteller = count($hersteller); - for( $y=0; $y<$anzahl_hersteller; $y++) { - if($pos = stripos($files[$entwicklung[$i]][$installation[$j]][$x], $hersteller[$y]['filename'], $pos_hersteller[$entwicklung[$i]][$installation[$j]]-1) !== false) { - $router_tmp[$x]['hersteller'] = $hersteller[$y]['name']; - switch($router_tmp[$x]['hersteller']) { - case "D-Link": - $router_tmp[$x]['version'] = substr($files[$entwicklung[$i]][$installation[$j]][$x], strripos($files[$entwicklung[$i]][$installation[$j]][$x], "rev"), -4-$offset_sysupgrade[$j]); - break; - case "GL-Inet (alt)": - $router_tmp[$x]['version'] = substr($files[$entwicklung[$i]][$installation[$j]][$x], strripos($files[$entwicklung[$i]][$installation[$j]][$x], "v"), -4-$offset_sysupgrade[$j]); - break; - case "TP-Link": - $router_tmp[$x]['version'] = substr($files[$entwicklung[$i]][$installation[$j]][$x], strripos($files[$entwicklung[$i]][$installation[$j]][$x], "v"), -4-$offset_sysupgrade[$j]); - break; - default: - $router_tmp[$x]['version'] = "Alle"; - } - $router_tmp[$x]['modell'] = strtoupper(substr($files[$entwicklung[$i]][$installation[$j]][$x], $pos_hersteller[$entwicklung[$i]][$installation[$j]]+$hersteller[$y]['offset_modell'], strripos($files[$entwicklung[$i]][$installation[$j]][$x], ".", -4)-strlen($files[$entwicklung[$i]][$installation[$j]][$x])-strlen($router_tmp[$x]['version'])+$hersteller[$y]['offset_version']-$offset_sysupgrade[$j])); - } - } - if(isset($router_tmp[$x]['hersteller']) != true) { - $error_text[$err]="Unbekannten Hersteller im Dateinamen gefunden, bitte Script updaten! Bitte schreibe eine Mail an leo@freifunk-siegburg.de! (".$files[$entwicklung[$i]][$installation[$j]][$x].")"; - $err++; - } else { - $router_neu = 1; - $router_count = count($router); - for( $z=0; $z<$router_count; $z++) { - if(isset($router[$z])) { - if((strcasecmp($router[$z]->hersteller, $router_tmp[$x]['hersteller']) == 0) && (strcasecmp($router[$z]->modell, $router_tmp[$x]['modell']) == 0) && (strcasecmp($router[$z]->version, $router_tmp[$x]['version']) == 0)) { - $entinst = $entwicklung[$i].$installation[$j]; - $entinstlink = $entwicklung[$i].$installation[$j]."link"; - $router[$z]->$entinst = 1; - $router[$z]->$entinstlink = $firmware_download_path.$entwicklung[$i]."/".$installation[$j]."/".$files[$entwicklung[$i]][$installation[$j]][$x]; - $router_neu = 0; - break; - } - } - } - if($router_neu == 1) { - $z = count($router); - $router[$z] = new ffrouter(); - $router[$z]->hersteller = $router_tmp[$x]['hersteller']; - $router[$z]->version = $router_tmp[$x]['version']; - $router[$z]->modell = $router_tmp[$x]['modell']; - $entinst = $entwicklung[$i].$installation[$j]; - $entinstlink = $entwicklung[$i].$installation[$j]."link"; - $router[$z]->$entinst = 1; - $router[$z]->$entinstlink = $firmware_download_path.$entwicklung[$i]."/".$installation[$j]."/".$files[$entwicklung[$i]][$installation[$j]][$x]; - } - } - } - } - $router_tmp = array(); - } - } } -$router_count = count($router); -for( $i=0; $i<$router_count; $i++ ) { // Routerbilder einbauen +for( $i=0; $i= 5) { + $router_tmp[$x]['version'] = "Alle"; + } + break; + default: + $router_tmp[$x]['version'] = "Alle"; + } + $router_tmp[$x]['modell'] = strtoupper(substr($files[$entwicklung[$i]][$installation[$j]][$x], $pos_hersteller[$entwicklung[$i]][$installation[$j]]+$hersteller[$y]['offset_modell'], strripos($files[$entwicklung[$i]][$installation[$j]][$x], ".", -4)-strlen($files[$entwicklung[$i]][$installation[$j]][$x])-strlen($router_tmp[$x]['version'])+$hersteller[$y]['offset_version']-$offset_sysupgrade[$j])); + if($router_tmp[$x]['modell'] == "" && $router_tmp[$x]['hersteller'] != "Raspberry Pi") { + $router_tmp[$x]['modell'] = strtoupper(substr($files[$entwicklung[$i]][$installation[$j]][$x], $pos_hersteller[$entwicklung[$i]][$installation[$j]]+$hersteller[$y]['offset_modell'], strripos($files[$entwicklung[$i]][$installation[$j]][$x], ".", -4)-strlen($files[$entwicklung[$i]][$installation[$j]][$x])-$hersteller[$y]['offset_version']-1-$offset_sysupgrade[$j])); + } + } + } + if(isset($router_tmp[$x]['hersteller']) != true) { + $error_text[$err]="Unbekannten Hersteller im Dateinamen gefunden, bitte Script updaten! (".$files[$entwicklung[$i]][$installation[$j]][$x].")"; + $err++; + } else { + $router_neu = 1; + for( $z=0; $zhersteller, $router_tmp[$x]['hersteller']) == 0) && (strcasecmp($router[$z]->modell, $router_tmp[$x]['modell']) == 0) && (strcasecmp($router[$z]->version, $router_tmp[$x]['version']) == 0)) { + $entinst = $entwicklung[$i].$installation[$j]; + $entinstlink = $entwicklung[$i].$installation[$j]."link"; + $router[$z]->$entinst = 1; + $router[$z]->$entinstlink = $firmware_download_path.$entwicklung[$i]."/".$installation[$j]."/".$files[$entwicklung[$i]][$installation[$j]][$x]; + $router_neu = 0; + break; + } + } + } + if($router_neu == 1) { + $z = count($router); + $router[$z] = new ffrouter(); + $router[$z]->hersteller = $router_tmp[$x]['hersteller']; + $router[$z]->version = $router_tmp[$x]['version']; + $router[$z]->modell = $router_tmp[$x]['modell']; + $entinst = $entwicklung[$i].$installation[$j]; + $entinstlink = $entwicklung[$i].$installation[$j]."link"; + $router[$z]->$entinst = 1; + $router[$z]->$entinstlink = $firmware_download_path.$entwicklung[$i]."/".$installation[$j]."/".$files[$entwicklung[$i]][$installation[$j]][$x]; + } + } + } + } + $router_tmp = array(); + } +} +for( $i=0; $ihersteller))) { if(is_file(strtolower("router_images/".$router[$i]->hersteller."/".$router[$i]->modell."-".$router[$i]->version.".jpg"))) { $router[$i]->imagefront = strtolower("router_images/".$router[$i]->hersteller."/".$router[$i]->modell."-".$router[$i]->version.".jpg"); @@ -264,4 +127,4 @@ for( $i=0; $i<$router_count; $i++ ) { // Routerbilder einbauen $router[$i]->imagefront = "router_images/keinbild.jpg"; $router[$i]->imageback = "router_images/keinbild.jpg"; } -} +} \ No newline at end of file