10 require_once 'Pman.php';
11 class Pman_Core_Prune extends Pman
14 static $cli_desc = "COre Prune -- remove old event data (6 months is normally a good idea).";
15 static $cli_opts = array(
17 'desc' => 'How many months',
28 $ff = HTML_FlexyFramework::get();
29 if (!empty($ff->cli)) {
33 // return true;// for test only
37 function get($m="", $opts)
40 $this->prune((int)$opts['months']);
45 // 40 seconds ? to delete 100K records..
46 //DB_DataObject::debugLevel(1);
47 $f = DB_DataObject::Factory('reader_article');
49 DELETE FROM reader_article where
50 fetched_dt < NOW() - INTERVAL {$inM} MONTH
57 // pruning is for our press project - so we do not clean up dependant tables at present..
61 $ff = HTML_Flexyframework::get()->Pman;
65 $rootDir = $ff['storedir'].'/rss';
67 $dirs = array_filter(glob($rootDir."/*"), 'is_dir');
69 $mdirs = array_filter(glob($d."/*"), 'is_dir');
70 foreach($mdirs as $md){
71 $dirDate = str_replace($rootDir."/", '', $md);
72 if(strtotime($dirDate."/01") < strtotime("now - {$inM} months")){
73 //echo "remove $md\n";
75 // echo $md . " is removed. \n";
84 function delTree($dir)
86 $files = array_diff(scandir($dir), array('.','..'));
87 echo "$dir : Removing " . count($files) . " files\n";
89 foreach ($files as $file){
90 if (!file_exists("$dir/$file")) {
93 if (is_dir("$dir/$file")) {
94 $this->delTree("$dir/$file");