diff --git a/controllers/releases.php b/controllers/releases.php index 72dc7d01d806248ace6404af4c99c8bf68f730c4..305a659a45357c2af62e8372ff1b584e3538ab3a 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; + } }