Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package spicetify-cli for openSUSE:Factory 
checked in at 2025-05-20 09:39:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/spicetify-cli (Old)
 and      /work/SRC/openSUSE:Factory/.spicetify-cli.new.30101 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "spicetify-cli"

Tue May 20 09:39:15 2025 rev:14 rq:1278428 version:2.40.9

Changes:
--------
--- /work/SRC/openSUSE:Factory/spicetify-cli/spicetify-cli.changes      
2025-05-12 16:56:07.742906550 +0200
+++ /work/SRC/openSUSE:Factory/.spicetify-cli.new.30101/spicetify-cli.changes   
2025-05-20 09:40:35.035990660 +0200
@@ -1,0 +2,10 @@
+Mon May 19 17:15:24 UTC 2025 - Jan Kužílek <[email protected]>
+
+- Update to version 2.40.9:
+  * fix: correctly apply search bug fix
+  * chore: change info msg
+  * fix(wrapper): use `type` regex for menus
+  * feat: add partial support for Spotify 1.2.64
+  * feat(css-map): update `lyrics-lyricsContent-lyric` (#3411)
+
+-------------------------------------------------------------------

Old:
----
  cli-2.40.7.obscpio

New:
----
  cli-2.40.9.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ spicetify-cli.spec ++++++
--- /var/tmp/diff_new_pack.qDaNwc/_old  2025-05-20 09:40:35.604014846 +0200
+++ /var/tmp/diff_new_pack.qDaNwc/_new  2025-05-20 09:40:35.608015016 +0200
@@ -19,7 +19,7 @@
 %define sname cli
 %define binname spicetify
 Name:           spicetify-cli
-Version:        2.40.7
+Version:        2.40.9
 Release:        0
 Summary:        Command-line tool to customize Spotify client
 License:        LGPL-2.1-or-later

++++++ _service ++++++
--- /var/tmp/diff_new_pack.qDaNwc/_old  2025-05-20 09:40:35.640016379 +0200
+++ /var/tmp/diff_new_pack.qDaNwc/_new  2025-05-20 09:40:35.640016379 +0200
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/spicetify/cli</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v2.40.7</param>
+    <param name="revision">v2.40.9</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="changesgenerate">enable</param>
     <param name="versionrewrite-pattern">v(.*)</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.qDaNwc/_old  2025-05-20 09:40:35.660017231 +0200
+++ /var/tmp/diff_new_pack.qDaNwc/_new  2025-05-20 09:40:35.664017401 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/spicetify/cli</param>
-              <param 
name="changesrevision">68f41d51303ed690e2fb0cf077350ffc512080d8</param></service></servicedata>
+              <param 
name="changesrevision">d66dff6f9e4f027802252be0146337fa3fedb37d</param></service></servicedata>
 (No newline at EOF)
 

++++++ cli-2.40.7.obscpio -> cli-2.40.9.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cli-2.40.7/css-map.json new/cli-2.40.9/css-map.json
--- old/cli-2.40.7/css-map.json 2025-05-10 18:05:39.000000000 +0200
+++ new/cli-2.40.9/css-map.json 2025-05-19 16:52:09.000000000 +0200
@@ -150,6 +150,7 @@
        "vapgYYF2HMEeLJuOWGq5": "lyrics-lyricsContent-isInteractive",
        "NiCdLCpp3o2z6nBrayOn": "lyrics-lyricsContent-lyric",
        "nw6rbs8R08fpPn7RWW2w": "lyrics-lyricsContent-lyric",
+       "BJ1zQ_ReY3QPaS7SW46s": "lyrics-lyricsContent-lyric",
        "kGR_hu4tdj9PnUlSPaRL": "lyrics-lyricsContent-provider",
        "LomBcMvfM8AEmZGquAdj": "lyrics-lyricsContent-provider",
        "A3ohAQNHsDIMv2EM3Ytp": "lyrics-lyricsContent-text",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cli-2.40.7/jsHelper/spicetifyWrapper.js 
new/cli-2.40.9/jsHelper/spicetifyWrapper.js
--- old/cli-2.40.7/jsHelper/spicetifyWrapper.js 2025-05-10 18:05:39.000000000 
+0200
+++ new/cli-2.40.9/jsHelper/spicetifyWrapper.js 2025-05-19 16:52:09.000000000 
+0200
@@ -569,13 +569,19 @@
        };
        const reactComponentsUI = exposeReactComponentsUI({ modules, 
functionModules, exportedForwardRefs });
 
-       const knownMenuTypes = ["album", "show", "artist", "track"];
+       const knownMenuTypes = ["album", "show", "artist", "track", "playlist"];
        const menus = modules
-               .map((m) => m?.type?.toString().match(/value:"[\w-]+"/g) && [m, 
...m.type.toString().match(/value:"[\w-]+"/g)])
+               .map((m) => {
+                       const valueMatch = 
m?.type?.toString().match(/value:"([\w-]+)"/);
+                       if (valueMatch) return [m, valueMatch[1]];
+                       const typeMatch = 
m?.type?.toString().match(/type:[\w$]+\.[\w$]+\.([A-Z_]+)/);
+                       if (typeMatch) return [m, typeMatch[1].toLowerCase()];
+                       return null;
+               })
                .filter(Boolean)
                .filter((m) => m[1] !== 'value:"row"')
                .map(([module, type]) => {
-                       type = type.match(/value:"([\w-]+)"/)[1];
+                       type = type.match(/value:"([\w-]+)"/)?.[1] ?? type;
 
                        if (!knownMenuTypes.includes(type)) return;
                        if (type === "show") type = "podcast-show";
@@ -732,6 +738,7 @@
                const listOfComponents = [
                        "ScrollableContainer",
                        "Slider",
+                       "Dropdown",
                        "Toggle",
                        "Cards.Artist",
                        "Cards.Audiobook",
@@ -782,6 +789,18 @@
                );
                Object.assign(Spicetify.ReactComponent.Cards, 
Object.fromEntries(cards));
 
+               // chunks
+               const dropdownChunk = chunks.find(([, value]) => 
value.toString().includes("dropDown") && value.toString().includes("isSafari"));
+               if (dropdownChunk) {
+                       Spicetify.ReactComponent.Dropdown =
+                               
Object.values(require(dropdownChunk[0]))?.[0]?.render ?? 
Object.values(require(dropdownChunk[0])).find((m) => typeof m === "function");
+               }
+
+               const toggleChunk = chunks.find(([, value]) => 
value.toString().includes("onSelected") && 
value.toString().includes('type:"checkbox"'));
+               if (toggleChunk && !Spicetify.ReactComponent.Toggle) {
+                       Spicetify.ReactComponent.Toggle = 
Object.values(require(toggleChunk[0]))[0].render;
+               }
+
                if (!listOfComponents.every((component) => 
Spicetify.ReactComponent[component] !== undefined)) {
                        setTimeout(waitForChunks, 100);
                        return;
@@ -882,17 +901,12 @@
        const playlistMenuChunk = chunks.find(
                ([, value]) => value.toString().includes('value:"playlist"') && 
value.toString().includes("canView") && value.toString().includes("permissions")
        );
-       if (playlistMenuChunk) {
+       if (playlistMenuChunk && !Spicetify.ReactComponent?.PlaylistMenu) {
                Spicetify.ReactComponent.PlaylistMenu = 
Object.values(require(playlistMenuChunk[0])).find(
                        (m) => typeof m === "function" || typeof m === "object"
                );
        }
 
-       const dropdownChunk = chunks.find(([, value]) => 
value.toString().includes("dropDown") && value.toString().includes("isSafari"));
-       if (dropdownChunk) {
-               Spicetify.ReactComponent.Dropdown = 
Object.values(require(dropdownChunk[0])).find((m) => typeof m === "function");
-       }
-
        const infiniteQueryChunk = chunks.find(
                ([_, value]) => value.toString().includes("fetchPreviousPage") 
&& value.toString().includes("getOptimisticResult")
        );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cli-2.40.7/src/preprocess/preprocess.go 
new/cli-2.40.9/src/preprocess/preprocess.go
--- old/cli-2.40.7/src/preprocess/preprocess.go 2025-05-10 18:05:39.000000000 
+0200
+++ new/cli-2.40.9/src/preprocess/preprocess.go 2025-05-19 16:52:09.000000000 
+0200
@@ -145,7 +145,7 @@
                                        embeddedString, _, _, err := 
utils.ReadStringFromUTF16Binary(binFilePath, startMarker, endMarker)
                                        if err != nil {
                                                
utils.PrintWarning(fmt.Sprintf("Could not process %s: %v", binFilePath, err))
-                                               utils.PrintInfo("If above 
warning says 'could not find start marker', you can safely ignore that error. 
It's for the future spotify release that might add xpui to the snapshot.")
+                                               utils.PrintInfo("If above 
warning says 'could not find start marker', you can safely ignore that error if 
you're on Spotify 1.2.63 or lower. However, if you're on 1.2.64 or higher, 
please report this issue")
                                                continue
                                        }
 
@@ -215,7 +215,12 @@
                                                content = 
exposeAPIs_vendor(content, printPatch)
                                        }
 
-                                       content = exposeGraphQL(content, 
printPatch)
+                                       if spotifyMajor >= 1 && spotifyMinor >= 
2 && (spotifyPatch >= 28 && spotifyPatch <= 57) {
+                                               utils.ReplaceOnce(&content, 
`(typeName\])`, func(submatches ...string) string {
+                                                       return fmt.Sprintf(`%s 
|| []`, submatches[1])
+                                               })
+                                       }
+                                       content = additionalPatches(content, 
printPatch)
                                }
                                printPatch("CSS (JS): Patching our mappings 
into file")
                                for k, v := range cssTranslationMap {
@@ -239,7 +244,7 @@
                                        printPatch("Remove RTL")
                                        content = removeRTL(content)
                                }
-                               if fileName == "xpui.css" {
+                               if fileName == "xpui.css" || fileName == 
"xpui-snapshot.css" {
                                        printPatch("Extra CSS Patch")
                                        content = content + `
                                        
.main-gridContainer-fixedWidth{grid-template-columns: repeat(auto-fill, 
var(--column-width));width: calc((var(--column-count) - 1) * var(--grid-gap)) + 
var(--column-count) * 
var(--column-width));}.main-cardImage-imageWrapper{background-color: 
var(--card-color, #333);border-radius: 6px;-webkit-box-shadow: 0 8px 24px 
rgba(0, 0, 0, .5);box-shadow: 0 8px 24px rgba(0, 0, 0, .5);padding-bottom: 
100%;position: 
relative;width:100%;}.main-cardImage-image,.main-card-imagePlaceholder{height: 
100%;left: 0;position: absolute;top: 0;width: 
100%};.main-content-view{height:100%;}
@@ -798,7 +803,7 @@
        return applyPatches(input, rtlPatches)
 }
 
-func exposeGraphQL(input string, report logPatch) string {
+func additionalPatches(input string, report logPatch) string {
        graphQLPatches := []Patch{
                {
                        Name:  "GraphQL definitions (<=1.2.30)",
@@ -820,7 +825,7 @@
 }
 
 func exposeAPIs_main(input string, report logPatch) string {
-       inputContextMenu := utils.FindFirstMatch(input, `.*value:"contextmenu"`)
+       inputContextMenu := utils.FindFirstMatch(input, 
`.*(?:value:"contextmenu"|"[^"]*":"context-menu")`)
        if len(inputContextMenu) > 0 {
                croppedInput := inputContextMenu[0]
                react := utils.FindLastMatch(croppedInput, 
`([a-zA-Z_\$][\w\$]*)\.useRef`)[1]
@@ -841,7 +846,7 @@
                        target = "e.triggerRef"
                }
 
-               utils.Replace(&input, 
`\(0,([\w_$]+)\.jsx\)\([\w_$]+\.[\w_$]+,\{value:"contextmenu"[^\}]+\}\)\}\)`, 
func(submatches ...string) string {
+               utils.Replace(&input, 
`\(0,([\w_$]+)\.jsx\)\((?:[\w_$]+\.[\w_$]+,\{value:"contextmenu"[^}]+\}\)\}\)|"[\w-]+",\{[^}]+:"context-menu"[^}]+\}\))`,
 func(submatches ...string) string {
                        return 
fmt.Sprintf("(0,%s.jsx)((Spicetify.ContextMenuV2._context||(Spicetify.ContextMenuV2._context=%s.createContext(null))).Provider,{value:{props:%s?.props,trigger:%s,target:%s},children:%s})",
 submatches[1], react, menu, trigger, target, submatches[0])
                })
        }

++++++ cli.obsinfo ++++++
--- /var/tmp/diff_new_pack.qDaNwc/_old  2025-05-20 09:40:35.828024384 +0200
+++ /var/tmp/diff_new_pack.qDaNwc/_new  2025-05-20 09:40:35.832024555 +0200
@@ -1,5 +1,5 @@
 name: cli
-version: 2.40.7
-mtime: 1746893139
-commit: 68f41d51303ed690e2fb0cf077350ffc512080d8
+version: 2.40.9
+mtime: 1747666329
+commit: d66dff6f9e4f027802252be0146337fa3fedb37d
 

++++++ vendor.tar.gz ++++++

Reply via email to