From ee4088744c9da7dd367d994a0189a9d20ebe8bd3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 19 Apr 2026 15:17:34 +0000 Subject: [PATCH] aio-interface: cache reads from GetDailyBackupTimeFile based on mtime Agent-Logs-Url: https://github.com/nextcloud/all-in-one/sessions/01d18358-7a1e-4747-85f5-3f002aa59253 aio-interface: cache reads from GetDailyBackupTimeFile based on mtime Agent-Logs-Url: https://github.com/nextcloud/all-in-one/sessions/4df5e1bd-456d-4005-8432-4e9b537c8e54 fix: set dailyBackupFileMtime default to 0 instead of null Agent-Logs-Url: https://github.com/nextcloud/all-in-one/sessions/ba492f66-d5f0-450f-b0e1-658806bf070d fix: restore missing closing brace of deleteDailyBackupTime Agent-Logs-Url: https://github.com/nextcloud/all-in-one/sessions/6e5fb177-9754-4b64-8e93-b5be989f5162 Co-Authored-By: szaimen <42591237+szaimen@users.noreply.github.com> --- php/src/Data/ConfigurationManager.php | 45 +++++++++++++++++++++------ 1 file changed, 36 insertions(+), 9 deletions(-) diff --git a/php/src/Data/ConfigurationManager.php b/php/src/Data/ConfigurationManager.php index ccce94ab..cd29c205 100644 --- a/php/src/Data/ConfigurationManager.php +++ b/php/src/Data/ConfigurationManager.php @@ -14,6 +14,10 @@ class ConfigurationManager private bool $noWrite = false; + private string $dailyBackupFileCache = ''; + + private int $dailyBackupFileMtime = 0; + public string $aioToken { get => $this->get('AIO_TOKEN', ''); set { $this->set('AIO_TOKEN', $value); } @@ -760,23 +764,47 @@ class ConfigurationManager $time .= PHP_EOL; } file_put_contents(DataConst::GetDailyBackupTimeFile(), $time); + $this->dailyBackupFileCache = ''; + $this->dailyBackupFileMtime = 0; + } + + private function getDailyBackupFileContent() : string { + $file = DataConst::GetDailyBackupTimeFile(); + if (!file_exists($file)) { + $this->dailyBackupFileCache = ''; + $this->dailyBackupFileMtime = 0; + return ''; + } + $mtime = filemtime($file); + if ($mtime !== false && $this->dailyBackupFileMtime === $mtime && $this->dailyBackupFileCache !== '') { + return $this->dailyBackupFileCache; + } + $content = file_get_contents($file); + if ($content === false || $content === '') { + return ''; + } + if ($mtime !== false) { + $this->dailyBackupFileCache = $content; + $this->dailyBackupFileMtime = $mtime; + } + return $content; } public function getDailyBackupTime() : string { - if (!file_exists(DataConst::GetDailyBackupTimeFile())) { + $content = $this->getDailyBackupFileContent(); + if ($content === '') { return ''; } - $dailyBackupFile = (string)file_get_contents(DataConst::GetDailyBackupTimeFile()); - $dailyBackupFileArray = explode("\n", $dailyBackupFile); + $dailyBackupFileArray = explode("\n", $content); return $dailyBackupFileArray[0]; } public function areAutomaticUpdatesEnabled() : bool { - if (!file_exists(DataConst::GetDailyBackupTimeFile())) { + $content = $this->getDailyBackupFileContent(); + if ($content === '') { return false; } - $dailyBackupFile = (string)file_get_contents(DataConst::GetDailyBackupTimeFile()); - $dailyBackupFileArray = explode("\n", $dailyBackupFile); + $dailyBackupFileArray = explode("\n", $content); if (isset($dailyBackupFileArray[1]) && $dailyBackupFileArray[1] === 'automaticUpdatesAreNotEnabled') { return false; } else { @@ -788,11 +816,10 @@ class ConfigurationManager if (file_exists(DataConst::GetDailyBackupTimeFile())) { unlink(DataConst::GetDailyBackupTimeFile()); } + $this->dailyBackupFileCache = ''; + $this->dailyBackupFileMtime = 0; } - /** - * @throws InvalidSettingConfigurationException - */ public function setAdditionalBackupDirectories(string $additionalBackupDirectories) : void { $additionalBackupDirectoriesArray = explode("\n", $additionalBackupDirectories); $validDirectories = '';