]> git.mxchange.org Git - friendica.git/blobdiff - include/expire.php
Degrade priority step by step
[friendica.git] / include / expire.php
index 5fa0ec758b3d723b45ac53b2a7b0dd0a951962ec..aa34cbaa5bf88b8c4af782e0680058c2a22df3b0 100644 (file)
@@ -1,53 +1,41 @@
 <?php
 
-require_once("boot.php");
+use Friendica\Core\Config;
 
-function expire_run($argv, $argc){
-       global $a, $db;
+function expire_run(&$argv, &$argc){
+       global $a;
 
-       if(is_null($a)) {
-               $a = new App;
-       }
-  
-       if(is_null($db)) {
-           @include(".htconfig.php");
-       require_once("dba.php");
-           $db = new dba($db_host, $db_user, $db_pass, $db_data);
-       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');
 
-       load_config('config');
-       load_config('system');
-
-
-       $a->set_baseurl(get_config('system','url'));
-
-
        // physically remove anything that has been deleted for more than two months
+       $r = dba::p("SELECT `id` FROM `item` WHERE `deleted` AND `changed` < UTC_TIMESTAMP() - INTERVAL 60 DAY");
+       if (dbm::is_result($r)) {
+               while ($row = dba::fetch($r)) {
+                       dba::delete('item', array('id' => $row['id']));
+               }
+               dba::close($r);
+       }
 
-       $r = q("delete from item where deleted = 1 and changed < UTC_TIMESTAMP() - INTERVAL 60 DAY");
-       q("optimize table item");
+       // make this optional as it could have a performance impact on large sites
+       if (intval(get_config('system', 'optimize_items'))) {
+               q("OPTIMIZE TABLE `item`");
+       }
 
        logger('expire: start');
-       
-       $r = q("SELECT `uid`,`username`,`expire` FROM `user` WHERE `expire` != 0");
-       if(count($r)) {
-               foreach($r as $rr) {
+
+       $r = q("SELECT `uid`, `username`, `expire` FROM `user` WHERE `expire` != 0");
+       if (dbm::is_result($r)) {
+               foreach ($r as $rr) {
                        logger('Expire: ' . $rr['username'] . ' interval: ' . $rr['expire'], LOGGER_DEBUG);
-                       item_expire($rr['uid'],$rr['expire']);
+                       item_expire($rr['uid'], $rr['expire']);
                }
        }
 
-       return;
-}
+       load_hooks();
+
+       call_hooks('expire');
 
-if (array_search(__file__,get_included_files())===0){
-  expire_run($argv,$argc);
-  killme();
+       return;
 }