Improve Windows converter downloading
This commit is contained in:
		
							
								
								
									
										7
									
								
								autodl_files/converter_windows
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								autodl_files/converter_windows
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
https://uupdump.net/misc/7zr.exe
 | 
			
		||||
  out=7zr.exe
 | 
			
		||||
  checksum=sha-256=108ab5f1e36f2068e368fe97cd763c639e403cac8f511c6681eaf19fc585d814
 | 
			
		||||
 | 
			
		||||
https://uupdump.net/misc/uup-converter-wimlib.7z
 | 
			
		||||
  out=uup-converter-wimlib.7z
 | 
			
		||||
  checksum=sha-256=7f07dfc0fa041820746c55c2704fd18f8930b984ca472d2ac397a1c69f15f3af
 | 
			
		||||
@@ -1,91 +0,0 @@
 | 
			
		||||
<#
 | 
			
		||||
This was made because I refuse to continue taking part in the unwritten
 | 
			
		||||
PowerShell/Batch obfuscation contest.
 | 
			
		||||
#>
 | 
			
		||||
 | 
			
		||||
param (
 | 
			
		||||
    [Parameter()]
 | 
			
		||||
    [Switch]$ForDownload
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
<#
 | 
			
		||||
There are myths that some Windows versions do not work without this.
 | 
			
		||||
 | 
			
		||||
Since I can't be arsed to verify this, I'm just adding this to lower the number
 | 
			
		||||
of reports to which I would normally respond with "works on my machine".
 | 
			
		||||
#>
 | 
			
		||||
try {
 | 
			
		||||
    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
 | 
			
		||||
} catch {
 | 
			
		||||
    Write-Error "Outdated operating systems are not supported."
 | 
			
		||||
    Exit 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
$filesDownload = @('aria2c.exe')
 | 
			
		||||
$filesConvert = @('aria2c.exe', '7zr.exe', 'uup-converter-wimlib.7z')
 | 
			
		||||
 | 
			
		||||
$urls = @{
 | 
			
		||||
    'aria2c.exe' = 'https://uupdump.net/misc/aria2c.exe';
 | 
			
		||||
    '7zr.exe' = 'https://uupdump.net/misc/7zr.exe';
 | 
			
		||||
    'uup-converter-wimlib.7z' = 'https://uupdump.net/misc/uup-converter-wimlib.7z';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
$hashes = @{
 | 
			
		||||
    'aria2c.exe' = '0ae98794b3523634b0af362d6f8c04a9bbd32aeda959b72ca0e7fc24e84d2a66';
 | 
			
		||||
    '7zr.exe' = '108ab5f1e36f2068e368fe97cd763c639e403cac8f511c6681eaf19fc585d814';
 | 
			
		||||
    'uup-converter-wimlib.7z' = '7f07dfc0fa041820746c55c2704fd18f8930b984ca472d2ac397a1c69f15f3af';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function Retrieve-File {
 | 
			
		||||
    param (
 | 
			
		||||
        [String]$File,
 | 
			
		||||
        [String]$Url
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    Write-Host -BackgroundColor Black -ForegroundColor Yellow "Downloading ${File}..."
 | 
			
		||||
    Invoke-WebRequest -UseBasicParsing -Uri $Url -OutFile "files\$File" -ErrorAction Stop
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function Test-Hash {
 | 
			
		||||
    param (
 | 
			
		||||
        [String]$File,
 | 
			
		||||
        [String]$Hash
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    Write-Host -BackgroundColor Black -ForegroundColor Cyan "Verifying ${File}..."
 | 
			
		||||
 | 
			
		||||
    $fileHash = (Get-FileHash -Path "files\$File" -Algorithm SHA256 -ErrorAction Stop).Hash
 | 
			
		||||
    return ($fileHash.ToLower() -eq $Hash)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if($ForDownload.IsPresent) {
 | 
			
		||||
    $files = $filesDownload
 | 
			
		||||
} else {
 | 
			
		||||
    $files = $filesConvert
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if(-not (Test-Path -PathType Container -Path "files")) {
 | 
			
		||||
    $null = New-Item -Path "files" -ItemType Directory
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
foreach($file in $files) {
 | 
			
		||||
    try {
 | 
			
		||||
        Retrieve-File -File $file -Url $urls[$file]
 | 
			
		||||
    } catch {
 | 
			
		||||
        Write-Host "Failed to download $file"
 | 
			
		||||
        Write-Host $_
 | 
			
		||||
        Exit 1
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Write-Host ""
 | 
			
		||||
 | 
			
		||||
foreach($file in $files) {
 | 
			
		||||
    if(-not (Test-Hash -File $file -Hash $hashes[$file])) {
 | 
			
		||||
        Write-Error "$file appears to be tampered with"
 | 
			
		||||
        Exit 1
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Write-Host ""
 | 
			
		||||
Write-Host -BackgroundColor Black -ForegroundColor Green "It appears all the dependencies are ready."
 | 
			
		||||
							
								
								
									
										64
									
								
								autodl_files/get_aria2.ps1
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								autodl_files/get_aria2.ps1
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,64 @@
 | 
			
		||||
try {
 | 
			
		||||
    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
 | 
			
		||||
} catch {
 | 
			
		||||
    Write-Error "Outdated operating systems are not supported."
 | 
			
		||||
    Exit 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
$file = 'aria2c.exe'
 | 
			
		||||
$url = 'https://uupdump.net/misc/aria2c.exe';
 | 
			
		||||
$hash = '0ae98794b3523634b0af362d6f8c04a9bbd32aeda959b72ca0e7fc24e84d2a66';
 | 
			
		||||
 | 
			
		||||
function Test-Existece {
 | 
			
		||||
    param (
 | 
			
		||||
        [String]$File
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    return Test-Path -PathType Leaf -Path "files\$File"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function Retrieve-File {
 | 
			
		||||
    param (
 | 
			
		||||
        [String]$File,
 | 
			
		||||
        [String]$Url
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    Write-Host -BackgroundColor Black -ForegroundColor Yellow "Downloading ${File}..."
 | 
			
		||||
    Invoke-WebRequest -UseBasicParsing -Uri $Url -OutFile "files\$File" -ErrorAction Stop
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function Test-Hash {
 | 
			
		||||
    param (
 | 
			
		||||
        [String]$File,
 | 
			
		||||
        [String]$Hash
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    Write-Host -BackgroundColor Black -ForegroundColor Cyan "Verifying ${File}..."
 | 
			
		||||
 | 
			
		||||
    $fileHash = (Get-FileHash -Path "files\$File" -Algorithm SHA256 -ErrorAction Stop).Hash
 | 
			
		||||
    return ($fileHash.ToLower() -eq $Hash)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if((Test-Existece -File $file) -and (Test-Hash -File $file -Hash $hash)) {
 | 
			
		||||
    Write-Host -BackgroundColor Black -ForegroundColor Green "Ready."
 | 
			
		||||
    Exit 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if(-not (Test-Path -PathType Container -Path "files")) {
 | 
			
		||||
    $null = New-Item -Path "files" -ItemType Directory
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
try {
 | 
			
		||||
    Retrieve-File -File $file -Url $url
 | 
			
		||||
} catch {
 | 
			
		||||
    Write-Host "Failed to download $file"
 | 
			
		||||
    Write-Host $_
 | 
			
		||||
    Exit 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if(-not (Test-Hash -File $file -Hash $hash)) {
 | 
			
		||||
    Write-Error "$file appears to be tampered with"
 | 
			
		||||
    Exit 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Write-Host -BackgroundColor Black -ForegroundColor Green "Ready."
 | 
			
		||||
		Reference in New Issue
	
	Block a user