mirror of
https://github.com/friendica/friendica
synced 2024-12-23 06:40:15 +00:00
don't try to scrape atom/rss feeds. missing param in contact store (mod_follow)
This commit is contained in:
parent
b4f2aac7e7
commit
8c5c07b265
3 changed files with 62 additions and 1 deletions
3
boot.php
3
boot.php
|
@ -1374,6 +1374,9 @@ function lrdd($uri) {
|
||||||
$link = $matches[1];
|
$link = $matches[1];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
// don't try and run feeds through the html5 parser
|
||||||
|
if(stristr($line,'content-type:') && ((stristr($line,'application/atom+xml')) || (stristr($line,'application/rss+xml'))))
|
||||||
|
return array();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(! isset($link)) {
|
if(! isset($link)) {
|
||||||
|
|
|
@ -5,12 +5,25 @@ require_once('library/HTML5/Parser.php');
|
||||||
if(! function_exists('scrape_dfrn')) {
|
if(! function_exists('scrape_dfrn')) {
|
||||||
function scrape_dfrn($url) {
|
function scrape_dfrn($url) {
|
||||||
|
|
||||||
|
$a = get_app();
|
||||||
|
|
||||||
$ret = array();
|
$ret = array();
|
||||||
$s = fetch_url($url);
|
$s = fetch_url($url);
|
||||||
|
|
||||||
if(! $s)
|
if(! $s)
|
||||||
return $ret;
|
return $ret;
|
||||||
|
|
||||||
|
$headers = $a->get_curl_headers();
|
||||||
|
$lines = explode("\n",$headers);
|
||||||
|
if(count($lines)) {
|
||||||
|
foreach($lines as $line) {
|
||||||
|
// don't try and run feeds through the html5 parser
|
||||||
|
if(stristr($line,'content-type:') && ((stristr($line,'application/atom+xml')) || (stristr($line,'application/rss+xml'))))
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$dom = HTML5_Parser::parse($s);
|
$dom = HTML5_Parser::parse($s);
|
||||||
|
|
||||||
if(! $dom)
|
if(! $dom)
|
||||||
|
@ -77,12 +90,26 @@ function validate_dfrn($a) {
|
||||||
if(! function_exists('scrape_meta')) {
|
if(! function_exists('scrape_meta')) {
|
||||||
function scrape_meta($url) {
|
function scrape_meta($url) {
|
||||||
|
|
||||||
|
$a = get_app();
|
||||||
|
|
||||||
$ret = array();
|
$ret = array();
|
||||||
$s = fetch_url($url);
|
$s = fetch_url($url);
|
||||||
|
|
||||||
if(! $s)
|
if(! $s)
|
||||||
return $ret;
|
return $ret;
|
||||||
|
|
||||||
|
$headers = $a->get_curl_headers();
|
||||||
|
$lines = explode("\n",$headers);
|
||||||
|
if(count($lines)) {
|
||||||
|
foreach($lines as $line) {
|
||||||
|
// don't try and run feeds through the html5 parser
|
||||||
|
if(stristr($line,'content-type:') && ((stristr($line,'application/atom+xml')) || (stristr($line,'application/rss+xml'))))
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$dom = HTML5_Parser::parse($s);
|
$dom = HTML5_Parser::parse($s);
|
||||||
|
|
||||||
if(! $dom)
|
if(! $dom)
|
||||||
|
@ -105,12 +132,24 @@ function scrape_meta($url) {
|
||||||
if(! function_exists('scrape_vcard')) {
|
if(! function_exists('scrape_vcard')) {
|
||||||
function scrape_vcard($url) {
|
function scrape_vcard($url) {
|
||||||
|
|
||||||
|
$a = get_app();
|
||||||
|
|
||||||
$ret = array();
|
$ret = array();
|
||||||
$s = fetch_url($url);
|
$s = fetch_url($url);
|
||||||
|
|
||||||
if(! $s)
|
if(! $s)
|
||||||
return $ret;
|
return $ret;
|
||||||
|
|
||||||
|
$headers = $a->get_curl_headers();
|
||||||
|
$lines = explode("\n",$headers);
|
||||||
|
if(count($lines)) {
|
||||||
|
foreach($lines as $line) {
|
||||||
|
// don't try and run feeds through the html5 parser
|
||||||
|
if(stristr($line,'content-type:') && ((stristr($line,'application/atom+xml')) || (stristr($line,'application/rss+xml'))))
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$dom = HTML5_Parser::parse($s);
|
$dom = HTML5_Parser::parse($s);
|
||||||
|
|
||||||
if(! $dom)
|
if(! $dom)
|
||||||
|
@ -142,12 +181,31 @@ function scrape_vcard($url) {
|
||||||
if(! function_exists('scrape_feed')) {
|
if(! function_exists('scrape_feed')) {
|
||||||
function scrape_feed($url) {
|
function scrape_feed($url) {
|
||||||
|
|
||||||
|
$a = get_app();
|
||||||
|
|
||||||
$ret = array();
|
$ret = array();
|
||||||
$s = fetch_url($url);
|
$s = fetch_url($url);
|
||||||
|
|
||||||
if(! $s)
|
if(! $s)
|
||||||
return $ret;
|
return $ret;
|
||||||
|
|
||||||
|
$headers = $a->get_curl_headers();
|
||||||
|
$lines = explode("\n",$headers);
|
||||||
|
if(count($lines)) {
|
||||||
|
foreach($lines as $line) {
|
||||||
|
if(stristr($line,'content-type:')) {
|
||||||
|
if(stristr($line,'application/atom+xml')) {
|
||||||
|
$ret['feed_atom'] = $url;
|
||||||
|
return $ret;
|
||||||
|
}
|
||||||
|
if(stristr($line,'application/rss+xml')) {
|
||||||
|
$ret['feed_rss'] = $url;
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$dom = HTML5_Parser::parse($s);
|
$dom = HTML5_Parser::parse($s);
|
||||||
|
|
||||||
if(! $dom)
|
if(! $dom)
|
||||||
|
|
|
@ -161,7 +161,7 @@ function follow_post(&$a) {
|
||||||
// create contact record
|
// create contact record
|
||||||
$r = q("INSERT INTO `contact` ( `uid`, `created`, `url`, `notify`, `poll`, `name`, `nick`, `photo`, `network`, `rel`, `priority`,
|
$r = q("INSERT INTO `contact` ( `uid`, `created`, `url`, `notify`, `poll`, `name`, `nick`, `photo`, `network`, `rel`, `priority`,
|
||||||
`blocked`, `readonly`, `pending` )
|
`blocked`, `readonly`, `pending` )
|
||||||
VALUES ( %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, 0, 0, 0 ) ",
|
VALUES ( %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, 0, 0, 0 ) ",
|
||||||
intval(local_user()),
|
intval(local_user()),
|
||||||
dbesc(datetime_convert()),
|
dbesc(datetime_convert()),
|
||||||
dbesc($profile),
|
dbesc($profile),
|
||||||
|
|
Loading…
Reference in a new issue