mirror of
https://github.com/SpotX-Official/SpotX.git
synced 2026-08-11 02:21:09 +10:00
Compare commits
12
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
95882aa5b3 | ||
|
|
b53956f71d | ||
|
|
49d6db9448 | ||
|
|
0154f9b353 | ||
|
|
13ef73f820 | ||
|
|
8e2595922e | ||
|
|
bd5de69a7e | ||
|
|
730ea89a66 | ||
|
|
513bbdbe57 | ||
|
|
c1c04dd69b | ||
|
|
7fde1cbe98 | ||
|
|
71a8cfdcc2 |
@@ -46,17 +46,13 @@ body:
|
||||
MsSpoti3 = "Automatically uninstalling Spotify MS..."
|
||||
MsSpoti4 = "Uninstalling Spotify MS..."
|
||||
Prem = "Modification for premium account..."
|
||||
OldV = "Found outdated version of Spotify"
|
||||
OldV2 = "Your Spotify version ({0}) is outdated, the current latest version is — {1}"
|
||||
OldV3 = "Want to update ? [Y/N]"
|
||||
AutoUpd = "Automatic update to the recommended version"
|
||||
DelOrOver = "Remove the current version ({0}) or install over it? Y [Remove] / N [Install Over]"
|
||||
DelOld = "Uninstalling old Spotify..."
|
||||
NewV = "Unsupported version of Spotify found"
|
||||
DelSpotify = "Uninstalling Spotify..."
|
||||
NewV2 = "Your Spotify version ({0}) has not been tested. The stable version for SpotX is {1}"
|
||||
NewV3 = "Continue with {0} (errors may occur) ? [Y/N]"
|
||||
Recom = "Install the latest version {0} ? [Y/N]"
|
||||
DelNew = "Uninstalling an untested Spotify..."
|
||||
DownSpoti = "Downloading and installing Spotify"
|
||||
DownSpoti2 = "Please wait..."
|
||||
PodcatsOff = "Off Podcasts"
|
||||
|
||||
@@ -14,19 +14,37 @@ jobs:
|
||||
- name: Run Spotx
|
||||
shell: powershell
|
||||
run: |
|
||||
$jsonUrl = "https://raw.githubusercontent.com/amd64fox/LoaderSpot/main/versions.json"
|
||||
$jsonUrl = "https://raw.githubusercontent.com/LoaderSpot/table/refs/heads/main/table/versions.json"
|
||||
$resp = Invoke-RestMethod -Uri $jsonUrl
|
||||
|
||||
# Get a link to the x86 installer for the first version
|
||||
$firstVersion = $resp.PSObject.Properties.Name | Select-Object -First 1
|
||||
$x64InstallerUrl = $resp.$firstVersion.links.win.x64
|
||||
# Use fullversion because installer names include architecture suffixes
|
||||
$latestEntry = $resp.PSObject.Properties | Select-Object -First 1
|
||||
if (-not $latestEntry) {
|
||||
throw "No Spotify versions found in $jsonUrl"
|
||||
}
|
||||
|
||||
# Regex to find the desired part of the link
|
||||
$regex = [regex]::Match($x64InstallerUrl, "spotify_installer-(.+?)\.exe")
|
||||
$version = $regex.Groups[1].Value
|
||||
$spotifyFullVersion = $latestEntry.Value.fullversion
|
||||
if ([string]::IsNullOrWhiteSpace($spotifyFullVersion) -or $spotifyFullVersion -notmatch '^\d+\.\d+\.\d+\.\d+\.g[0-9a-f]{8}$') {
|
||||
throw "Invalid Spotify fullversion for $($latestEntry.Name)"
|
||||
}
|
||||
|
||||
# Incoming parameters
|
||||
$parametrs = '-Verbose -new_theme -v $version -sp-over -cache_limit 1000 -block_update_on -lyrics_stat spotify -urlform_goofy "https://docs.google.com/forms/formResponse" -idbox_goofy "9999999" -podcasts_off -adsections_off -lyrics_block'
|
||||
$parameters = @{
|
||||
Verbose = $true
|
||||
new_theme = $true
|
||||
version = $spotifyFullVersion
|
||||
confirm_spoti_recomended_over = $true
|
||||
cache_limit = 1000
|
||||
block_update_on = $true
|
||||
lyrics_stat = "spotify"
|
||||
urlform_goofy = "https://docs.google.com/forms/formResponse"
|
||||
idbox_goofy = "9999999"
|
||||
podcasts_off = $true
|
||||
adsections_off = $true
|
||||
lyrics_block = $true
|
||||
}
|
||||
|
||||
# Run Spotx
|
||||
iex "& { $(iwr -useb 'https://raw.githubusercontent.com/SpotX-Official/SpotX/refs/heads/main/run.ps1') } $parametrs"
|
||||
$spotxUrl = "https://raw.githubusercontent.com/SpotX-Official/SpotX/refs/heads/main/run.ps1"
|
||||
$spotxScript = [scriptblock]::Create((Invoke-WebRequest -UseBasicParsing -Uri $spotxUrl).Content)
|
||||
& $spotxScript @parameters
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
AGENTS.md
|
||||
@@ -27,7 +27,7 @@
|
||||
<h1 id="requirements">Requirements</h1>
|
||||
|
||||
- **OS:** Windows 7-11
|
||||
- **Spotify:** [Official desktop version](https://loadspot.pages.dev) (Microsoft Store version is not suitable)
|
||||
- **Spotify:** [Official desktop version](https://loadspot.vercel.app/) (Microsoft Store version is not suitable)
|
||||
- **PowerShell:** 5.1 and above
|
||||
|
||||
<h1 id="features">Features</h1>
|
||||
|
||||
@@ -42,7 +42,9 @@ body .KDhLFoEqoClhH12bsfrS {
|
||||
/* lyrics not available message */
|
||||
.C3pBU1DsOUJJOAv89ZFT,
|
||||
.T67LFP0PElpfkkLuegQt,
|
||||
.e7eFLioNSG5PAi1qVFT4 {
|
||||
.e7eFLioNSG5PAi1qVFT4,
|
||||
.l2060qoyWU4J9ihSxHLE,
|
||||
.hfTlyhd7WCIk9xmP {
|
||||
color: var(--musixmatch) !important;
|
||||
}
|
||||
|
||||
@@ -50,7 +52,8 @@ body .KDhLFoEqoClhH12bsfrS {
|
||||
.FUYNhisXTCmbzt9IDxnT,
|
||||
.tr8V5eHsUaIkOYVw7eSG,
|
||||
.hW9km7ku6_iggdWDR_Lg,
|
||||
.lofIAg8Ixko3mfBrbfej {
|
||||
.lofIAg8Ixko3mfBrbfej,
|
||||
.bbJIIopLxggQmv5x {
|
||||
--lyrics-color-active: var(--current) !important;
|
||||
--lyrics-color-inactive: var(--next) !important;
|
||||
--lyrics-color-passed: var(--past) !important;
|
||||
@@ -69,7 +72,11 @@ body .KDhLFoEqoClhH12bsfrS {
|
||||
._LKG3z7SnerR0eigPCoK:hover,
|
||||
.NHVfxGs2HwmI_fly2JC4:hover,
|
||||
.gaHIufRWhoWbiT8S6zuM:hover,
|
||||
.FQYXZaa0aDIrse54YlYO:hover {
|
||||
.FQYXZaa0aDIrse54YlYO:hover,
|
||||
.PSyA4iign083ZV6vOqPj:hover,
|
||||
.Plu0zvuRv7kOQwsQ02cC:hover,
|
||||
.Mnf9PkrVHsX90BNf:hover,
|
||||
.XiH9KR6bhDwEFykV:hover {
|
||||
color: var(--hover) !important;
|
||||
/* remove underline */
|
||||
text-decoration: none !important;
|
||||
|
||||
+43
-2
@@ -780,6 +780,30 @@
|
||||
"fr": "1.2.84",
|
||||
"to": ""
|
||||
}
|
||||
},
|
||||
"ad_feedback_in_stream": {
|
||||
"name": "enable_ad_feedback_in_stream",
|
||||
"description": "Enable new ad feedback UX for in-stream ads",
|
||||
"version": {
|
||||
"fr": "1.2.88",
|
||||
"to": ""
|
||||
}
|
||||
},
|
||||
"HarmonyMediaPlaybackReporting": {
|
||||
"name": "enableHarmonyMediaPlaybackReporting",
|
||||
"description": "Enable the reporting of media playback events in Harmony",
|
||||
"version": {
|
||||
"fr": "1.2.88",
|
||||
"to": ""
|
||||
}
|
||||
},
|
||||
"ad_reporting": {
|
||||
"name": "enable_ad_reporting",
|
||||
"description": "Gates the report ad menu item in the ad overflow context menu",
|
||||
"version": {
|
||||
"fr": "1.2.89",
|
||||
"to": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"EnableExp": {
|
||||
@@ -1167,7 +1191,7 @@
|
||||
"native_description": "Show top tracks and top artists on profile page",
|
||||
"version": {
|
||||
"fr": "1.2.22",
|
||||
"to": ""
|
||||
"to": "1.2.89"
|
||||
}
|
||||
},
|
||||
"EightShortcuts": {
|
||||
@@ -1897,6 +1921,14 @@
|
||||
"fr": "1.2.86",
|
||||
"to": ""
|
||||
}
|
||||
},
|
||||
"LikedSongsMakePlaylist": {
|
||||
"name": "enableLikedSongsMakePlaylist",
|
||||
"native_description": "Show 'Make this a playlist' button when filtering Liked Songs by genre",
|
||||
"version": {
|
||||
"fr": "1.2.89",
|
||||
"to": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"CustomExp": {
|
||||
@@ -2551,6 +2583,14 @@
|
||||
},
|
||||
"match": "(typeName\\])",
|
||||
"replace": "$1 || []"
|
||||
},
|
||||
"fixHomeV2EmptyResponseCheck": {
|
||||
"version": {
|
||||
"fr": "1.1.92",
|
||||
"to": "1.2.44"
|
||||
},
|
||||
"match": "(\"HomeResponsePayload\"[\\s\\S]{0,500}?)0\\s*===\\s*([A-Za-z_$][\\w$]*)\\.sectionContainer\\.sections\\.totalCount\\s*\\|\\|\\s*0\\s*===\\s*\\2\\.sectionContainer\\.sections\\.items\\.length",
|
||||
"replace": "$1!Array.isArray(null==$2||null==$2.sectionContainer||null==$2.sectionContainer.sections?void 0:$2.sectionContainer.sections.items)||0===$2.sectionContainer.sections.items.length"
|
||||
}
|
||||
},
|
||||
"VariousJs": {
|
||||
@@ -2645,6 +2685,7 @@
|
||||
"replace": "min:250,max:400"
|
||||
},
|
||||
"filtertags_locale_fix": {
|
||||
"disable": true,
|
||||
"version": {
|
||||
"fr": "1.2.29",
|
||||
"to": ""
|
||||
@@ -2703,7 +2744,7 @@
|
||||
"hideEmptyYourEpisodes": {
|
||||
"version": {
|
||||
"fr": "1.2.78",
|
||||
"to": ""
|
||||
"to": "1.2.89"
|
||||
},
|
||||
"match": "(includeYourEpisodes\\?\\{inclusionMode:[^,}]+\\.)INCLUDE_ALWAYS",
|
||||
"replace": "$1INCLUDE_IF_NOT_EMPTY"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
param
|
||||
(
|
||||
[Parameter(HelpMessage = 'Latest recommended Spotify version for Windows 10+.')]
|
||||
[string]$latest_full = "1.2.86.502.g8cd7fb22",
|
||||
[string]$latest_full = "1.2.90",
|
||||
|
||||
[Parameter(HelpMessage = 'Latest supported Spotify version for Windows 7-8.1')]
|
||||
[string]$last_win7_full = "1.2.5.1006.g22820f93",
|
||||
@@ -16,7 +16,7 @@ param
|
||||
[ValidateSet('curl', 'webclient')]
|
||||
[string]$download_method,
|
||||
|
||||
[Parameter(HelpMessage = "Change recommended Spotify version. Example: 1.2.85.519.g549a528b.")]
|
||||
[Parameter(HelpMessage = "Change recommended Spotify version. Example: 1.2.88 or 1.2.88.485.g1012a6e0.")]
|
||||
[Alias("v")]
|
||||
[string]$version,
|
||||
|
||||
@@ -107,9 +107,6 @@ param
|
||||
[Parameter(HelpMessage = 'Enable right sidebar coloring to match cover color)')]
|
||||
[switch]$rightsidebarcolor,
|
||||
|
||||
[Parameter(HelpMessage = 'Returns old lyrics')]
|
||||
[switch]$old_lyrics,
|
||||
|
||||
[Parameter(HelpMessage = 'Disable native lyrics')]
|
||||
[switch]$lyrics_block,
|
||||
|
||||
@@ -137,7 +134,11 @@ param
|
||||
|
||||
[Parameter(HelpMessage = 'Select the desired language to use for installation. Default is the detected system language.')]
|
||||
[Alias('l')]
|
||||
[string]$language
|
||||
[string]$language,
|
||||
|
||||
# Deprecated parameters
|
||||
[Parameter(HelpMessage = 'Deprecated, old lyrics are enabled by default')]
|
||||
[switch]$old_lyrics
|
||||
)
|
||||
|
||||
# Ignore errors from `Stop-Process`
|
||||
@@ -156,7 +157,7 @@ function Format-LanguageCode {
|
||||
$supportLanguages = @(
|
||||
'be', 'bn', 'cs', 'de', 'el', 'en', 'es', 'fa', 'fi', 'fil', 'fr', 'hi', 'hu',
|
||||
'id', 'it', 'ja', 'ka', 'ko', 'lv', 'pl', 'pt', 'ro', 'ru', 'sk', 'sr', 'sr-Latn',
|
||||
'sv', 'ta', 'tr', 'ua', 'vi', 'zh', 'zh-TW'
|
||||
'sv', 'ta', 'tr', 'uk', 'vi', 'zh', 'zh-TW'
|
||||
)
|
||||
|
||||
# Trim the language code down to two letter code.
|
||||
@@ -277,8 +278,8 @@ function Format-LanguageCode {
|
||||
$returnCode = 'tr'
|
||||
break
|
||||
}
|
||||
'^ua' {
|
||||
$returnCode = 'ua'
|
||||
'^uk' {
|
||||
$returnCode = 'uk'
|
||||
break
|
||||
}
|
||||
'^vi' {
|
||||
@@ -339,6 +340,13 @@ $spotifyUninstall = Join-Path ([System.IO.Path]::GetTempPath()) 'SpotifyUninstal
|
||||
$start_menu = Join-Path $env:APPDATA 'Microsoft\Windows\Start Menu\Programs\Spotify.lnk'
|
||||
|
||||
$upgrade_client = $false
|
||||
$downgrading = $false
|
||||
$ru = $false
|
||||
$podcast_off = $false
|
||||
$css = $null
|
||||
$calltype = $null
|
||||
$tempDirectory = $null
|
||||
$script:curlSupportsFailWithBody = $null
|
||||
|
||||
# Check version Powershell
|
||||
$psv = $PSVersionTable.PSVersion.major
|
||||
@@ -369,6 +377,18 @@ function Stop-Script {
|
||||
}
|
||||
Exit
|
||||
}
|
||||
|
||||
function Stop-BrokenSpotifyFiles {
|
||||
param(
|
||||
[string]$Details
|
||||
)
|
||||
|
||||
if ($Details) { Write-Warning $Details }
|
||||
Write-Host ($lang).Error -ForegroundColor Red
|
||||
Write-Host ($lang).FileLocBroken
|
||||
Stop-Script
|
||||
}
|
||||
|
||||
function Get-Link {
|
||||
param (
|
||||
[Alias("e")]
|
||||
@@ -405,6 +425,15 @@ $lang = CallLang -clg $langCode
|
||||
Write-Host ($lang).Welcome
|
||||
Write-Host
|
||||
|
||||
if ($old_lyrics) {
|
||||
Write-Warning @"
|
||||
-old_lyrics is deprecated
|
||||
Old lyrics are enabled by default
|
||||
Remove this parameter from your command line
|
||||
"@
|
||||
Write-Host
|
||||
}
|
||||
|
||||
# Check version Windows
|
||||
$os = Get-CimInstance -ClassName "Win32_OperatingSystem" -ErrorAction SilentlyContinue
|
||||
if ($os) {
|
||||
@@ -477,11 +506,106 @@ function Get-SpotifyInstallerArchitecture {
|
||||
}
|
||||
}
|
||||
|
||||
function Test-SpotifyVersionRequiresResolution {
|
||||
param(
|
||||
[Parameter(Mandatory = $true)]
|
||||
[string]$SpotifyVersion
|
||||
)
|
||||
|
||||
return $SpotifyVersion -match '^\d+\.\d+\.\d+(?:\.\d+)?$'
|
||||
}
|
||||
|
||||
function Get-SpotifyVersionsManifest {
|
||||
param(
|
||||
[Parameter(Mandatory = $true)]
|
||||
[string]$Url
|
||||
)
|
||||
|
||||
$previousProgressPreference = $ProgressPreference
|
||||
try {
|
||||
$ProgressPreference = 'SilentlyContinue'
|
||||
return Invoke-RestMethod -Uri $Url -UseBasicParsing -TimeoutSec 15
|
||||
}
|
||||
catch {
|
||||
throw "Failed to load Spotify versions manifest`nURL: $Url`n$($_.Exception.Message)"
|
||||
}
|
||||
finally {
|
||||
$ProgressPreference = $previousProgressPreference
|
||||
}
|
||||
}
|
||||
|
||||
function Resolve-SpotifyInstallerVersionFromManifest {
|
||||
param(
|
||||
[Parameter(Mandatory = $true)]
|
||||
[object]$VersionsManifest,
|
||||
[Parameter(Mandatory = $true)]
|
||||
[string]$SpotifyVersion,
|
||||
[Parameter(Mandatory = $true)]
|
||||
[string]$Architecture
|
||||
)
|
||||
|
||||
$versions = @($VersionsManifest.PSObject.Properties)
|
||||
|
||||
if ($SpotifyVersion -match '^\d+\.\d+\.\d+$') {
|
||||
$versionPrefix = "$SpotifyVersion."
|
||||
$selectedVersion = $versions |
|
||||
Where-Object { $_.Name.StartsWith($versionPrefix, [System.StringComparison]::Ordinal) } |
|
||||
Sort-Object { [version]$_.Name } -Descending |
|
||||
Select-Object -First 1
|
||||
}
|
||||
else {
|
||||
$selectedVersion = $versions | Where-Object { $_.Name -eq $SpotifyVersion } | Select-Object -First 1
|
||||
}
|
||||
|
||||
if (!$selectedVersion) {
|
||||
throw "Spotify version $SpotifyVersion was not found in versions manifest"
|
||||
}
|
||||
|
||||
$entry = $selectedVersion.Value
|
||||
$fullVersion = [string]$entry.fullversion
|
||||
if ($fullVersion -notmatch '^\d+\.\d+\.\d+\.\d+\.g[0-9a-f]{8}$') {
|
||||
throw "Spotify version $($selectedVersion.Name) has invalid fullversion in versions manifest"
|
||||
}
|
||||
|
||||
$windowsAssets = $entry.win
|
||||
$architectureAsset = if ($windowsAssets) {
|
||||
$windowsAssets.PSObject.Properties[$Architecture]
|
||||
}
|
||||
else {
|
||||
$null
|
||||
}
|
||||
|
||||
if (!$architectureAsset) {
|
||||
throw "Spotify version $($selectedVersion.Name) does not have Windows $Architecture asset in versions manifest"
|
||||
}
|
||||
|
||||
$assetUrl = [string]$architectureAsset.Value.url
|
||||
if (!$assetUrl) {
|
||||
throw "Spotify version $($selectedVersion.Name) does not have Windows $Architecture URL in versions manifest"
|
||||
}
|
||||
|
||||
$expectedAssetName = "spotify_installer-$fullVersion-$Architecture.exe"
|
||||
try {
|
||||
$assetFileName = [System.IO.Path]::GetFileName(([Uri]$assetUrl).AbsolutePath)
|
||||
}
|
||||
catch {
|
||||
$assetFileName = ''
|
||||
}
|
||||
|
||||
if ($assetFileName -ne $expectedAssetName) {
|
||||
throw "Spotify version $($selectedVersion.Name) has unexpected Windows $Architecture asset in versions manifest"
|
||||
}
|
||||
|
||||
return $fullVersion
|
||||
}
|
||||
|
||||
$spotifyDownloadBaseUrl = "https://loadspot.amd64fox1.workers.dev/download"
|
||||
$spotifyTemporaryDownloadBaseUrl = "https://loadspot.amd64fox1.workers.dev/temporary-download"
|
||||
$spotifyTemporaryDownloadVersion = "1.2.86.502.g8cd7fb22"
|
||||
$spotifyVersionsManifestUrl = "https://raw.githubusercontent.com/LoaderSpot/table/refs/heads/main/table/versions.json"
|
||||
$systemArchitecture = Get-SystemArchitecture
|
||||
|
||||
$match_v = "^(?<version>\d+\.\d+\.\d+\.\d+\.g[0-9a-f]{8})(?:-\d+)?$"
|
||||
$match_v = "^(?<version>\d+\.\d+\.\d+(?:\.\d+(?:\.g[0-9a-f]{8})?)?)(?:-\d+)?$"
|
||||
$versionIsSupported = $false
|
||||
if ($version) {
|
||||
if ($version -match $match_v) {
|
||||
@@ -489,7 +613,7 @@ if ($version) {
|
||||
$versionIsSupported = $true
|
||||
}
|
||||
else {
|
||||
Write-Warning "Invalid $($version) format. Example: 1.2.13.661.ga588f749 (legacy -4064 suffix is optional)"
|
||||
Write-Warning "Invalid $($version) format. Example: 1.2.88 or 1.2.88.485.g1012a6e0 (legacy -4064 suffix is optional)"
|
||||
Write-Host
|
||||
}
|
||||
}
|
||||
@@ -534,6 +658,29 @@ else {
|
||||
$requestedOnlineVersion = $last_x86
|
||||
}
|
||||
}
|
||||
|
||||
$onlineDownloadVersion = $onlineFull
|
||||
|
||||
if (Test-SpotifyVersionRequiresResolution -SpotifyVersion $onlineFull) {
|
||||
try {
|
||||
$onlineInstallerArchitecture = Get-SpotifyInstallerArchitecture `
|
||||
-SystemArchitecture $systemArchitecture `
|
||||
-SpotifyVersion (Get-SpotifyVersionNumber -SpotifyVersion $onlineFull) `
|
||||
-LastX86SupportedVersion $last_x86
|
||||
|
||||
$spotifyVersionsManifest = Get-SpotifyVersionsManifest -Url $spotifyVersionsManifestUrl
|
||||
|
||||
$onlineFull = Resolve-SpotifyInstallerVersionFromManifest `
|
||||
-VersionsManifest $spotifyVersionsManifest `
|
||||
-SpotifyVersion $onlineFull `
|
||||
-Architecture $onlineInstallerArchitecture
|
||||
}
|
||||
catch {
|
||||
Write-Warning $_.Exception.Message
|
||||
Stop-Script
|
||||
}
|
||||
}
|
||||
|
||||
$online = (Get-SpotifyVersionNumber -SpotifyVersion $onlineFull).ToString()
|
||||
|
||||
|
||||
@@ -587,7 +734,8 @@ function Get-PatchesJson {
|
||||
throw "File not found: $resolvedPath"
|
||||
}
|
||||
|
||||
Write-Host ("Using local patches.json: {0}" -f $resolvedPath)
|
||||
Write-Host ("Using a local file for patches: {0}" -f $resolvedPath)
|
||||
Write-Host
|
||||
|
||||
$jsonContent = [System.IO.File]::ReadAllText($resolvedPath, [System.Text.Encoding]::UTF8)
|
||||
return $jsonContent | ConvertFrom-Json -ErrorAction Stop
|
||||
@@ -1228,18 +1376,18 @@ function downloadSp([string]$DownloadFolder) {
|
||||
$webClient = New-Object -TypeName System.Net.WebClient
|
||||
|
||||
$spotifyVersion = Get-SpotifyVersionNumber -SpotifyVersion $onlineFull
|
||||
$downloadVersion = if ($onlineDownloadVersion) { $onlineDownloadVersion } else { $onlineFull }
|
||||
$arch = Get-SpotifyInstallerArchitecture `
|
||||
-SystemArchitecture $systemArchitecture `
|
||||
-SpotifyVersion $spotifyVersion `
|
||||
-LastX86SupportedVersion $last_x86
|
||||
|
||||
$downloadBaseUrl = $spotifyDownloadBaseUrl
|
||||
if ($onlineFull -eq $latest_full -and $arch -eq 'x64') {
|
||||
# Temporary route for the latest x64 build while Cloudflare rechecks the file
|
||||
if ($downloadVersion -eq $spotifyTemporaryDownloadVersion -and $arch -eq 'x64') {
|
||||
$downloadBaseUrl = $spotifyTemporaryDownloadBaseUrl
|
||||
}
|
||||
|
||||
$web_Url = "$downloadBaseUrl/spotify_installer-$onlineFull-$arch.exe"
|
||||
$web_Url = "$downloadBaseUrl/spotify_installer-$downloadVersion-$arch.exe"
|
||||
$local_Url = Join-Path $DownloadFolder 'SpotifySetup.exe'
|
||||
$web_name_file = "SpotifySetup.exe"
|
||||
try {
|
||||
@@ -1452,6 +1600,8 @@ if ($spotifyInstalled) {
|
||||
|
||||
$arr1 = $online -split '\.' | foreach { [int]$_ }
|
||||
$arr2 = $offline -split '\.' | foreach { [int]$_ }
|
||||
$oldversion = $false
|
||||
$testversion = $false
|
||||
|
||||
# compare each element of the array in order from most significant to least significant.
|
||||
for ($i = 0; $i -lt $arr1.Length; $i++) {
|
||||
@@ -1467,9 +1617,6 @@ if ($spotifyInstalled) {
|
||||
|
||||
# Old version Spotify (skip if custom path is used)
|
||||
if ($oldversion -and -not $SpotifyPath) {
|
||||
if ($confirm_spoti_recomended_over -or $confirm_spoti_recomended_uninstall) {
|
||||
Write-Host ($lang).OldV`n
|
||||
}
|
||||
if (!($confirm_spoti_recomended_over) -and !($confirm_spoti_recomended_uninstall)) {
|
||||
do {
|
||||
Write-Host (($lang).OldV2 -f $offline, $online)
|
||||
@@ -1483,7 +1630,6 @@ if ($spotifyInstalled) {
|
||||
}
|
||||
if ($confirm_spoti_recomended_over -or $confirm_spoti_recomended_uninstall) {
|
||||
$ch = 'y'
|
||||
Write-Host ($lang).AutoUpd`n
|
||||
}
|
||||
if ($ch -eq 'y') {
|
||||
$upgrade_client = $true
|
||||
@@ -1501,7 +1647,7 @@ if ($spotifyInstalled) {
|
||||
if ($confirm_spoti_recomended_uninstall) { $ch = 'y' }
|
||||
if ($confirm_spoti_recomended_over) { $ch = 'n' }
|
||||
if ($ch -eq 'y') {
|
||||
Write-Host ($lang).DelOld`n
|
||||
Write-Host ($lang).DelSpotify`n
|
||||
$null = Unlock-Folder
|
||||
Invoke-SpotifyUninstall -InstalledVersion $offline
|
||||
}
|
||||
@@ -1514,11 +1660,9 @@ if ($spotifyInstalled) {
|
||||
|
||||
# Unsupported version Spotify (skip if custom path is used)
|
||||
if ($testversion -and -not $SpotifyPath) {
|
||||
$autoVersionDowngradeUninstall = $versionIsSupported -and !$confirm_spoti_recomended_over -and !$confirm_spoti_recomended_uninstall
|
||||
|
||||
if ($confirm_spoti_recomended_over -or $confirm_spoti_recomended_uninstall) {
|
||||
Write-Host ($lang).NewV`n
|
||||
}
|
||||
if (!($confirm_spoti_recomended_over) -and !($confirm_spoti_recomended_uninstall)) {
|
||||
if (!($confirm_spoti_recomended_over) -and !($confirm_spoti_recomended_uninstall) -and !$autoVersionDowngradeUninstall) {
|
||||
do {
|
||||
Write-Host (($lang).NewV2 -f $offline, $online)
|
||||
$ch = Read-Host -Prompt (($lang).NewV3 -f $offline)
|
||||
@@ -1529,10 +1673,10 @@ if ($spotifyInstalled) {
|
||||
}
|
||||
while ($ch -notmatch '^y$|^n$')
|
||||
}
|
||||
if ($confirm_spoti_recomended_over -or $confirm_spoti_recomended_uninstall) { $ch = 'n' }
|
||||
if ($confirm_spoti_recomended_over -or $confirm_spoti_recomended_uninstall -or $autoVersionDowngradeUninstall) { $ch = 'n' }
|
||||
if ($ch -eq 'y') { $upgrade_client = $false }
|
||||
if ($ch -eq 'n') {
|
||||
if (!($confirm_spoti_recomended_over) -and !($confirm_spoti_recomended_uninstall)) {
|
||||
if (!($confirm_spoti_recomended_over) -and !($confirm_spoti_recomended_uninstall) -and !$autoVersionDowngradeUninstall) {
|
||||
do {
|
||||
$ch = Read-Host -Prompt (($lang).Recom -f $online)
|
||||
Write-Host
|
||||
@@ -1542,14 +1686,13 @@ if ($spotifyInstalled) {
|
||||
}
|
||||
while ($ch -notmatch '^y$|^n$')
|
||||
}
|
||||
if ($confirm_spoti_recomended_over -or $confirm_spoti_recomended_uninstall) {
|
||||
if ($confirm_spoti_recomended_over -or $confirm_spoti_recomended_uninstall -or $autoVersionDowngradeUninstall) {
|
||||
$ch = 'y'
|
||||
Write-Host ($lang).AutoUpd`n
|
||||
}
|
||||
if ($ch -eq 'y') {
|
||||
$upgrade_client = $true
|
||||
$downgrading = $true
|
||||
if (!($confirm_spoti_recomended_over) -and !($confirm_spoti_recomended_uninstall)) {
|
||||
if (!($confirm_spoti_recomended_over) -and !($confirm_spoti_recomended_uninstall) -and !$autoVersionDowngradeUninstall) {
|
||||
do {
|
||||
$ch = Read-Host -Prompt (($lang).DelOrOver -f $offline)
|
||||
Write-Host
|
||||
@@ -1561,8 +1704,9 @@ if ($spotifyInstalled) {
|
||||
}
|
||||
if ($confirm_spoti_recomended_uninstall) { $ch = 'y' }
|
||||
if ($confirm_spoti_recomended_over) { $ch = 'n' }
|
||||
if ($autoVersionDowngradeUninstall) { $ch = 'y' }
|
||||
if ($ch -eq 'y') {
|
||||
Write-Host ($lang).DelNew`n
|
||||
Write-Host ($lang).DelSpotify`n
|
||||
$null = Unlock-Folder
|
||||
Invoke-SpotifyUninstall -InstalledVersion $offline
|
||||
}
|
||||
@@ -1709,8 +1853,45 @@ if ($webjson -eq $null) {
|
||||
Stop-Script
|
||||
}
|
||||
|
||||
function Get-JsonValue {
|
||||
param (
|
||||
[AllowNull()]
|
||||
[object]$Object,
|
||||
|
||||
function Helper($paramname) {
|
||||
[Parameter(Mandatory = $true)]
|
||||
[string]$Name
|
||||
)
|
||||
|
||||
if ($null -eq $Object) { return $null }
|
||||
$property = $Object.PSObject.Properties[$Name]
|
||||
if ($null -eq $property) { return $null }
|
||||
return $property.Value
|
||||
}
|
||||
|
||||
function Test-PatchVersionMatch {
|
||||
param (
|
||||
[AllowNull()]
|
||||
[object]$Patch,
|
||||
|
||||
[switch]$Translate
|
||||
)
|
||||
|
||||
if ($null -eq $Patch) { return $false }
|
||||
if ((Get-JsonValue -Object $Patch -Name 'disable') -eq $true) { return $false }
|
||||
if ($Translate) { return $true }
|
||||
|
||||
$version = Get-JsonValue -Object $Patch -Name 'version'
|
||||
$versionTo = Get-JsonValue -Object $version -Name 'to'
|
||||
$versionFr = Get-JsonValue -Object $version -Name 'fr'
|
||||
$offline_patch = $offline -replace '(\d+\.\d+\.\d+)(.\d+)', '$1'
|
||||
|
||||
if ($versionTo) { $to = [version]$versionTo -ge [version]$offline_patch } else { $to = $true }
|
||||
if ($versionFr) { $fr = [version]$versionFr -le [version]$offline_patch } else { $fr = $false }
|
||||
|
||||
return $fr -and $to
|
||||
}
|
||||
|
||||
function Helper($paramname, [switch]$CheckOnly) {
|
||||
|
||||
|
||||
function Remove-Json {
|
||||
@@ -1748,7 +1929,6 @@ function Helper($paramname) {
|
||||
Remove-Json -j $to -p $propertyName
|
||||
}
|
||||
}
|
||||
|
||||
switch ( $paramname ) {
|
||||
"HtmlLicMin" {
|
||||
# licenses.html minification
|
||||
@@ -1778,6 +1958,7 @@ function Helper($paramname) {
|
||||
# Remove indent for old theme xpui.css
|
||||
$name = "patches.json.others."
|
||||
$n = "xpui.css"
|
||||
$contents = "fix-old-theme"
|
||||
$json = $webjson.others
|
||||
}
|
||||
"Fixjs" {
|
||||
@@ -1801,14 +1982,16 @@ function Helper($paramname) {
|
||||
"Discriptions" {
|
||||
# Add discriptions (xpui-desktop-modals.js)
|
||||
|
||||
$svg_tg = $webjson.others.discriptions.svgtg
|
||||
$svg_git = $webjson.others.discriptions.svggit
|
||||
$svg_faq = $webjson.others.discriptions.svgfaq
|
||||
$replace = $webjson.others.discriptions.replace
|
||||
if (!$CheckOnly) {
|
||||
$svg_tg = $webjson.others.discriptions.svgtg
|
||||
$svg_git = $webjson.others.discriptions.svggit
|
||||
$svg_faq = $webjson.others.discriptions.svgfaq
|
||||
$replace = $webjson.others.discriptions.replace
|
||||
|
||||
$replacedText = $replace -f $svg_git, $svg_tg, $svg_faq
|
||||
$replacedText = $replace -f $svg_git, $svg_tg, $svg_faq
|
||||
|
||||
$webjson.others.discriptions.replace = '$1"' + $replacedText + '"})'
|
||||
$webjson.others.discriptions.replace = '$1"' + $replacedText + '"})'
|
||||
}
|
||||
|
||||
$name = "patches.json.others."
|
||||
$n = "xpui-desktop-modals.js"
|
||||
@@ -1824,6 +2007,14 @@ function Helper($paramname) {
|
||||
}
|
||||
"ForcedExp" {
|
||||
# Forced disable some exp (xpui.js)
|
||||
if ($CheckOnly) {
|
||||
$name = "patches.json.others."
|
||||
$n = "xpui.js"
|
||||
$contents = "ForcedExp"
|
||||
$json = $webjson.others
|
||||
break
|
||||
}
|
||||
|
||||
$offline_patch = $offline -replace '(\d+\.\d+\.\d+)(.\d+)', '$1'
|
||||
$Enable = $webjson.others.EnableExp
|
||||
$Disable = $webjson.others.DisableExp
|
||||
@@ -1850,6 +2041,11 @@ function Helper($paramname) {
|
||||
|
||||
if ([version]$offline -ge [version]'1.2.41.434' -and $lyrics_block) { Move-Json -n 'Lyrics' -t $Enable -f $Disable }
|
||||
|
||||
Remove-Json -j $Enable -p 'RightSidebarLyrics'
|
||||
if ($Custom.PSObject.Properties.Name -contains 'LyricsVariationsInNPV') {
|
||||
$Custom.LyricsVariationsInNPV.value = "CONTROL"
|
||||
}
|
||||
|
||||
if ([version]$offline -eq [version]'1.2.30.1135') { Move-Json -n 'QueueOnRightPanel' -t $Enable -f $Disable }
|
||||
|
||||
if ([version]$offline -le [version]'1.2.50.335') {
|
||||
@@ -1896,11 +2092,6 @@ function Helper($paramname) {
|
||||
}
|
||||
else {
|
||||
if (!($rightsidebarcolor)) { Remove-Json -j $Enable -p 'RightSidebarColors' }
|
||||
|
||||
if ($old_lyrics) {
|
||||
Remove-Json -j $Enable -p 'RightSidebarLyrics'
|
||||
$Custom.LyricsVariationsInNPV.value = "CONTROL"
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!$premium) { Remove-Json -j $Enable -p 'RemoteDownloads', 'Magpie', 'MagpiePrompting', 'MagpieScheduling', 'MagpieCuration' }
|
||||
@@ -1910,7 +2101,7 @@ function Helper($paramname) {
|
||||
$objects = @(
|
||||
@{
|
||||
Object = $webjson.others.CustomExp.psobject.properties
|
||||
PropertiesToKeep = @('LyricsUpsell')
|
||||
PropertiesToKeep = @('LyricsUpsell', 'LyricsVariationsInNPV')
|
||||
},
|
||||
@{
|
||||
Object = $webjson.others.EnableExp.psobject.properties
|
||||
@@ -1994,6 +2185,13 @@ function Helper($paramname) {
|
||||
$json = $webjsonru
|
||||
}
|
||||
"Binary" {
|
||||
if ($CheckOnly) {
|
||||
$name = "patches.json.others.binary."
|
||||
$n = "Spotify.exe"
|
||||
$contents = $webjson.others.binary.psobject.properties.name
|
||||
$json = $webjson.others.binary
|
||||
break
|
||||
}
|
||||
|
||||
$binary = $webjson.others.binary
|
||||
|
||||
@@ -2021,7 +2219,21 @@ function Helper($paramname) {
|
||||
$json = $webjson.others
|
||||
|
||||
}
|
||||
"HomeV2-js" {
|
||||
|
||||
$name = "patches.json.others."
|
||||
$n = "home-v2.js"
|
||||
$contents = "fixHomeV2EmptyResponseCheck"
|
||||
$json = $webjson.others
|
||||
}
|
||||
"VariousofXpui-js" {
|
||||
if ($CheckOnly) {
|
||||
$name = "patches.json.VariousJs."
|
||||
$n = "xpui.js"
|
||||
$contents = $webjson.VariousJs.psobject.properties.name
|
||||
$json = $webjson.VariousJs
|
||||
break
|
||||
}
|
||||
|
||||
$VarJs = $webjson.VariousJs
|
||||
|
||||
@@ -2066,6 +2278,7 @@ function Helper($paramname) {
|
||||
|
||||
if (!($ru)) { Remove-Json -j $VarJs -p "offrujs" }
|
||||
|
||||
$adds = $null
|
||||
if (!($premium) -or ($cache_limit)) {
|
||||
if (!($premium)) {
|
||||
$adds += $webjson.VariousJs.product_state.add
|
||||
@@ -2095,102 +2308,149 @@ function Helper($paramname) {
|
||||
}
|
||||
$paramdata = $xpui
|
||||
$novariable = "Didn't find variable "
|
||||
$offline_patch = $offline -replace '(\d+\.\d+\.\d+)(.\d+)', '$1'
|
||||
|
||||
$contents | foreach {
|
||||
foreach ($contentName in @($contents)) {
|
||||
if ([string]::IsNullOrEmpty($contentName)) {
|
||||
continue
|
||||
}
|
||||
|
||||
if ( $json.$PSItem.version.to ) { $to = [version]$json.$PSItem.version.to -ge [version]$offline_patch } else { $to = $true }
|
||||
if ( $json.$PSItem.version.fr ) { $fr = [version]$json.$PSItem.version.fr -le [version]$offline_patch } else { $fr = $false }
|
||||
$contentPatch = Get-JsonValue -Object $json -Name $contentName
|
||||
if ($null -eq $contentPatch) {
|
||||
continue
|
||||
}
|
||||
|
||||
$checkVer = $fr -and $to; $translate = $paramname -eq "RuTranslate"
|
||||
if ((Get-JsonValue -Object $contentPatch -Name 'disable') -eq $true) {
|
||||
continue
|
||||
}
|
||||
|
||||
if ($checkVer -or $translate) {
|
||||
$translate = $paramname -eq "RuTranslate"
|
||||
$checkVer = Test-PatchVersionMatch -Patch $contentPatch -Translate:$translate
|
||||
|
||||
if ($json.$PSItem.match.Count -gt 1) {
|
||||
if ($checkVer) {
|
||||
if ($CheckOnly) { return $true }
|
||||
|
||||
$count = $json.$PSItem.match.Count - 1
|
||||
$matchValue = Get-JsonValue -Object $contentPatch -Name 'match'
|
||||
$replaceValue = Get-JsonValue -Object $contentPatch -Name 'replace'
|
||||
if ($null -eq $matchValue -or $null -eq $replaceValue) {
|
||||
continue
|
||||
}
|
||||
|
||||
$matchPatterns = @($matchValue)
|
||||
$replacements = @($replaceValue)
|
||||
|
||||
if ($matchPatterns.Count -gt 1) {
|
||||
|
||||
$count = $matchPatterns.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]
|
||||
if ($paramdata -match $matchPatterns[$numbers]) {
|
||||
$paramdata = $paramdata -replace $matchPatterns[$numbers], $replacements[$numbers]
|
||||
}
|
||||
else {
|
||||
$notlog = "MinJs", "MinJson", "Cssmin"
|
||||
if ($paramname -notin $notlog) {
|
||||
|
||||
Write-Host $novariable -ForegroundColor red -NoNewline
|
||||
Write-Host "$name$PSItem $numbers"'in'$n
|
||||
Write-Host "$name$contentName $numbers"'in'$n
|
||||
}
|
||||
}
|
||||
$numbers++
|
||||
}
|
||||
}
|
||||
if ($json.$PSItem.match.Count -eq 1) {
|
||||
if ($paramdata -match $json.$PSItem.match) {
|
||||
$paramdata = $paramdata -replace $json.$PSItem.match, $json.$PSItem.replace
|
||||
if ($matchPatterns.Count -eq 1) {
|
||||
if ($paramdata -match $matchPatterns[0]) {
|
||||
$paramdata = $paramdata -replace $matchPatterns[0], $replacements[0]
|
||||
}
|
||||
else {
|
||||
if (!($translate) -or $err_ru) {
|
||||
Write-Host $novariable -ForegroundColor red -NoNewline
|
||||
Write-Host "$name$PSItem"'in'$n
|
||||
Write-Host "$name$contentName"'in'$n
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($CheckOnly) { return $false }
|
||||
$paramdata
|
||||
}
|
||||
|
||||
function extract ($counts, $method, $name, $helper, $add, $patch) {
|
||||
switch ( $counts ) {
|
||||
"one" {
|
||||
if ($method -eq "zip") {
|
||||
$zip = $null
|
||||
$reader = $null
|
||||
$writer = $null
|
||||
|
||||
if ($helper -and $null -eq $add -and !(Helper -paramname $helper -CheckOnly)) { return }
|
||||
|
||||
try {
|
||||
switch ( $counts ) {
|
||||
"one" {
|
||||
if ($method -eq "zip") {
|
||||
Add-Type -Assembly 'System.IO.Compression.FileSystem'
|
||||
$xpui_spa_patch = Join-Path (Join-Path $spotifyDirectory 'Apps') 'xpui.spa'
|
||||
$zip = [System.IO.Compression.ZipFile]::Open($xpui_spa_patch, 'update')
|
||||
$file = $zip.GetEntry($name)
|
||||
if ($null -eq $file) { throw "Archive entry not found: $name" }
|
||||
$reader = New-Object System.IO.StreamReader($file.Open())
|
||||
}
|
||||
elseif ($method -eq "nonezip") {
|
||||
$file = Get-Item (Join-Path (Join-Path (Join-Path $spotifyDirectory 'Apps') 'xpui') $name) -ErrorAction Stop
|
||||
$reader = New-Object -TypeName System.IO.StreamReader -ArgumentList $file
|
||||
}
|
||||
else {
|
||||
throw "Unsupported extraction method: $method"
|
||||
}
|
||||
|
||||
$xpui = $reader.ReadToEnd()
|
||||
$reader.Dispose()
|
||||
$reader = $null
|
||||
|
||||
if ($helper) { $xpui = Helper -paramname $helper }
|
||||
if ($method -eq "zip") { $writer = New-Object System.IO.StreamWriter($file.Open()) }
|
||||
if ($method -eq "nonezip") { $writer = New-Object System.IO.StreamWriter -ArgumentList $file }
|
||||
$writer.BaseStream.SetLength(0)
|
||||
$writer.Write($xpui)
|
||||
if ($add) { $add | foreach { $writer.Write([System.Environment]::NewLine + $PSItem ) } }
|
||||
$writer.Dispose()
|
||||
$writer = $null
|
||||
}
|
||||
"more" {
|
||||
Add-Type -Assembly 'System.IO.Compression.FileSystem'
|
||||
$xpui_spa_patch = Join-Path (Join-Path $spotifyDirectory 'Apps') 'xpui.spa'
|
||||
$zip = [System.IO.Compression.ZipFile]::Open($xpui_spa_patch, 'update')
|
||||
$file = $zip.GetEntry($name)
|
||||
$reader = New-Object System.IO.StreamReader($file.Open())
|
||||
$entries = @($zip.Entries | Where-Object { $_.FullName -like $name -and $_.FullName.Split('/') -notcontains 'spotx-helper' })
|
||||
|
||||
foreach ($entry in $entries) {
|
||||
$reader = New-Object System.IO.StreamReader($entry.Open())
|
||||
$xpui = $reader.ReadToEnd()
|
||||
$reader.Dispose()
|
||||
$reader = $null
|
||||
|
||||
$xpui = Helper -paramname $helper
|
||||
$writer = New-Object System.IO.StreamWriter($entry.Open())
|
||||
$writer.BaseStream.SetLength(0)
|
||||
$writer.Write($xpui)
|
||||
$writer.Dispose()
|
||||
$writer = $null
|
||||
}
|
||||
}
|
||||
if ($method -eq "nonezip") {
|
||||
$file = Get-Item (Join-Path (Join-Path (Join-Path $spotifyDirectory 'Apps') 'xpui') $name)
|
||||
$reader = New-Object -TypeName System.IO.StreamReader -ArgumentList $file
|
||||
}
|
||||
$xpui = $reader.ReadToEnd()
|
||||
$reader.Close()
|
||||
if ($helper) { $xpui = Helper -paramname $helper }
|
||||
if ($method -eq "zip") { $writer = New-Object System.IO.StreamWriter($file.Open()) }
|
||||
if ($method -eq "nonezip") { $writer = New-Object System.IO.StreamWriter -ArgumentList $file }
|
||||
$writer.BaseStream.SetLength(0)
|
||||
$writer.Write($xpui)
|
||||
if ($add) { $add | foreach { $writer.Write([System.Environment]::NewLine + $PSItem ) } }
|
||||
$writer.Close()
|
||||
if ($method -eq "zip") { $zip.Dispose() }
|
||||
}
|
||||
"more" {
|
||||
Add-Type -Assembly 'System.IO.Compression.FileSystem'
|
||||
$xpui_spa_patch = Join-Path (Join-Path $spotifyDirectory 'Apps') 'xpui.spa'
|
||||
$zip = [System.IO.Compression.ZipFile]::Open($xpui_spa_patch, 'update')
|
||||
$zip.Entries | Where-Object { $_.FullName -like $name -and $_.FullName.Split('/') -notcontains 'spotx-helper' } | foreach {
|
||||
$reader = New-Object System.IO.StreamReader($_.Open())
|
||||
$xpui = $reader.ReadToEnd()
|
||||
$reader.Close()
|
||||
"exe" {
|
||||
$ANSI = [Text.Encoding]::GetEncoding(1251)
|
||||
$xpui = [IO.File]::ReadAllText($spotify_binary, $ANSI)
|
||||
$xpui = Helper -paramname $helper
|
||||
$writer = New-Object System.IO.StreamWriter($_.Open())
|
||||
$writer.BaseStream.SetLength(0)
|
||||
$writer.Write($xpui)
|
||||
$writer.Close()
|
||||
[IO.File]::WriteAllText($spotify_binary, $xpui, $ANSI)
|
||||
}
|
||||
$zip.Dispose()
|
||||
}
|
||||
"exe" {
|
||||
$ANSI = [Text.Encoding]::GetEncoding(1251)
|
||||
$xpui = [IO.File]::ReadAllText($spotify_binary, $ANSI)
|
||||
$xpui = Helper -paramname $helper
|
||||
[IO.File]::WriteAllText($spotify_binary, $xpui, $ANSI)
|
||||
}
|
||||
}
|
||||
catch {
|
||||
Stop-BrokenSpotifyFiles -Details "Error: $($_.Exception.Message)"
|
||||
}
|
||||
finally {
|
||||
if ($null -ne $reader) { $reader.Dispose() }
|
||||
if ($null -ne $writer) { $writer.Dispose() }
|
||||
if ($null -ne $zip) { $zip.Dispose() }
|
||||
}
|
||||
}
|
||||
|
||||
function injection {
|
||||
@@ -2214,9 +2474,11 @@ function injection {
|
||||
$folderPathInArchive = "$($FolderInArchive)/"
|
||||
|
||||
Add-Type -AssemblyName System.IO.Compression.FileSystem
|
||||
$archive = [System.IO.Compression.ZipFile]::Open($ArchivePath, 'Update')
|
||||
$archive = $null
|
||||
|
||||
try {
|
||||
$archive = [System.IO.Compression.ZipFile]::Open($ArchivePath, 'Update')
|
||||
|
||||
for ($i = 0; $i -lt $FileNames.Length; $i++) {
|
||||
$fileName = $FileNames[$i]
|
||||
$fileContent = $FileContents[$i]
|
||||
@@ -2277,6 +2539,9 @@ function injection {
|
||||
Write-Warning "index.html not found in xpui.spa"
|
||||
}
|
||||
}
|
||||
catch {
|
||||
Stop-BrokenSpotifyFiles -Details "Error: $($_.Exception.Message)"
|
||||
}
|
||||
finally {
|
||||
if ($archive -ne $null) {
|
||||
$archive.Dispose()
|
||||
@@ -2764,6 +3029,9 @@ if ($test_spa) {
|
||||
# Check for the presence of xpui.js in the xpui.spa archive
|
||||
|
||||
$archive_spa = $null
|
||||
$xpuiJsEntry = $null
|
||||
$v8_snapshot = $null
|
||||
$archiveError = $null
|
||||
|
||||
try {
|
||||
$archive_spa = [System.IO.Compression.ZipFile]::OpenRead($xpui_spa_patch)
|
||||
@@ -2802,27 +3070,45 @@ if ($test_spa) {
|
||||
}
|
||||
}
|
||||
catch {
|
||||
Write-Warning "Error: $($_.Exception.Message)"
|
||||
$archiveError = $_.Exception
|
||||
}
|
||||
finally {
|
||||
if ($null -ne $archive_spa) {
|
||||
$archive_spa.Dispose()
|
||||
}
|
||||
if (-not $v8_snapshot -and $null -eq $xpuiJsEntry) {
|
||||
Write-Warning "v8_context_snapshot file not found, cannot create xpui.js"
|
||||
Stop-Script
|
||||
}
|
||||
}
|
||||
|
||||
if ($archiveError) {
|
||||
Stop-BrokenSpotifyFiles -Details "Error: $($archiveError.Message)"
|
||||
}
|
||||
|
||||
if (-not $v8_snapshot -and $null -eq $xpuiJsEntry) {
|
||||
Write-Warning "v8_context_snapshot file not found, cannot create xpui.js"
|
||||
Stop-Script
|
||||
}
|
||||
|
||||
$bak_spa = Join-Path (Join-Path $spotifyDirectory 'Apps') 'xpui.bak'
|
||||
$test_bak_spa = Test-Path -Path $bak_spa
|
||||
|
||||
# Make a backup copy of xpui.spa if it is original
|
||||
$zip = [System.IO.Compression.ZipFile]::Open($xpui_spa_patch, 'update')
|
||||
$entry = $zip.GetEntry('xpui.js')
|
||||
$reader = New-Object System.IO.StreamReader($entry.Open())
|
||||
$patched_by_spotx = $reader.ReadToEnd()
|
||||
$reader.Close()
|
||||
$zip = $null
|
||||
$reader = $null
|
||||
|
||||
try {
|
||||
$zip = [System.IO.Compression.ZipFile]::Open($xpui_spa_patch, 'update')
|
||||
$entry = $zip.GetEntry('xpui.js')
|
||||
if ($null -eq $entry) { throw "Archive entry not found: xpui.js" }
|
||||
|
||||
$reader = New-Object System.IO.StreamReader($entry.Open())
|
||||
$patched_by_spotx = $reader.ReadToEnd()
|
||||
}
|
||||
catch {
|
||||
Stop-BrokenSpotifyFiles -Details "Error: $($_.Exception.Message)"
|
||||
}
|
||||
finally {
|
||||
if ($null -ne $reader) { $reader.Dispose() }
|
||||
if ($null -ne $zip) { $zip.Dispose() }
|
||||
}
|
||||
|
||||
|
||||
if ($offline -ge [version]'1.2.70.253') {
|
||||
@@ -2836,8 +3122,6 @@ if ($test_spa) {
|
||||
}
|
||||
|
||||
If ($patched_by_spotx -match 'patched by spotx') {
|
||||
$zip.Dispose()
|
||||
|
||||
if ($test_bak_spa) {
|
||||
Remove-Item $xpui_spa_patch -Recurse -Force
|
||||
Rename-Item $bak_spa $xpui_spa_patch
|
||||
@@ -2879,7 +3163,6 @@ if ($test_spa) {
|
||||
}
|
||||
|
||||
}
|
||||
$zip.Dispose()
|
||||
Copy-Item $xpui_spa_patch $bak_spa
|
||||
|
||||
if ($spotify_binary_bak -eq $dll_bak) {
|
||||
@@ -2891,15 +3174,23 @@ if ($test_spa) {
|
||||
# Remove all languages except En and Ru from xpui.spa
|
||||
if ($ru) {
|
||||
$null = [Reflection.Assembly]::LoadWithPartialName('System.IO.Compression')
|
||||
$stream = New-Object IO.FileStream($xpui_spa_patch, [IO.FileMode]::Open)
|
||||
$mode = [IO.Compression.ZipArchiveMode]::Update
|
||||
$zip_xpui = New-Object IO.Compression.ZipArchive($stream, $mode)
|
||||
$stream = $null
|
||||
$zip_xpui = $null
|
||||
|
||||
($zip_xpui.Entries | Where-Object { $_.FullName -match "i18n" -and $_.FullName -inotmatch "(ru|en.json|longest)" }) | foreach { $_.Delete() }
|
||||
try {
|
||||
$stream = New-Object IO.FileStream($xpui_spa_patch, [IO.FileMode]::Open)
|
||||
$mode = [IO.Compression.ZipArchiveMode]::Update
|
||||
$zip_xpui = New-Object IO.Compression.ZipArchive($stream, $mode)
|
||||
|
||||
$zip_xpui.Dispose()
|
||||
$stream.Close()
|
||||
$stream.Dispose()
|
||||
($zip_xpui.Entries | Where-Object { $_.FullName -match "i18n" -and $_.FullName -inotmatch "(ru|en.json|longest)" }) | foreach { $_.Delete() }
|
||||
}
|
||||
catch {
|
||||
Stop-BrokenSpotifyFiles -Details "Error: $($_.Exception.Message)"
|
||||
}
|
||||
finally {
|
||||
if ($null -ne $zip_xpui) { $zip_xpui.Dispose() }
|
||||
if ($null -ne $stream) { $stream.Dispose() }
|
||||
}
|
||||
}
|
||||
|
||||
# Full screen mode activation and removing "Upgrade to premium" menu, upgrade button, disabling a playlist sponsor
|
||||
@@ -2971,6 +3262,7 @@ if ($test_spa) {
|
||||
injection -p $xpui_spa_patch -f "spotx-helper/lyrics-color" -n @("rules.css", "colors.css") -c @($rulesContent, $colorsContent) -i "rules.css"
|
||||
|
||||
}
|
||||
extract -counts 'one' -method 'zip' -name 'home-v2.js' -helper 'HomeV2-js'
|
||||
extract -counts 'one' -method 'zip' -name 'xpui.js' -helper 'VariousofXpui-js'
|
||||
|
||||
if ([version]$offline -ge [version]"1.1.85.884" -and [version]$offline -le [version]"1.2.57.463") {
|
||||
@@ -3032,7 +3324,6 @@ if ($test_spa) {
|
||||
if ($null -ne $css ) { extract -counts 'one' -method 'zip' -name 'xpui.css' -add $css }
|
||||
|
||||
# Old UI fix
|
||||
$contents = "fix-old-theme"
|
||||
extract -counts 'one' -method 'zip' -name 'xpui.css' -helper "FixCss"
|
||||
|
||||
# Remove RTL and minification of all *.css
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "Аўтаматычнае выдаленне Spotify MS..."
|
||||
MsSpoti4 = "Выдаленне Spotify MS..."
|
||||
Prem = "Мадыфікацыя для прэміум-акаўнта..."
|
||||
OldV = "Знойдзена састарэлая версія Spotify"
|
||||
OldV2 = "Ваша версія Spotify ({0}) састарэла, бягучая апошняя версія — {1}"
|
||||
OldV3 = "Хочаце абнавіць? [Y/N]"
|
||||
AutoUpd = "Аўтаматычнае абнаўленне да рэкамендаванай версіі"
|
||||
DelOrOver = "Выдаліць бягучую версію ({0}) або ўсталяваць паверх яе? Y [Выдаліць] / N [Усталяваць паверх]"
|
||||
DelOld = "Выдаленне старой версіі Spotify..."
|
||||
NewV = "Знойдзена непадтрымоўваная версія Spotify"
|
||||
DelSpotify = "Выдаленне Spotify..."
|
||||
NewV2 = "Ваша версія Spotify ({0}) не была пратэставана. Стабільная версія для SpotX — {1}"
|
||||
NewV3 = "Працягнуць з {0} (могуць узнікнуць памылкі)? [Y/N]"
|
||||
Recom = "Усталяваць апошнюю версію {0}? [Y/N]"
|
||||
DelNew = "Выдаленне неправеранай версіі Spotify..."
|
||||
DownSpoti = "Спампоўка і ўсталёўка Spotify"
|
||||
DownSpoti2 = "Калі ласка, пачакайце..."
|
||||
PodcatsOff = "Падкасты выкл"
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "স্বয়ংক্রিয়ভাবে স্পটিফাই এর মাইক্রোসফট স্টোর সংস্করণ আনইন্সটল করা হচ্ছে..."
|
||||
MsSpoti4 = "স্পটিফাই এর মাইক্রোসফট স্টোর সংস্করণ আনইন্সটল করা হচ্ছে..."
|
||||
Prem = "প্রিমিয়াম একাউন্ট এর জন্য পরিবর্তন..."
|
||||
OldV = "স্পটিফাই এর একটি অসমর্থিত সংস্করণ পাওয়া গিয়েছে"
|
||||
OldV2 = "আপনার স্পটিফাই এর {0} সংস্করণটি অসমর্থিত, আপনাকে {1} সংস্করণে হালনাগাদের জন্য পরামর্শ দেয়া হলো"
|
||||
OldV3 = "হালনাগাদ করতে চান ? [Y/N]"
|
||||
AutoUpd = "সুপারিশকৃত সংস্করণে স্বয়ংক্রিয় হালনাগাদকরণ"
|
||||
DelOrOver = "আপনি কি বর্তমানে ইনস্টল থাকা {0} সংস্করণটি আনইনস্টল করতে চান নাকি আগেরটির সাথেই ইনস্টল করবেন? Y [আনইন্সটল করুন] / N [আগেরটির সাথেই ইনস্টল করুন]"
|
||||
DelOld = "পুরাতন স্পটিফাই আনইন্সটল করা হচ্ছে..."
|
||||
NewV = "স্পটিফাই এর একটি অসমর্থিত সংস্করণ পাওয়া গিয়েছে"
|
||||
DelSpotify = "Spotify আনইন্সটল করা হচ্ছে..."
|
||||
NewV2 = "আপনার স্পটিফাই এর {0} সংস্করণটি এখনো পরীক্ষা করা হয়নি, বর্তমানে এটি স্থায়ী {1} সংস্করণ"
|
||||
NewV3 = "আপনি কি {0} সংস্করণের সাথে চালিয়ে যেতে চান (এটিতে সমস্যা থাকতে পারে) ? [Y/N]"
|
||||
Recom = "আপনি কি সুপারিশকৃত {0} সংস্করণটি ইনস্টল করতে চান ? [Y/N]"
|
||||
DelNew = "অপরীক্ষিত স্পটিফাই আনইন্সটল করা হচ্ছে..."
|
||||
DownSpoti = "স্পটিফাই ডাউনলোড এবং ইনস্টল করা হচ্ছে"
|
||||
DownSpoti2 = "দয়া করে অপেক্ষা করুন..."
|
||||
PodcatsOff = "পডকাস্ট বন্ধ রাখুন"
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "Automaticky odinstalovávám Spotify z Microsoft Store..."
|
||||
MsSpoti4 = "Odinštalovávám Spotify z Microsoft Store..."
|
||||
Prem = "Úprava kvůli prémiovému účtu..."
|
||||
OldV = "Nalezena stará verze Spotify"
|
||||
OldV2 = "Vaše Spotify {0} verze je stará, doporučuje se aktualizovat na verzi {1}"
|
||||
OldV3 = "Chcete aktualizovat? [Y/N]"
|
||||
AutoUpd = "Automatická aktualizace na doporučenou verzi"
|
||||
DelOrOver = "Chcete odinstalovat současnou verzi {0} nebo nainstalovat novější na současnou (zůstanou některé soubory)? Y [Odinštalovat] / N [Nainstalovat novější na současnou]"
|
||||
DelOld = "Odinštalovávám staré Spotify..."
|
||||
NewV = "Byla nalezena nepodporovaná verze Spotify"
|
||||
DelSpotify = "Odinštalovávám Spotify..."
|
||||
NewV2 = "Vaše Spotify {0} verze zatím nebyla testována, stabilní je nyní {1} verze"
|
||||
NewV3 = "Chcete pokračovat s {0} verzí (mohou nastat chyby)? [Y/N]"
|
||||
Recom = "Chcete nainstalovat doporučenou {0} verzi? [Y/N]"
|
||||
DelNew = "Odinštalovávám netestovanou verzi Spotify..."
|
||||
DownSpoti = "Stahuji a instaluji Spotify"
|
||||
DownSpoti2 = "Prosím čekejte..."
|
||||
PodcatsOff = "Vypněte podcasty"
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "Deinstalliere die MS Version von Spotify automatisch..."
|
||||
MsSpoti4 = "Deinstalliere die MS Version von Spotify..."
|
||||
Prem = "Modifikation für Premium Accounts..."
|
||||
OldV = "Veraltete Version von Spotify gefunden"
|
||||
OldV2 = "Ihre Spotify {0} Version ist veraltet, es wird empfohlen, Spotify auf {1} zu aktualisieren"
|
||||
OldV3 = "Möchten Sie Spotify aktualisieren? [Y/N]"
|
||||
AutoUpd = "Automatisches Aktualisieren zur empfohlenen Version"
|
||||
DelOrOver = "Möchten Sie die bestehenden Version von Spotify {0} deinstallieren oder möchten Sie sie überschreiben? Y [Deinstallieren] / N [Überschreiben]"
|
||||
DelOld = "Deinstalliere das alte Spotify..."
|
||||
NewV = "Nicht unterstützte Version von Spotify gefunden"
|
||||
DelSpotify = "Deinstalliere Spotify..."
|
||||
NewV2 = "Ihre Spotify {0} Version wurde noch nicht getestet, im Moment ist {1} die stabile Version"
|
||||
NewV3 = "Möchten Sie mit der {0} Version fortfahren? (Fehler können auftreten) [Y/N]"
|
||||
Recom = "Möchten Sie die empfohlene Version von Spotify installieren? [Y/N]"
|
||||
DelNew = "Deinstalliere eine ungetestete Version von Spotify..."
|
||||
DownSpoti = "Installiere Spotify"
|
||||
DownSpoti2 = "Bitte warten..."
|
||||
PodcatsOff = "Podcasts Aus"
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "Αυτόματη απεγκατάσταση Spotify MS..."
|
||||
MsSpoti4 = "Απεγκατάσταση Spotify MS..."
|
||||
Prem = "Τροποποίηση για premium λογαριασμό..."
|
||||
OldV = "Βρέθηκε ξεπερασμένη έκδοση του Spotify"
|
||||
OldV2 = "Η έκδοση Spotify {0} είναι ξεπερασμένη, συνιστάται η αναβάθμιση σε {1}"
|
||||
OldV3 = "Θέλετε να ενημερώσετε; [Y/N]"
|
||||
AutoUpd = "Αυτόματη αναβάθμιση στην προτεινόμενη έκδοση"
|
||||
DelOrOver = "Θέλετε να απεγκαταστήσετε την τρέχουσα έκδοση του {0} η να αντικατασταθεί; Y [Απεγκατάσταση] / N [Αντικατάσταση]"
|
||||
DelOld = "Απεγκατάσταση του παλιού Spotify..."
|
||||
NewV = "Μη υποστηριζόμενη έκδοση του Spotify βρέθηκε"
|
||||
DelSpotify = "Απεγκατάσταση Spotify..."
|
||||
NewV2 = "Η έκδοσή σας στο Spotify {0} δεν έχει δοκιμαστεί ακόμα, αυτή τη στιγμή είναι σταθερή {1} έκδοση"
|
||||
NewV3 = "Θέλετε να συνεχίσετε με την {0} έκδοση (πιθανά σφάλματα); [Y/N]"
|
||||
Recom = "Θέλετε να εγκαταστήσετε την προτεινόμενη {0} έκδοση; [Y/N]"
|
||||
DelNew = "Απεγκατάσταση μη δοκιμασμένου Spotify..."
|
||||
DownSpoti = "Λήψη και εγκατάσταση Spotify"
|
||||
DownSpoti2 = "Παρακαλώ περιμένετε..."
|
||||
PodcatsOff = "Podcasts Απενεργοποιημένα"
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "Automatically uninstalling Spotify MS..."
|
||||
MsSpoti4 = "Uninstalling Spotify MS..."
|
||||
Prem = "Modification for premium account..."
|
||||
OldV = "Found outdated version of Spotify"
|
||||
OldV2 = "Your Spotify version ({0}) is outdated, the current latest version is — {1}"
|
||||
OldV3 = "Want to update ? [Y/N]"
|
||||
AutoUpd = "Automatic update to the recommended version"
|
||||
DelOrOver = "Remove the current version ({0}) or install over it? Y [Remove] / N [Install Over]"
|
||||
DelOld = "Uninstalling old Spotify..."
|
||||
NewV = "Unsupported version of Spotify found"
|
||||
DelSpotify = "Uninstalling Spotify..."
|
||||
NewV2 = "Your Spotify version ({0}) has not been tested. The stable version for SpotX is {1}"
|
||||
NewV3 = "Continue with {0} (errors may occur) ? [Y/N]"
|
||||
Recom = "Install the latest version {0} ? [Y/N]"
|
||||
DelNew = "Uninstalling an untested Spotify..."
|
||||
DownSpoti = "Downloading and installing Spotify"
|
||||
DownSpoti2 = "Please wait..."
|
||||
PodcatsOff = "Off Podcasts"
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "Desinstalación automática de Spotify de Microsoft Store..."
|
||||
MsSpoti4 = "Desinstalación de Spotify de Microsoft Store..."
|
||||
Prem = "Modificación para la cuenta prémium..."
|
||||
OldV = "Se ha encontrado una versión obsoleta de Spotify"
|
||||
OldV2 = "Su versión de Spotify {0} está obsoleta, se recomienda actualizar a {1}"
|
||||
OldV3 = "¿Quiere actualizar? [Y/N]"
|
||||
AutoUpd = "Actualización automática a la versión recomendada"
|
||||
DelOrOver = "¿Desea desinstalar la versión actual de {0} o instalar sobre ella? Y [Desinstalar] / N [Instalar encima]"
|
||||
DelOld = "Desinstalando el antiguo Spotify..."
|
||||
NewV = "Se ha encontrado una versión no compatible de Spotify"
|
||||
DelSpotify = "Desinstalando Spotify..."
|
||||
NewV2 = "Su versión de Spotify {0} aún no se ha probado; actualmente la versión estable es la {1}"
|
||||
NewV3 = "¿Quieres continuar con la versión {0} (posibles errores)? [Y/N]"
|
||||
Recom = "¿Desea instalar la versión recomendada {0}? [Y/N]"
|
||||
DelNew = "Desinstalando un Spotify no probado..."
|
||||
DownSpoti = "Descargando e instalando Spotify"
|
||||
DownSpoti2 = "Espere un momento..."
|
||||
PodcatsOff = "Pódcast desactivados"
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "حذف خودکار اسپاتیفای MS"
|
||||
MsSpoti4 = "حذف نصب اسپاتیفای MS"
|
||||
Prem = "تغییر برای حساب پریمیوم"
|
||||
OldV = "نسخه قدیمی اسپاتیفای پیدا شد"
|
||||
OldV2 = "نسخه اسپاتیفای {0} شما قدیمی است، توصیه می شود به {1} ارتقا دهید"
|
||||
OldV3 = "می خواهید به روز رسانی کنید؟ [Y/N]"
|
||||
AutoUpd = "به روز رسانی خودکار به نسخه پیشنهادی"
|
||||
DelOrOver = "آیا می خواهید نسخه فعلی {0} را حذف نصب کنید یا روی آن نصب کنید؟ Y [Uninstall] / N [Install Over]"
|
||||
DelOld = "حذف نصب اسپاتیفای قدیمی"
|
||||
NewV = "نسخه پشتیبانی نشده اسپاتیفای پیدا شد"
|
||||
DelSpotify = "حذف نصب اسپاتیفای..."
|
||||
NewV2 = "نسخه اسپاتیفای {0} شما هنوز آزمایش نشده است، در حال حاضر یک نسخه پایدار {1} است"
|
||||
NewV3 = "آیا می خواهید با نسخه {0} ادامه دهید (خطا ممکن است رخ دهد)؟ [Y/N]"
|
||||
Recom = "آیا می خواهید نسخه پیشنهادی {0} را نصب کنید؟ [Y/N]"
|
||||
DelNew = "حذف نصب اسپاتیفای تست نشده..."
|
||||
DownSpoti = "دانلود و نصب اسپاتیفای"
|
||||
DownSpoti2 = "لطفا صبر کنید..."
|
||||
PodcatsOff = "خاموش کردن پادکست"
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "Spotifyn Microsoft Store -version automaattinen poistaminen..."
|
||||
MsSpoti4 = "Poistetaan Spotifyn Microsoft Store -versiota."
|
||||
Prem = "Muunnos premium-tiliin..."
|
||||
OldV = "Spotifysta löytyi vanhentunut versio"
|
||||
OldV2 = "Spotify {0} -versiosi on vanhentunut, on suositeltavaa päivittää versioon {1}"
|
||||
OldV3 = "Haluatko päivittää? [Y/N]"
|
||||
AutoUpd = "Automaattinen päivitys suositeltuun versioon"
|
||||
DelOrOver = "Haluatko poistaa nykyisen version {0} vai asentaa sen päälle? Y [Poista asennus] / N [Asenna edellisen päälle]"
|
||||
DelOld = "Poistetaan vanhaa Spotify versiota..."
|
||||
NewV = "Spotifyn ei-tuettu versio löytyi"
|
||||
DelSpotify = "Poistetaan Spotifyta..."
|
||||
NewV2 = "Spotify-versiotasi {0} ei ole vielä testattu, tällä hetkellä versio {1} on vakaa"
|
||||
NewV3 = "Haluatko jatkaa versiolla {0} (bugit sekä virheet mahdollista)? [Y/N]"
|
||||
Recom = "Haluatko asentaa suositellun {0} version? [Y/N]"
|
||||
DelNew = "Poistetaan testaamattoman Spotify versiota..."
|
||||
DownSpoti = "Ladataan ja asennetaan spotify:tä"
|
||||
DownSpoti2 = "Odota hetki..."
|
||||
PodcatsOff = "podcastit poissa päältä"
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "Awtomatikong i-uninstall ang Spotify na MS..."
|
||||
MsSpoti4 = "Ina-uninstall ang Spotify MS..."
|
||||
Prem = "Pagbabago para sa premium account..."
|
||||
OldV = "Natagpuan ang lumang bersyon ng Spotify"
|
||||
OldV2 = "Ang iyong bersyon ng Spotify na {0} ay luma na, ito ay inirerekomenda na i-upgrade sa {1}"
|
||||
OldV3 = "Gusto mo ba mag-update? [Y/N]"
|
||||
AutoUpd = "Awtomatikong i-update sa inirerekumendang bersyon"
|
||||
DelOrOver = "Gusto mo bang i-uninstall ang kasalukuyang bersyon ng {0} o mag-install ng panibagong bersyon? Y [I-uninstall] / N [Mag-install ng Panibagong Bersyon]"
|
||||
DelOld = "Tinatanggal ang lumang Spotify..."
|
||||
NewV = "Natagpuan ang hindi suportadong bersyon ng Spotify"
|
||||
DelSpotify = "Ina-uninstall ang Spotify..."
|
||||
NewV2 = "Ang iyong bersyon ng Spotify {0} ay hindi pa nasusubukan, kasalukuyang ito ay nasa stable na bersyon na {1}"
|
||||
NewV3 = "Gusto mo bang magpatuloy sa {0} bersyon (mayroong mga error)? [Y/N]"
|
||||
Recom = "Gusto mo bang mag-install ng inirerekumendang {0} na bersyon? [Y/N]"
|
||||
DelNew = "Ina-uninstall ang hindi pa nasusubukan na Spotify..."
|
||||
DownSpoti = "Nagda-download at nag-i-install ng Spotify"
|
||||
DownSpoti2 = "Mangyaring maghintay..."
|
||||
PodcatsOff = "I-off ang mga Podcast"
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "Désinstallation automatique de Spotify MS..."
|
||||
MsSpoti4 = "Désinstallation de Spotify MS..."
|
||||
Prem = "Modification pour compte premium..."
|
||||
OldV = "Ancienne version de Spotify trouvée"
|
||||
OldV2 = "Votre version Spotify {0} est obsolète, il est recommandé de mettre à jour vers la {1}"
|
||||
OldV3 = "Voulez-vous faire la mise à jour ? [Y/N]"
|
||||
AutoUpd = "Mise à jour automatique vers la version recommandée"
|
||||
DelOrOver = "Voulez-vous désinstaller la version actuelle {0} ou installer par dessus ? Y [Désinstaller] / N [Installer par dessus]"
|
||||
DelOld = "Désinstallation de l'ancienne version de Spotify..."
|
||||
NewV = "Version non supportée de Spotify trouvée"
|
||||
DelSpotify = "Désinstallation de Spotify..."
|
||||
NewV2 = "Votre version {0} de Spotify n'a pas encore été testée, actuellement {1} est une version stable"
|
||||
NewV3 = "Voulez-vous continuer avec la version {0} (erreurs possibles) ? [Y/N]"
|
||||
Recom = "Voulez-vous installer la version {0} recommandée ? [Y/N]"
|
||||
DelNew = "Désinstallation d'une version de Spotify non testée..."
|
||||
DownSpoti = "Téléchargement et installation de Spotify"
|
||||
DownSpoti2 = "Veuillez patienter..."
|
||||
PodcatsOff = "Podcasts désactivés"
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "Spotify MS अपने आप अनइंस्टॉल हो रहा है..."
|
||||
MsSpoti4 = "Spotify MS अनइंस्टॉल किया जा रहा है..."
|
||||
Prem = "प्रीमियम अकाउंट के लिए मॉडिफिकेशन किया जा रहा है..."
|
||||
OldV = "Spotify का पुराना वर्जन मिला"
|
||||
OldV2 = "आपका Spotify वर्जन ({0}) पुराना है। लेटेस्ट वर्जन {1} है"
|
||||
OldV3 = "क्या आप अपडेट करना चाहते हैं? [Y/N]"
|
||||
AutoUpd = "सुझाए गए वर्जन पर ऑटोमेटिक अपडेट"
|
||||
DelOrOver = "मौजूदा वर्जन ({0}) को हटाएँ या इसी पर इंस्टॉल करें? Y [हटाएँ] / N [इसी पर इंस्टॉल करें]"
|
||||
DelOld = "पुराना Spotify अनइंस्टॉल किया जा रहा है..."
|
||||
NewV = "Spotify का अनसपोर्टेड वर्जन मिला"
|
||||
DelSpotify = "Spotify अनइंस्टॉल किया जा रहा है..."
|
||||
NewV2 = "आपके Spotify वर्जन ({0}) को टेस्ट नहीं किया गया है। SpotX के लिए स्टेबल वर्जन {1} है"
|
||||
NewV3 = "क्या आप वर्जन {0} के साथ जारी रखना चाहते हैं (इसमें समस्याएं आ सकती हैं)? [Y/N]"
|
||||
Recom = "क्या आप लेटेस्ट वर्जन {0} इंस्टॉल करना चाहते हैं? [Y/N]"
|
||||
DelNew = "टेस्ट न किए गए Spotify को अनइंस्टॉल किया जा रहा है..."
|
||||
DownSpoti = "Spotify डाउनलोड और इंस्टॉल किया जा रहा है"
|
||||
DownSpoti2 = "कृपया प्रतीक्षा करें..."
|
||||
PodcatsOff = "पॉडकास्ट बंद"
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "A Spotify MS automatikus eltávolítása..."
|
||||
MsSpoti4 = "Spotify MS eltávolítása..."
|
||||
Prem = "Módosítás a prémium fiókhoz..."
|
||||
OldV = "A Spotify elavult verziója van telepítve"
|
||||
OldV2 = "A Spotify {0} verziója elavult, ajánlott frissíteni a {1} verzióra."
|
||||
OldV3 = "Szeretné frissíteni ? [Y/N]"
|
||||
AutoUpd = "Automatikus frissítés a javasolt verzióra"
|
||||
DelOrOver = "A {0} jelenlegi verzióját szeretné eltávolítani vagy telepíteni rá? Y [Eltávolítás] / N [Felül telepítés]"
|
||||
DelOld = "A régi Spotify eltávolítása..."
|
||||
NewV = "A Spotify nem támogatott verziója van telepítve"
|
||||
DelSpotify = "Spotify eltávolítása..."
|
||||
NewV2 = "A Spotify {0} verzióját még nem teszteltük, jelenlegi stabil verzió: {1}. "
|
||||
NewV3 = "Folytatni szeretné a {0} verzióval (hibák léphetnek fel) ? [Y/N]"
|
||||
Recom = "Szeretné telepíteni a {0} ajánlott verziót? [Y/N]"
|
||||
DelNew = "Nem tesztelt Spotify eltávolítása..."
|
||||
DownSpoti = "A Spotify letöltése és telepítése"
|
||||
DownSpoti2 = "Kérem várjon..."
|
||||
PodcatsOff = "Podcastok kikapcsolása"
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "Menghapus Spotify MS secara otomatis..."
|
||||
MsSpoti4 = "Menghapus Spotify MS..."
|
||||
Prem = "Modifikasi untuk akun premium..."
|
||||
OldV = "Versi lama Spotify ditemukan"
|
||||
OldV2 = "Versi Spotify {0} Anda sudah usang, disarankan untuk upgrade ke versi {1}"
|
||||
OldV3 = "Ingin mengupdate? [Y/N]"
|
||||
AutoUpd = "Pembaruan otomatis ke versi yang direkomendasikan"
|
||||
DelOrOver = "Apakah Anda ingin menghapus versi {0} saat ini atau menimpanya? Y [Uninstall] / N [Timpa]"
|
||||
DelOld = "Menghapus Spotify lama..."
|
||||
NewV = "Ditemukan versi Spotify yang tidak didukung"
|
||||
DelSpotify = "Menghapus Spotify..."
|
||||
NewV2 = "Versi Spotify {0} Anda belum diuji, saat ini adalah versi {1} yang stabil"
|
||||
NewV3 = "Ingin melanjutkan dengan versi {0} (mungkin ada kesalahan)? [Y/N]"
|
||||
Recom = "Ingin menginstal versi {0} yang direkomendasikan? [Y/N]"
|
||||
DelNew = "Menghapus Spotify yang belum diuji..."
|
||||
DownSpoti = "Mengunduh dan menginstal Spotify"
|
||||
DownSpoti2 = "Tunggu sebentar..."
|
||||
PodcatsOff = "Podcast Nonaktif"
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "Disinstallazione automatica di Spotify MS..."
|
||||
MsSpoti4 = "Disinstallazione di Spotify MS..."
|
||||
Prem = "Modifica per account premium..."
|
||||
OldV = "Trovata vecchia versione di Spotify"
|
||||
OldV2 = "La tua versione di Spotify {0} è vecchia, la versione attuale più recente è — {1}"
|
||||
OldV3 = "Vorresti aggiornare ? [Y/N]"
|
||||
AutoUpd = "Aggiornamento automatico alla versione consigliata"
|
||||
DelOrOver = "Rimuovere la versione attuale {0} o sovrascriverla? Y [Rimuovi] / N [Sovrascrivi]"
|
||||
DelOld = "Disinstallando vecchia versione di Spotify..."
|
||||
NewV = "Trovata versione di Spotify non supportata"
|
||||
DelSpotify = "Disinstallando Spotify..."
|
||||
NewV2 = "La tua versione {0} di Spotify non è stata testata. La versione stabile per SpotX è {1}"
|
||||
NewV3 = "Continuare con {0} (possibili errori) ? [Y/N]"
|
||||
Recom = "Installare l'ultima versione {0} ? [Y/N]"
|
||||
DelNew = "Disinstallando una versione non testata di Spotify..."
|
||||
DownSpoti = "Scaricando ed installando Spotify"
|
||||
DownSpoti2 = "Attendere..."
|
||||
PodcatsOff = "Podcasts OFF"
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "Spotify MS 版を自動でアンインストール中..."
|
||||
MsSpoti4 = "Spotify MS 版をアンインストール中..."
|
||||
Prem = "Premium アカウント用の修正..."
|
||||
OldV = "古い Spotify を使用中です"
|
||||
OldV2 = "お使いの Spotify のバージョン {0} は古いため以下へのアップグレードを推奨 {1}"
|
||||
OldV3 = "更新しますか ? [Y/N]"
|
||||
AutoUpd = "推奨するバージョンに自動更新"
|
||||
DelOrOver = "既存のバージョン {0} をアンインストール、または上書しますか ? Y [アンインストール] / N [上書き]"
|
||||
DelOld = "古い Spotify をアンインストール中..."
|
||||
NewV = "未対応の Spotify のバージョンです"
|
||||
DelSpotify = "Spotify をアンインストール中..."
|
||||
NewV2 = "お使いの Spotify のバージョン {0} はまだ検証しておらず現在の安定バージョンは {1}"
|
||||
NewV3 = "バージョン {0} のままぞこうしますか (エラーの可能性) ? [Y/N]"
|
||||
Recom = "推奨するバージョン {0} をインストールしますか ? [Y/N]"
|
||||
DelNew = "未検証版の Spotify をアンインストール..."
|
||||
DownSpoti = "Spotify をダウンロードしインストール"
|
||||
DownSpoti2 = "お待ちください..."
|
||||
PodcatsOff = "ポッドキャスト 有効"
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "ავტუმატურად იშლება Spotify MS..."
|
||||
MsSpoti4 = "იშლება Spotify MS..."
|
||||
Prem = "მოდიფიკაცია პრემიუმ აკკოუნტის..."
|
||||
OldV = "მოიძებნა მოძველებული Spotify-ს ვერსია"
|
||||
OldV2 = "თქვენი Spotify-ს {0} ვერსია არის მოძველებული, რეკომენდურია მისი აპგრეიდობა ამ ვერსიაზე {1}"
|
||||
OldV3 = "გინდა განაახლოთ ? [Y/N]"
|
||||
AutoUpd = "აუტომატიკური აპდაიტი რეკომენდებულ ვერსიაზე"
|
||||
DelOrOver = "გინდა წაშალო ეხლანდელი ვერსია: {0} თუ თავიდან ჩაწერა? Y [წაშლა] / N [თავიდან ჩაწერა]"
|
||||
DelOld = "ძველი Spotify იშლება..."
|
||||
NewV = "არა მხარდაჯერილი Spotify-ს ვერსია არის მოწებნილი"
|
||||
DelSpotify = "Spotify იშლება..."
|
||||
NewV2 = "თქვენი Spotify-ს {0} ვერსია ჯერ არ არის დატესტილი, ამჟამად არის სტაბილური {1} ვერსია"
|
||||
NewV3 = "გინდათ რომ გააგრძელოთ {0} ვერსიაზე (შეცდომები შესაძლებელია) ? [Y/N]"
|
||||
Recom = "გინდათ რო ჩაიწეროთ რეკომენდირებული {0} ვერსია ? [Y/N]"
|
||||
DelNew = "იშლება არა ტესტირებულ Spotify..."
|
||||
DownSpoti = "ვტვირთავთ და ვიწერთ Spotify-ს"
|
||||
DownSpoti2 = "გთხოვთ დაიცადოთ..."
|
||||
PodcatsOff = "პოდკასტები გათიშული"
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "Spotify Microsoft Store 버전을 자동으로 제거하는 중..."
|
||||
MsSpoti4 = "Spotify Microsoft Store 버전을 제거하는 중..."
|
||||
Prem = "프리미엄 계정을 위한 모드..."
|
||||
OldV = "Spotify 구버전을 감지했습니다"
|
||||
OldV2 = "Spotify {0} 버전은 오래되었습니다, {1} 버전으로 업데이트하시는 것을 추천합니다"
|
||||
OldV3 = "업데이트를 진행할까요? [Y/N]"
|
||||
AutoUpd = "권장 버전으로 자동 업데이트할까요?"
|
||||
DelOrOver = "설치된 {0} 버전을 제거할까요? 아니면 덮어쓰고 설치할까요? Y [제거] / N [덮어쓰고 설치]"
|
||||
DelOld = "구버전의 Spotify를 제거하는 중..."
|
||||
NewV = "지원되지 않는 버전의 Spotify가 감지되었습니다"
|
||||
DelSpotify = "Spotify를 제거하는 중..."
|
||||
NewV2 = "Spotify {0} 버전은 아직 테스트되지 않았습니다, 현재 최신 안정 버전은 {1} 입니다"
|
||||
NewV3 = "{0} 버전으로 진행할까요? (오류가 발생할 수 있음) [Y/N]"
|
||||
Recom = "추천하는 {0} 버전을 설치할까요? [Y/N]"
|
||||
DelNew = "테스트되지 않은 Spotify를 제거하는 중..."
|
||||
DownSpoti = "Spotify를 다운로드하고 설치하는 중"
|
||||
DownSpoti2 = "잠시만 기다려 주세요..."
|
||||
PodcatsOff = "팟캐스트 끄기"
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "Automātiski izdzēš Spotify MS..."
|
||||
MsSpoti4 = "Izdzēš Spotify MS..."
|
||||
Prem = "Modifikācija premium kontam..."
|
||||
OldV = "Spotify vecā versija bija konstatēta."
|
||||
OldV2 = "Tava Spotify {0} versija ir novecojusi, bet ir ieteicams atjaunot uz {1} versiju"
|
||||
OldV3 = "Vēlies atjaunot? [Y/N]"
|
||||
AutoUpd = "Automātiski atjauno uz ieteicamo versiju"
|
||||
DelOrOver = "Vai vēlies izdzēst līdzšinejo {0} versiju vai instalēt ieteicamo versiju virs vecās? Y [Izdzēst] / N [Instalēt Virs]"
|
||||
DelOld = "Izdzēš veco Spotify..."
|
||||
NewV = "Atrasta neatbalstītā Spotify versija"
|
||||
DelSpotify = "Izdzēšam Spotify..."
|
||||
NewV2 = "Tava Spotify {0} versija nav tikusi testēta, šobrīd stabilākā ir {1} versija"
|
||||
NewV3 = "Vai vēlies turpināt ar {0} versiju? (ir iespējamas kļūdas) [Y/N]"
|
||||
Recom = "Vai vēlies instalēt ieteikto {0} versiju? [Y/N]"
|
||||
DelNew = "Izdzēšam netestēto Spotify..."
|
||||
DownSpoti = "Lejuplādējam un instalējam Spotify"
|
||||
DownSpoti2 = "Lūdzu nedaudz uzgaidiet..."
|
||||
PodcatsOff = "Raidieraksti ir izslēgti"
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "Automatyczne odinstalowywanie Spotify z MS..."
|
||||
MsSpoti4 = "Odinstalowywanie Spotify MS..."
|
||||
Prem = "Modyfikacja dla konta premium..."
|
||||
OldV = "Znaleziono przestarzałą wersję Spotify"
|
||||
OldV2 = "Twoja wersja Spotify {0} jest przestarzała, zalecana jest aktualizacja do wersji {1}"
|
||||
OldV3 = "Czy chcesz ją pobrać? [Y/N]"
|
||||
AutoUpd = "Automatyczna aktualizacja do zalecanej wersji"
|
||||
DelOrOver = "Chcesz odinstalować aktualną wersję {0}, czy pobrać nową? Y [Odinstaluj] / N [Pobierz Nową]"
|
||||
DelOld = "Odinstalowywanie nieaktualnej wersji Spotify..."
|
||||
NewV = "Wykryto niewspieraną wersję Spotify"
|
||||
DelSpotify = "Odinstalowywanie Spotify..."
|
||||
NewV2 = "Twoja wersja {0} nie została jeszcze przetestowana, obecna jest to stabilna wersja {1} "
|
||||
NewV3 = "Czy chcesz kontynuować z wersją {0} (możliwe błędy)? [Y/N]"
|
||||
Recom = "Czy chcesz pobrać zalecaną wersję {0}? [Y/N]"
|
||||
DelNew = "Odinstalowywanie nieprzetestowanej wersji Spotify..."
|
||||
DownSpoti = "Pobieranie i instalowanie Spotify"
|
||||
DownSpoti2 = "Proszę czekać..."
|
||||
PodcatsOff = "Podcasty wyłączone"
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "Desinstalação automática do Spotify da MS..."
|
||||
MsSpoti4 = "Desinstalando Spotify da MS..."
|
||||
Prem = "Modificação para conta Premium..."
|
||||
OldV = "Encontrada uma versão desatualizada do Spotify"
|
||||
OldV2 = "A sua versão {0} do Spotify está desatualizada, é recomendado atualizar para {1}"
|
||||
OldV3 = "Gostaria de atualizar? [Y/N]"
|
||||
AutoUpd = "Atualização automática para a versão recomendada"
|
||||
DelOrOver = "Gostaria de desinstalar a versão atual {0} ou substituir a instalação atual? Y [Desinstalar] / N [Substituir]"
|
||||
DelOld = "Desinstalando a versão antiga do Spotify..."
|
||||
NewV = "Encontrada uma versão não suportada do Spotify"
|
||||
DelSpotify = "Desinstalando Spotify..."
|
||||
NewV2 = "A sua versão do Spotify {0} não foi testada ainda, no momento, há uma versão estável {1}"
|
||||
NewV3 = "Gostaria de continuar com a versão {0} (possíveis erros) ? [Y/N]"
|
||||
Recom = "Gostaria de instalar a versão recomendada {0}? [Y/N]"
|
||||
DelNew = "Desinstalando versão não testada do Spotify..."
|
||||
DownSpoti = "Baixando e instalando o Spotify"
|
||||
DownSpoti2 = "Aguarde..."
|
||||
PodcatsOff = "Podcasts desativado"
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "Dezinstalare automată a Spotify MS..."
|
||||
MsSpoti4 = "Se dezinstaleaza Spotify MS..."
|
||||
Prem = "Modificare pentru contul premium..."
|
||||
OldV = "Am găsit o versiune învechită a Spotify"
|
||||
OldV2 = "Versiunea dvs. de Spotify {0} este învechită, se recomandă actualizarea la {1}"
|
||||
OldV3 = "Doriți să faceți o actualizare ? [Y/N]"
|
||||
AutoUpd = "Actualizare automată la versiunea recomandată"
|
||||
DelOrOver = "Doriți să dezinstalați versiunea curentă de {0} sau să o instalați peste ea? Y [Dezinstalare] / N [Instalare peste]"
|
||||
DelOld = "Dezinstalarea vechiului Spotify..."
|
||||
NewV = "A fost găsită o versiune nesuportată de Spotify"
|
||||
DelSpotify = "Se dezinstalează Spotify..."
|
||||
NewV2 = "Versiunea dvs. de Spotify {0} nu a fost încă testată, în prezent este o versiune stabilă {1}"
|
||||
NewV3 = "Doriți să continuați cu versiunea {0} (sunt posibile erori)? [Y/N]"
|
||||
Recom = "Doriți să instalați versiunea recomandată {0}? [Y/N]"
|
||||
DelNew = "Se dezinstalează Spotify-ul netestat..."
|
||||
DownSpoti = "Se descarcă și instalează Spotify"
|
||||
DownSpoti2 = "Vă rugăm să așteptați..."
|
||||
PodcatsOff = "Podcasturi dezactivate"
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "Автоматическое удаление Spotify MS..."
|
||||
MsSpoti4 = "Удаление Spotify MS..."
|
||||
Prem = "Модификация для премиум аккаунта..."
|
||||
OldV = "Найдена устаревшая версия Spotify"
|
||||
OldV2 = "Ваша версия Spotify ({0}) устарела. Текущая актуальная версия — {1}"
|
||||
OldV3 = "Обновить ? [Y/N]"
|
||||
AutoUpd = "Автоматическое обновление до рекомендуемой версии"
|
||||
DelOrOver = "Удалить текущую версию ({0}) или установить поверх? Y [Удалить] / N [Поверх]"
|
||||
DelOld = "Удаление устаревшего Spotify..."
|
||||
NewV = "Найдена неподдерживаемая версия Spotify"
|
||||
DelSpotify = "Удаление Spotify..."
|
||||
NewV2 = "Ваша версия Spotify ({0}) не тестировалась. Стабильная версия для SpotX — {1}"
|
||||
NewV3 = "Продолжить с {0} (возможны ошибки) ? [Y/N]"
|
||||
Recom = "Установить последнюю версию {0} ? [Y/N]"
|
||||
DelNew = "Удаление неподдерживаемого Spotify..."
|
||||
DownSpoti = "Загружаю и устанавливаю Spotify"
|
||||
DownSpoti2 = "Пожалуйста подождите..."
|
||||
PodcatsOff = "Подкасты отключены"
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "Automaticky odinštalovávam Spotify z Microsoft Store..."
|
||||
MsSpoti4 = "Odinštalovávam Spotify z Microsoft Store..."
|
||||
Prem = "Úprava kvôli prémiovému účtu..."
|
||||
OldV = "Nájdená stará verzia Spotify"
|
||||
OldV2 = "Tvoja Spotify {0} verzia je stará, je odporúčané aktualizovať na verziu {1}"
|
||||
OldV3 = "Chcete aktualizovať ? [Y/N]"
|
||||
AutoUpd = "Automatická aktualizácia na odporúčanú verziu"
|
||||
DelOrOver = "Chcete odinštalovať terajšiu verziu {0} alebo inštalovať novšiu na terajšiu(ostanú niektoré súbory)? Y [Odinštaluj] / N [Inštaluj novšiu na terajšiu]"
|
||||
DelOld = "Odinštalovávam staré Spotify..."
|
||||
NewV = "Nepodporovaná verzia Spotify bola nájdená"
|
||||
DelSpotify = "Odinštalovávam Spotify..."
|
||||
NewV2 = "Tvoja Spotify {0} verzia zatiaľ nebola testovaná, teraz je stabilná {1} verzia"
|
||||
NewV3 = "Chcete pokračovať s {0} verziou (môžu nastať chyby) ? [Y/N]"
|
||||
Recom = "Chcete nainštalovať odporúčanú {0} verziu ? [Y/N]"
|
||||
DelNew = "Odinštalovávam netestovanú verziu Spotify..."
|
||||
DownSpoti = "Sťahujem a inštalujem Spotify"
|
||||
DownSpoti2 = "Prosím čakajte..."
|
||||
PodcatsOff = "Vypni podcasty"
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "Automatska deinstalacija Spotify MS..."
|
||||
MsSpoti4 = "Deinstalacija Spotify MS..."
|
||||
Prem = "Modifikacija za premijum nalog..."
|
||||
OldV = "Pronađena je zastarela verzija Spotify-ja"
|
||||
OldV2 = "Vaša verzija Spotify-ja {0} je zastarela, trenutno najnovija verzija je {1}"
|
||||
OldV3 = "Želite li da ažurirate? [Y/N]"
|
||||
AutoUpd = "Automatsko ažuriranje na preporučenu verziju"
|
||||
DelOrOver = "Želite li da deinstalirate trenutnu verziju {0} ili da instalirate preko nje? Y [Deinstaliraj] / N [Preko]"
|
||||
DelOld = "Deinstalacija starog Spotify-ja..."
|
||||
NewV = "Pronađena je nepodržana verzija Spotify-ja"
|
||||
DelSpotify = "Deinstalacija Spotify-ja..."
|
||||
NewV2 = "Vaša verzija Spotify-ja {0} još nije testirana, trenutna stabilna verzija je {1}"
|
||||
NewV3 = "Želite li da nastavite sa verzijom {0} (moguće su greške)? [Y/N]"
|
||||
Recom = "Želite li da instalirate poslednju verziju {0}? [Y/N]"
|
||||
DelNew = "Deinstalacija netestiranog Spotify-ja..."
|
||||
DownSpoti = "Preuzimanje i instalacija Spotify-ja"
|
||||
DownSpoti2 = "Molimo sačekajte..."
|
||||
PodcatsOff = "Isključi podkaste"
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "Аутоматска деинсталација Spotify MS..."
|
||||
MsSpoti4 = "Деинсталација Spotify MS..."
|
||||
Prem = "Модификација за премијум налог..."
|
||||
OldV = "Пронађена је застарела верзија Spotify-ја"
|
||||
OldV2 = "Ваша верзија Spotify-ја {0} је застарела, тренутно најновија верзија је {1}"
|
||||
OldV3 = "Желите ли да ажурирате? [Y/N]"
|
||||
AutoUpd = "Аутоматско ажурирање на препоручену верзију"
|
||||
DelOrOver = "Желите ли да деинсталирате тренутну верзију {0} или да инсталирате преко ње? Y [Деинсталирај] / N [Преко]"
|
||||
DelOld = "Деинсталација старог Spotify-ја..."
|
||||
NewV = "Пронађена је неподржана верзија Spotify-ја"
|
||||
DelSpotify = "Деинсталација Spotify-ја..."
|
||||
NewV2 = "Ваша верзија Spotify-ја {0} још није тестирана, тренутна стабилна верзија је {1}"
|
||||
NewV3 = "Желите ли да наставите са верзијом {0} (могуће су грешке)? [Y/N]"
|
||||
Recom = "Желите ли да инсталирате последњу верзију {0}? [Y/N]"
|
||||
DelNew = "Деинсталација нетестираног Spotify-ја..."
|
||||
DownSpoti = "Преузимање и инсталација Spotify-ја"
|
||||
DownSpoti2 = "Молимо сачекајте..."
|
||||
PodcatsOff = "Искључи подкасте"
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "Avinstallerar Spotify MS automatiskt..."
|
||||
MsSpoti4 = "Avinstallerar Spotify MS..."
|
||||
Prem = "Modifiering för premiumkonto..."
|
||||
OldV = "Hittade en föråldrad version av Spotify"
|
||||
OldV2 = "Din Spotify {0} version är föråldrad, det rekommenderas att uppgradera till {1}"
|
||||
OldV3 = "Vill du uppdatera? [Y/N]"
|
||||
AutoUpd = "Automatisk uppdatering till den rekommenderade versionen"
|
||||
DelOrOver = "Vill du avinstallera den aktuella versionen av {0} eller installera över den? Y [Avinstallera] / N [Installera över]"
|
||||
DelOld = "Avinstallerar gamla Spotify..."
|
||||
NewV = "En version av Spotify som inte stöds hittades"
|
||||
DelSpotify = "Avinstallerar Spotify..."
|
||||
NewV2 = "Din Spotify {0} version har inte testats ännu, för närvarande är den en stabil {1} version"
|
||||
NewV3 = "Vill du fortsätta med {0} version (fel möjliga)? [Y/N]"
|
||||
Recom = "Vill du installera den rekommenderade versionen av {0}? [Y/N]"
|
||||
DelNew = "Avinstallerar en oprövad Spotify..."
|
||||
DownSpoti = "Ladda ner och installerar Spotify"
|
||||
DownSpoti2 = "Vänta..."
|
||||
PodcatsOff = "Podcasts av"
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "MS Spotifyயை தானாக நிறுவல் நீக்குகிறது..."
|
||||
MsSpoti4 = "MS Spotifyயை நிறுவல் நீக்குகிறது..."
|
||||
Prem = "Premium கணக்கிற்கான மாற்றம்..."
|
||||
OldV = "Spotifyயின் காலாவதியான பதிப்பு கண்டறியப்பட்டது"
|
||||
OldV2 = "உங்கள் Spotify {0} பதிப்பு காலாவதியானது, {1}க்கு மேம்படுத்த பரிந்துரைக்கப்படுகிறது"
|
||||
OldV3 = "புதுப்பிக்க வேண்டுமா? [Y/N]"
|
||||
AutoUpd = "பரிந்துரைக்கப்பட்ட பதிப்பிற்கான தானியங்கி புதுப்பிப்பு"
|
||||
DelOrOver = "{0}யின் தற்போதைய பதிப்பை நிறுவல்நீக்கம் செய்ய விரும்புகிறீர்களா அல்லது நீங்கள் அதன் மீதே நிறுவ விரும்புகிறீர்கள்? Y [Uninstall] / N [Install Over]"
|
||||
DelOld = "பழைய Spotifyயை நிறுவல் நீக்குகிறது..."
|
||||
NewV = "Spotifyயின் ஆதரிக்கப்படாத பதிப்பு கண்டறியப்பட்டது"
|
||||
DelSpotify = "Spotifyயை நிறுவல் நீக்குகிறது..."
|
||||
NewV2 = "உங்கள் Spotify {0} பதிப்பு இன்னும் சோதிக்கப்படவில்லை, தற்போது {1} பதிப்பு நிலையானது"
|
||||
NewV3 = "{0} பதிப்பைத் தொடர விரும்புகிறீர்களா (பிழைகள் சாத்தியம்) ? [Y/N]"
|
||||
Recom = "பரிந்துரைக்கப்பட்ட {0} பதிப்பை நிறுவ விரும்புகிறீர்களா ? [Y/N]"
|
||||
DelNew = "சோதிக்கப்படாத Spotifyயை நிறுவல் நீக்குகிறது..."
|
||||
DownSpoti = "Spotifyயைப் பதிவிறக்கி நிறுவுகிறது"
|
||||
DownSpoti2 = "தயவுசெய்து காத்திருங்கள்..."
|
||||
PodcatsOff = "Off Podcasts"
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "Spotify MS otomatik olarak kaldırlıyor..."
|
||||
MsSpoti4 = "Spotify MS kaldırılıyor..."
|
||||
Prem = "Premium hesap için modifikasyon ..."
|
||||
OldV = "Spotify'ın eski bir sürümü bulundu"
|
||||
OldV2 = "Spotify'ın {0} sürümü güncel değil, {1} sürümüne yükseltmeniz önerilir"
|
||||
OldV3 = "Güncelleme yapılsın mı? [Y/N]"
|
||||
AutoUpd = "Önerilen sürüme otomatik olarak güncelle"
|
||||
DelOrOver = "Mevcut {0} sürümünü kaldırmak mı yoksa üzerine yüklemek mi istiyorsunuz? Y [Kaldır] / N [Üzerine Yükle]"
|
||||
DelOld = "Eski Spotify kaldırılıyor..."
|
||||
NewV = "Desteklenmeyen Spotify sürümü bulundu"
|
||||
DelSpotify = "Spotify kaldırılıyor..."
|
||||
NewV2 = "Spotify {0} sürümü henüz test edilmedi, şu anda kararlı olan {1} sürümüdür"
|
||||
NewV3 = "{0} sürümü ile devam etmek istiyor musunuz (hatalar olabilir) ? [Y/N]"
|
||||
Recom = "Önerilen {0} sürümünü yüklemek istiyor musunuz? [Y/N]"
|
||||
DelNew = "Test edilmemiş Spotify kaldırılıyor..."
|
||||
DownSpoti = "Spotify indiriliyor ve kuruluyor"
|
||||
DownSpoti2 = "Lütfen bekleyin..."
|
||||
PodcatsOff = "Podcastler Kapalı"
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "Автоматичне видалення Spotify MS..."
|
||||
MsSpoti4 = "Видалення Spotify MS..."
|
||||
Prem = "Модифікація для преміумкористувачів..."
|
||||
OldV = "Знайдена застаріла версія Spotify"
|
||||
OldV2 = "Ваша версія Spotify {0} застаріла, її рекомендовано оновити до {1}"
|
||||
OldV3 = "Хочете оновитися ? [Y/N]"
|
||||
AutoUpd = "Автоматичне оновлення на рекомендовану версію"
|
||||
DelOrOver = "Хочете видалити наявну версію {0} або встановити нову поряд? Y [Видалити] / N [Встановити поряд]"
|
||||
DelOld = "Видалення старої версії Spotify..."
|
||||
NewV = "Непідтримувана версія Spotify знайдена"
|
||||
DelSpotify = "Видалення Spotify..."
|
||||
NewV2 = "Ваша версія Spotify {0} ще не була протестована, стабільна версія наразі {1}"
|
||||
NewV3 = "Чи хочете продовжити на версії {0} (можливі помилки) ? [Y/N]"
|
||||
Recom = "Чи хочете встановити рекомендовану версію {0} ? [Y/N]"
|
||||
DelNew = "Видалення непротестованої версії Spotify..."
|
||||
DownSpoti = "Завантаження та встановлення Spotify"
|
||||
DownSpoti2 = "Зачекайте, будь-ласка..."
|
||||
PodcatsOff = "Вимкнути подкасти"
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "Đang tự động gỡ Spotify MS..."
|
||||
MsSpoti4 = "Đang gỡ Spotify MS..."
|
||||
Prem = "Chỉnh sửa dành cho tài khoản premium..."
|
||||
OldV = "Phát hiện Spotify phiên bản cũ"
|
||||
OldV2 = "Phiên bản Spotify {0} của bạn đã cũ, khuyến khích nâng cấp lên {1}"
|
||||
OldV3 = "Bạn có muốn cập nhật không ? [Y/N]"
|
||||
AutoUpd = "Tự động cập nhật lên phiên bản được đề xuất"
|
||||
DelOrOver = "Bạn muốn gỡ phiên bản hiện tại {0} hay cài đè lên? Y [Gỡ] / N [Cài đè lên]"
|
||||
DelOld = "Đang gỡ Spotify bản cũ..."
|
||||
NewV = "Phát hiện phiên bản không được hỗ trợ"
|
||||
DelSpotify = "Đang gỡ Spotify..."
|
||||
NewV2 = "Phiên bản Spotify {0} chưa được kiểm thử, hiện tại bản ổn định là {1}"
|
||||
NewV3 = "Bạn có muốn tiếp tục với phiên bản {0} (có thể bị lỗi) ? [Y/N]"
|
||||
Recom = "Bạn có muốn cài đặt phiên bản được đề xuất: {0} ? [Y/N]"
|
||||
DelNew = "Đang gỡ phiên bản Spotify chưa được kiểm thử..."
|
||||
DownSpoti = "Đang tải và cài Spotify"
|
||||
DownSpoti2 = "Vui lòng chờ..."
|
||||
PodcatsOff = "Tắt Podcasts"
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "自動解除安裝 Spotify 的微軟商店版本..."
|
||||
MsSpoti4 = "正在解除安裝 Spotify 的微軟商店版本..."
|
||||
Prem = "針對 Premium 帳號的修改..."
|
||||
OldV = "發現過時的 Spotify 版本"
|
||||
OldV2 = "您的Spotify {0} 版本已過時,建議更新到 {1}"
|
||||
OldV3 = "需要更新嗎? [Y/N]"
|
||||
AutoUpd = "自動更新到推薦版本"
|
||||
DelOrOver = "是否要解除安裝目前版本 {0} 或者覆蓋安裝? Y [解除安裝] / N [覆蓋安裝]"
|
||||
DelOld = "解除安裝舊版 Spotify..."
|
||||
NewV = "偵測到不支援的 Spotify 版本"
|
||||
DelSpotify = "正在解除安裝 Spotify..."
|
||||
NewV2 = "您的 Spotify {0} 版本還沒有經過測試,目前穩定的版本是 {1} "
|
||||
NewV3 = "您想要繼續使用 {0} 版本嗎 (可能會出現錯誤)? [Y/N]"
|
||||
Recom = "您想安裝推薦的 {0} 版本嗎? [Y/N]"
|
||||
DelNew = "解除安裝未經測試的 Spotify 版本..."
|
||||
DownSpoti = "下載並安裝 Spotify"
|
||||
DownSpoti2 = "請稍候..."
|
||||
PodcatsOff = "關閉 Podcasts"
|
||||
|
||||
@@ -16,17 +16,13 @@
|
||||
MsSpoti3 = "自动卸载 Spotify 的微软商店版本..."
|
||||
MsSpoti4 = "正在卸载 Spotify 的微软商店版本..."
|
||||
Prem = "正在进行针对 Premium 账户的修改..."
|
||||
OldV = "发现已过时的 Spotify 版本"
|
||||
OldV2 = "您的 Spotify {0} 版本已过时,建议更新到 {1}"
|
||||
OldV3 = "是否需要更新? [Y/N]"
|
||||
AutoUpd = "自动更新到推荐版本"
|
||||
DelOrOver = "是否要卸载当前版本 {0} 或者覆盖安装? Y [卸载] / N [覆盖安装]"
|
||||
DelOld = "正在卸载旧的 Spotify..."
|
||||
NewV = "检测到 Spotify 版本不受到支持"
|
||||
DelSpotify = "正在卸载 Spotify..."
|
||||
NewV2 = "您的 Spotify {0} 版本没有经过测试,目前的推荐的版本是 {1}"
|
||||
NewV3 = "您想要继续使用 {0} 版本吗 (可能会出现错误)? [Y/N]"
|
||||
Recom = "您想安装推荐的 {0} 版本吗 ? [Y/N]"
|
||||
DelNew = "正在卸载未经测试的 Spotify 版本..."
|
||||
DownSpoti = "下载并安装 Spotify"
|
||||
DownSpoti2 = "请稍等..."
|
||||
PodcatsOff = "关闭播客"
|
||||
|
||||
Reference in New Issue
Block a user