function pollpage($url) { $XMLdata = getTidy($url); $obj = new OutlineFromXOXO($XMLdata, array('classes' => array('xoxo', 'posts'))); $struct = $obj->toArray(); if (!count($struct)) { $obj = new OutlineFromHATOM($XMLdata); $struct = $obj->toArray(); } if (!count($struct)) { $obj = new OutlineFromXOXO($XMLdata, array('classes' => array())); $struct = $obj->toArray(); } //header('Content-Type: text/plain'); //var_dump($struct);exit; foreach ($struct as $structid => $node) { if (!is_numeric($structid)) { continue; } $postTitle = $node['text']; $postURL = $node['href']; foreach ($node as $id => $comment) { if (!is_numeric($id)) { continue; } $comment = array_change_key_case($comment); $url = $comment['href']; if ($url[0] == '#') { $url = $postURL . $url; } $query = XN_Query::create('Content')->filter('owner', '=')->filter('type', 'eic', 'Comment')->filter('my.url', '=', $url); $items = $query->execute(); if (count($items) > 0) { continue; } if ($comment['author']) { $theParser = xml_parser_create(); xml_parse_into_struct($theParser, $comment['author'], $tmp); xml_parser_free($theParser); $authorname = $tmp[0]['value']; $authorurl = $tmp[0]['attributes']['HREF']; } else { $authorname = $comment['text#1']; $authorurl = $comment['href#1']; } //end if-else comment[author] $time = (int) ($comment['title'] / 1000000000) < 100 ? (int) $comment['title'] : (int) ($comment['title'] / 1000000000); $obj = XN_Content::create('Comment')->my->add('content', $comment['body'])->my->add('url', $url)->my->add('authorname', $authorname)->my->add('authorurl', $authorurl)->my->add('time', $time)->my->add('posturl', $postURL)->my->add('posturl2', str_replace('-', '', str_replace('/', ' ', $postURL)))->my->add('posttitle', $postTitle); $obj->saveAnonymous(); } //end foreach node } //end foreach struct }
preg_match('/' . preg_quote($_REQUEST['start'], '/') . '[^\\f]*?' . preg_quote($_REQUEST['end'], '/') . '/', $pagedata, $archivelist); $archivelist = $archivelist[0]; $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 = '; }
<?php 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 if ! url require_once 'OutlineClasses/OutlineFromXOXO.php'; require_once 'OutlineClasses/OutlineFromHATOM.php'; require_once 'xn-app://singpolymaplay/getTidy.php'; $data = getTidy($_GET['url']); preg_match('/<body>[^\\f]*?<\\/body>/', $data, $body); if ($body[0]) { $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);