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>
This commit is contained in:
copilot-swe-agent[bot]
2026-04-19 15:17:34 +00:00
committed by Simon L.
parent d2ecff2e06
commit ee4088744c

View File

@@ -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 = '';