mirror of
https://github.com/SpotX-Official/SpotX.git
synced 2026-06-19 13:50:04 +10:00
Update
- migration to Spotify version 1.1.94.864 - fixed disabling podcasts for main - navalt theme enabled by default - added a new incoming parameter(navalt_off) to return to the old interface - enabled carusel for home page - correction of Russian translation
This commit is contained in:
@@ -76,6 +76,7 @@ body:
|
|||||||
NoVariable2 = "in xpui.js"
|
NoVariable2 = "in xpui.js"
|
||||||
NoVariable3 = "in licenses.html"
|
NoVariable3 = "in licenses.html"
|
||||||
NoVariable4 = "in html"
|
NoVariable4 = "in html"
|
||||||
|
NoVariable5 = "in home-v2.js"
|
||||||
ModSpoti = "Patching Spotify..."
|
ModSpoti = "Patching Spotify..."
|
||||||
Error = "Error"
|
Error = "Error"
|
||||||
FileLocBroken = "Location of Spotify files is broken, uninstall the client and run the script again"
|
FileLocBroken = "Location of Spotify files is broken, uninstall the client and run the script again"
|
||||||
|
|||||||
+117
-109
@@ -69,11 +69,8 @@ param
|
|||||||
[Parameter(HelpMessage = 'Enable showing a new and improved device picker UI.')]
|
[Parameter(HelpMessage = 'Enable showing a new and improved device picker UI.')]
|
||||||
[switch]$device_new_off,
|
[switch]$device_new_off,
|
||||||
|
|
||||||
[Parameter(HelpMessage = 'Enabled the new home structure and navigation.')]
|
[Parameter(HelpMessage = 'Disable the new home structure and navigation.')]
|
||||||
[switch]$enablenavalt,
|
[switch]$navalt_off,
|
||||||
|
|
||||||
#[Parameter(HelpMessage = 'Connect unlock test.')]
|
|
||||||
#[switch]$testconnect,
|
|
||||||
|
|
||||||
[Parameter(HelpMessage = 'Do not create desktop shortcut.')]
|
[Parameter(HelpMessage = 'Do not create desktop shortcut.')]
|
||||||
[switch]$no_shortcut,
|
[switch]$no_shortcut,
|
||||||
@@ -842,7 +839,7 @@ if (!($cache_on) -and !($cache_off)) {
|
|||||||
if ($exp_standart) { Write-Host ($lang).ExpStandart`n }
|
if ($exp_standart) { Write-Host ($lang).ExpStandart`n }
|
||||||
if ($exp_spotify) { Write-Host ($lang).ExpSpotify`n }
|
if ($exp_spotify) { Write-Host ($lang).ExpSpotify`n }
|
||||||
|
|
||||||
function Helper($paramname) {
|
function Helper($paramname, $addstring) {
|
||||||
|
|
||||||
switch ( $paramname ) {
|
switch ( $paramname ) {
|
||||||
"HtmlLicMin" {
|
"HtmlLicMin" {
|
||||||
@@ -854,10 +851,27 @@ function Helper($paramname) {
|
|||||||
HtmlLicMin4 = '(?m)(^\s*\r?\n)', ''
|
HtmlLicMin4 = '(?m)(^\s*\r?\n)', ''
|
||||||
HtmlLicMin5 = '\r?\n(?!\(1|\d)', ''
|
HtmlLicMin5 = '\r?\n(?!\(1|\d)', ''
|
||||||
}
|
}
|
||||||
$n = ($lang).NoVariable3
|
$n = ($lang).NoVariable6
|
||||||
$contents = $html_lic_min
|
$contents = $html_lic_min
|
||||||
$paramdata = $xpuiContents_html
|
$paramdata = $xpuiContents_html
|
||||||
}
|
}
|
||||||
|
"Discriptions" {
|
||||||
|
# Add discriptions (xpui-desktop-modals.js)
|
||||||
|
$about = "`$1`"<h3>More about SpotX</h3>`"}),`$1`'<a `
|
||||||
|
href=`"https://github.com/amd64fox/SpotX`">Github</a>`'}),`$1`'<a `
|
||||||
|
href=`"https://github.com/amd64fox/SpotX/discussions/111`">FAQ</a>'}),`$1`'<a `
|
||||||
|
href=`"https://t.me/spotify_windows_mod`">Telegram channel</a>`'}),`$1`'<a `
|
||||||
|
href=`"https://github.com/amd64fox/SpotX/issues/new?assignees=&labels=%E2%9D%8C+bug&template=bug_report.yml`">Create `
|
||||||
|
an issue report</a>`'}),`$1`"<br>`"}),`$1`"<h4>DISCLAIMER</h4>`"}),`$1`"SpotX is a modified version of the official Spotify client, provided as an evaluation version, you use it at your own risk.`"})"
|
||||||
|
|
||||||
|
$discript = @{
|
||||||
|
Log = '(..createElement\(....,{source:).....get\("about.copyright",.\),paragraphClassName:.}\)', $about
|
||||||
|
}
|
||||||
|
$n = ($lang).NoVariable2
|
||||||
|
$contents = $discript
|
||||||
|
$paramdata = $xpui_desktop_modals
|
||||||
|
|
||||||
|
}
|
||||||
"OffadsonFullscreen" {
|
"OffadsonFullscreen" {
|
||||||
$offadson_fullscreen = @{
|
$offadson_fullscreen = @{
|
||||||
# Removing a billboard on the homepage
|
# Removing a billboard on the homepage
|
||||||
@@ -881,40 +895,24 @@ function Helper($paramname) {
|
|||||||
if ($bts) {
|
if ($bts) {
|
||||||
$offadson_fullscreen.Remove('Bilboard'), $offadson_fullscreen.Remove('AidioAds')
|
$offadson_fullscreen.Remove('Bilboard'), $offadson_fullscreen.Remove('AidioAds')
|
||||||
}
|
}
|
||||||
#if (!($testconnect)) {
|
|
||||||
# $offadson_fullscreen.Remove('ConnectUnlock'), $offadson_fullscreen.Remove('ConnectUnlock2'),
|
|
||||||
# $offadson_fullscreen.Remove('ConnectUnlock3'), $offadson_fullscreen.Remove('ConnectUnlock4')
|
|
||||||
#}
|
|
||||||
$n = ($lang).NoVariable2
|
$n = ($lang).NoVariable2
|
||||||
$contents = $offadson_fullscreen
|
$contents = $offadson_fullscreen
|
||||||
$paramdata = $xpui_js
|
$paramdata = $xpui_js
|
||||||
}
|
}
|
||||||
"OffPodcasts" {
|
"OffPodcasts" {
|
||||||
# Turn off podcasts
|
# Turn off podcasts
|
||||||
$sct1 = "spotify:section:0JQ5DAnM3wGh0gz1MXnu9e"
|
|
||||||
$sct2 = "spotify:section:0JQ5DAob0KawTDUxBEiEIF"
|
|
||||||
$sct3 = "spotify:section:0JQ5DAnM3wGh0gz1MXnu3L"
|
|
||||||
$sct4 = "spotify:section:0JQ5IMCbQBLnpmAFclBLmI"
|
|
||||||
$podcasts_off = @{
|
$podcasts_off = @{
|
||||||
PodcastsOff = '(Array.isArray\(.\)&&0===..length)', "`$1||l===`"$sct1`"||l===`"$sct2`"||l===`"$sct3`"||l===`"$sct4`""
|
PodcastsOff = '(\!Array.isArray\(.\)\|\|.===..length)', "`$1||e.children[0].key.includes('episode')||e.children[0].key.includes('show')"
|
||||||
PodcastsOff2 = '(.=..UBIWrapper;)(return)', "`$1 if(n===`"$sct1`"||n===`"$sct2`"||n===`"$sct3`"||n===`"$sct4`") return null; `$2"
|
|
||||||
}
|
}
|
||||||
$n = ($lang).NoVariable2
|
$n = ($lang).NoVariable5
|
||||||
$contents = $podcasts_off
|
$contents = $podcasts_off
|
||||||
$paramdata = $xpui_js
|
$paramdata = $xpui_homev2
|
||||||
}
|
}
|
||||||
"OffRujs" {
|
"OffRujs" {
|
||||||
# Remove all languages except En and Ru from xpui.js
|
# Remove all languages except En and Ru from xpui.js
|
||||||
$rus_js = @{
|
$rus_js = @{
|
||||||
OffRujs = '(\[a\.go\.en,)(.+?\])', '$1a.go.ru]'
|
OffRujs = '(\[a\.go\.en,)(.+?\])', '$1a.go.ru]'
|
||||||
# temporary translation
|
|
||||||
clear = 'Remove all downloads', 'Удалить все загрузки'
|
|
||||||
clear2 = 'Clear cache', 'Очистка кеша'
|
|
||||||
clear3 = 'Temporary files that Spotify stores for a faster experience on slow networks', 'Временные файлы, которые Spotify хранит для более быстрой работы в медленных сетях'
|
|
||||||
clear4 = 'Content you have downloaded for offline use', 'Контент, который вы скачали для автономного использования'
|
|
||||||
clear5 = 'null,"Storage"', 'null,"Хранилище"'
|
|
||||||
clear6 = '"Downloads:"', '"Загрузки:"'
|
|
||||||
clear7 = '"Cache:"', '"Кеш:"'
|
|
||||||
}
|
}
|
||||||
$n = ($lang).NoVariable2
|
$n = ($lang).NoVariable2
|
||||||
$contents = $rus_js
|
$contents = $rus_js
|
||||||
@@ -971,11 +969,20 @@ function Helper($paramname) {
|
|||||||
AlbumReleaseMany = '"many": "\\"%name%\\" was released %years% years ago this week!"', '"many": "\"%name%\" был выпущен %years% лет назад на этой неделе!"'
|
AlbumReleaseMany = '"many": "\\"%name%\\" was released %years% years ago this week!"', '"many": "\"%name%\" был выпущен %years% лет назад на этой неделе!"'
|
||||||
AlbumReleaseOther = '"other": "\\"%name%\\" was released %years% years ago this week!"', '"other": "\"%name%\" был выпущен %years% года назад на этой неделе!"'
|
AlbumReleaseOther = '"other": "\\"%name%\\" was released %years% years ago this week!"', '"other": "\"%name%\" был выпущен %years% года назад на этой неделе!"'
|
||||||
Speed = '"Speed [{]0[}]×"', '"Скорость {0}×"'
|
Speed = '"Speed [{]0[}]×"', '"Скорость {0}×"'
|
||||||
AudiobookFree = '"This audiobook is free"', '"Эта аудиокнига бесплатна"'
|
|
||||||
AudiobookGet = '"Get"', '"Получить"'
|
AudiobookGet = '"Get"', '"Получить"'
|
||||||
AudiobookBy = '"Buy"', '"Купить"'
|
AudiobookBy = '"Buy"', '"Купить"'
|
||||||
|
CloseModal = '"Close modal"', '"Закрыть"'
|
||||||
|
RatinggoToApp = '"Head over to Spotify on your mobile phone to rate this title."', '"Зайдите в Spotify на своем мобильном телефоне, чтобы оценить этот заголовок."'
|
||||||
|
Freexplanation = '"Tap Get to add it to Your Library and it will be ready for listening in a few seconds."', '"Нажмите «Получить», чтобы добавить его в свою библиотеку, и через несколько секунд он будет готов для прослушивания."'
|
||||||
|
Confidential = '"This is a highly confidential test. Do not share details of this test or any song you create outside of Spotify."', '"Это очень конфиденциальный тест. Не делитесь подробностями этого теста или какой-либо песни, которую вы создаете, за пределами Spotify."'
|
||||||
|
LoveAudiobook = '"Love this audiobook\? Unlock all chapters first"', '"Нравится эта аудиокнига? Сначала разблокируйте все главы"'
|
||||||
|
FullAudiobook = '"You can listen to this chapter after purchasing the full audiobook."', '"Вы можете прослушать эту главу после покупки полной аудиокниги."'
|
||||||
|
PurchaseAudiobook = '"Purchase audiobook"', '"Купить аудиокнигу"'
|
||||||
|
Cache = '"Cache:"', '"Кеш:"'
|
||||||
|
Downloads = '"Downloads:"', '"Загрузки:"'
|
||||||
|
|
||||||
}
|
}
|
||||||
$n = ($lang).NoVariable5
|
$n = ($lang).NoVariable7
|
||||||
$contents = $ru_translate
|
$contents = $ru_translate
|
||||||
$paramdata = $xpui_ru
|
$paramdata = $xpui_ru
|
||||||
}
|
}
|
||||||
@@ -983,59 +990,58 @@ function Helper($paramname) {
|
|||||||
"ExpFeature" {
|
"ExpFeature" {
|
||||||
# Experimental Feature Standart
|
# Experimental Feature Standart
|
||||||
$exp_features = @{
|
$exp_features = @{
|
||||||
ExpFeatures1 = '(Enable Liked Songs section on Artist page",default:)(!1)', '$1!0'
|
LikedArtistPage = '(Enable Liked Songs section on Artist page",default:)(!1)', '$1true'
|
||||||
ExpFeatures2 = '(Enable block users feature in clientX",default:)(!1)', '$1!0'
|
BlockUsers = '(Enable block users feature in clientX",default:)(!1)', '$1true'
|
||||||
ExpFeatures3 = '(Enables quicksilver in-app messaging modal",default:)(!0)', '$1!1'
|
Quicksilver = '(Enables quicksilver in-app messaging modal",default:)(!0)', '$1false'
|
||||||
ExpFeatures4 = '(With this enabled, clients will check whether tracks have lyrics available",default:)(!1)', '$1!0'
|
IgnorInRec = '(Enable Ignore In Recommendations for desktop and web",default:)(!1)', '$1true'
|
||||||
ExpFeatures5 = '(Enables new playlist creation flow in Web Player and DesktopX",default:)(!1)', '$1!0'
|
Prod = '(Enable Playlist Permissions flows for Prod",default:)(!1)', '$1true'
|
||||||
ExpFeatures6 = '(Adds a search box so users are able to filter playlists when trying to add songs to a playlist using the contextmenu",default:)(!1)', '$1!0'
|
ShowingBalloons = '(Enable showing balloons on album release date anniversaries",default:)(!1)', '$1true'
|
||||||
ExpFeatures7 = '(Enable Ignore In Recommendations for desktop and web",default:)(!1)', '$1!0'
|
EnhanceLiked = '(Enable Enhance Liked Songs UI and functionality",default:)(!1)', '$1true'
|
||||||
ExpFeatures8 = '(Enable Playlist Permissions flows for Prod",default:)(!1)', '$1!0'
|
EnhancePlaylist = '(Enable Enhance Playlist UI and functionality for end-users",default:)(!1)', '$1true'
|
||||||
ExpFeatures9 = '(Enable showing balloons on album release date anniversaries",default:)(!1)', '$1!0'
|
DisographyArtist = '(Enable a condensed disography shelf on artist pages",default:)(!1)', '$1true'
|
||||||
ExpFeatures10 = '(Enable Enhance Liked Songs UI and functionality",default:)(!1)', '$1!0'
|
LyricsMatch = '(Enable Lyrics match labels in search results",default:)(!1)', '$1true'
|
||||||
ExpFeatures11 = '(Enable Enhance Playlist UI and functionality for end-users",default:)(!1)', '$1!0'
|
Equalizer = '(Enable audio equalizer for Desktop and Web Player",default:)(!1)', '$1true'
|
||||||
ExpFeatures12 = '(Enable a condensed disography shelf on artist pages",default:)(!1)', '$1!0'
|
DevicePicker = '(Enable showing a new and improved device picker UI",default:)(!1)', '$1true'
|
||||||
ExpFeatures13 = '(Enable Lyrics match labels in search results",default:)(!1)', '$1!0'
|
NewHome = '(Enable the new home structure and navigation",values:.,default:)(..DISABLED)', '$1true'
|
||||||
ExpFeatures14 = '(Enable audio equalizer for Desktop and Web Player",default:)(!1)', '$1!0'
|
MadeForYou = '(Show "Made For You" entry point in the left sidebar.,default:)(!1)', '$1true'
|
||||||
ExpFeatures15 = '(Enable showing a new and improved device picker UI",default:)(!1)', '$1!0'
|
ClearCache = '(Enable option in settings to clear all downloads",default:)(!1)', '$1true'
|
||||||
ExpFeatures16 = '(Enable the new home structure and navigation",default:)(!1)', '$1!0'
|
CarouselsonHome = '(Use carousels on Home",default:)(!1)', '$1true'
|
||||||
ExpFeatures17 = '(Show "Made For You" entry point in the left sidebar.,default:)(!1)', '$1!0'
|
|
||||||
ExpFeatures18 = '(Enable option in settings to clear all downloads",default:)(!1)', '$1!0'
|
|
||||||
# "Create similar playlist" menu is activated for someone else's playlists
|
# "Create similar playlist" menu is activated for someone else's playlists
|
||||||
ExpFeatures19 = ',(.\.isOwnedBySelf&&)(..createElement\(..Fragment,null,..createElement\(.+?{(uri:.|spec:.),(uri:.|spec:.).+?contextmenu.create-similar-playlist"\)}\),)' , ',$2$1'
|
SimilarPlaylist = ',(.\.isOwnedBySelf&&)(..createElement\(..Fragment,null,..createElement\(.+?{(uri:.|spec:.),(uri:.|spec:.).+?contextmenu.create-similar-playlist"\)}\),)' , ',$2$1'
|
||||||
}
|
}
|
||||||
if ($enhance_like_off) { $exp_features.Remove('ExpFeatures10') }
|
if ($enhance_like_off) { $exp_features.Remove('EnhanceLiked') }
|
||||||
if ($enhance_playlist_off) { $exp_features.Remove('ExpFeatures11') }
|
if ($enhance_playlist_off) { $exp_features.Remove('EnhancePlaylist') }
|
||||||
if ($new_artist_pages_off) { $exp_features.Remove('ExpFeatures12') }
|
if ($new_artist_pages_off) { $exp_features.Remove('DisographyArtist') }
|
||||||
if ($new_lyrics_off) { $exp_features.Remove('ExpFeatures13') }
|
if ($new_lyrics_off) { $exp_features.Remove('LyricsMatch') }
|
||||||
if ($equalizer_off) { $exp_features.Remove('ExpFeatures14') }
|
if ($equalizer_off) { $exp_features.Remove('Equalizer') }
|
||||||
if ($device_new_off) { $exp_features.Remove('ExpFeatures15') }
|
if ($device_new_off) { $exp_features.Remove('DevicePicker') }
|
||||||
if (!($enablenavalt)) { $exp_features.Remove('ExpFeatures16') }
|
if ($navalt_off) { $exp_features.Remove('NewHome') }
|
||||||
if ($made_for_you_off) { $exp_features.Remove('ExpFeatures17') }
|
if ($made_for_you_off) { $exp_features.Remove('MadeForYou') }
|
||||||
if ($exp_standart) {
|
if ($exp_standart) {
|
||||||
$exp_features.Remove('ExpFeatures10'), $exp_features.Remove('ExpFeatures11'),
|
$exp_features.Remove('EnhanceLiked'), $exp_features.Remove('EnhancePlaylist'),
|
||||||
$exp_features.Remove('ExpFeatures12'), $exp_features.Remove('ExpFeatures13'),
|
$exp_features.Remove('DisographyArtist'), $exp_features.Remove('LyricsMatch'),
|
||||||
$exp_features.Remove('ExpFeatures14'), $exp_features.Remove('ExpFeatures15'),
|
$exp_features.Remove('Equalizer'), $exp_features.Remove('DevicePicker'),
|
||||||
$exp_features.Remove('ExpFeatures16'), $exp_features.Remove('ExpFeatures17'),
|
$exp_features.Remove('NewHome'), $exp_features.Remove('MadeForYou'),
|
||||||
$exp_features.Remove('ExpFeatures19')
|
$exp_features.Remove('SimilarPlaylist')
|
||||||
}
|
}
|
||||||
$n = ($lang).NoVariable2
|
$n = ($lang).NoVariable2
|
||||||
$contents = $exp_features
|
$contents = $exp_features
|
||||||
$paramdata = $xpui_js
|
$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 {
|
|
||||||
Write-Host ($lang).NoVariable"" -ForegroundColor red -NoNewline
|
|
||||||
Write-Host "`$contents.$PSItem"$n
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
$paramdata
|
$contents.Keys | Sort-Object | ForEach-Object {
|
||||||
|
|
||||||
|
if ($paramdata -match $contents.$PSItem[0]) {
|
||||||
|
$paramdata = $paramdata -replace $contents.$PSItem[0], $contents.$PSItem[1]
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Write-Host ($lang).NoVariable"" -ForegroundColor red -NoNewline
|
||||||
|
Write-Host "`$contents.$PSItem"$n
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$paramdata
|
||||||
}
|
}
|
||||||
|
|
||||||
Write-Host ($lang).ModSpoti`n
|
Write-Host ($lang).ModSpoti`n
|
||||||
@@ -1133,9 +1139,6 @@ if (Test-Path $xpui_js_patch) {
|
|||||||
$xpui_js = $reader.ReadToEnd()
|
$xpui_js = $reader.ReadToEnd()
|
||||||
$reader.Close()
|
$reader.Close()
|
||||||
|
|
||||||
# Turn off podcasts
|
|
||||||
if ($Podcast_off) { $xpui_js = Helper -paramname "OffPodcasts" }
|
|
||||||
|
|
||||||
# Full screen mode activation and removing "Upgrade to premium" menu, upgrade button, disabling a playlist sponsor
|
# Full screen mode activation and removing "Upgrade to premium" menu, upgrade button, disabling a playlist sponsor
|
||||||
if (!($premium)) { $xpui_js = Helper -paramname "OffadsonFullscreen" }
|
if (!($premium)) { $xpui_js = Helper -paramname "OffadsonFullscreen" }
|
||||||
|
|
||||||
@@ -1163,6 +1166,28 @@ if (Test-Path $xpui_js_patch) {
|
|||||||
$writer.Write($xpui_ru)
|
$writer.Write($xpui_ru)
|
||||||
$writer.Close()
|
$writer.Close()
|
||||||
}
|
}
|
||||||
|
$file_desktop_modals = get-item $env:APPDATA\Spotify\Apps\xpui\xpui-desktop-modals.js
|
||||||
|
$reader = New-Object -TypeName System.IO.StreamReader -ArgumentList $file_desktop_modals
|
||||||
|
$xpui_desktop_modals = $reader.ReadToEnd()
|
||||||
|
$reader.Close()
|
||||||
|
$xpui_desktop_modals = Helper -paramname "Discriptions"
|
||||||
|
$writer = New-Object System.IO.StreamWriter -ArgumentList $file_desktop_modals
|
||||||
|
$writer.BaseStream.SetLength(0)
|
||||||
|
$writer.Write($xpui_desktop_modals)
|
||||||
|
$writer.Close()
|
||||||
|
|
||||||
|
# Turn off podcasts
|
||||||
|
if ($Podcast_off) {
|
||||||
|
$file_homev2 = get-item $env:APPDATA\Spotify\Apps\xpui\home-v2.js
|
||||||
|
$reader = New-Object -TypeName System.IO.StreamReader -ArgumentList $file_homev2
|
||||||
|
$xpui_homev2 = $reader.ReadToEnd()
|
||||||
|
$reader.Close()
|
||||||
|
$xpui_homev2 = Helper -paramname "OffPodcasts"
|
||||||
|
$writer = New-Object System.IO.StreamWriter -ArgumentList $file_homev2
|
||||||
|
$writer.BaseStream.SetLength(0)
|
||||||
|
$writer.Write($xpui_homev2)
|
||||||
|
$writer.Close()
|
||||||
|
}
|
||||||
|
|
||||||
# xpui.css
|
# xpui.css
|
||||||
$file_xpui_css = get-item $env:APPDATA\Spotify\Apps\xpui\xpui.css
|
$file_xpui_css = get-item $env:APPDATA\Spotify\Apps\xpui\xpui.css
|
||||||
@@ -1174,11 +1199,6 @@ if (Test-Path $xpui_js_patch) {
|
|||||||
$writer.BaseStream.SetLength(0)
|
$writer.BaseStream.SetLength(0)
|
||||||
$writer.Write($xpuiContents_xpui_css)
|
$writer.Write($xpuiContents_xpui_css)
|
||||||
|
|
||||||
# new UI fix
|
|
||||||
if ($enablenavalt) {
|
|
||||||
$xpuiContents_xpui_css = $xpuiContents_xpui_css `
|
|
||||||
-replace 'fWwn9sakqBBjgiNti7LD{display:-webkit-box;display:-ms-flexbox;display:flex}', 'fWwn9sakqBBjgiNti7LD{display:-webkit-box;display:-ms-flexbox;display:flex;margin-left:40px}'
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!($premium)) {
|
if (!($premium)) {
|
||||||
# Hide download icon on different pages
|
# Hide download icon on different pages
|
||||||
@@ -1189,7 +1209,7 @@ if (Test-Path $xpui_js_patch) {
|
|||||||
$writer.Write([System.Environment]::NewLine + ' #desktop\.settings\.streamingQuality>option:nth-child(5) {display:none}')
|
$writer.Write([System.Environment]::NewLine + ' #desktop\.settings\.streamingQuality>option:nth-child(5) {display:none}')
|
||||||
}
|
}
|
||||||
# new UI fix
|
# new UI fix
|
||||||
if ($enablenavalt) {
|
if (!($navalt_off)) {
|
||||||
$writer.Write([System.Environment]::NewLine + ' .nav-alt .Root__top-container {background: #00000085;gap: 6px;padding: 8px;}')
|
$writer.Write([System.Environment]::NewLine + ' .nav-alt .Root__top-container {background: #00000085;gap: 6px;padding: 8px;}')
|
||||||
$writer.Write([System.Environment]::NewLine + ' .Root__fixed-top-bar {background-color: #00000000}')
|
$writer.Write([System.Environment]::NewLine + ' .Root__fixed-top-bar {background-color: #00000000}')
|
||||||
}
|
}
|
||||||
@@ -1197,10 +1217,6 @@ if (Test-Path $xpui_js_patch) {
|
|||||||
if (!($hide_col_icon_off) -and !($exp_spotify)) {
|
if (!($hide_col_icon_off) -and !($exp_spotify)) {
|
||||||
$writer.Write([System.Environment]::NewLine + ' .X1lXSiVj0pzhQCUo_72A{display:none}')
|
$writer.Write([System.Environment]::NewLine + ' .X1lXSiVj0pzhQCUo_72A{display:none}')
|
||||||
}
|
}
|
||||||
# Hide broken podcast menu
|
|
||||||
#if ($podcast_off) {
|
|
||||||
#$writer.Write([System.Environment]::NewLine + ' li.OEFWODerafYHGp09iLlA [href="/collection/podcasts"]{display:none}')
|
|
||||||
#}
|
|
||||||
$writer.Close()
|
$writer.Close()
|
||||||
|
|
||||||
# licenses.html minification
|
# licenses.html minification
|
||||||
@@ -1290,9 +1306,6 @@ If (Test-Path $xpui_spa_patch) {
|
|||||||
$xpui_js = $reader.ReadToEnd()
|
$xpui_js = $reader.ReadToEnd()
|
||||||
$reader.Close()
|
$reader.Close()
|
||||||
|
|
||||||
# Turn off podcasts
|
|
||||||
if ($podcast_off) { $xpui_js = Helper -paramname "OffPodcasts" }
|
|
||||||
|
|
||||||
if (!($premium)) {
|
if (!($premium)) {
|
||||||
# Full screen mode activation and removing "Upgrade to premium" menu, upgrade button, disabling a playlist sponsor
|
# Full screen mode activation and removing "Upgrade to premium" menu, upgrade button, disabling a playlist sponsor
|
||||||
$xpui_js = Helper -paramname "OffadsonFullscreen"
|
$xpui_js = Helper -paramname "OffadsonFullscreen"
|
||||||
@@ -1314,24 +1327,28 @@ If (Test-Path $xpui_spa_patch) {
|
|||||||
$writer.Close()
|
$writer.Close()
|
||||||
|
|
||||||
|
|
||||||
|
# Turn off podcasts
|
||||||
|
if ($podcast_off) {
|
||||||
|
$entry_home_v2 = $zip.GetEntry('home-v2.js')
|
||||||
|
$reader = New-Object System.IO.StreamReader($entry_home_v2.Open())
|
||||||
|
$xpui_homev2 = $reader.ReadToEnd()
|
||||||
|
$reader.Close()
|
||||||
|
$xpui_homev2 = Helper -paramname "OffPodcasts"
|
||||||
|
$writer = New-Object System.IO.StreamWriter($entry_home_v2.Open())
|
||||||
|
$writer.BaseStream.SetLength(0)
|
||||||
|
$writer.Write($xpui_homev2)
|
||||||
|
$writer.Close()
|
||||||
|
}
|
||||||
|
|
||||||
# Add discriptions (xpui-desktop-modals.js)
|
# Add discriptions (xpui-desktop-modals.js)
|
||||||
$entry_xpui_desktop_modals = $zip.GetEntry('xpui-desktop-modals.js')
|
$entry_xpui_desktop_modals = $zip.GetEntry('xpui-desktop-modals.js')
|
||||||
$reader = New-Object System.IO.StreamReader($entry_xpui_desktop_modals.Open())
|
$reader = New-Object System.IO.StreamReader($entry_xpui_desktop_modals.Open())
|
||||||
$xpuiContents_xpui_desktop_modals = $reader.ReadToEnd()
|
$xpui_desktop_modals = $reader.ReadToEnd()
|
||||||
$reader.Close()
|
$reader.Close()
|
||||||
|
$xpui_desktop_modals = Helper -paramname "Discriptions"
|
||||||
$about = "`$1`"<h3>More about SpotX</h3>`"}),`$1`'<a `
|
|
||||||
href=`"https://github.com/amd64fox/SpotX`">Github</a>`'}),`$1`'<a `
|
|
||||||
href=`"https://github.com/amd64fox/SpotX/discussions/111`">FAQ</a>'}),`$1`'<a `
|
|
||||||
href=`"https://t.me/spotify_windows_mod`">Telegram channel</a>`'}),`$1`'<a `
|
|
||||||
href=`"https://github.com/amd64fox/SpotX/issues/new?assignees=&labels=%E2%9D%8C+bug&template=bug_report.yml`">Create `
|
|
||||||
an issue report</a>`'}),`$1`"<br>`"}),`$1`"<h4>DISCLAIMER</h4>`"}),`$1`"SpotX is a modified version of the official Spotify client, provided as an evaluation version, you use it at your own risk.`"})"
|
|
||||||
|
|
||||||
$xpuiContents_xpui_desktop_modals = $xpuiContents_xpui_desktop_modals `
|
|
||||||
-replace '(..createElement\(....,{source:).....get\("about.copyright",.\),paragraphClassName:.}\)', $about
|
|
||||||
$writer = New-Object System.IO.StreamWriter($entry_xpui_desktop_modals.Open())
|
$writer = New-Object System.IO.StreamWriter($entry_xpui_desktop_modals.Open())
|
||||||
$writer.BaseStream.SetLength(0)
|
$writer.BaseStream.SetLength(0)
|
||||||
$writer.Write($xpuiContents_xpui_desktop_modals)
|
$writer.Write($xpui_desktop_modals)
|
||||||
$writer.Close()
|
$writer.Close()
|
||||||
|
|
||||||
# Disable Sentry (vendor~xpui.js)
|
# Disable Sentry (vendor~xpui.js)
|
||||||
@@ -1368,11 +1385,6 @@ If (Test-Path $xpui_spa_patch) {
|
|||||||
$xpuiContents_xpui_css = $reader.ReadToEnd()
|
$xpuiContents_xpui_css = $reader.ReadToEnd()
|
||||||
$reader.Close()
|
$reader.Close()
|
||||||
|
|
||||||
# new UI fix
|
|
||||||
if ($enablenavalt) {
|
|
||||||
$xpuiContents_xpui_css = $xpuiContents_xpui_css `
|
|
||||||
-replace 'fWwn9sakqBBjgiNti7LD{display:-webkit-box;display:-ms-flexbox;display:flex}', 'fWwn9sakqBBjgiNti7LD{display:-webkit-box;display:-ms-flexbox;display:flex;margin-left:40px}'
|
|
||||||
}
|
|
||||||
$writer = New-Object System.IO.StreamWriter($entry_xpui_css.Open())
|
$writer = New-Object System.IO.StreamWriter($entry_xpui_css.Open())
|
||||||
$writer.BaseStream.SetLength(0)
|
$writer.BaseStream.SetLength(0)
|
||||||
$writer.Write($xpuiContents_xpui_css)
|
$writer.Write($xpuiContents_xpui_css)
|
||||||
@@ -1386,7 +1398,7 @@ If (Test-Path $xpui_spa_patch) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# new UI fix
|
# new UI fix
|
||||||
if ($enablenavalt) {
|
if (!($navalt_off)) {
|
||||||
$writer.Write([System.Environment]::NewLine + ' .nav-alt .Root__top-container {background: #00000085;gap: 6px;padding: 8px;}')
|
$writer.Write([System.Environment]::NewLine + ' .nav-alt .Root__top-container {background: #00000085;gap: 6px;padding: 8px;}')
|
||||||
$writer.Write([System.Environment]::NewLine + ' .Root__fixed-top-bar {background-color: #00000000}')
|
$writer.Write([System.Environment]::NewLine + ' .Root__fixed-top-bar {background-color: #00000000}')
|
||||||
}
|
}
|
||||||
@@ -1394,10 +1406,6 @@ If (Test-Path $xpui_spa_patch) {
|
|||||||
if (!($hide_col_icon_off) -and !($exp_spotify)) {
|
if (!($hide_col_icon_off) -and !($exp_spotify)) {
|
||||||
$writer.Write([System.Environment]::NewLine + ' .X1lXSiVj0pzhQCUo_72A{display:none}')
|
$writer.Write([System.Environment]::NewLine + ' .X1lXSiVj0pzhQCUo_72A{display:none}')
|
||||||
}
|
}
|
||||||
# Hide broken podcast menu
|
|
||||||
#if ($podcast_off) {
|
|
||||||
#$writer.Write([System.Environment]::NewLine + ' li.OEFWODerafYHGp09iLlA [href="/collection/podcasts"] {display:none}')
|
|
||||||
#}
|
|
||||||
$writer.Close()
|
$writer.Close()
|
||||||
|
|
||||||
# of all *.Css
|
# of all *.Css
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
<h1>System requirements</h1>
|
<h1>System requirements</h1>
|
||||||
|
|
||||||
- <strong>OS: Windows 7-11</strong>
|
- <strong>OS: Windows 7-11</strong>
|
||||||
- <strong>Spotify: Recommended official version [1.1.93.896](https://cutt.ly/8EH6NuH)</strong>
|
- <strong>Spotify: Recommended official version [1.1.94.864](https://cutt.ly/8EH6NuH)</strong>
|
||||||
- <strong>For Windows Desktop only (Microsoft store version is not suitable).</strong>
|
- <strong>For Windows Desktop only (Microsoft store version is not suitable).</strong>
|
||||||
- <strong>PowerShell: 3 or higher</strong>
|
- <strong>PowerShell: 3 or higher</strong>
|
||||||
|
|
||||||
|
|||||||
@@ -44,6 +44,8 @@
|
|||||||
NoVariable2 = "in xpui.js"
|
NoVariable2 = "in xpui.js"
|
||||||
NoVariable3 = "in licenses.html"
|
NoVariable3 = "in licenses.html"
|
||||||
NoVariable4 = "in html"
|
NoVariable4 = "in html"
|
||||||
|
NoVariable5 = "in home-v2.js"
|
||||||
|
NoVariable6 = "in xpui-desktop-modals.js"
|
||||||
ModSpoti = "Patching Spotify..."
|
ModSpoti = "Patching Spotify..."
|
||||||
Error = "Error"
|
Error = "Error"
|
||||||
FileLocBroken = "Location of Spotify files is broken, uninstall the client and run the script again"
|
FileLocBroken = "Location of Spotify files is broken, uninstall the client and run the script again"
|
||||||
|
|||||||
@@ -46,6 +46,8 @@
|
|||||||
NoVariable2 = "en xpui.js"
|
NoVariable2 = "en xpui.js"
|
||||||
NoVariable3 = "en licenses.html"
|
NoVariable3 = "en licenses.html"
|
||||||
NoVariable4 = "en html"
|
NoVariable4 = "en html"
|
||||||
|
NoVariable5 = "en home-v2.js"
|
||||||
|
NoVariable6 = "en xpui-desktop-modals.js"
|
||||||
ModSpoti = "Parcheando Spotify..."
|
ModSpoti = "Parcheando Spotify..."
|
||||||
Error = "Error"
|
Error = "Error"
|
||||||
FileLocBroken = "La ubicación de los archivos de Spotify no funciona, desinstala el cliente y vuelve a ejecutar el script"
|
FileLocBroken = "La ubicación de los archivos de Spotify no funciona, desinstala el cliente y vuelve a ejecutar el script"
|
||||||
|
|||||||
@@ -46,6 +46,8 @@
|
|||||||
NoVariable2 = "dans xpui.js"
|
NoVariable2 = "dans xpui.js"
|
||||||
NoVariable3 = "dans licenses.html"
|
NoVariable3 = "dans licenses.html"
|
||||||
NoVariable4 = "dans html"
|
NoVariable4 = "dans html"
|
||||||
|
NoVariable5 = "dans home-v2.js"
|
||||||
|
NoVariable6 = "dans xpui-desktop-modals.js"
|
||||||
ModSpoti = "Modification de Spotify..."
|
ModSpoti = "Modification de Spotify..."
|
||||||
Error = "Erreure"
|
Error = "Erreure"
|
||||||
FileLocBroken = "L'emplacement des fichiers est cassé, désinstaller le client et lancer de nouveau le script"
|
FileLocBroken = "L'emplacement des fichiers est cassé, désinstaller le client et lancer de nouveau le script"
|
||||||
|
|||||||
@@ -46,6 +46,8 @@
|
|||||||
NoVariable2 = "xpui.js में"
|
NoVariable2 = "xpui.js में"
|
||||||
NoVariable3 = "licenses.html में"
|
NoVariable3 = "licenses.html में"
|
||||||
NoVariable4 = "html में"
|
NoVariable4 = "html में"
|
||||||
|
NoVariable5 = "home-v2.js में"
|
||||||
|
NoVariable6 = "xpui-desktop-modals.js में"
|
||||||
ModSpoti = "स्पॉटिफाई पैचिंग..."
|
ModSpoti = "स्पॉटिफाई पैचिंग..."
|
||||||
Error = "गडबड"
|
Error = "गडबड"
|
||||||
FileLocBroken = "स्पॉटिफाई फ़ाइलों का स्थान टूटा हुआ है, क्लाइंट की स्थापना रद्द करें और स्क्रिप्ट को फिर से चलाएँ"
|
FileLocBroken = "स्पॉटिफाई फ़ाइलों का स्थान टूटा हुआ है, क्लाइंट की स्थापना रद्द करें और स्क्रिप्ट को फिर से चलाएँ"
|
||||||
|
|||||||
@@ -46,6 +46,8 @@
|
|||||||
NoVariable2 = "in xpui.js"
|
NoVariable2 = "in xpui.js"
|
||||||
NoVariable3 = "in licenses.html"
|
NoVariable3 = "in licenses.html"
|
||||||
NoVariable4 = "in html"
|
NoVariable4 = "in html"
|
||||||
|
NoVariable5 = "in home-v2.js"
|
||||||
|
NoVariable6 = "in xpui-desktop-modals.js"
|
||||||
ModSpoti = "Patching Spotify..."
|
ModSpoti = "Patching Spotify..."
|
||||||
Error = "Errore"
|
Error = "Errore"
|
||||||
FileLocBroken = "Il percorso dei file di Spotify non è stato trovato, disinstalla Spotify e fai ripartire lo script"
|
FileLocBroken = "Il percorso dei file di Spotify non è stato trovato, disinstalla Spotify e fai ripartire lo script"
|
||||||
|
|||||||
@@ -46,6 +46,8 @@
|
|||||||
NoVariable2 = "xpui.js -ში"
|
NoVariable2 = "xpui.js -ში"
|
||||||
NoVariable3 = "licenses.html -ში"
|
NoVariable3 = "licenses.html -ში"
|
||||||
NoVariable4 = "html =ში"
|
NoVariable4 = "html =ში"
|
||||||
|
NoVariable5 = "home-v2.js -ში"
|
||||||
|
NoVariable6 = "xpui-desktop-modals.js -ში"
|
||||||
ModSpoti = "Spotify იკერვება..."
|
ModSpoti = "Spotify იკერვება..."
|
||||||
Error = "შეცდომა"
|
Error = "შეცდომა"
|
||||||
FileLocBroken = "Spotify ფაილების ლოკაცია არის გადეხილი, წაშალეთ კლიენტი და თავიდან გაუშვით სკრიპტი"
|
FileLocBroken = "Spotify ფაილების ლოკაცია არის გადეხილი, წაშალეთ კლიენტი და თავიდან გაუშვით სკრიპტი"
|
||||||
|
|||||||
@@ -46,6 +46,8 @@
|
|||||||
NoVariable2 = "w xpui.js"
|
NoVariable2 = "w xpui.js"
|
||||||
NoVariable3 = "w licenses.html"
|
NoVariable3 = "w licenses.html"
|
||||||
NoVariable4 = "w html"
|
NoVariable4 = "w html"
|
||||||
|
NoVariable5 = "w home-v2.js"
|
||||||
|
NoVariable6 = "w xpui-desktop-modals.js"
|
||||||
ModSpoti = "Patchowanie Spotify..."
|
ModSpoti = "Patchowanie Spotify..."
|
||||||
Error = "Błąd"
|
Error = "Błąd"
|
||||||
FileLocBroken = "Lokalizacje plików spotify są zepsute, odinstaluj klienta i uruchom ponownie skrypt"
|
FileLocBroken = "Lokalizacje plików spotify są zepsute, odinstaluj klienta i uruchom ponownie skrypt"
|
||||||
|
|||||||
@@ -44,7 +44,9 @@
|
|||||||
NoVariable2 = "в xpui.js"
|
NoVariable2 = "в xpui.js"
|
||||||
NoVariable3 = "в licenses.html"
|
NoVariable3 = "в licenses.html"
|
||||||
NoVariable4 = "в html"
|
NoVariable4 = "в html"
|
||||||
NoVariable5 = "в ru.json"
|
NoVariable5 = "в home-v2.js"
|
||||||
|
NoVariable6 = "в xpui-desktop-modals.js"
|
||||||
|
NoVariable7 = "в ru.json"
|
||||||
ModSpoti = "Модифицирую Spotify..."
|
ModSpoti = "Модифицирую Spotify..."
|
||||||
Error = "Ошибка"
|
Error = "Ошибка"
|
||||||
FileLocBroken = "Расположение файлов Spotify нарушено, удалите клиент и снова запустите скрипт"
|
FileLocBroken = "Расположение файлов Spotify нарушено, удалите клиент и снова запустите скрипт"
|
||||||
|
|||||||
@@ -44,8 +44,10 @@
|
|||||||
CacheDays2 = "Gün sayısını 1 ile 100 arasında girin"
|
CacheDays2 = "Gün sayısını 1 ile 100 arasında girin"
|
||||||
NoVariable = "Değişken bulunamadı"
|
NoVariable = "Değişken bulunamadı"
|
||||||
NoVariable2 = "xpui.js içinde"
|
NoVariable2 = "xpui.js içinde"
|
||||||
NoVariable3 = "in licenses.html"
|
NoVariable3 = "licenses.html içinde"
|
||||||
NoVariable4 = "html içinde"
|
NoVariable4 = "html içinde"
|
||||||
|
NoVariable5 = "home-v2.js içinde"
|
||||||
|
NoVariable6 = "xpui-desktop-modals.js içinde"
|
||||||
ModSpoti = "Spotify'a yama yapılıyor..."
|
ModSpoti = "Spotify'a yama yapılıyor..."
|
||||||
Error = "Hata"
|
Error = "Hata"
|
||||||
FileLocBroken = "Spotify dosyalarının konumu bozuk, istemciyi kaldırın ve kodu tekrar çalıştırın"
|
FileLocBroken = "Spotify dosyalarının konumu bozuk, istemciyi kaldırın ve kodu tekrar çalıştırın"
|
||||||
|
|||||||
Reference in New Issue
Block a user