]> git.mxchange.org Git - friendica.git/blobdiff - include/onepoll.php
Performance stuff: Caching for getsiteinfo function, check before running onepoll.php
[friendica.git] / include / onepoll.php
index 12fab4c90c0e08dcbb4088cb600edbd497d8624a..bb5b8905ab5d93bd58d46c66205ad6f88e806513 100644 (file)
@@ -15,7 +15,7 @@ function onepoll_run(&$argv, &$argc){
        if(is_null($a)) {
                $a = new App;
        }
-  
+
        if(is_null($db)) {
            @include(".htconfig.php");
        require_once("include/dba.php");
@@ -57,28 +57,30 @@ function onepoll_run(&$argv, &$argc){
                return;
        }
 
-       // Test
-       $lockpath = get_config('system','lockpath');
+       $lockpath = get_lockpath();
        if ($lockpath != '') {
-               $pidfile = new pidfile($lockpath, 'onepoll'.$contact_id.'.lck');
-               if($pidfile->is_already_running()) {
+               $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;
                }
        }
 
-
        $d = datetime_convert();
 
        // Only poll from those with suitable relationships,
-       // and which have a polling address and ignore Diaspora since 
+       // and which have a polling address and ignore Diaspora since
        // we are unable to match those posts with a Diaspora GUID and prevent duplicates.
 
-       $contacts = q("SELECT `contact`.* FROM `contact` 
+       $contacts = q("SELECT `contact`.* FROM `contact`
                WHERE ( `rel` = %d OR `rel` = %d ) AND `poll` != ''
                AND NOT `network` IN ( '%s', '%s', '%s' )
                AND `contact`.`id` = %d
-               AND `self` = 0 AND `contact`.`blocked` = 0 AND `contact`.`readonly` = 0 
+               AND `self` = 0 AND `contact`.`blocked` = 0 AND `contact`.`readonly` = 0
                AND `contact`.`archive` = 0 LIMIT 1",
                intval(CONTACT_IS_SHARING),
                intval(CONTACT_IS_FRIEND),
@@ -112,7 +114,7 @@ function onepoll_run(&$argv, &$argc){
 
        $importer_uid = $contact['uid'];
 
-       $r = q("SELECT `contact`.*, `user`.`page-flags` FROM `contact` LEFT JOIN `user` on `contact`.`uid` = `user`.`uid` WHERE `user`.`uid` = %d AND `contact`.`self` = 1 LIMIT 1",
+       $r = q("SELECT `contact`.*, `user`.`page-flags` FROM `contact` INNER JOIN `user` on `contact`.`uid` = `user`.`uid` WHERE `user`.`uid` = %d AND `contact`.`self` = 1 LIMIT 1",
                intval($importer_uid)
        );
        if(! count($r))
@@ -330,6 +332,8 @@ function onepoll_run(&$argv, &$argc){
                                                logger("Mail: Parsing mail ".$msg_uid, LOGGER_DATA);
 
                                                $datarray = array();
+                                               $datarray['verb'] = ACTIVITY_POST;
+                                               $datarray['object-type'] = ACTIVITY_OBJ_NOTE;
        //                                      $meta = email_msg_meta($mbox,$msg_uid);
        //                                      $headers = email_msg_headers($mbox,$msg_uid);
 
@@ -423,7 +427,6 @@ function onepoll_run(&$argv, &$argc){
 
                                                // If it seems to be a reply but a header couldn't be found take the last message with matching subject
                                                if(!x($datarray,'parent-uri') and $reply) {
-                                                       //$r = q("SELECT `uri` , `parent-uri` FROM `item` WHERE MATCH (`title`) AGAINST ('".'"%s"'."' IN BOOLEAN MODE) AND `uid` = %d ORDER BY `created` DESC LIMIT 1",
                                                        $r = q("SELECT `uri` , `parent-uri` FROM `item` WHERE `title` = \"%s\" AND `uid` = %d ORDER BY `created` DESC LIMIT 1",
                                                                dbesc(protect_sprintf($datarray['title'])),
                                                                intval($importer_uid));