]> git.mxchange.org Git - friendica.git/blobdiff - include/onepoll.php
Merge remote-tracking branch 'upstream/develop' into develop
[friendica.git] / include / onepoll.php
index 516f1dfd4d7308096480f14ce108afb5ba570ec5..951b87043e06d8a014f81ad365eb62d8b5abfdc3 100644 (file)
@@ -24,15 +24,12 @@ function onepoll_run(&$argv, &$argc){
                unset($db_host, $db_user, $db_pass, $db_data);
        };
 
-
        require_once('include/session.php');
        require_once('include/datetime.php');
-       require_once('library/simplepie/simplepie.inc');
        require_once('include/items.php');
        require_once('include/Contact.php');
        require_once('include/email.php');
        require_once('include/socgraph.php');
-       require_once('include/pidfile.php');
        require_once('include/queue_fn.php');
 
        load_config('config');
@@ -61,18 +58,10 @@ function onepoll_run(&$argv, &$argc){
                return;
        }
 
-       $lockpath = get_lockpath();
-       if ($lockpath != '') {
-               $pidfile = new pidfile($lockpath, 'onepoll'.$contact_id);
-               if ($pidfile->is_already_running()) {
-                       logger("onepoll: Already running for contact ".$contact_id);
-                       if ($pidfile->running_time() > 9*60) {
-                               $pidfile->kill();
-                               logger("killed stale process");
-                       }
-                       exit;
-               }
-       }
+       // Don't check this stuff if the function is called by the poller
+       if (App::callstack() != "poller_run")
+               if (App::is_already_running('onepoll'.$contact_id, '', 540))
+                       return;
 
        $d = datetime_convert();
 
@@ -335,7 +324,9 @@ function onepoll_run(&$argv, &$argc){
                if($contact['rel'] == CONTACT_IS_FOLLOWER || $contact['blocked'] || $contact['readonly'])
                        return;
 
-               $xml = fetch_url($contact['poll']);
+               $cookiejar = tempnam(get_temppath(), 'cookiejar-onepoll-');
+               $xml = fetch_url($contact['poll'], false, $redirects, 0, Null, $cookiejar);
+               unlink($cookiejar);
        }
        elseif($contact['network'] === NETWORK_MAIL || $contact['network'] === NETWORK_MAIL2) {
 
@@ -452,7 +443,7 @@ function onepoll_run(&$argv, &$argc){
                                                                        $refs_arr[$x] = "'" . msgid2iri(str_replace(array('<','>',' '),array('','',''),dbesc($refs_arr[$x]))) . "'";
                                                        }
                                                        $qstr = implode(',',$refs_arr);
-                                                       $r = q("SELECT `uri` , `parent-uri` FROM `item` WHERE `uri` IN ( $qstr ) AND `uid` = %d LIMIT 1",
+                                                       $r = q("SELECT `uri` , `parent-uri` FROM `item` USE INDEX (`uid_uri`) WHERE `uri` IN ($qstr) AND `uid` = %d LIMIT 1",
                                                                intval($importer_uid)
                                                        );
                                                        if(count($r))