]> git.mxchange.org Git - friendica.git/blobdiff - include/poller.php
Merge https://github.com/friendica/friendica into pull
[friendica.git] / include / poller.php
index ce8399a485baa52970234e31b0a959cb645d0613..692335aab2f3cd3038cb306387bb96c4683a4267 100644 (file)
@@ -3,7 +3,7 @@
 require_once("boot.php");
 
 
-function poller_run($argv, $argc){
+function poller_run(&$argv, &$argc){
        global $a, $db;
 
        if(is_null($a)) {
@@ -12,7 +12,7 @@ function poller_run($argv, $argc){
   
        if(is_null($db)) {
            @include(".htconfig.php");
-       require_once("dba.php");
+       require_once("include/dba.php");
            $db = new dba($db_host, $db_user, $db_pass, $db_data);
        unset($db_host, $db_user, $db_pass, $db_data);
        };
@@ -62,6 +62,10 @@ function poller_run($argv, $argc){
 
        proc_run('php',"include/queue.php");
        
+       // run diaspora photo queue process in the background
+
+       proc_run('php',"include/dsprphotoq.php");
+       
        // expire any expired accounts
 
        q("UPDATE user SET `account_expired` = 1 where `account_expired` = 0 
@@ -71,7 +75,7 @@ function poller_run($argv, $argc){
        // delete user and contact records for recently removed accounts
 
        $r = q("SELECT * FROM `user` WHERE `account_removed` = 1 AND `account_expires_on` < UTC_TIMESTAMP() - INTERVAL 3 DAY");
-       if (count($r)) {
+       if ($r) {
                foreach($r as $user) {
                        q("DELETE FROM `contact` WHERE `uid` = %d", intval($user['uid']));
                        q("DELETE FROM `user` WHERE `uid` = %d", intval($user['uid']));
@@ -99,20 +103,25 @@ function poller_run($argv, $argc){
                proc_run('php','include/expire.php');
        }
 
-       // clear old cache
-       Cache::clear();
-
-       // clear item cache files if they are older than one day
-       $cache = get_config('system','itemcache');
-       if (($cache != '') and is_dir($cache)) {
-               if ($dh = opendir($cache)) {
-                       while (($file = readdir($dh)) !== false) {
-                               $fullpath = $cache."/".$file;
-                               if ((filetype($fullpath) == "file") and filectime($fullpath) < (time() - 86400))
-                                       unlink($fullpath);
-                       }
-                       closedir($dh);
-               }
+       $last = get_config('system','cache_last_cleared');
+
+       if($last) {
+               $next = $last + (3600); // Once per hour
+               $clear_cache = ($next <= time());
+        } else
+               $clear_cache = true;
+
+       if ($clear_cache) {
+               // clear old cache
+               Cache::clear();
+
+               // clear old item cache files
+               clear_cache();
+
+               // clear cache for photos
+               clear_cache($a->get_basepath(), $a->get_basepath()."/photo");
+
+               set_config('system','cache_last_cleared', time());
        }
 
        $manual_id  = 0;
@@ -128,7 +137,7 @@ function poller_run($argv, $argc){
                $restart = true;
                $generation = intval($argv[2]);
                if(! $generation)
-                       killme();               
+                       killme();
        }
 
        if(($argc > 1) && intval($argv[1])) {