mirror of
https://github.com/SpotX-Official/SpotX.git
synced 2026-04-25 20:40:18 +10:00
Compare commits
2 Commits
a0a59726ee
...
95abca6bc4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
95abca6bc4 | ||
|
|
b22bebdab5 |
@@ -273,7 +273,7 @@
|
|||||||
"native_description": "Enable Audiobook Ad Formats Exclusivity",
|
"native_description": "Enable Audiobook Ad Formats Exclusivity",
|
||||||
"version": {
|
"version": {
|
||||||
"fr": "1.2.19",
|
"fr": "1.2.19",
|
||||||
"to": ""
|
"to": "1.2.84"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"NewAdsNpvNewVideoTakeoverSlot": {
|
"NewAdsNpvNewVideoTakeoverSlot": {
|
||||||
@@ -363,7 +363,7 @@
|
|||||||
"native_description": "Enable Fist Impression Takeover ads on Home Page",
|
"native_description": "Enable Fist Impression Takeover ads on Home Page",
|
||||||
"version": {
|
"version": {
|
||||||
"fr": "1.2.31",
|
"fr": "1.2.31",
|
||||||
"to": ""
|
"to": "1.2.84"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"LearningHomeCard": {
|
"LearningHomeCard": {
|
||||||
@@ -420,6 +420,38 @@
|
|||||||
"to": ""
|
"to": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"LimitedAdsLabelsOnPlaylistCards": {
|
||||||
|
"name": "enableLimitedAdsLabelsOnPlaylistCards",
|
||||||
|
"native_description": "Enables Limited Ads label rendering on playlist cards across Home, Browse, and Recents surfaces",
|
||||||
|
"version": {
|
||||||
|
"fr": "1.2.86",
|
||||||
|
"to": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"LimitedAdsLabelsOnSearch": {
|
||||||
|
"name": "enableLimitedAdsLabelsOnSearch",
|
||||||
|
"native_description": "Enables Limited Ads label rendering on Search surfaces",
|
||||||
|
"version": {
|
||||||
|
"fr": "1.2.86",
|
||||||
|
"to": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AdFeedbackMilestone1": {
|
||||||
|
"name": "enable_ad_feedback_milestone_1",
|
||||||
|
"native_description": "Enable ad feedback milestone 1 feature",
|
||||||
|
"version": {
|
||||||
|
"fr": "1.2.86",
|
||||||
|
"to": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"LeaderboardCrossOriginIframe": {
|
||||||
|
"name": "enableLeaderboardCrossOriginIframe",
|
||||||
|
"native_description": "Enables cross-origin iframe rendering for leaderboard ads via CDN template",
|
||||||
|
"version": {
|
||||||
|
"fr": "1.2.86",
|
||||||
|
"to": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"LyricsUpsell": {
|
"LyricsUpsell": {
|
||||||
"name": "enableLyricsUpsell",
|
"name": "enableLyricsUpsell",
|
||||||
"description": "Enable Lyrics Upsell",
|
"description": "Enable Lyrics Upsell",
|
||||||
@@ -731,7 +763,7 @@
|
|||||||
"native_description": "If enabled, we do consider percent visibility when logging the display ad impression",
|
"native_description": "If enabled, we do consider percent visibility when logging the display ad impression",
|
||||||
"version": {
|
"version": {
|
||||||
"fr": "1.2.78",
|
"fr": "1.2.78",
|
||||||
"to": ""
|
"to": "1.2.84"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"MadeForYou": {
|
"MadeForYou": {
|
||||||
@@ -1585,7 +1617,7 @@
|
|||||||
"native_description": "Enable backend search history",
|
"native_description": "Enable backend search history",
|
||||||
"version": {
|
"version": {
|
||||||
"fr": "1.2.60",
|
"fr": "1.2.60",
|
||||||
"to": ""
|
"to": "1.2.85"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"SyncingSearchHistoryToBackend": {
|
"SyncingSearchHistoryToBackend": {
|
||||||
@@ -1594,7 +1626,7 @@
|
|||||||
"native_description": "Enables syncing search history to the backend",
|
"native_description": "Enables syncing search history to the backend",
|
||||||
"version": {
|
"version": {
|
||||||
"fr": "1.2.75",
|
"fr": "1.2.75",
|
||||||
"to": ""
|
"to": "1.2.85"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"WatchFeedEntityPages": {
|
"WatchFeedEntityPages": {
|
||||||
@@ -1711,7 +1743,7 @@
|
|||||||
"native_description": "Enable profile visibility controls in the settings & profile page",
|
"native_description": "Enable profile visibility controls in the settings & profile page",
|
||||||
"version": {
|
"version": {
|
||||||
"fr": "1.2.74",
|
"fr": "1.2.74",
|
||||||
"to": ""
|
"to": "1.2.85"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ShuffleSettings": {
|
"ShuffleSettings": {
|
||||||
@@ -1817,6 +1849,54 @@
|
|||||||
"fr": "1.2.82",
|
"fr": "1.2.82",
|
||||||
"to": ""
|
"to": ""
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"ShareActionBarButton": {
|
||||||
|
"name": "enableShareActionBarButton",
|
||||||
|
"native_description": "Shows a share button in entity page action bars that opens the share dialog",
|
||||||
|
"version": {
|
||||||
|
"fr": "1.2.86",
|
||||||
|
"to": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ShareDialog": {
|
||||||
|
"name": "enableShareDialog",
|
||||||
|
"native_description": "Enables the share dialog modal instead of the share submenu",
|
||||||
|
"version": {
|
||||||
|
"fr": "1.2.86",
|
||||||
|
"to": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"UserVideoSettings": {
|
||||||
|
"name": "enableUserVideoSettings",
|
||||||
|
"native_description": "Show video preference settings for users to control video playback types",
|
||||||
|
"version": {
|
||||||
|
"fr": "1.2.86",
|
||||||
|
"to": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"VideoQualityEnabled": {
|
||||||
|
"name": "isVideoQualityEnabled",
|
||||||
|
"native_description": "Enables video quality settings and the in-player quality picker",
|
||||||
|
"version": {
|
||||||
|
"fr": "1.2.84",
|
||||||
|
"to": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AdFeedbackEmbeddedNpvCarouselKillSwitch": {
|
||||||
|
"name": "enable_ad_feedback_embedded_npv_carousel",
|
||||||
|
"native_description": "Kill switch for ad feedback on embedded NPV carousel format",
|
||||||
|
"version": {
|
||||||
|
"fr": "1.2.86",
|
||||||
|
"to": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AdFeedbackEmbeddedNpvDisplayKillSwitch": {
|
||||||
|
"name": "enable_ad_feedback_embedded_npv_display",
|
||||||
|
"native_description": "Kill switch for ad feedback on embedded NPV display format",
|
||||||
|
"version": {
|
||||||
|
"fr": "1.2.86",
|
||||||
|
"to": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"CustomExp": {
|
"CustomExp": {
|
||||||
@@ -1957,7 +2037,7 @@
|
|||||||
"value": "0",
|
"value": "0",
|
||||||
"version": {
|
"version": {
|
||||||
"fr": "1.2.59",
|
"fr": "1.2.59",
|
||||||
"to": ""
|
"to": "1.2.84"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"AdsRefreshTimeInterval": {
|
"AdsRefreshTimeInterval": {
|
||||||
@@ -2017,7 +2097,7 @@
|
|||||||
"value": "enabled",
|
"value": "enabled",
|
||||||
"version": {
|
"version": {
|
||||||
"fr": "1.2.73",
|
"fr": "1.2.73",
|
||||||
"to": ""
|
"to": "1.2.85"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"SearchResultsAsList": {
|
"SearchResultsAsList": {
|
||||||
|
|||||||
40
run.ps1
40
run.ps1
@@ -2,7 +2,7 @@
|
|||||||
param
|
param
|
||||||
(
|
(
|
||||||
[Parameter(HelpMessage = 'Latest recommended Spotify version for Windows 10+.')]
|
[Parameter(HelpMessage = 'Latest recommended Spotify version for Windows 10+.')]
|
||||||
[string]$latest_full = "1.2.85.519.g549a528b",
|
[string]$latest_full = "1.2.86.502.g8cd7fb22",
|
||||||
|
|
||||||
[Parameter(HelpMessage = 'Latest supported Spotify version for Windows 7-8.1')]
|
[Parameter(HelpMessage = 'Latest supported Spotify version for Windows 7-8.1')]
|
||||||
[string]$last_win7_full = "1.2.5.1006.g22820f93",
|
[string]$last_win7_full = "1.2.5.1006.g22820f93",
|
||||||
@@ -23,6 +23,10 @@ param
|
|||||||
[Parameter(HelpMessage = 'Custom path to Spotify installation directory. Default is %APPDATA%\Spotify.')]
|
[Parameter(HelpMessage = 'Custom path to Spotify installation directory. Default is %APPDATA%\Spotify.')]
|
||||||
[string]$SpotifyPath,
|
[string]$SpotifyPath,
|
||||||
|
|
||||||
|
[Parameter(HelpMessage = 'Custom local path to patches.json')]
|
||||||
|
[Alias('cp')]
|
||||||
|
[string]$CustomPatchesPath,
|
||||||
|
|
||||||
[Parameter(HelpMessage = "Use github.io mirror instead of raw.githubusercontent.")]
|
[Parameter(HelpMessage = "Use github.io mirror instead of raw.githubusercontent.")]
|
||||||
[Alias("m")]
|
[Alias("m")]
|
||||||
[switch]$mirror,
|
[switch]$mirror,
|
||||||
@@ -566,6 +570,36 @@ function Get {
|
|||||||
return $null
|
return $null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function Get-PatchesJson {
|
||||||
|
param (
|
||||||
|
[string]$LocalPath
|
||||||
|
)
|
||||||
|
|
||||||
|
if ($LocalPath) {
|
||||||
|
try {
|
||||||
|
$resolvedPath = Resolve-Path -LiteralPath $LocalPath -ErrorAction Stop | Select-Object -ExpandProperty Path
|
||||||
|
|
||||||
|
if (-not (Test-Path -LiteralPath $resolvedPath -PathType Leaf)) {
|
||||||
|
throw "File not found: $resolvedPath"
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host ("Using local patches.json: {0}" -f $resolvedPath)
|
||||||
|
|
||||||
|
$jsonContent = [System.IO.File]::ReadAllText($resolvedPath, [System.Text.Encoding]::UTF8)
|
||||||
|
return $jsonContent | ConvertFrom-Json -ErrorAction Stop
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
Write-Host
|
||||||
|
Write-Host "Failed to load local patches.json" -ForegroundColor Red
|
||||||
|
Write-Host $_.Exception.Message -ForegroundColor Red
|
||||||
|
Write-Host
|
||||||
|
return $null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return Get -Url (Get-Link -e "/patches/patches.json") -RetrySeconds 5
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function incorrectValue {
|
function incorrectValue {
|
||||||
|
|
||||||
@@ -1656,11 +1690,11 @@ if ($ch -eq 'n') {
|
|||||||
|
|
||||||
$ch = $null
|
$ch = $null
|
||||||
|
|
||||||
$webjson = Get -Url (Get-Link -e "/patches/patches.json") -RetrySeconds 5
|
$webjson = Get-PatchesJson -LocalPath $CustomPatchesPath
|
||||||
|
|
||||||
if ($webjson -eq $null) {
|
if ($webjson -eq $null) {
|
||||||
Write-Host
|
Write-Host
|
||||||
Write-Host "Failed to get patches.json" -ForegroundColor Red
|
Write-Host "Failed to load patches.json" -ForegroundColor Red
|
||||||
Remove-TempDirectory -Directory $tempDirectory
|
Remove-TempDirectory -Directory $tempDirectory
|
||||||
Stop-Script
|
Stop-Script
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user