diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/Scrape.php | 30 | ||||
-rw-r--r-- | include/bbcode.php | 2 | ||||
-rw-r--r-- | include/poller.php | 10 |
3 files changed, 40 insertions, 2 deletions
diff --git a/include/Scrape.php b/include/Scrape.php index 10ec54d13..8478ea407 100644 --- a/include/Scrape.php +++ b/include/Scrape.php @@ -22,6 +22,8 @@ function scrape_dfrn($url) { foreach($items as $item) { $x = $item->getAttribute('rel'); + if(($x === 'alternate') && ($item->getAttribute('type') === 'application/atom+xml')) + $ret['feed_atom'] = $item->getAttribute('href'); if(substr($x,0,5) == "dfrn-") $ret[$x] = $item->getAttribute('href'); if($x === 'lrdd') { @@ -135,3 +137,31 @@ function scrape_vcard($url) { return $ret; }} + + +if(! function_exists('scrape_feed')) { +function scrape_feed($url) { + + $ret = array(); + $s = fetch_url($url); + + if(! $s) + return $ret; + + $dom = HTML5_Parser::parse($s); + + if(! $dom) + return $ret; + + $items = $dom->getElementsByTagName('link'); + + // get Atom link elements + + foreach($items as $item) { + $x = $item->getAttribute('rel'); + if(($x === 'alternate') && ($item->getAttribute('type') === 'application/atom+xml')) + $ret['feed_atom'] = $item->getAttribute('href'); + } + + return $ret; +}}
\ No newline at end of file diff --git a/include/bbcode.php b/include/bbcode.php index 81b581cdb..9e5f5a371 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -22,7 +22,7 @@ function bbcode($Text) { // Perform URL Search - $Text = preg_replace("/([^\]\=]|^)(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\.\=\_\~\#\'\%]*)/", ' <a href="$2" >$2</a>', $Text); + $Text = preg_replace("/([^\]\=]|^)(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\.\=\_\~\#\'\%]+)/", ' <a href="$2" >$2</a>', $Text); $Text = preg_replace("/\[url\]([$URLSearchString]*)\[\/url\]/", '<a href="$1" >$1</a>', $Text); $Text = preg_replace("(\[url\=([$URLSearchString]*)\](.+?)\[/url\])", '<a href="$1" >$2</a>', $Text); diff --git a/include/poller.php b/include/poller.php index 8234becbb..024b9fbcd 100644 --- a/include/poller.php +++ b/include/poller.php @@ -32,10 +32,18 @@ if(($argc > 1) && ($argv[1] == 'force')) $force = true; + if(($argc > 1) && intval($argv[1])) { + $manual_id = intval($argv[1]); + $force = true; + } + + $sql_extra = (($manual_id) ? " AND `id` = $manual_id " : ""); + // 'stat' clause is a temporary measure until we have federation subscriptions working both directions $contacts = q("SELECT * FROM `contact` WHERE ( ( `network` = 'dfrn' AND ( `dfrn-id` != '' OR (`issued-id` != '' AND `duplex` = 1))) - OR ( `network` IN ( 'stat', 'feed' ) AND `poll` != '' )) + OR ( `network` IN ( 'stat', 'feed' ) AND `poll` != '' )) + $sql_extra AND `self` = 0 AND `blocked` = 0 AND `readonly` = 0 ORDER BY RAND()"); if(! count($contacts)) |