From 2f81bb0326906d71ad393f8e3a09f4d5ecddee44 Mon Sep 17 00:00:00 2001 From: Administrator Date: Sun, 9 Aug 2026 13:54:24 +0200 Subject: [PATCH] feat: use canonical GitHub downloader release --- README.md | 12 ++++--- VServerSetup.ps1 | 82 +++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 85 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 083f350..4809361 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ Alle Downloads kommen von der eigenen Gitea-Instanz (git.24-music.de) oder offiz | 14 | Scripte (Rename MKV AVI etc.) | Gitea: xabbo-scripts | | 15 | Twitch VOD Manager | Gitea: Twitch-VOD-Manager | | 16 | Multi-Hoster-Upload + `.mhu` Data-File auf Desktop | Gitea: Multi-Hoster-Upload | -| 17 | Real-Debrid-Downloader + `.mdd` Data-File auf Desktop | Gitea: real-debrid-downloader | +| 17 | Real-Debrid-Downloader + `.mdd` Data-File auf Desktop | GitHub: Sucukdeluxe/multi-debrid-downloader | ## Windows-Einstellungen @@ -37,7 +37,7 @@ Alle Downloads kommen von der eigenen Gitea-Instanz (git.24-music.de) oder offiz ## Gitea Repos -Alle eigenen Tools werden ueber die Gitea API (latest Release) geladen: +Alle eigenen Tools werden ueber die Gitea API (latest Release) geladen. Der Multi-Debrid-Downloader kommt aus seinem kanonischen GitHub-Release: | Repo | Inhalt | |------|--------| @@ -50,7 +50,7 @@ Alle eigenen Tools werden ueber die Gitea API (latest Release) geladen: | [ffmpeg](https://git.24-music.de/Administrator/ffmpeg) | FFmpeg Essentials Build (Mirror von gyan.dev) | | [Twitch-VOD-Manager](https://git.24-music.de/Administrator/Twitch-VOD-Manager) | Twitch VOD Manager | | [Multi-Hoster-Upload](https://git.24-music.de/Administrator/Multi-Hoster-Upload) | Multi-Hoster Upload Tool + `.mhu` Data-File | -| [real-debrid-downloader](https://git.24-music.de/Administrator/real-debrid-downloader) | Real-Debrid Downloader + `.mdd` Data-File | +| [multi-debrid-downloader](https://github.com/Sucukdeluxe/multi-debrid-downloader) | Real-Debrid Downloader + `.mdd` Data-File | ## Benutzung @@ -67,6 +67,10 @@ Alle eigenen Tools werden ueber die Gitea API (latest Release) geladen: ## Changelog +### v2.4.0 +- Real-Debrid-Downloader wird aus dem kanonischen GitHub-Release `Sucukdeluxe/multi-debrid-downloader` geladen +- Gitea bleibt die Quelle fuer alle weiteren eigenen Tools + ### v2.3.0 - FFmpeg-Download von gyan.dev auf Gitea umgezogen (gyan.dev war arsch langsam) - Neues Repo `Administrator/ffmpeg` als Mirror @@ -74,7 +78,7 @@ Alle eigenen Tools werden ueber die Gitea API (latest Release) geladen: ### v2.2.0 - `Multi-Hoster-Upload.mhu` wird vom Multi-Hoster-Upload Release geladen und auf Desktop gepackt -- `Multi-Debrid-Downloader.mdd` wird vom real-debrid-downloader Release geladen und auf Desktop gepackt +- `Multi-Debrid-Downloader.mdd` wird vom Multi-Debrid-Downloader Release geladen und auf Desktop gepackt - Neuer Helper `Copy-Gitea-DataFile-To-Desktop` - Skip-Logik wenn Data-File schon auf Desktop liegt diff --git a/VServerSetup.ps1 b/VServerSetup.ps1 index c8b2b89..5f9708c 100644 --- a/VServerSetup.ps1 +++ b/VServerSetup.ps1 @@ -8,6 +8,9 @@ $ProgressPreference = "SilentlyContinue" $tempDir = "$env:TEMP\vserver-setup" $desktopPath = [Environment]::GetFolderPath("Desktop") $winrarPath = "C:\Program Files\WinRAR\WinRAR.exe" +$giteaBaseUrl = "https://git.24-music.de" +$githubApiBaseUrl = "https://api.github.com" +$githubDownloaderRepo = "Sucukdeluxe/multi-debrid-downloader" $totalSteps = 18 New-Item -ItemType Directory -Force -Path $tempDir | Out-Null @@ -45,7 +48,7 @@ function Unrar-File { function Get-Gitea-Latest-Asset { param($Repo, $Filter) - $releaseApi = "https://git.24-music.de/api/v1/repos/Administrator/$Repo/releases?limit=1" + $releaseApi = "$giteaBaseUrl/api/v1/repos/Administrator/$Repo/releases?limit=1" $wc = New-Object System.Net.WebClient $wc.Headers.Add("User-Agent", "Mozilla/5.0") $release = ($wc.DownloadString($releaseApi) | ConvertFrom-Json)[0] @@ -56,6 +59,20 @@ function Get-Gitea-Latest-Asset { return $asset } +function Get-GitHub-Latest-Asset { + param($Repo, $Filter) + $releaseApi = "$githubApiBaseUrl/repos/$Repo/releases/latest" + $wc = New-Object System.Net.WebClient + $wc.Headers.Add("User-Agent", "VServerSetup") + $wc.Headers.Add("Accept", "application/vnd.github+json") + $release = ($wc.DownloadString($releaseApi) | ConvertFrom-Json) + $asset = $release.assets | Where-Object { $_.name -like $Filter -and $_.name -notlike "*.blockmap" } | Select-Object -First 1 + if ($asset) { + Write-Host " Version: $($release.tag_name)" -ForegroundColor Gray + } + return $asset +} + function Copy-Gitea-DataFile-To-Desktop { param($Repo, $Filter) try { @@ -111,6 +128,61 @@ function Install-Gitea-App { } } +function Install-GitHub-App { + param($Name, $Repo, $StepNum, $DetectPaths, $ProcessName) + Write-Host "" + Write-Host "[$StepNum/$totalSteps] $Name..." -ForegroundColor Yellow + + foreach ($p in $DetectPaths) { + if (Test-Path $p) { + Write-Host " Bereits installiert - ueberspringe." -ForegroundColor Gray + return + } + } + + try { + Write-Host " Hole neueste Version von GitHub..." -ForegroundColor Gray + $asset = Get-GitHub-Latest-Asset -Repo $Repo -Filter "*Setup*.exe" + if ($asset) { + $installer = "$tempDir\$($asset.name)" + if (Download-File -Url $asset.browser_download_url -Output $installer) { + Write-Host " Installiere $Name (silent)..." -ForegroundColor Gray + Start-Process -FilePath $installer -ArgumentList "/S" -Wait + if ($ProcessName) { + Start-Sleep -Seconds 3 + Stop-Process -Name $ProcessName -Force -ErrorAction SilentlyContinue + } + Write-Host " $Name installiert!" -ForegroundColor Green + } + } else { + Write-Host " FEHLER: Kein Setup-Asset im GitHub-Release gefunden" -ForegroundColor Red + } + } catch { + Write-Host " FEHLER beim Abrufen des GitHub-Releases: $_" -ForegroundColor Red + } +} + +function Copy-GitHub-DataFile-To-Desktop { + param($Repo, $Filter) + try { + $asset = Get-GitHub-Latest-Asset -Repo $Repo -Filter $Filter + if (-not $asset) { + Write-Host " WARNUNG: Kein Asset '$Filter' im GitHub-Release gefunden" -ForegroundColor Yellow + return + } + $destPath = Join-Path $desktopPath $asset.name + if (Test-Path $destPath) { + Write-Host " $($asset.name) bereits vorhanden - ueberspringe." -ForegroundColor Gray + return + } + if (Download-File -Url $asset.browser_download_url -Output $destPath) { + Write-Host " $($asset.name) auf Desktop!" -ForegroundColor Green + } + } catch { + Write-Host " FEHLER beim Laden der GitHub-Datei: $_" -ForegroundColor Red + } +} + # 1. PYTHON Write-Host "" Write-Host "[1/$totalSteps] Python..." -ForegroundColor Yellow @@ -176,7 +248,7 @@ if (Test-Path "$desktopPath\G-Earth") { } else { try { Write-Host " Hole neueste Version von Gitea..." -ForegroundColor Gray - $releaseApi = "https://git.24-music.de/api/v1/repos/Administrator/G-Earth/releases?limit=1" + $releaseApi = "$giteaBaseUrl/api/v1/repos/Administrator/G-Earth/releases?limit=1" $wc = New-Object System.Net.WebClient $wc.Headers.Add("User-Agent", "Mozilla/5.0") $release = ($wc.DownloadString($releaseApi) | ConvertFrom-Json) @@ -470,12 +542,12 @@ Install-Gitea-App -Name "Multi-Hoster-Upload" -Repo "Multi-Hoster-Upload" ` -ProcessName "Multi-Hoster-Upload" Copy-Gitea-DataFile-To-Desktop -Repo "Multi-Hoster-Upload" -Filter "*.mhu" -# 17. REAL-DEBRID-DOWNLOADER (von Gitea) -Install-Gitea-App -Name "Real-Debrid-Downloader" -Repo "real-debrid-downloader" ` +# 17. REAL-DEBRID-DOWNLOADER (von GitHub) +Install-GitHub-App -Name "Real-Debrid-Downloader" -Repo $githubDownloaderRepo ` -StepNum 17 ` -DetectPaths @("$env:LOCALAPPDATA\Programs\real-debrid-downloader\Real-Debrid-Downloader.exe", "$desktopPath\Real-Debrid-Downloader.lnk") ` -ProcessName "Real-Debrid-Downloader" -Copy-Gitea-DataFile-To-Desktop -Repo "real-debrid-downloader" -Filter "*.mdd" +Copy-GitHub-DataFile-To-Desktop -Repo $githubDownloaderRepo -Filter "*.mdd" # 18. WINDOWS EINSTELLUNGEN Write-Host ""