diff --git a/inc/archive.php b/inc/archive.php index 7e689e26..e7c3f0a1 100644 --- a/inc/archive.php +++ b/inc/archive.php @@ -91,7 +91,8 @@ class Archive { // Purge Threads that have timed out - self::purgeArchive(); + if(!$config['archive']['cron_job']) + self::purgeArchive(); // Rebuild Archive Index self::buildArchiveIndex(); @@ -212,7 +213,8 @@ class Archive { return; // Purge Archive - self::purgeArchive(); + if(!$config['archive']['cron_job']['purge']) + self::purgeArchive(); // Rebuild Archive Index self::buildArchiveIndex(); diff --git a/inc/config.php b/inc/config.php index c5c15c0b..3c592ac1 100644 --- a/inc/config.php +++ b/inc/config.php @@ -1317,6 +1317,11 @@ // Number of chars in snippet $config['archive']['snippet_len'] = 400; + // If any is set to run in crom both will be run in cron regardless + // Archiving is run in cron job + $config['archive']['cron_job']['archiving'] = false; + // Purging of archive is run in cron job + $config['archive']['cron_job']['purge'] = false; // For load balancing, having a seperate server (and domain/subdomain) for serving static content is diff --git a/inc/functions.php b/inc/functions.php index 635a0943..4520cea6 100755 --- a/inc/functions.php +++ b/inc/functions.php @@ -1519,6 +1519,11 @@ function deletePost($id, $error_if_doesnt_exist=true, $rebuild_after=true) { function clean($pid = false) { global $board, $config; + + // If we are doing the archiving in cron leave cleaning of overflow for now + if($config['archive']['cron_job']['archiving']) + return; + $offset = round($config['max_pages']*$config['threads_per_page']); // I too wish there was an easier way of doing this... @@ -1527,8 +1532,10 @@ function clean($pid = false) { $query->execute() or error(db_error($query)); while ($post = $query->fetch(PDO::FETCH_ASSOC)) { - Archive::archiveThread($post['id']); - if ($pid) modLog("Automatically archived thread #{$post['id']} due to new thread #{$pid}"); + if($config['archive']['threads']) { + Archive::archiveThread($post['id']); + if ($pid) modLog("Automatically archived thread #{$post['id']} due to new thread #{$pid}"); + } deletePost($post['id'], false, false); if ($pid) modLog("Automatically deleting thread #{$post['id']} due to new thread #{$pid}"); } @@ -1550,6 +1557,10 @@ function clean($pid = false) { while ($post = $query->fetch(PDO::FETCH_ASSOC)) { if ($post['reply_count'] < $page*$config['early_404_replies']) { + if($config['archive']['threads']) { + Archive::archiveThread($post['thread_id']); + if ($pid) modLog("Automatically archived thread #{$post['thread_id']} due to new thread #{$pid} (early 404 is set, #{$post['thread_id']} had {$post['reply_count']} replies)"); + } deletePost($post['thread_id'], false, false); if ($pid) modLog("Automatically deleting thread #{$post['thread_id']} due to new thread #{$pid} (early 404 is set, #{$post['thread_id']} had {$post['reply_count']} replies)"); } diff --git a/inc/mod/pages.php b/inc/mod/pages.php index d76aef50..98ab9af9 100644 --- a/inc/mod/pages.php +++ b/inc/mod/pages.php @@ -3613,10 +3613,6 @@ function mod_view_archive($boardName) { Archive::featureThread($_POST['id']); } - // // Purge Threads that have timed out, and rebuild index if anyone was purged - // if(Archive::purgeArchive() != 0) - // Archive::buildArchiveIndex(); - $query = query(sprintf("SELECT `id`, `snippet`, `featured` FROM ``archive_%s`` WHERE `lifetime` > %d ORDER BY `lifetime` DESC", $board['uri'], time())) or error(db_error()); $archive = $query->fetchAll(PDO::FETCH_ASSOC); diff --git a/tools/archive_cli.php b/tools/archive_cli.php new file mode 100644 index 00000000..0874972d --- /dev/null +++ b/tools/archive_cli.php @@ -0,0 +1,34 @@ + \ No newline at end of file