Cronjob refactoring
This commit is contained in:
parent
0c2b20ab91
commit
6c85f637c8
|
@ -509,7 +509,11 @@ class translations{
|
|||
public $filename = "";
|
||||
|
||||
public function client_languages() {
|
||||
$client_languages = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
|
||||
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
|
||||
$client_languages = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
|
||||
} else {
|
||||
$client_languages = "en-US;q=0.5,en;q=0.3";
|
||||
}
|
||||
if(strpos($client_languages, ';') == false){
|
||||
if(strpos($client_languages, '-') !== false){
|
||||
return [substr($client_languages, 0, 5)];
|
||||
|
|
|
@ -0,0 +1,88 @@
|
|||
<?php
|
||||
include_once 'core.php';
|
||||
|
||||
init_class(false);
|
||||
header('Content-Type: application/json');
|
||||
|
||||
function customErrorHandler(int $errNo, string $errMsg, string $file, int $line) {
|
||||
$output = [
|
||||
"errNo" => $errNo,
|
||||
"error" => $errMsg,
|
||||
"file" => $file,
|
||||
"line" => $line
|
||||
];
|
||||
$output_status = "error";
|
||||
}
|
||||
error_reporting(-1);
|
||||
set_error_handler('customErrorHandler');
|
||||
|
||||
list($cronJobDay, $cronJobTime) = explode(";", $database->getOption("cron_job_time"));
|
||||
|
||||
$execDateTime = new stdClass();
|
||||
$execDateTime->day = date('d');
|
||||
$execDateTime->month = date('m');
|
||||
$execDateTime->year = date("Y");
|
||||
$execDateTime->hour = date('H');
|
||||
$execDateTime->minutes = date('i');
|
||||
|
||||
$cronJobDateTime = new stdClass();
|
||||
$cronJobDateTime->day = $cronJobDay;
|
||||
$cronJobDateTime->month = date('m');
|
||||
$cronJobDateTime->year = date("Y");
|
||||
$cronJobDateTime->hour = explode(":", $cronJobTime)[0];
|
||||
$cronJobDateTime->minutes = explode(":", $cronJobTime)[1];
|
||||
|
||||
$start = $database->getOption("cron_job_enabled") && isset($_POST['cron']) && $_POST['cron'] == "cron_job-".$database->getOption("cron_job_code");
|
||||
$start_reset = $execDateTime == $cronJobDateTime;
|
||||
|
||||
$action = "Availability Minutes ";
|
||||
if($start){
|
||||
if($start_reset){
|
||||
$action .= "reset and ";
|
||||
$sql = "SELECT * FROM `%PREFIX%_profiles` WHERE `available` = 1 ";
|
||||
$profiles = $database->exec($sql, true);
|
||||
if(count($profiles) > 0){
|
||||
$list = [];
|
||||
foreach($profiles as $profile){
|
||||
$list[] = [$profile["id"] => $profile["minuti_dispo"]];
|
||||
}
|
||||
$database->exec("INSERT INTO `%PREFIX%_minuti` (`id`, `mese`, `anno`, `list`) VALUES (NULL, :month, :year, :list)",false,[":month" => $execDateTime->month,":year" => $execDateTime->year,":list"=>json_encode($list)]);
|
||||
$database->exec("UPDATE %PREFIX%_profiles SET minuti_dispo = 0");
|
||||
}
|
||||
}
|
||||
$action .= "update";
|
||||
|
||||
$sql = "SELECT * FROM `%PREFIX%_profiles` WHERE `available` = 1 ";
|
||||
$profiles = $database->exec($sql, true);
|
||||
if(count($profiles) > 0){
|
||||
$output = [];
|
||||
$output[] = $profiles;
|
||||
$output_status = "ok";
|
||||
$queries = [];
|
||||
foreach ($profiles as $row) {
|
||||
$value = (int)$row["minuti_dispo"]+5;
|
||||
$id = $row["id"];
|
||||
$increment[$id] = $value;
|
||||
$database->exec("UPDATE %PREFIX%_profiles SET minuti_dispo = :value WHERE id = :id", true, [":value" => $value, ":id" => $id]);
|
||||
$tmp = $id . " - " . $value . " ";
|
||||
$tmp .= count($database->stmt->rowCount()) == 1 ? "success" : "fail";
|
||||
$queries[] = $tmp;
|
||||
}
|
||||
$output[] = $queries;
|
||||
} else {
|
||||
$output = ["profiles array empty"];
|
||||
$output_status = "ok";
|
||||
}
|
||||
}
|
||||
|
||||
echo(json_encode([
|
||||
"start" => $start,
|
||||
"start_reset" => $start_reset,
|
||||
"execDateTime" => $execDateTime,
|
||||
"cronJobDateTime" => $cronJobDateTime,
|
||||
"action" => $action,
|
||||
"output" => [
|
||||
"status" => $output_status,
|
||||
"message" => $output
|
||||
]
|
||||
]));
|
|
@ -231,11 +231,9 @@ PRIMARY KEY (`id`)
|
|||
)ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
CREATE TABLE IF NOT EXISTS `".$prefix."_minuti` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`mese` enum('gennaio','febbraio','marzo','aprile','maggio','giugno','luglio','agosto','settembre','ottobre','novembre','dicembre') NOT NULL,
|
||||
`anno` varchar(4) NOT NULL,
|
||||
`mese` int(2) NOT NULL,
|
||||
`anno` int(2) NOT NULL,
|
||||
`list` mediumtext NOT NULL,
|
||||
`a1` mediumtext NOT NULL,
|
||||
`a2` mediumtext NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
)ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
CREATE TABLE IF NOT EXISTS `".$prefix."_tipo` (
|
||||
|
@ -406,23 +404,26 @@ function initOptions($name, $visible, $password, $report_email, $owner){
|
|||
$option_check_cf_ip = empty($_SERVER['HTTP_CF_CONNECTING_IP']) ? "INSERT INTO `".$prefix."_options` (`id`, `name`, `value`, `enabled`, `created_time`, `last_edit`, `user_id`) VALUES ('11', 'check_cf_ip', 1, '1', current_timestamp(), current_timestamp(), '1');" : "INSERT INTO `".$prefix."_options` (`id`, `name`, `value`, `enabled`, `created_time`, `last_edit`, `user_id`) VALUES ('10', 'check_cf_ip', 0, '1', current_timestamp(), current_timestamp(), '1');";
|
||||
$prep = $connection->prepare("
|
||||
INSERT INTO `".$prefix."_profiles` (`id`, `hidden`) VALUES (NULL, :hidden);
|
||||
INSERT INTO `".$prefix."_options` (`id`, `name`, `value`, `enabled`, `created_time`, `last_edit`, `user_id`) VALUES ('1', 'report_email', :report_email, '1', current_timestamp(), current_timestamp(), '1');
|
||||
INSERT INTO `".$prefix."_options` (`id`, `name`, `value`, `enabled`, `created_time`, `last_edit`, `user_id`) VALUES ('2', 'owner', :owner, '1', current_timestamp(), current_timestamp(), '1');
|
||||
INSERT INTO `".$prefix."_options` (`id`, `name`, `value`, `enabled`, `created_time`, `last_edit`, `user_id`) VALUES ('3', 'web_url', :web_url, '1', current_timestamp(), current_timestamp(), '1');
|
||||
INSERT INTO `".$prefix."_options` (`id`, `name`, `value`, `enabled`, `created_time`, `last_edit`, `user_id`) VALUES ('4', 'use_custom_error_sound', 0, '1', current_timestamp(), current_timestamp(), '1');
|
||||
INSERT INTO `".$prefix."_options` (`id`, `name`, `value`, `enabled`, `created_time`, `last_edit`, `user_id`) VALUES ('5', 'use_custom_error_image', 0, '1', current_timestamp(), current_timestamp(), '1');
|
||||
INSERT INTO `".$prefix."_options` (`id`, `name`, `value`, `enabled`, `created_time`, `last_edit`, `user_id`) VALUES ('6', 'intrusion_save', 1, '1', current_timestamp(), current_timestamp(), '1');
|
||||
INSERT INTO `".$prefix."_options` (`id`, `name`, `value`, `enabled`, `created_time`, `last_edit`, `user_id`) VALUES ('7', 'intrusion_save_info', 1, '1', current_timestamp(), current_timestamp(), '1');
|
||||
INSERT INTO `".$prefix."_options` (`id`, `name`, `value`, `enabled`, `created_time`, `last_edit`, `user_id`) VALUES ('8', 'enable_technical_support', 0, '1', current_timestamp(), current_timestamp(), '1');
|
||||
INSERT INTO `".$prefix."_options` (`id`, `name`, `value`, `enabled`, `created_time`, `last_edit`, `user_id`) VALUES ('9', 'technical_support_key', '', '1', current_timestamp(), current_timestamp(), '1');
|
||||
INSERT INTO `".$prefix."_options` (`id`, `name`, `value`, `enabled`, `created_time`, `last_edit`, `user_id`) VALUES ('10', 'cron_job_code', :cron_job_code, '1', current_timestamp(), current_timestamp(), '1');
|
||||
INSERT INTO `".$prefix."_options` (`id`, `name`, `value`, `enabled`, `created_time`, `last_edit`, `user_id`) VALUES (NULL, 'report_email', :report_email, 1, current_timestamp(), current_timestamp(), '1');
|
||||
INSERT INTO `".$prefix."_options` (`id`, `name`, `value`, `enabled`, `created_time`, `last_edit`, `user_id`) VALUES (NULL, 'owner', :owner, 1, current_timestamp(), current_timestamp(), '1');
|
||||
INSERT INTO `".$prefix."_options` (`id`, `name`, `value`, `enabled`, `created_time`, `last_edit`, `user_id`) VALUES (NULL, 'web_url', :web_url, 1, current_timestamp(), current_timestamp(), '1');
|
||||
INSERT INTO `".$prefix."_options` (`id`, `name`, `value`, `enabled`, `created_time`, `last_edit`, `user_id`) VALUES (NULL, 'use_custom_error_sound', 0, 1, current_timestamp(), current_timestamp(), '1');
|
||||
INSERT INTO `".$prefix."_options` (`id`, `name`, `value`, `enabled`, `created_time`, `last_edit`, `user_id`) VALUES (NULL, 'use_custom_error_image', 0, 1, current_timestamp(), current_timestamp(), '1');
|
||||
INSERT INTO `".$prefix."_options` (`id`, `name`, `value`, `enabled`, `created_time`, `last_edit`, `user_id`) VALUES (NULL, 'intrusion_save', 1, 1, current_timestamp(), current_timestamp(), '1');
|
||||
INSERT INTO `".$prefix."_options` (`id`, `name`, `value`, `enabled`, `created_time`, `last_edit`, `user_id`) VALUES (NULL, 'intrusion_save_info', 1, 1, current_timestamp(), current_timestamp(), '1');
|
||||
INSERT INTO `".$prefix."_options` (`id`, `name`, `value`, `enabled`, `created_time`, `last_edit`, `user_id`) VALUES (NULL, 'enable_technical_support', 0, 1, current_timestamp(), current_timestamp(), '1');
|
||||
INSERT INTO `".$prefix."_options` (`id`, `name`, `value`, `enabled`, `created_time`, `last_edit`, `user_id`) VALUES (NULL, 'technical_support_key', '', 1, current_timestamp(), current_timestamp(), '1');
|
||||
INSERT INTO `".$prefix."_options` (`id`, `name`, `value`, `enabled`, `created_time`, `last_edit`, `user_id`) VALUES (NULL, 'cron_job_code', :cron_job_code, 1, current_timestamp(), current_timestamp(), '1');
|
||||
INSERT INTO `".$prefix."_options` (`id`, `name`, `value`, `enabled`, `created_time`, `last_edit`, `user_id`) VALUES (NULL, 'cron_job_enabled', 1, 1, current_timestamp(), current_timestamp(), '1');
|
||||
INSERT INTO `".$prefix."_options` (`id`, `name`, `value`, `enabled`, `created_time`, `last_edit`, `user_id`) VALUES (NULL, 'cron_job_time', :cron_job_time, 1, current_timestamp(), current_timestamp(), '1');
|
||||
$option_check_cf_ip");
|
||||
mt_srand(10);
|
||||
$prep->bindValue(':hidden', ($visible ? 0 : 1), PDO::PARAM_INT);
|
||||
$prep->bindValue(':report_email', $report_email, PDO::PARAM_STR);
|
||||
$prep->bindValue(':owner', $owner, PDO::PARAM_STR);
|
||||
$prep->bindValue(':web_url', str_replace("install/install.php", "", full_path()), PDO::PARAM_STR);
|
||||
$prep->bindValue(':cron_job_code', uniqid().mt_rand(), PDO::PARAM_STR);
|
||||
$prep->bindValue(':cron_job_code', str_replace(".", "", bin2hex(random_bytes(10)).base64_encode(openssl_random_pseudo_bytes(30))), PDO::PARAM_STR);
|
||||
$prep->bindValue(':cron_job_time', "01;00:00", PDO::PARAM_STR);
|
||||
$prep->execute();
|
||||
} catch (Exception $e) {
|
||||
if(is_cli()){
|
||||
|
|
Loading…
Reference in New Issue