Updating the installation process, minor edits.

This commit is contained in:
amd64fox
2021-08-13 08:50:03 +03:00
committed by GitHub
parent 4ac756f459
commit 16bf1dd7fb
+108 -29
View File
@@ -1,6 +1,13 @@
# Ignore errors from `Stop-Process` # Ignore errors from `Stop-Process`
$PSDefaultParameterValues['Stop-Process:ErrorAction'] = 'SilentlyContinue' $PSDefaultParameterValues['Stop-Process:ErrorAction'] = 'SilentlyContinue'
# Check Tls12
$tsl_check = [Net.ServicePointManager]::SecurityProtocol
if (!($tsl_check -match '^tls12$' )) {
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
}
Write-Host "*****************" Write-Host "*****************"
Write-Host "Author: " -NoNewline Write-Host "Author: " -NoNewline
Write-Host "@Nuzair46" -ForegroundColor DarkYellow Write-Host "@Nuzair46" -ForegroundColor DarkYellow
@@ -11,14 +18,12 @@ Write-Host "*****************"
$SpotifyDirectory = "$env:APPDATA\Spotify" $SpotifyDirectory = "$env:APPDATA\Spotify"
$SpotifyExecutable = "$SpotifyDirectory\Spotify.exe" $SpotifyExecutable = "$SpotifyDirectory\Spotify.exe"
$SpotifyApps = "$SpotifyDirectory\Apps"
Stop-Process -Name Spotify Stop-Process -Name Spotify
Stop-Process -Name SpotifyWebHelper Stop-Process -Name SpotifyWebHelper
if ($PSVersionTable.PSVersion.Major -ge 7) if ($PSVersionTable.PSVersion.Major -ge 7) {
{
Import-Module Appx -UseWindowsPowerShell Import-Module Appx -UseWindowsPowerShell
} }
# Check version Windows # Check version Windows
@@ -27,6 +32,7 @@ $win11 = $win_os -match "\windows 11\b"
$win10 = $win_os -match "\windows 10\b" $win10 = $win_os -match "\windows 10\b"
$win8_1 = $win_os -match "\windows 8.1\b" $win8_1 = $win_os -match "\windows 8.1\b"
$win8 = $win_os -match "\windows 8\b" $win8 = $win_os -match "\windows 8\b"
$win7 = $win_os -match "\windows 7\b"
if ($win11 -or $win10 -or $win8_1 -or $win8) { if ($win11 -or $win10 -or $win8_1 -or $win8) {
@@ -43,7 +49,8 @@ The Microsoft Store version of Spotify has been detected which is not supported.
Uninstalling Spotify. Uninstalling Spotify.
'@`n '@`n
Get-AppxPackage -Name SpotifyAB.SpotifyMusic | Remove-AppxPackage Get-AppxPackage -Name SpotifyAB.SpotifyMusic | Remove-AppxPackage
} else{ }
else {
Write-Host @' Write-Host @'
Exiting... Exiting...
'@`n '@`n
@@ -60,7 +67,8 @@ try {
New-Item -Type Directory -Name "BlockTheSpot-$(Get-Date -UFormat '%Y-%m-%d_%H-%M-%S')" ` New-Item -Type Directory -Name "BlockTheSpot-$(Get-Date -UFormat '%Y-%m-%d_%H-%M-%S')" `
| Convert-Path ` | Convert-Path `
| Set-Location | Set-Location
} catch { }
catch {
Write-Output '' Write-Output ''
Pause Pause
exit exit
@@ -78,7 +86,8 @@ try {
# Local file path # Local file path
"$PWD\chrome_elf.zip" "$PWD\chrome_elf.zip"
) )
} catch { }
catch {
Write-Output '' Write-Output ''
Sleep Sleep
} }
@@ -88,32 +97,49 @@ Remove-Item -LiteralPath "$PWD\chrome_elf.zip"
$spotifyInstalled = (Test-Path -LiteralPath $SpotifyExecutable) $spotifyInstalled = (Test-Path -LiteralPath $SpotifyExecutable)
if (-not $spotifyInstalled) { if (-not $spotifyInstalled) {
Write-Host @'
Spotify desktop application not found.
Downloading latest Spotify full setup, please wait...
'@
try { try {
$webClient.DownloadFile( $webClient.DownloadFile(
# Remote file URL # Remote file URL
'https://download.scdn.co/SpotifyFullSetup.exe', 'https://download.scdn.co/SpotifySetup.exe',
# Local file path # Local file path
"$PWD\SpotifyFullSetup.exe" "$PWD\SpotifySetup.exe"
) )
} catch { }
catch {
Write-Output '' Write-Output ''
Pause Pause
exit exit
} }
mkdir $SpotifyDirectory >$null 2>&1 mkdir $SpotifyDirectory >$null 2>&1
Write-Host 'Running installation...'
Start-Process -FilePath "$PWD\SpotifyFullSetup.exe"
while ((Get-Process -name Spotify -ErrorAction SilentlyContinue) -eq $null){ # Check version Spotify
#waiting until installation complete $version_client_check = (get-item $PWD\SpotifySetup.exe).VersionInfo.ProductVersion
} $version_client = $version_client_check -split '.\w\w\w\w\w\w\w\w\w'
Write-Host "Downloading and installing Spotify " -NoNewline
Write-Host $version_client -ForegroundColor Green
Write-Host "Please wait..."
Start-Process -FilePath $PWD\SpotifySetup.exe; wait-process -name SpotifySetup
Stop-Process -Name Spotify >$null 2>&1 Stop-Process -Name Spotify >$null 2>&1
Stop-Process -Name SpotifyWebHelper >$null 2>&1 Stop-Process -Name SpotifyWebHelper >$null 2>&1
Stop-Process -Name SpotifyFullSetup >$null 2>&1 Stop-Process -Name SpotifyFullSetup >$null 2>&1
$ErrorActionPreference = 'SilentlyContinue' # Команда гасит легкие ошибки
if ($win7) {
get-childitem -path "$env:LOCALAPPDATA\Microsoft\Windows\Temporary Internet Files\" -Recurse -Force -Filter "SpotifyFullSetup*" | remove-item -Force
}
if ($win10) {
get-childitem -path "$env:LOCALAPPDATA\Microsoft\Windows\INetCache\" -Recurse -Force -Filter "SpotifyFullSetup*" | remove-item -Force
}
} }
if (!(test-path $SpotifyDirectory/chrome_elf.dll.bak)) { if (!(test-path $SpotifyDirectory/chrome_elf.dll.bak)) {
@@ -133,6 +159,7 @@ Remove-Item -Recurse -LiteralPath $tempDirectory
# Removing an empty block and button # Removing an empty block and button
if (!(test-path $env:APPDATA\Spotify\Apps\xpui.bak)) { if (!(test-path $env:APPDATA\Spotify\Apps\xpui.bak)) {
@@ -142,21 +169,28 @@ Copy $env:APPDATA\Spotify\Apps\xpui.spa $env:APPDATA\Spotify\Apps\xpui.bak
Rename-Item -path $env:APPDATA\Spotify\Apps\xpui.spa -NewName $env:APPDATA\Spotify\Apps\xpui.zip Rename-Item -path $env:APPDATA\Spotify\Apps\xpui.spa -NewName $env:APPDATA\Spotify\Apps\xpui.zip
Expand-Archive $env:APPDATA\Spotify\Apps\xpui.zip -DestinationPath $env:APPDATA\Spotify\Apps\temporary Expand-Archive $env:APPDATA\Spotify\Apps\xpui.zip -DestinationPath $env:APPDATA\Spotify\Apps\temporary
$file_js = Get-Content $env:APPDATA\Spotify\Apps\temporary\xpui.js -Raw $file_js = Get-Content $env:APPDATA\Spotify\Apps\temporary\xpui.js -Raw
If (!($file_js -match 'patched by spotx')) {
$new_js = $file_js -replace ".........................................Z.UpgradeButton.......", "" -replace 'e.ads.leaderboard.isEnabled', 'e.ads.leaderboard.isDisabled' $new_js = $file_js -replace ".........................................Z.UpgradeButton.......", "" -replace 'e.ads.leaderboard.isEnabled', 'e.ads.leaderboard.isDisabled'
Set-Content -Path $env:APPDATA\Spotify\Apps\temporary\xpui.js -Force -Value $new_js Set-Content -Path $env:APPDATA\Spotify\Apps\temporary\xpui.js -Force -Value $new_js
add-content -Path $env:APPDATA\Spotify\Apps\temporary\xpui.js -Value '// Patched by SpotX' -passthru | Out-Null
$contentjs = [System.IO.File]::ReadAllText("$env:APPDATA\Spotify\Apps\temporary\xpui.js") $contentjs = [System.IO.File]::ReadAllText("$env:APPDATA\Spotify\Apps\temporary\xpui.js")
$contentjs = $contentjs.Trim() $contentjs = $contentjs.Trim()
[System.IO.File]::WriteAllText("$env:APPDATA\Spotify\Apps\temporary\xpui.js", $contentjs) [System.IO.File]::WriteAllText("$env:APPDATA\Spotify\Apps\temporary\xpui.js", $contentjs)
Compress-Archive -Path $env:APPDATA\Spotify\Apps\temporary\xpui.js -Update -DestinationPath $env:APPDATA\Spotify\Apps\xpui.zip Compress-Archive -Path $env:APPDATA\Spotify\Apps\temporary\xpui.js -Update -DestinationPath $env:APPDATA\Spotify\Apps\xpui.zip
}
# Remove "Upgrade to premium" menu # Remove "Upgrade to premium" menu
$file_css = Get-Content $env:APPDATA\Spotify\Apps\temporary\xpui.css -Raw $file_css = Get-Content $env:APPDATA\Spotify\Apps\temporary\xpui.css -Raw
If (!($file_css -match 'patched by spotx')) {
$new_css = $file_css -replace 'table{border-collapse:collapse;border-spacing:0}', 'table{border-collapse:collapse;border-spacing:0}[target="_blank"]{display:none !important;}' $new_css = $file_css -replace 'table{border-collapse:collapse;border-spacing:0}', 'table{border-collapse:collapse;border-spacing:0}[target="_blank"]{display:none !important;}'
Set-Content -Path $env:APPDATA\Spotify\Apps\temporary\xpui.css -Force -Value $new_css Set-Content -Path $env:APPDATA\Spotify\Apps\temporary\xpui.css -Force -Value $new_css
add-content -Path $env:APPDATA\Spotify\Apps\temporary\xpui.css -Value '/* Patched by SpotX */' -passthru | Out-Null
$contentcss = [System.IO.File]::ReadAllText("$env:APPDATA\Spotify\Apps\temporary\xpui.css") $contentcss = [System.IO.File]::ReadAllText("$env:APPDATA\Spotify\Apps\temporary\xpui.css")
$contentcss = $contentcss.Trim() $contentcss = $contentcss.Trim()
[System.IO.File]::WriteAllText("$env:APPDATA\Spotify\Apps\temporary\xpui.css", $contentcss) [System.IO.File]::WriteAllText("$env:APPDATA\Spotify\Apps\temporary\xpui.css", $contentcss)
Compress-Archive -Path $env:APPDATA\Spotify\Apps\temporary\xpui.css -Update -DestinationPath $env:APPDATA\Spotify\Apps\xpui.zip Compress-Archive -Path $env:APPDATA\Spotify\Apps\temporary\xpui.css -Update -DestinationPath $env:APPDATA\Spotify\Apps\xpui.zip
}
Rename-Item -path $env:APPDATA\Spotify\Apps\xpui.zip -NewName $env:APPDATA\Spotify\Apps\xpui.spa Rename-Item -path $env:APPDATA\Spotify\Apps\xpui.zip -NewName $env:APPDATA\Spotify\Apps\xpui.spa
Remove-item $env:APPDATA\Spotify\Apps\temporary -Recurse Remove-item $env:APPDATA\Spotify\Apps\temporary -Recurse
@@ -171,27 +205,41 @@ $Shortcut.Save()
} }
# Block updates # Block updates
$ErrorActionPreference = 'SilentlyContinue' # Команда гасит легкие ошибки
$update_directory = Test-Path -Path $env:LOCALAPPDATA\Spotify $update_directory = Test-Path -Path $env:LOCALAPPDATA\Spotify
$update_directory_file = Test-Path -Path $env:LOCALAPPDATA\Spotify\Update $update_directory_file = Test-Path -Path $env:LOCALAPPDATA\Spotify\Update
$migrator_bak = Test-Path -Path $env:APPDATA\Spotify\SpotifyMigrator.bak $migrator_bak = Test-Path -Path $env:APPDATA\Spotify\SpotifyMigrator.bak
$migrator_exe = Test-Path -Path $env:APPDATA\Spotify\SpotifyMigrator.exe $migrator_exe = Test-Path -Path $env:APPDATA\Spotify\SpotifyMigrator.exe
$Check_folder_file = Get-ItemProperty -Path $env:LOCALAPPDATA\Spotify\Update | SELECT Attributes
$ch = Read-Host -Prompt "Want to block updates ? (Y/N), Unlock again (U)" $ch = Read-Host -Prompt "Want to block updates ? (Y/N), Unlock again (U)"
if ($ch -eq 'y') { if ($ch -eq 'y') {
# Создать папку Spotify если ее нет
If (!($update_directory)) { If (!($update_directory)) {
New-Item -Path $env:LOCALAPPDATA -Name "Spotify" -ItemType "directory" | Out-Null New-Item -Path $env:LOCALAPPDATA -Name "Spotify" -ItemType "directory" | Out-Null
} }
If($update_directory_file) { #Удалить папку Update если она есть.
if ($Check_folder_file -match '\bDirectory\b') {
Remove-item $env:LOCALAPPDATA\Spotify\Update -Recurse -Force Remove-item $env:LOCALAPPDATA\Spotify\Update -Recurse -Force
} }
#Создать файл Update если его нет
if (!($Check_folder_file -match '\bSystem\b' -and $Check_folder_file -match '\bReadOnly\b')) {
New-Item -Path $env:LOCALAPPDATA\Spotify\ -Name "Update" -ItemType "file" -Value "STOPIT" | Out-Null New-Item -Path $env:LOCALAPPDATA\Spotify\ -Name "Update" -ItemType "file" -Value "STOPIT" | Out-Null
$file = Get-ItemProperty -Path $env:LOCALAPPDATA\Spotify\Update $file = Get-ItemProperty -Path $env:LOCALAPPDATA\Spotify\Update
$file.Attributes = "ReadOnly", "System" $file.Attributes = "ReadOnly", "System"
Write-Host "Updates blocked successfully" -ForegroundColor Green
}
If ($migrator_exe -and $migrator_bak) { If ($migrator_exe -and $migrator_bak) {
Remove-item $env:APPDATA\Spotify\SpotifyMigrator.bak -Recurse -Force Remove-item $env:APPDATA\Spotify\SpotifyMigrator.bak -Recurse -Force
Rename-Item -path $env:APPDATA\Spotify\SpotifyMigrator.exe -NewName $env:APPDATA\Spotify\SpotifyMigrator.bak Rename-Item -path $env:APPDATA\Spotify\SpotifyMigrator.exe -NewName $env:APPDATA\Spotify\SpotifyMigrator.bak
@@ -200,7 +248,39 @@ Rename-Item -path $env:APPDATA\Spotify\SpotifyMigrator.exe -NewName $env:APPDATA
elseif ($migrator_exe) { elseif ($migrator_exe) {
Rename-Item -path $env:APPDATA\Spotify\SpotifyMigrator.exe -NewName $env:APPDATA\Spotify\SpotifyMigrator.bak Rename-Item -path $env:APPDATA\Spotify\SpotifyMigrator.exe -NewName $env:APPDATA\Spotify\SpotifyMigrator.bak
} }
Write-Host "Updates blocked successfully" -ForegroundColor Green
if ($Check_folder_file -match '\bSystem\b' -and $Check_folder_file -match '\bReadOnly\b' -and $migrator_bak ) {
$ch = Read-Host -Prompt 'Wow, your updates are already blocked, Do you want to delete ? (Y/N)'
if ($ch -eq 'y') {
If ($update_directory_file) {
Remove-item $env:LOCALAPPDATA\Spotify\Update -Recurse -Force
}
If ($migrator_bak -and $migrator_exe ) {
Remove-item $env:APPDATA\Spotify\SpotifyMigrator.bak -Recurse -Force
}
elseif ($migrator_bak) {
Rename-Item -path $env:APPDATA\Spotify\SpotifyMigrator.bak -NewName $env:APPDATA\Spotify\SpotifyMigrator.exe
}
Write-Host "Updates unlocked" -ForegroundColor Green
}
if ($ch -eq 'n') {
Write-Host "installation completed" -ForegroundColor Green
}
else {
Write-Host "Oops, unsuccessful" -ForegroundColor Red
Write-Host "installation completed" -ForegroundColor Green
}
}
} }
elseif ($ch -eq 'u') { elseif ($ch -eq 'u') {
@@ -217,8 +297,8 @@ Write-Host "Updates unlocked" -ForegroundColor Green
} }
# automatic cache clearing
# automatic cache clearing
$ch = Read-Host -Prompt "Want to set up automatic cache cleanup? (Y/N) Delete script (U)" $ch = Read-Host -Prompt "Want to set up automatic cache cleanup? (Y/N) Delete script (U)"
@@ -301,8 +381,8 @@ $Shortcut.IconLocation = "$env:APPDATA\Spotify\Spotify.exe"
$Shortcut.TargetPath = $source $Shortcut.TargetPath = $source
$Shortcut.Save() $Shortcut.Save()
$ch = Read-Host -Prompt "Files that have not been used for more than xx days will be deleted. $ch = Read-Host -Prompt "Cache files that have not been used for more than XX days will be deleted.
Please enter the number of days (from 1 to 100)" Enter the number of days from 1 to 100"
if ($ch -match "^[1-9][0-9]?$|^100$") { if ($ch -match "^[1-9][0-9]?$|^100$") {
$file_cache_spotify_ps1 = Get-Content $env:APPDATA\Spotify\cache-spotify.ps1 -Raw $file_cache_spotify_ps1 = Get-Content $env:APPDATA\Spotify\cache-spotify.ps1 -Raw
$new_file_cache_spotify_ps1 = $file_cache_spotify_ps1 -replace 'seven', $ch -replace '-7', - $ch $new_file_cache_spotify_ps1 = $file_cache_spotify_ps1 -replace 'seven', $ch -replace '-7', - $ch
@@ -316,8 +396,8 @@ exit
} }
if (!($ch -match "^[1-9][0-9]?$|^100$")) { if (!($ch -match "^[1-9][0-9]?$|^100$")) {
$ch = Read-Host -Prompt "Oops, bad luck, let's try again $ch = Read-Host -Prompt "Oops, bad luck, let's try again
Files that have not been used for more than xx days will be deleted. Cache files that have not been used for more than XX days will be deleted.
Please enter the number of days (from 1 to 100)" Enter the number of days from 1 to 100"
if ($ch -match "^[1-9][0-9]?$|^100$") { if ($ch -match "^[1-9][0-9]?$|^100$") {
$file_cache_spotify_ps1 = Get-Content $env:APPDATA\Spotify\cache-spotify.ps1 -Raw $file_cache_spotify_ps1 = Get-Content $env:APPDATA\Spotify\cache-spotify.ps1 -Raw
$new_file_cache_spotify_ps1 = $file_cache_spotify_ps1 -replace 'seven', $ch -replace '-7', - $ch $new_file_cache_spotify_ps1 = $file_cache_spotify_ps1 -replace 'seven', $ch -replace '-7', - $ch
@@ -334,7 +414,7 @@ exit
else { else {
Write-Host "Unsuccessful again" -ForegroundColor Red Write-Host "Unsuccessful again" -ForegroundColor Red
Write-Host 'Please open the cache-spotify.ps1 file in this path "AppData\Roaming\Spotify" and enter your number of days' Write-Host 'Please open the cache-spotify.ps1 file in this path "AppData\Roaming\Spotify" and enter your number of days'
Write-Host "installation completed" -ForegroundColor Green Write-Host "Installation completed" -ForegroundColor Green
exit exit
} }
@@ -375,7 +455,6 @@ exit
else { else {
Write-Host "Oops, unsuccessful" -ForegroundColor Red Write-Host "Oops, unsuccessful" -ForegroundColor Red
Write-Host 'Please open the cache-spotify.ps1 file in this path "AppData\Roaming\Spotify" and enter your number of days' -ForegroundColor Red
Write-Host "installation completed" -ForegroundColor Green Write-Host "installation completed" -ForegroundColor Green
} }