From 51813431fb9cc5ce1d21aeff4492abea4d37d7b4 Mon Sep 17 00:00:00 2001 From: Richard Steinmetz Date: Tue, 18 Nov 2025 22:42:07 +0100 Subject: [PATCH] fix: generate-all skipping some files due to negative remainder Signed-off-by: Richard Steinmetz --- lib/Command/Generate.php | 3 ++- lib/Service/ModuloService.php | 27 +++++++++++++++++++++++++++ tests/Service/Test.php | 29 +++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 lib/Service/ModuloService.php create mode 100644 tests/Service/Test.php diff --git a/lib/Command/Generate.php b/lib/Command/Generate.php index 9b99d7a..ca11c81 100644 --- a/lib/Command/Generate.php +++ b/lib/Command/Generate.php @@ -11,6 +11,7 @@ use OCA\Files_External\Service\GlobalStoragesService; use OCA\PreviewGenerator\Model\WorkerConfig; +use OCA\PreviewGenerator\Service\ModuloService; use OCA\PreviewGenerator\SizeHelper; use OCP\Encryption\IManager; use OCP\Files\File; @@ -288,7 +289,7 @@ private function parseFile(File $file): void { if ($this->workerConfig !== null) { $hash = $this->hashFileId($file->getId()); - if (($hash % $this->workerConfig->getWorkerCount()) !== $this->workerConfig->getWorkerIndex()) { + if (ModuloService::absMod($hash, $this->workerConfig->getWorkerCount()) !== $this->workerConfig->getWorkerIndex()) { return; } } diff --git a/lib/Service/ModuloService.php b/lib/Service/ModuloService.php new file mode 100644 index 0000000..7d5d4ff --- /dev/null +++ b/lib/Service/ModuloService.php @@ -0,0 +1,27 @@ +assertEquals($expected, ModuloService::absMod($x, $n)); + } +}