]> git.mxchange.org Git - friendica.git/commitdiff
don't try to scrape atom/rss feeds. missing param in contact store (mod_follow)
authorFriendika <info@friendika.com>
Tue, 1 Feb 2011 22:55:29 +0000 (14:55 -0800)
committerFriendika <info@friendika.com>
Tue, 1 Feb 2011 22:55:29 +0000 (14:55 -0800)
boot.php
include/Scrape.php
mod/follow.php

index ac010c19def2d9170da2cccde00e1e55d796bdf1..6bd82bb082b55d73373cce9e0a478d4a5766c3eb 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -1374,6 +1374,9 @@ function lrdd($uri) {
                                        $link = $matches[1];
                                        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)) {
index e4f7a0878c71016332f7f28bee75b1f97bef8bf1..bb42c3bdd3474946db9325ad4fb6846141c5571e 100644 (file)
@@ -5,12 +5,25 @@ require_once('library/HTML5/Parser.php');
 if(! function_exists('scrape_dfrn')) {
 function scrape_dfrn($url) {
 
+       $a = get_app();
+
        $ret = array();
        $s = fetch_url($url);
 
        if(! $s) 
                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);
 
        if(! $dom)
@@ -77,12 +90,26 @@ function validate_dfrn($a) {
 if(! function_exists('scrape_meta')) {
 function scrape_meta($url) {
 
+       $a = get_app();
+
        $ret = array();
        $s = fetch_url($url);
 
        if(! $s) 
                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);
 
        if(! $dom)
@@ -105,12 +132,24 @@ function scrape_meta($url) {
 if(! function_exists('scrape_vcard')) {
 function scrape_vcard($url) {
 
+       $a = get_app();
+
        $ret = array();
        $s = fetch_url($url);
 
        if(! $s) 
                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);
 
        if(! $dom)
@@ -142,12 +181,31 @@ function scrape_vcard($url) {
 if(! function_exists('scrape_feed')) {
 function scrape_feed($url) {
 
+       $a = get_app();
+
        $ret = array();
        $s = fetch_url($url);
 
        if(! $s) 
                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);
 
        if(! $dom)
index 62ba2585c28891ff90852698df3ae12628f73118..c5f6d9e3fce8847bff80fc2c57e80b0bb82637ef 100644 (file)
@@ -161,7 +161,7 @@ function follow_post(&$a) {
                // create contact record 
                $r = q("INSERT INTO `contact` ( `uid`, `created`, `url`, `notify`, `poll`, `name`, `nick`, `photo`, `network`, `rel`, `priority`,
                        `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()),
                        dbesc(datetime_convert()),
                        dbesc($profile),