From be6dd872b7b5a3712c923fd8d50b3986f0e721bc Mon Sep 17 00:00:00 2001 From: Baoshuo Date: Mon, 13 Feb 2023 07:56:44 +0800 Subject: [PATCH] chore: add upgrader for #39. --- web/app/libs/uoj-lib.php | 2 +- .../39_limits_in_extra_config/upgrade.php | 37 +++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 web/app/upgrade/39_limits_in_extra_config/upgrade.php diff --git a/web/app/libs/uoj-lib.php b/web/app/libs/uoj-lib.php index d43a11b..afea464 100644 --- a/web/app/libs/uoj-lib.php +++ b/web/app/libs/uoj-lib.php @@ -13,7 +13,7 @@ function requireLib($name) { // html lib $REQUIRE_LIB[$name] = ''; } function requirePHPLib($name) { // uoj php lib - require $_SERVER['DOCUMENT_ROOT'] . '/app/libs/uoj-' . $name . '-lib.php'; + require_once $_SERVER['DOCUMENT_ROOT'] . '/app/libs/uoj-' . $name . '-lib.php'; } requirePHPLib('expection'); diff --git a/web/app/upgrade/39_limits_in_extra_config/upgrade.php b/web/app/upgrade/39_limits_in_extra_config/upgrade.php new file mode 100644 index 0000000..04fc26e --- /dev/null +++ b/web/app/upgrade/39_limits_in_extra_config/upgrade.php @@ -0,0 +1,37 @@ +getExtraConfig(); + $problem_conf = $problem->getProblemConf(); + + if (!($problem_conf instanceof UOJProblemConf)) { + continue; + } + + $extra_config['time_limit'] = (float)$problem_conf->getVal('time_limit', 1); + $extra_config['memory_limit'] = (int)$problem_conf->getVal('memory_limit', 256); + + DB::update([ + "update problems", + "set", [ + "extra_config" => json_encode($extra_config, JSON_FORCE_OBJECT), + ], + "where", [ + "id" => $problem->info['id'], + ], + ]); + + echo "Problem {$problem->info['id']} upgraded.\n"; + } + } +};