98 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php /** @file */
 | |
| 
 | |
| namespace Zotlabs\Daemon;
 | |
| 
 | |
| class Cron_daily {
 | |
| 
 | |
| 	static public function run($argc,$argv) {
 | |
| 
 | |
| 		logger('cron_daily: start');
 | |
| 
 | |
| 		/**
 | |
| 		 * Cron Daily
 | |
| 		 *
 | |
| 		 */
 | |
| 
 | |
| 
 | |
| 		require_once('include/dir_fns.php');
 | |
| 		check_upstream_directory();
 | |
| 
 | |
| 
 | |
| 		// Fire off the Cron_weekly process if it's the correct day.
 | |
|  
 | |
| 		$d3 = intval(datetime_convert('UTC','UTC','now','N'));
 | |
| 		if($d3 == 7) {
 | |
| 			Master::Summon(array('Cron_weekly'));
 | |
| 		}
 | |
| 
 | |
| 		// once daily run birthday_updates and then expire in background
 | |
| 
 | |
| 		// FIXME: add birthday updates, both locally and for xprof for use
 | |
| 		// by directory servers
 | |
| 
 | |
| 		update_birthdays();
 | |
| 
 | |
| 		// expire any read notifications over a month old
 | |
| 
 | |
| 		q("delete from notify where seen = 1 and created < %s - INTERVAL %s",
 | |
| 			db_utcnow(), db_quoteinterval('30 DAY')
 | |
| 		);
 | |
| 
 | |
| 		// expire any unread notifications over a year old
 | |
| 
 | |
| 		q("delete from notify where seen = 0 and created < %s - INTERVAL %s",
 | |
| 			db_utcnow(), db_quoteinterval('1 YEAR')
 | |
| 		);
 | |
| 
 | |
| 
 | |
| 		//update statistics in config
 | |
| 		require_once('include/statistics_fns.php');
 | |
| 		update_channels_total_stat();
 | |
| 		update_channels_active_halfyear_stat();
 | |
| 		update_channels_active_monthly_stat();
 | |
| 		update_local_posts_stat();
 | |
| 		update_local_comments_stat();
 | |
| 
 | |
| 
 | |
| 		// expire old delivery reports
 | |
| 
 | |
| 		$keep_reports = intval(get_config('system','expire_delivery_reports'));
 | |
| 		if($keep_reports === 0)
 | |
| 			$keep_reports = 10;
 | |
| 
 | |
| 		q("delete from dreport where dreport_time < %s - INTERVAL %s",
 | |
| 			db_utcnow(),
 | |
| 			db_quoteinterval($keep_reports . ' DAY')
 | |
| 		);
 | |
| 
 | |
| 		// expire any expired accounts
 | |
| 		downgrade_accounts();
 | |
| 
 | |
| 		// If this is a directory server, request a sync with an upstream
 | |
| 		// directory at least once a day, up to once every poll interval. 
 | |
| 		// Pull remote changes and push local changes.
 | |
| 		// potential issue: how do we keep from creating an endless update loop? 
 | |
| 
 | |
| 		$dirmode = get_config('system','directory_mode');
 | |
| 
 | |
| 		if($dirmode == DIRECTORY_MODE_SECONDARY || $dirmode == DIRECTORY_MODE_PRIMARY) {
 | |
| 			require_once('include/dir_fns.php');
 | |
| 			sync_directories($dirmode);
 | |
| 		}
 | |
| 
 | |
| 
 | |
| 		Master::Summon(array('Expire'));
 | |
| 		Master::Summon(array('Cli_suggest'));
 | |
| 
 | |
| 		remove_obsolete_hublocs();
 | |
| 
 | |
| 		call_hooks('cron_daily',datetime_convert());
 | |
| 
 | |
| 		set_config('system','last_expire_day',intval(datetime_convert('UTC','UTC','now','d')));
 | |
| 
 | |
| 		/**
 | |
| 		 * End Cron Daily
 | |
| 		 */
 | |
| 	}
 | |
| }
 |