From 599f48fe84a3455888417bd9519e7f660a24fd32 Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+github@gmail.com> Date: Mon, 20 Feb 2023 09:43:39 +0100 Subject: [PATCH] hardcode sizes from sourceforge, re #42 --- controllers/releases.php | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/controllers/releases.php b/controllers/releases.php index 72dc7d0..305a659 100644 --- a/controllers/releases.php +++ b/controllers/releases.php @@ -152,6 +152,13 @@ final class ReleasesController extends \TracToGitlab\Controller private function getFileSize(string $url): int { + // Hardocded sizes for files from sourceforge since they have an ugly + // redirect that makes the page load very slowly + $hardcoded_size = $this->getHardcodedSize($url); + if ($hardcoded_size) { + return $hardcoded_size; + } + // Init curl if necessary if (self::$curl_handle === null) { self::$curl_handle = curl_init(null); @@ -228,4 +235,24 @@ final class ReleasesController extends \TracToGitlab\Controller $user = User::findCurrent(); return $user && $user->perms === 'root'; } + + private function getHardcodedSize(string $url): ?int + { + $sizes = [ + 'https://sourceforge.net/projects/studip/files/Stud.IP/5.1/studip-5.1.1.tar.gz/download' => 47931884, + 'https://sourceforge.net/projects/studip/files/Stud.IP/5.1/studip-5.1.1.zip/download' => 69768212, + 'https://sourceforge.net/projects/studip/files/Stud.IP/5.1/studip-5.1.tar.gz/download' => 47423999, + 'https://sourceforge.net/projects/studip/files/Stud.IP/5.1/studip-5.1.zip/download' => 69706312, + 'https://sourceforge.net/projects/studip/files/Stud.IP/5.0/studip-5.0.3.tar.gz/download' => 46303014, + 'https://sourceforge.net/projects/studip/files/Stud.IP/5.0/studip-5.0.3.zip/download' => 68927080, + 'https://sourceforge.net/projects/studip/files/Stud.IP/5.0/studip-5.0.2.tar.gz/download' => 47723117, + 'https://sourceforge.net/projects/studip/files/Stud.IP/5.0/studip-5.0.2.zip/download' => 70078254, + 'https://sourceforge.net/projects/studip/files/Stud.IP/5.0/studip-5.0.1.tar.gz/download' => 46729928, + 'https://sourceforge.net/projects/studip/files/Stud.IP/5.0/studip-5.0.1.zip/download' => 68693041, + 'https://sourceforge.net/projects/studip/files/Stud.IP/5.0/studip-5.0.tar.gz/download' => 52728907, + 'https://sourceforge.net/projects/studip/files/Stud.IP/5.0/studip-5.0.zip/download' => 68481771, + ]; + + return $sizes[$url] ?? null; + } } -- GitLab