New cron initialization and minor edits (#619)

* New cron initialization and minor edits

Updated the mechanism to check if cron needs to run and made minor improvements to the first run

* Adding a warning in the control panel
This commit is contained in:
Yury Pikhtarev 2023-03-17 19:26:07 +07:00 committed by GitHub
commit e4b6a91909
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 37 additions and 11 deletions

View file

@ -2,6 +2,7 @@
APP_NAME=TorrentPier APP_NAME=TorrentPier
APP_ENV=local APP_ENV=local
APP_DEBUG=false APP_DEBUG=false
APP_CRON_ENABLED=true
# Database credentials # Database credentials
DB_CONNECTION=mysql DB_CONNECTION=mysql

View file

@ -31,7 +31,7 @@ and go from there. The documentation will be translated into english in the near
* Apache / nginx * Apache / nginx
* MySQL 5.5.3 or above / MariaDB 10.0 or above / Percona * MySQL 5.5.3 or above / MariaDB 10.0 or above / Percona
* PHP: 7.1 / 7.2 / 7.3 * PHP: 7.1 / 7.2 / 7.3 / 7.4
* PHP Extensions: bcmath, intl, tidy (optional), xml, xmlwriter * PHP Extensions: bcmath, intl, tidy (optional), xml, xmlwriter
## Installation ## Installation

View file

@ -33,7 +33,7 @@ if (!IS_SUPER_ADMIN) {
bb_die($lang['NOT_ADMIN']); bb_die($lang['NOT_ADMIN']);
} }
$sql = DB()->fetch_rowset('SELECT * FROM ' . BB_CONFIG . " WHERE config_name = 'cron_enabled' OR config_name = 'cron_check_interval'"); $sql = DB()->fetch_rowset('SELECT * FROM ' . BB_CONFIG . " WHERE config_name = 'cron_check_interval'");
foreach ($sql as $row) { foreach ($sql as $row) {
$config_name = $row['config_name']; $config_name = $row['config_name'];
@ -48,7 +48,7 @@ foreach ($sql as $row) {
} }
$template->assign_vars(array( $template->assign_vars(array(
'CRON_ENABLED' => $new['cron_enabled'] ? true : false, 'CRON_ENABLED' => TorrentPier\Helpers\CronHelper::isEnabled(),
'CRON_CHECK_INTERVAL' => $new['cron_check_interval'], 'CRON_CHECK_INTERVAL' => $new['cron_check_interval'],
)); ));

View file

@ -560,7 +560,6 @@ VALUES ('allow_autologin', '1'),
('static_sitemap', ''), ('static_sitemap', ''),
('topics_per_page', '50'), ('topics_per_page', '50'),
('xs_use_cache', '1'), ('xs_use_cache', '1'),
('cron_enabled', '1'),
('cron_check_interval', '180'), ('cron_check_interval', '180'),
('magnet_links_enabled', '1'), ('magnet_links_enabled', '1'),
('gender', '1'), ('gender', '1'),

View file

@ -45,6 +45,9 @@ ALTER TABLE `bb_groups` CHANGE `group_signature` `group_signature` TEXT NOT NULL
ALTER TABLE `bb_groups` CHANGE `group_description` `group_description` TEXT NOT NULL DEFAULT ''; ALTER TABLE `bb_groups` CHANGE `group_description` `group_description` TEXT NOT NULL DEFAULT '';
UPDATE `bb_smilies` SET `code` = ':cd:', `smile_url` = 'cd.gif', `emoticon` = 'cd' WHERE `code` = ':сd:' AND `smile_url` = 'сd.gif' AND `emoticon` = 'сd'; UPDATE `bb_smilies` SET `code` = ':cd:', `smile_url` = 'cd.gif', `emoticon` = 'cd' WHERE `code` = ':сd:' AND `smile_url` = 'сd.gif' AND `emoticon` = 'сd';
2.3.1-rc2 // 2.3.1-rc2
ALTER TABLE `bb_search_results` CHANGE `search_id` `search_id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT ''; ALTER TABLE `bb_search_results` CHANGE `search_id` `search_id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';
ALTER TABLE `bb_users` CHANGE `autologin_id` `autologin_id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT ''; ALTER TABLE `bb_users` CHANGE `autologin_id` `autologin_id` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';
// 2.3.1-rc3
DELETE FROM `bb_config` WHERE `config_name` = 'cron_enabled';

View file

@ -21,7 +21,7 @@ $bb_cfg = [];
$bb_cfg['js_ver'] = $bb_cfg['css_ver'] = 1; $bb_cfg['js_ver'] = $bb_cfg['css_ver'] = 1;
// Version info // Version info
$bb_cfg['tp_version'] = '2.3.1-rc1'; $bb_cfg['tp_version'] = '2.3.1-rc2';
$bb_cfg['tp_release_date'] = '10-03-2023'; $bb_cfg['tp_release_date'] = '10-03-2023';
$bb_cfg['tp_release_codename'] = 'Bison'; $bb_cfg['tp_release_codename'] = 'Bison';
@ -33,7 +33,7 @@ $bb_cfg['db'] = [
env('DB_HOST', 'localhost'), env('DB_HOST', 'localhost'),
env('DB_DATABASE', 'torrentpier'), env('DB_DATABASE', 'torrentpier'),
env('DB_USERNAME', 'root'), env('DB_USERNAME', 'root'),
env('DB_PASSWORD', 'pass'), env('DB_PASSWORD'),
'utf8', 'utf8',
false false
], ],

View file

@ -834,7 +834,10 @@ function show_bt_userdata($user_id)
{ {
global $lang, $template; global $lang, $template;
$btu = get_bt_userdata($user_id); if (!$btu = get_bt_userdata($user_id)) {
\TorrentPier\Legacy\Torrent::generate_passkey($user_id, true);
$btu = get_bt_userdata($user_id);
}
$template->assign_vars(array( $template->assign_vars(array(
'SHOW_BT_USERDATA' => true, 'SHOW_BT_USERDATA' => true,

View file

@ -405,7 +405,12 @@ $userdata =& $user->data;
/** /**
* Cron * Cron
*/ */
if ((empty($_POST) && !defined('IN_ADMIN') && !defined('IN_AJAX') && !file_exists(CRON_RUNNING) && ($bb_cfg['cron_enabled'] || defined('START_CRON'))) || defined('FORCE_CRON')) { if (
empty($_POST) &&
!defined('IN_ADMIN') && !defined('IN_AJAX') &&
!file_exists(CRON_RUNNING) &&
(TorrentPier\Helpers\CronHelper::isEnabled() || defined('START_CRON'))
) {
if (TIMENOW - $bb_cfg['cron_last_check'] > $bb_cfg['cron_check_interval']) { if (TIMENOW - $bb_cfg['cron_last_check'] > $bb_cfg['cron_check_interval']) {
/** Update cron_last_check */ /** Update cron_last_check */

View file

@ -2386,6 +2386,7 @@ $lang['CRON_NEXT_RUN'] = 'Next Run';
$lang['CRON_RUN_COUNT'] = 'Runs'; $lang['CRON_RUN_COUNT'] = 'Runs';
$lang['CRON_MANAGE'] = 'Manage'; $lang['CRON_MANAGE'] = 'Manage';
$lang['CRON_OPTIONS'] = 'Cron options'; $lang['CRON_OPTIONS'] = 'Cron options';
$lang['CRON_DISABLED_WARNING'] = 'Warning! Running cron scripts is disabled. To enable it, set the APP_CRON_ENABLED variable.';
$lang['CRON_ENABLED'] = 'Cron enabled'; $lang['CRON_ENABLED'] = 'Cron enabled';
$lang['CRON_CHECK_INTERVAL'] = 'Cron check interval (sec)'; $lang['CRON_CHECK_INTERVAL'] = 'Cron check interval (sec)';

View file

@ -15,6 +15,16 @@ namespace TorrentPier\Helpers;
*/ */
class CronHelper class CronHelper
{ {
/**
* Checking whether cron scripts execution is enabled
*
* @return bool
*/
public static function isEnabled(): bool
{
return env('APP_CRON_ENABLED', true);
}
/** /**
* Снятие блокировки крона (по времени) * Снятие блокировки крона (по времени)
* *

View file

@ -35,8 +35,7 @@ tr.hl-tr:hover td { background-color: #CFC !important; }
<tr> <tr>
<td>{L_CRON_ENABLED}</td> <td>{L_CRON_ENABLED}</td>
<td> <td>
<label><input type="radio" name="cron_enabled" value="1" <!-- IF CRON_ENABLED -->checked="checked"<!-- ENDIF --> />{L_YES}</label>&nbsp;&nbsp; <!-- IF CRON_ENABLED -->{L_YES}<!-- ELSE -->{L_NO}<!-- ENDIF -->
<label><input type="radio" name="cron_enabled" value="0" <!-- IF not CRON_ENABLED -->checked="checked"<!-- ENDIF --> />{L_NO}</label>
</td> </td>
<td>{L_CRON_CHECK_INTERVAL}</td> <td>{L_CRON_CHECK_INTERVAL}</td>
<td> <td>
@ -62,6 +61,11 @@ tr.hl-tr:hover td { background-color: #CFC !important; }
<br /> <br />
<table class="forumline"> <table class="forumline">
<!-- IF not CRON_ENABLED -->
<tr class="row3 med">
<td class="bold tCenter warnColor1" colspan="10">{L_CRON_DISABLED_WARNING}</td>
</tr>
<!-- ENDIF -->
<tr> <tr>
<th colspan="10">{L_CRON_LIST}</th> <th colspan="10">{L_CRON_LIST}</th>
</tr> </tr>