require_once 'xn-app://xoxotools/OutlineClasses/OutlineFromXOXO.php'; require_once 'xn-app://xoxotools/OutlineClasses/OutlineFromHATOM.php'; header('Content-Type: text/javascript;charset=utf-8'); $pagedata = file_get_contents($_REQUEST['url']); preg_match('/<!-- START ARCHIVE XOXO -->[^\\f]*?<!-- END ARCHIVE XOXO -->/', $pagedata, $xoxodata); $xoxodata = $xoxodata[0]; $xoxodata = preg_replace('/<(img|meta|link|hr|br)([^<>]*?)([\\/]?)>/i', '<$1$2 />', $xoxodata); $xoxodata = preg_replace('/&([^;]{10})/i', '&$1', $xoxodata); $xoxo = new OutlineFromXOXO($xoxodata, array('classes' => array('xoxo', 'posts'))); if (!$xoxo->getNumNodes()) { $xoxo = new OutlineFromXOXO($pagedata, array('classes' => array('xoxo', 'posts'))); } if (!$xoxo->getNumNodes()) { $xoxo = new OutlineFromHATOM($pagedata); } if (!$xoxo->getNumNodes()) { $xoxo = new OutlineFromXOXO($pagedata, array('classes' => array())); } if (!$xoxo->getNumNodes()) { die('No valid XOXO data found!'); } $tmp = $xoxo->getNode(0); if ($tmp->getField('rel') == 'home') { $xoxo->unsetNode(0); } $xoxo->reindexNodes(); for ($i = 0; $i < $xoxo->getNumNodes(); $i++) { $node =& $xoxo->getNode($i); $node->unsetAllNodes(); } //end for xoxo
$data = $body[0]; } //$data = preg_replace('/<(img|meta|link|hr|br)([^<>]*?)([\/]?)>/i','<$1$2 />', $data); //$data = preg_replace('/&([^;]{10})/i','&$1', $data); //$data = str_replace('<HEAD>','<head>',$data); //$data = str_replace('</HEAD>','</head>',$data); $xoxo = new OutlineFromXOXO($data, array('classes' => array('xoxo', 'posts'))); $hatom = new OutlineFromHATOM($data, array('resolve' => $_GET['url'])); $raw = new OutlineFromXOXO($data, array('classes' => array())); $site = false; if ($xoxo->getNumNodes() && in_array('home', explode(' ', $xoxo->getNode(0)->getField('rel')))) { $site = $xoxo->getNode(0)->toArray(); $xoxo->unsetNode(0); $xoxo->reindexNodes(); } if ($hatom->getNumNodes() && in_array('home', explode(' ', $hatom->getNode(0)->getField('rel')))) { $site = $hatom->getNode(0)->toArray(); $hatom->unsetNode(0); $hatom->reindexNodes(); } if ($raw->getNumNodes() && in_array('home', explode(' ', $raw->getNode(0)->getField('rel')))) { $site = $raw->getNode(0)->toArray(); $raw->unsetNode(0); $raw->reindexNodes(); } if ($xoxo->getNumNodes() && $hatom->getNumNodes()) { //fill in XOXO with hAtom for ($i = 0; $i < $xoxo->getNumNodes(); $i++) { $node = $xoxo->getNode($i); foreach ($node->getFields() as $name => $value) { $hatom->_subnodes[$i]->setField($name, $value);
$archivelist = preg_replace('/<(img|meta|link|hr|br)([^<>]*?)([\\/]?)>/i', '<$1$2 />', $archivelist); $archivelist = preg_replace('/&([^;]{10})/i', '&$1', $archivelist); $xoxo = new OutlineFromXOXO($archivelist, array('classes' => array())); for ($i = 0; $i < $xoxo->getNumNodes(); $i++) { $node =& $xoxo->getNode($i); $archivepage = file_get_contents($node->getField('href')); preg_match('/<!-- START ARCHIVE XOXO -->[^\\f]*?<!-- END ARCHIVE XOXO -->/', $archivepage, $xoxodata); $xoxodata = $xoxodata[0]; if ($xoxodata) { $archivepage = $xoxodata; } $archivestruct = new OutlineFromXOXO($archivepage, array('classes' => array('xoxo', 'posts'))); if (!$archivestruct->getNumNodes()) { $archivestruct = new OutlineFromHATOM($archivepage); } if (!$archivestruct->getNumNodes()) { $archivestruct = new OutlineFromXOXO($archivepage, array('classes' => array())); } $tmp = $archivestruct->getNode(0); if ($tmp && is_a($tmp, 'Outline') && $tmp->getField('rel') == 'home') { $archivestruct->unsetNode(0); } $node->setField('count', $archivestruct->getNumNodes()); } //end for getNumNodes if (!isset($_REQUEST['raw']) && !$_REQUEST['callback']) { echo 'if(typeof(BloggerArchive) != "object") BloggerArchive = {};' . "\n"; echo 'BloggerArchive.list = '; } //end if ! raw && ! callback if ($_REQUEST['callback']) {
if (in_array('home', explode(' ', $xoxo->getNode(0)->getField('rel')))) { $site = $xoxo->getNode(0)->toArray(); $xoxo->unsetNode(0); $xoxo->reindexNodes(); } if (in_array('home', explode(' ', $hatom->getNode(0)->getField('rel')))) { $site = $hatom->getNode(0)->toArray(); $hatom->unsetNode(0); $hatom->reindexNodes(); } if (in_array('home', explode(' ', $raw->getNode(0)->getField('rel')))) { $site = $raw->getNode(0)->toArray(); $raw->unsetNode(0); $raw->reindexNodes(); } if ($xoxo->getNumNodes() && $hatom->getNumNodes()) { //fill in XOXO with hAtom for ($i = 0; $i < $xoxo->getNumNodes(); $i++) { $node = $xoxo->getNode($i); foreach ($node->getFields() as $name => $value) { $hatom->_subnodes[$i]->setField($name, $value); } } //end for $xoxo = $hatom; } else { if ($xoxo->getNumNodes()) { } else { if ($hatom->getNumNodes()) { $xoxo = $hatom; } else {