This repository has been archived on 2024-06-26. You can view files and clone it, but cannot push or open issues or pull requests.
sakura/_sakura/cron.php
flashwave 26572dbd71 r20150913 and r20150915
Signed-off-by: Flashwave <me@flash.moe>
2015-09-14 22:51:23 +02:00

54 lines
1.1 KiB
PHP

<?php
/*
* Sakura Cron Agent
*/
// Declare Namespace
namespace Sakura;
// Check if the script isn't executed by root
if (function_exists('posix_getuid')) {
if (posix_getuid() === 0) {
trigger_error('Running cron as root is disallowed for security reasons.', E_USER_ERROR);
exit;
}
}
// Define that this page won't require templating
define('SAKURA_NO_TPL', true);
// Include components
require_once str_replace(basename(__DIR__), '', dirname(__FILE__)) . '_sakura/sakura.php';
// Override expiration variables
ignore_user_abort(true);
set_time_limit(0);
// Clean expired sessions
Database::delete('sessions', [
'expire' => [time(), '<'],
'remember' => ['1', '!='],
]);
// Delete notifications that are older than a month but not unread
Database::delete('notifications', [
'timestamp' => [(time() - 109500), '<'],
'notif_read' => ['1', '='],
]);
// Get expired premium accounts
$expiredPremium = Database::fetch('premium', true, [
'expiredate' => [time(), '<'],
]);
// Process expired premium accounts
foreach ($expiredPremium as $expired) {
Users::updatePremiumMeta($expired['uid']);
}