From ae32767ca11d1fd00f91560be1b4bec4f1780e5b Mon Sep 17 00:00:00 2001 From: amd64fox <62529699+amd64fox@users.noreply.github.com> Date: Sat, 17 May 2025 00:37:01 +0300 Subject: [PATCH] version bump to 1.2.64.407 --- patches/patches.json | 27 ++++++----- run.ps1 | 105 +++++++++++++++++++++++++++++-------------- 2 files changed, 84 insertions(+), 48 deletions(-) diff --git a/patches/patches.json b/patches/patches.json index 76d0f19..57e24b6 100644 --- a/patches/patches.json +++ b/patches/patches.json @@ -309,7 +309,7 @@ "native_description": "Enable Your Listening Upsell Banner for free & unauth users", "version": { "fr": "1.2.25", - "to": "" + "to": "1.2.63" } }, "podcast-ads": { @@ -471,7 +471,7 @@ "native_description": "Enable Spotify Brand Lift (SBL) Surveys in the NPV", "version": { "fr": "1.2.43", - "to": "" + "to": "1.2.63" } }, "EFlag": { @@ -489,7 +489,7 @@ "native_description": "Enable impressions on home for impression economy (some impressions will still be logged with this disabled)", "version": { "fr": "1.2.44", - "to": "" + "to": "1.2.63" } }, "SearchImpressions": { @@ -498,7 +498,7 @@ "native_description": "Enable impressions on search for impression economy", "version": { "fr": "1.2.44", - "to": "" + "to": "1.2.63" } }, "StageDesktopDebug": { @@ -608,6 +608,15 @@ "fr": "1.2.62", "to": "" } + }, + "EmbeddedAdVisibilityLogging": { + "name": "enableEmbeddedAdVisibilityLogging", + "description": "When enabled, enhanced visibility logs will be sent for embedded ads", + "native_description": "EWhen enabled, enhanced visibility logs will be sent for embedded ads", + "version": { + "fr": "1.2.63", + "to": "" + } } }, "EnableExp": { @@ -1636,16 +1645,6 @@ "to": "" } }, - "DesktopOnboardingChecklist": { - "name": "enableDesktopOnboardingChecklist", - "description": "Enable checklist-based onboarding", - "native_description": "Enable checklist-based onboarding", - "value": "control", - "version": { - "fr": "1.2.60", - "to": "" - } - }, "SpotifyOnboardingChecklist": { "name": "enableSpotifyOnboardingChecklist", "description": "Enable checklist-based onboarding", diff --git a/run.ps1 b/run.ps1 index 48bf155..244658f 100644 --- a/run.ps1 +++ b/run.ps1 @@ -378,7 +378,7 @@ if (!($version -and $version -match $match_v)) { } else { # latest tested version for Win 10-12 - $onlineFull = "1.2.63.394.g126b0d89-2269" + $onlineFull = "1.2.64.407.g14ea11a6-146" } } else { @@ -1700,6 +1700,61 @@ function Extract-WebpackModules { } +function Update-ZipEntry { + [CmdletBinding()] + param ( + [Parameter(Mandatory)] + [System.IO.Compression.ZipArchive]$archive, + [Parameter(Mandatory)] + [string]$entryName, + [string]$newEntryName = $null, + [string]$prepend = $null, + [scriptblock]$contentTransform = $null + ) + + $entry = $archive.GetEntry($entryName) + if ($entry) { + Write-Verbose "Updating entry: $entryName" + $streamReader = $null + $content = '' + try { + $streamReader = New-Object System.IO.StreamReader($entry.Open(), [System.Text.Encoding]::UTF8) + $content = $streamReader.ReadToEnd() + } + finally { + if ($null -ne $streamReader) { + $streamReader.Close() + } + } + + $entry.Delete() + + if ($prepend) { $content = "$prepend`n$content" } + if ($contentTransform) { $content = & $contentTransform $content } + + $finalEntryName = if ($newEntryName) { $newEntryName } else { $entryName } + Write-Verbose "Creating new entry: $finalEntryName" + + $newEntry = $archive.CreateEntry($finalEntryName) + $streamWriter = $null + try { + $streamWriter = New-Object System.IO.StreamWriter($newEntry.Open(), [System.Text.Encoding]::UTF8) + $streamWriter.Write($content) + $streamWriter.Flush() + } + finally { + if ($null -ne $streamWriter) { + $streamWriter.Close() + } + } + Write-Verbose "Entry $finalEntryName updated successfully." + } + else { + Write-Warning "Entry '$entryName' not found in archive." + } +} + + Write-Host ($lang).ModSpoti`n $tempDirectory = $PWD @@ -1754,12 +1809,16 @@ if ($test_spa) { Add-Type -Assembly 'System.IO.Compression.FileSystem' # Check for the presence of xpui.js in the xpui.spa archive + + $archive_spa = $null + try { $archive_spa = [System.IO.Compression.ZipFile]::OpenRead($xpui_spa_patch) $xpuiJsEntry = $archive_spa.GetEntry('xpui.js') $xpuiSnapshotEntry = $archive_spa.GetEntry('xpui-snapshot.js') - if (($null -eq $xpuiJsEntry) -and ($null -ne $xpuiSnapshotEntry)) { + if (($null -eq $xpuiJsEntry) -and ($null -ne $xpuiSnapshotEntry)) { + $snapshot_x64 = Join-Path $spotifyDirectory 'v8_context_snapshot.bin' $snapshot_arm64 = Join-Path $spotifyDirectory 'v8_context_snapshot.arm64.bin' @@ -1768,51 +1827,29 @@ if ($test_spa) { { Test-Path $snapshot_arm64 } { $snapshot_arm64; break } default { $null } } + if ($v8_snapshot) { $modules = Extract-WebpackModules -InputFile $v8_snapshot - function Update-ZipEntry { - param ( - [Parameter(Mandatory)] - $archive, - [Parameter(Mandatory)] - [string]$entryName, - [string]$newEntryName = $null, - [string]$prepend = $null, - [scriptblock]$contentTransform = $null - ) - $entry = $archive.GetEntry($entryName) - if ($entry) { - $tmpFile = [System.IO.Path]::GetTempFileName() - $reader = New-Object IO.StreamReader($entry.Open()) - $content = $reader.ReadToEnd() - $reader.Close() - $entry.Delete() - if ($prepend) { $content = "$prepend`n$content" } - if ($contentTransform) { $content = & $contentTransform $content } - [System.IO.File]::WriteAllText($tmpFile, $content) - [System.IO.Compression.ZipFileExtensions]::CreateEntryFromFile($archive, $tmpFile, $(if ($newEntryName) { $newEntryName } else { $entryName })) | Out-Null - Remove-Item $tmpFile - } - } - - $firstLine = ($modules -split "`r?`n")[0] + $firstLine = ($modules -split "`r?`n" | Select-Object -First 1) $archive_spa.Dispose() $archive_spa = [System.IO.Compression.ZipFile]::Open($xpui_spa_patch, [System.IO.Compression.ZipArchiveMode]::Update) - Update-ZipEntry -archive $archive_spa -entryName 'xpui-snapshot.js' -prepend $firstLine - Update-ZipEntry -archive $archive_spa -entryName 'xpui-snapshot.js' -newEntryName 'xpui.js' - Update-ZipEntry -archive $archive_spa -entryName 'xpui-snapshot.css' -newEntryName 'xpui.css' + Update-ZipEntry -archive $archive_spa -entryName 'xpui-snapshot.js' -prepend $firstLine -newEntryName 'xpui.js' -Verbose:$VerbosePreference + + Update-ZipEntry -archive $archive_spa -entryName 'xpui-snapshot.css' -newEntryName 'xpui.css' -Verbose:$VerbosePreference + Update-ZipEntry -archive $archive_spa -entryName 'index.html' -contentTransform { param($c) - $c -replace 'xpui-snapshot.js', 'xpui.js' -replace 'xpui-snapshot.css', 'xpui.css' - } + $c = $c -replace 'xpui-snapshot.js', 'xpui.js' + $c = $c -replace 'xpui-snapshot.css', 'xpui.css' + return $c + } -Verbose:$VerbosePreference } else { Write-Warning "v8_context_snapshot file not found" } - } } catch {