VTuner.com Importer

'; //$rsdb_xml = file_get_contents($config['vtuner']['url'] . '?mac=' . $config['noxon']['mac'] . '&uid=' . $config['vtuner']['uid'] . '&lang=' . $config['vtuner']['lang']); $rsdb_xml = file_get_contents('../full_rsdb.xml'); $rsdb_dom = new DOMDocument(); $rsdb_dom->preserveWhiteSpace = false; $rsdb_dom->loadXML($rsdb_xml); if ($_GET['cmd'] == 'import') { // Stations $stationList = $rsdb_dom->getElementsByTagName('station_list')->item(0); echo $stationList->getElementsByTagName('station')->length . ' Stationen'; $counter = 0; $sql_pre = 'REPLACE INTO nodes (id, type, name, description, bitrate, url, mime_type) VALUES ' . "\n"; foreach ($stationList->getElementsByTagName('station') as $station) { if($counter % 50 == 0) { $sql = substr($sql, 0, -3); mysql_query($sql, $site['db']['connection']); echo '.'; flush(); $sql = $sql_pre; } $sql .= '(' . (int) $station->getElementsByTagName('id')->item(0)->nodeValue . ', \'station\', \'' . mysql_real_escape_string($station->getElementsByTagName('station_name')->item(0)->nodeValue) . '\', \'' . mysql_real_escape_string($station->getElementsByTagName('station_description')->item(0)->nodeValue) . '\', ' . (int) $station->getElementsByTagName('bw')->item(0)->nodeValue . ', \'' . mysql_real_escape_string($station->getElementsByTagName('url')->item(0)->nodeValue) . '\', \'' . mysql_real_escape_string($station->getElementsByTagName('mime_type')->item(0)->nodeValue) . '\'), ' . "\n"; $counter++; } if(mysql_affected_rows() > 0) { echo '

' . $counter . ' stations successfully imported!

'; } else { echo '

Sorry we had a problem during the importing process:
' . mysql_error() . '

'; echo '
' . $sql . '
'; } //Structure $dirList = $rsdb_dom->getElementsByTagName('directory_list')->item(0); $sql = 'REPLACE INTO tree (node_id, lft, rgt) VALUES ' . "\n"; $curNode = $dirList; $counter = 0; $level = 0; $lft[$level] = 0; while($curNode) { switch ($curNode->nodeName) { case 'dir': mysql_query('REPLACE INTO nodes (type, name) VALUES (\'directory\', \'' . mysql_real_escape_string($curNode->attributes->getNamedItem('name')->nodeValue) . '\')'); $id[$level] = mysql_insert_id(); //echo 'found dir: ' . $curNode->getAttribute('name') . ' and added to nodes with id: ' . mysql_insert_id() . '
'; break; case 'station': $id[$level] = (int) $curNode->nodeValue; //echo 'found station: ' . $curNode->nodeValue . '
'; break; default: break; } if ($curNode->hasChildNodes() && strpos($curNode->nodeName, 'dir') !== false) { $curNode = $curNode->firstChild; $level++; $lft[$level] = $lft[$level - 1] + 1; //echo 'entering subtree (level: ' . $level . ')
'; } else { $rgt[$level] = $lft[$level] + 1; $sql .= '(' . $id[$level] . ', ' . $lft[$level] . ', ' . $rgt[$level] . '), ' . "\n"; echo 'next node (level: ' . $level . '): (' . $id[$level] . ', ' . $lft[$level] . ', ' . $rgt[$level] . ')
'; $lft[$level] = $rgt[$level] + 1; if ($curNode->nextSibling) { $curNode = $curNode->nextSibling; } else { do { $level--; $rgt[$level] = $rgt[$level + 1] + 1; $sql .= '(' . $id[$level] . ', ' . $lft[$level] . ', ' . $rgt[$level] . '), ' . "\n"; echo 'leave subtree (level: ' . $level . '): (' . $id[$level] . ', ' . $lft[$level] . ', ' . $rgt[$level] . ')
'; $lft[$level] = $rgt[$level] + 1; if ($level == 1) break 2; $curNode = $curNode->parentNode; } while (!$curNode->nextSibling); $curNode = $curNode->nextSibling; } } /*if($counter % 50 == 0 && $sql != '') { $sql = substr($sql, 0, -3); mysql_query($sql, $site['db']['connection']); echo '.'; flush(); $sql = $sql_pre; echo mysql_error(); }*/ $counter++; } $sql = substr($sql, 0, -3); mysql_query($sql, $site['db']['connection']); if(mysql_affected_rows() > 0) { echo '

' . $counter . ' nodes successfully imported!

'; } else { echo '

Sorry we had a problem during the importing process:
' . mysql_error() . '

'; } echo '
' . $sql . '
'; } else { echo '

Database Info

Version' . $rsdb_dom->firstChild->attributes->getNamedItem('version')->nodeValue . '
Stationen' . $rsdb_dom->firstChild->attributes->getNamedItem('station_count')->nodeValue . '
Format Version' . $rsdb_dom->firstChild->attributes->getNamedItem('format_version')->nodeValue . '
Server URL' . $rsdb_dom->getElementsByTagName('database_info')->item(0)->getElementsByTagName('server_url')->item(0)->nodeValue . '
Name' . $rsdb_dom->getElementsByTagName('database_info')->item(0)->getElementsByTagName('name')->item(0)->nodeValue . '
Service' . $rsdb_dom->getElementsByTagName('database_info')->item(0)->getElementsByTagName('service')->item(0)->nodeValue . '

Do you really want to import ' . $rsdb_dom->firstChild->attributes->getNamedItem('station_count')->nodeValue . ' Station to your DB?
YES

'; } echo ' '; ?>