Esempio n. 1
0
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
}
Esempio n. 2
0
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', '&amp;$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', '&amp;$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();
Esempio n. 4
0
}
//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','&amp;$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);