From 2fb07f941b27d5c1e8acff952313c1b41d7e85a7 Mon Sep 17 00:00:00 2001 From: amd64fox Date: Wed, 26 Oct 2022 16:20:15 +0300 Subject: [PATCH] version bump to 1.1.97.962 - fixed minor patch bugs for 97 - fixed attribute for "past lyrics" --- Install.ps1 | 221 +++++++++++++++++++++++----------------------------- README.md | 2 +- 2 files changed, 98 insertions(+), 125 deletions(-) diff --git a/Install.ps1 b/Install.ps1 index 1093ab5..b9a1e4a 100644 --- a/Install.ps1 +++ b/Install.ps1 @@ -904,7 +904,10 @@ if (!($cache_on) -and !($cache_off)) { if ($exp_standart) { Write-Host ($lang).ExpStandart`n } if ($exp_spotify) { Write-Host ($lang).ExpSpotify`n } -function Helper($paramname, $addstring) { +$url = "https://raw.githubusercontent.com/SpotX-CLI/SpotX-commons/main/patches.json" +$webjson = (Invoke-WebRequest -UseBasicParsing -Uri $url).Content | ConvertFrom-Json +$ofline = Check_verison_clients -param2 "offline" +function Helper($paramname) { switch ( $paramname ) { "HtmlLicMin" { @@ -923,98 +926,51 @@ function Helper($paramname, $addstring) { "Lyrics-color" { # Static color for lyrics (xpui-routes-lyrics.css) - $pasttext = "#ffffff4a", "#ffffffb8", "#ffffff6b", "#E40909B3" - $current = "#ffffffc7", "#ffffffc7", "#ffffffc7", "#C2C2C2" - $next = "#ffffff4a", "#322319", "#2e080b", "#CA861A" - $hover = "#ffffffc7", "#ffffffc7", "#ffffffc7", "#0FD40F" - $background = "#121212", "#956b4b", "#c62736f2", "#121212" - $maxmatch = "#ffffff94", "#322319", "#2e080b", "#C2C2C2" + $webjson.others.lyricscolor.replace[0] = '$1' + $webjson.others.lyricscolor.theme.$lyrics_stat.pasttext + $webjson.others.lyricscolor.replace[1] = '$1' + $webjson.others.lyricscolor.theme.$lyrics_stat.current + $webjson.others.lyricscolor.replace[2] = '$1' + $webjson.others.lyricscolor.theme.$lyrics_stat.next + $webjson.others.lyricscolor.replace[3] = '$1' + $webjson.others.lyricscolor.theme.$lyrics_stat.hover + $webjson.others.lyricscolor.replace[4] = $webjson.others.lyricscolor.theme.$lyrics_stat.background + $webjson.others.lyricscolor.replace[5] = '$1' + $webjson.others.lyricscolor.theme.$lyrics_stat.maxmatch - switch ($lyrics_stat) { - 1 { - $pasttextR = $pasttext[0]; $currentR = $current[0]; $nextR = $next[0]; $hoverR = $hover[0]; $backgroundR = $background[0]; $maxmatchR = $maxmatch[0] - } - 2 { - $pasttextR = $pasttext[1]; $currentR = $current[1]; $nextR = $next[1]; $hoverR = $hover[1]; $backgroundR = $background[1]; $maxmatchR = $maxmatch[1] - } - 3 { - $pasttextR = $pasttext[2]; $currentR = $current[2]; $nextR = $next[2]; $hoverR = $hover[2]; $backgroundR = $background[2]; $maxmatchR = $maxmatch[2] - } - 4 { - $pasttextR = $pasttext[3]; $currentR = $current[3]; $nextR = $next[3]; $hoverR = $hover[3]; $backgroundR = $background[3]; $maxmatchR = $maxmatch[3] - } - Default { - $pasttextR = $pasttext[0]; $currentR = $current[0]; $nextR = $next[0]; $hoverR = $hover[0]; $backgroundR = $background[0]; $maxmatchR = $maxmatch[0] - } - - } - $lyrics = @{ - pasttext = '(H2J92dVdr0ykdOX5azL1{color:)var\(--lyrics-color-active\)', "`$1$pasttextR" - current = '((TDPh45khCfG51fNwNIiw|E64X_eoy6xsJmDdKKHja){color:)var\(--lyrics-color-active\)', "`$1$currentR" - next = '(NHVfxGs2HwmI_fly2JC4{color:)var\(--lyrics-color-inactive\)' , "`$1$nextR" - hover = '(NHVfxGs2HwmI_fly2JC4:hover{color:)var\(--lyrics-color-active\)' , "`$1$hoverR" - background = 'var\(--lyrics-color-background\)', $backgroundR - maxmatch = '(iq4cgi0YEKr6DGaTtzUj{color:)var\(--lyrics-color-inactive\)', "`$1$maxmatchR" - } - $n = ($lang).NoVariable6 - $contents = $lyrics + $contents = "lyricscolor" + $json = $webjson.others $paramdata = $xpui_lyrics } "Discriptions" { # Add discriptions (xpui-desktop-modals.js) - $discript = @{ - Log = '((..createElement|children:\(.{1,7}\))\(....,{source:).....get\("about.copyright",.\),paragraphClassName:.}\)', "`$1`"

More about SpotX

Github
FAQ
Telegram channel
Create an issue report

DISCLAIMER

SpotX is a modified version of the official Spotify client, provided as an evaluation version, you use it at your own risk.`"})" - } $n = ($lang).NoVariable6 - $contents = $discript + $contents = "discriptions" + $json = $webjson.others $paramdata = $xpui_desktop_modals } "OffadsonFullscreen" { - $offadson_fullscreen = @{ - # Removing a billboard on the homepage - Bilboard = '.(\?\[.{1,6}[a-zA-Z].leaderboard,)', 'false$1' - # Removing audio ads - AudioAds = '(case .:)return this.enabled=...+?(;case .:this.subscription=this.audioApi).+?(;case .)', '$1$2.cosmosConnector.increaseStreamTime(-100000000000)$3' - # Removing an empty block - EmptyBlockAd = 'adsEnabled:!0', 'adsEnabled:!1' - # Fullscreen act., removing upgrade menu, button - FullScreenAd = '(return|.=.=>)"free"===(.+?)(return|.=.=>)"premium"===', '$1"premium"===$2$3"free"===' - # Disabling a playlist sponsor - PlaylistSponsorsOff = 'allSponsorships', '' - # Connect unlock test for 1.1.91 > - ConnectUnlock = ' connect-device-list-item--disabled', '' - ConnectUnlock2 = 'connect-picker.unavailable-to-control', 'spotify-connect' - ConnectUnlock3 = '(className:.,disabled:)(..)', '$1false' - ConnectUnlock4 = 'return (..isDisabled)(\?(..createElement|\(.{1,10}\))\(..,)', 'return false$2' - # Removing the track download quality switch - DownloadQuality = '(\(.,..jsxs\)\(.{1,3}|..createElement\(.{1,4}),{filterMatchQuery:.{1,6}get\("desktop.settings.downloadQuality.title.+?(children:.{1,2}\(.,.\).+?,|xe\(.,.\).+?,)', '' - } - if ($bts) { - $offadson_fullscreen.Remove('Bilboard'), $offadson_fullscreen.Remove('AudioAds') - } + + if ($bts) { $webjson.free.psobject.properties.remove('bilboard'), $webjson.free.psobject.properties.remove('audioads') } + $webjson.free.psobject.properties.remove('submenudownload'), $webjson.free.psobject.properties.remove('veryhighstream'), $webjson.free.psobject.properties.remove('downloadicon') + $n = ($lang).NoVariable2 - $contents = $offadson_fullscreen + $contents = $webjson.free.psobject.properties.name + $json = $webjson.free $paramdata = $xpui_js } "OffPodcasts" { # Turn off podcasts - $podcasts_off = @{ - PodcastsOff = '(\!Array.isArray\(.\)\|\|.===..length)', "`$1||e.children[0].key.includes('episode')||e.children[0].key.includes('show')" - } $n = ($lang).NoVariable5 - $contents = $podcasts_off + if ($ofline -le "1.1.96.785") { $podcats = "podcastsoff2" } + if ($ofline -ge "1.1.97.952") { $podcats = "podcastsoff3" } + $contents = $podcats + $json = $webjson.others $paramdata = $xpui_homev2 } "OffRujs" { # Remove all languages except En and Ru from xpui.js - $rus_js = @{ - OffRujs = '(\[a\.go\.en,)(.+?\])', '$1a.go.ru]' - } $n = ($lang).NoVariable2 - $contents = $rus_js + $contents = "offrujs" + $json = $webjson.others $paramdata = $xpui_js } "RuTranslate" { @@ -1120,69 +1076,86 @@ function Helper($paramname, $addstring) { "ExpFeature" { # Experimental Feature Standart - $exp_features = @{ - LikedArtistPage = '(Enable Liked Songs section on Artist page",default:)(!1)', '$1true' - BlockUsers = '(Enable block users feature in clientX",default:)(!1)', '$1true' - Quicksilver = '(Enables quicksilver in-app messaging modal",default:)(!0)', '$1false' - IgnorInRec = '(Enable Ignore In Recommendations for desktop and web",default:)(!1)', '$1true' - Prod = '(Enable Playlist Permissions flows for Prod",default:)(!1)', '$1true' - ShowingBalloons = '(Enable showing balloons on album release date anniversaries",default:)(!1)', '$1true' - EnhanceLiked = '(Enable Enhance Liked Songs UI and functionality",default:)(!1)', '$1true' - EnhancePlaylist = '(Enable Enhance Playlist UI and functionality for end-users",default:)(!1)', '$1true' - DisographyArtist = '(Enable a condensed disography shelf on artist pages",default:)(!1)', '$1true' - LyricsMatch = '(Enable Lyrics match labels in search results",default:)(!1)', '$1true' - Equalizer = '(Enable audio equalizer for Desktop and Web Player",default:)(!1)', '$1true' - DevicePickerOld = '(Enable showing a new and improved device picker UI",default:)(!.)', '$1false' - NewHome = '(Enable the new home structure and navigation",values:.,default:)(..DISABLED)', '$1true' - MadeForYou = '(Show "Made For You" entry point in the left sidebar.,default:)(!1)', '$1true' - ClearCache = '(Enable option in settings to clear all downloads",default:)(!1)', '$1true' - CarouselsonHome = '(Use carousels on Home",default:)(!1)', '$1true' - LeftSidebar = '(Enable Your Library X view of the left sidebar",default:)(!1)', '$1true' - LyricsEnabled = '(With this enabled, clients will check whether tracks have lyrics available",default:)(!1)', '$1true' - PlaylistCreation = '(Enables new playlist creation flow in Web Player and DesktopX",default:)(!1)', '$1true' - SearchBox = '(Adds a search box so users are able to filter playlists when trying to add songs to a playlist using the contextmenu",default:)(!1)', '$1true' - # "Create similar playlist" menu is activated for someone else's playlists - SimilarPlaylist = ',(.\.isOwnedBySelf&&)((\(.{0,11}\)|..createElement)\(.{1,3}Fragment,.+?{(uri:.|spec:.),(uri:.|spec:.).+?contextmenu.create-similar-playlist"\)}\),)' , ',$2$1' - } - $ofline = Check_verison_clients -param2 "offline" - if ($enhance_like_off) { $exp_features.Remove('EnhanceLiked') } - if ($enhance_playlist_off) { $exp_features.Remove('EnhancePlaylist') } - if ($new_artist_pages_off) { $exp_features.Remove('DisographyArtist') } - if ($new_lyrics_off) { $exp_features.Remove('LyricsMatch') } - if ($equalizer_off) { $exp_features.Remove('Equalizer') } - if (!($device_picker_old)) { $exp_features.Remove('DevicePickerOld') } - if ($made_for_you_off -or $ofline -ge "1.1.96.783") { $exp_features.Remove('MadeForYou') } + $rem = $webjson.exp.psobject.properties + + if ($enhance_like_off) { $rem.remove('enhanceliked') } + if ($enhance_playlist_off) { $rem.remove('enhanceplaylist') } + if ($new_artist_pages_off) { $rem.remove('disographyartist') } + if ($new_lyrics_off) { $rem.remove('lyricsmatch') } + if ($equalizer_off) { $rem.remove('equalizer') } + if (!($device_picker_old)) { $rem.remove('devicepickerold') } + if ($made_for_you_off -or $ofline -ge "1.1.96.783") { $rem.remove('madeforyou') } if ($exp_standart) { - $exp_features.Remove('EnhanceLiked'), $exp_features.Remove('EnhancePlaylist'), - $exp_features.Remove('DisographyArtist'), $exp_features.Remove('LyricsMatch'), - $exp_features.Remove('Equalizer'), $exp_features.Remove('DevicePicker'), - $exp_features.Remove('NewHome'), $exp_features.Remove('MadeForYou'), - $exp_features.Remove('SimilarPlaylist'), $exp_features.Remove('LeftSidebar') + $rem.remove('enhanceliked'), $rem.remove('enhanceplaylist'), + $rem.remove('disographyartist'), $rem.remove('lyricsmatch'), + $rem.remove('equalizer'), $rem.remove('devicepicker'), + $rem.remove('newhome'), $rem.remove('madeforyou'), + $rem.remove('similarplaylist'), $rem.remove('leftsidebar') } - if (!($left_sidebar_on) -or $ofline -le "1.1.94.872") { $exp_features.Remove('LeftSidebar') } - if ($navalt_off) { $exp_features.Remove('NewHome'), $exp_features.Remove('LeftSidebar') } + if (!($left_sidebar_on) -or $ofline -le "1.1.94.872") { $rem.remove('leftsidebar') } + if ($navalt_off) { $rem.remove('newhome'), $rem.remove('leftsidebar') } if ($ofline -ge "1.1.94.864") { - $exp_features.Remove('LyricsEnabled'), $exp_features.Remove('PlaylistCreation'), - $exp_features.Remove('SearchBox') + $rem.remove('lyricsenabled'), $rem.remove('playlistcreat'), + $rem.remove('searchbox') } - if ($ofline -le "1.1.93.896") { $exp_features.Remove('NewHome') } + if ($ofline -lt "1.1.90.859" -or $ofline -gt "1.1.95.893") { $rem.remove('devicepicker') } + if ($ofline -le "1.1.93.896") { $rem.remove('newhome') } $n = ($lang).NoVariable2 - $contents = $exp_features + $contents = $webjson.exp.psobject.properties.name + $json = $webjson.exp $paramdata = $xpui_js } } - $contents.Keys | Sort-Object | ForEach-Object { - - if ($paramdata -match $contents.$PSItem[0]) { - $paramdata = $paramdata -replace $contents.$PSItem[0], $contents.$PSItem[1] - } - else { - if (!($paramname -eq "RuTranslate") -or $err_ru) { - Write-Host ($lang).NoVariable"" -ForegroundColor red -NoNewline - Write-Host "`$contents.$PSItem"$n + if ($paramname -ne "HtmlLicMin" -or $paramname -ne "RuTranslate") { + + $contents | ForEach-Object { + + if ($json.$PSItem.match.Count -gt 1) { + $count = $json.$PSItem.match.Count - 1 + $numbers = 0 + While ($numbers -le $count) { + + if ($paramdata -match $json.$PSItem.match[$numbers]) { + $paramdata = $paramdata -replace $json.$PSItem.match[$numbers], $json.$PSItem.replace[$numbers] + } + else { + + Write-Host ($lang).NoVariable"" -ForegroundColor red -NoNewline + Write-Host "`$contents.$PSItem $numbers"$n + } + $numbers++ + } } - } + if ($json.$PSItem.match.Count -eq 1) { + if ($paramdata -match $json.$PSItem.match) { + $paramdata = $paramdata -replace $json.$PSItem.match, $json.$PSItem.replace + } + else { + + if (!($paramname -eq "RuTranslate") -or $err_ru) { + + Write-Host ($lang).NoVariable"" -ForegroundColor red -NoNewline + Write-Host "`$contents.$PSItem"$n + } + } + } + } + } + if ($paramname -eq "HtmlLicMin" -or $paramname -eq "RuTranslate") { + $contents.Keys | Sort-Object | ForEach-Object { + + if ($paramdata -match $contents.$PSItem[0]) { + $paramdata = $paramdata -replace $contents.$PSItem[0], $contents.$PSItem[1] + } + else { + if (!($paramname -eq "RuTranslate") -or $err_ru) { + + Write-Host ($lang).NoVariable"" -ForegroundColor red -NoNewline + Write-Host "`$contents.$PSItem"$n + } + } + } } $paramdata } @@ -1794,4 +1767,4 @@ if ($cache_install) { if ($start_spoti) { Start-Process -WorkingDirectory $spotifyDirectory -FilePath $spotifyExecutable } -Write-Host ($lang).InstallComplete`n -ForegroundColor Green +Write-Host ($lang).InstallComplete`n -ForegroundColor Green \ No newline at end of file diff --git a/README.md b/README.md index d8f27bc..a90e3ca 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@

System requirements

- OS: Windows 7-11 -- Spotify: Recommended official version [1.1.96.785](https://cutt.ly/8EH6NuH) +- Spotify: Recommended official version [1.1.97.962](https://cutt.ly/8EH6NuH) - For Windows Desktop only (Microsoft store version is not suitable). - PowerShell: 3 or higher