Skip to content

Commit 8855ff2

Browse files
committed
feat: patch in old card stylings
1 parent c827a3e commit 8855ff2

File tree

2 files changed

+12
-21
lines changed

2 files changed

+12
-21
lines changed

jsHelper/spicetifyWrapper.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -693,6 +693,7 @@ const fnStr = (f) => {
693693
.spicetify-sc-contentArea:hover .spicetify-sc-onHover .spicetify-sc-chevronBtn.spicetify-sc-chevronVisible { opacity: 1; }
694694
.spicetify-sc-contentArea:hover .spicetify-sc-onHover .spicetify-sc-chevronStart.spicetify-sc-chevronVisible { translate: 8px; }
695695
.spicetify-sc-contentArea:hover .spicetify-sc-onHover .spicetify-sc-chevronEnd.spicetify-sc-chevronVisible { translate: -8px; }
696+
.spicetify-sc-scroller > div[role="presentation"] > button { margin-inline-start: 0px !important; }
696697
body[data-dragging-uri-type] .spicetify-sc-chevronBtn { pointer-events: none; }`;
697698
document.head.appendChild(style);
698699
}

src/preprocess/preprocess.go

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ func Start(version string, spotifyBasePath string, extractedAppsPath string, fla
109109
cssMapPairs = append(cssMapPairs, k, v)
110110
}
111111
cssMapJSReplacer := strings.NewReplacer(cssMapPairs...)
112-
cssMapJSStringRe := regexp.MustCompile(`"[^"]*"|'[^']*'|` + "`[^`]*`" + `|\b[a-zA-Z_$][\w$]*\s*:`)
112+
cssMapJSStringRe := regexp.MustCompile(`"[^"]*"|'[^']*'|` + "`[^`]*`" + `|\b[a-zA-Z0-9_]{16,21}\s*:`)
113113

114114
verParts := strings.Split(flags.SpotifyVer, ".")
115115
spotifyMajor, spotifyMinor, spotifyPatch := 0, 0, 0
@@ -267,26 +267,16 @@ func Start(version string, spotifyBasePath string, extractedAppsPath string, fla
267267
}
268268

269269
content = cssMapJSStringRe.ReplaceAllStringFunc(content, func(match string) string {
270-
if strings.HasSuffix(match, ":") {
271-
colonIdx := strings.LastIndex(match, ":")
272-
key := strings.TrimSpace(match[:colonIdx])
273-
trailing := match[colonIdx:]
274-
275-
replacedKey := cssMapJSReplacer.Replace(key)
276-
277-
if replacedKey != key {
278-
return `"` + replacedKey + `"` + trailing
279-
}
280-
281-
return match
270+
first := match[0]
271+
if first == '"' || first == '\'' || first == '`' {
272+
inner := match[1 : len(match)-1]
273+
return string(first) + cssMapJSReplacer.Replace(inner) + string(first)
282274
}
283-
quote := match[0:1]
284-
if quote == `"` || quote == `'` || quote == "`" {
285-
innerString := match[1 : len(match)-1]
286-
replacedString := cssMapJSReplacer.Replace(innerString)
287-
return quote + replacedString + quote
275+
colonIdx := strings.LastIndex(match, ":")
276+
key := strings.TrimSpace(match[:colonIdx])
277+
if replaced, ok := cssTranslationMap[key]; ok {
278+
return `"` + replaced + `"` + match[colonIdx:]
288279
}
289-
290280
return match
291281
})
292282
content = colorVariableReplaceForJS(content)
@@ -305,7 +295,7 @@ func Start(version string, spotifyBasePath string, extractedAppsPath string, fla
305295
}
306296
if fileName == "xpui.css" || fileName == "xpui-snapshot.css" {
307297
content = content + `
308-
.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%;}
298+
.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-card-imagePlaceholder,.main-cardImage-image{height:100%;left:0;position:absolute;top:0;width:100%}.main-card-card{border-radius:8px;-webkit-box-flex:1;background:var(--spice-player);-ms-flex:1;flex:1;isolation:isolate;padding:16px;position:relative;-webkit-transition:background-color .3s;transition:background-color .3s;width:100%}.main-card-card:hover,.main-card-card[data-context-menu-open=true]{background:var(--spice-card)}.main-card-card:focus-within{background:var(--spice-card)}.main-card-card .main-card-cardLink{position:absolute;z-index:0}.RjYPjR7FsVf42b3a5Efm:before,.Z78JmW4GUvvxLXSFjb7R:not(:last-child):after{content:"•";margin:0 4px}.main-card-card a,.main-card-card button{position:relative;z-index:1}.main-card-cardLink{bottom:0;content:"";cursor:pointer;left:0;overflow:hidden;right:0;text-indent:100%;top:0;white-space:nowrap;z-index:0}.main-card-cardTitle{z-index:1}.main-card-cardTitleLink:focus,.main-card-cardTitleLink:hover{text-decoration:none}.Wmr5qZ5jui6X37XCrChA{opacity:0}.main-card-newEpisodeIndicator{margin-top:3px}.main-card-imageContainer{pointer-events:none;position:relative}.main-card-imageContainerOld,.main-card-imageContainerSkeleton{margin-bottom:16px}.main-card-cardMetadata{min-height:62px;-webkit-line-clamp:2}.main-card-DownloadStatusIndicator{bottom:12px;inset-inline-end:12px;position:absolute}.main-card-PlayButtonContainer{border-radius:500px;bottom:8px;-webkit-box-shadow:0 8px 8px rgba(var(--spice-rgb-shadow),.3);box-shadow:0 8px 8px rgba(var(--spice-rgb-shadow),.3);inset-inline-end:8px;opacity:0;pointer-events:none;position:absolute;-webkit-transform:translateY(8px);transform:translateY(8px);z-index:2}@media(pointer:coarse){.main-card-PlayButtonContainer{display:none}}@media(prefers-reduced-motion:no-preference){.main-card-PlayButtonContainer{-webkit-transition:opacity .2s ease-out,-webkit-transform .2s ease-out;transition:transform .2s ease-out,opacity .2s ease-out,-webkit-transform .2s ease-out}}.main-card-PlayButtonContainerVisible{opacity:1;pointer-events:auto;position:absolute;-webkit-transform:translateY(0);transform:translateY(0)}.main-card-cardContainer{--animation-speed:0.2s!important;white-space:normal}.main-card-card:hover .main-card-PlayButtonContainer,.main-card-cardContainer:hover .main-card-PlayButtonContainer{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}.main-card-card:focus-within .main-card-PlayButtonContainer,.main-card-cardContainer:focus-within{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}@media(pointer:fine){.main-card-card .main-card-cardLink:hover{cursor:pointer}.main-card-card:hover .main-card-PlayButtonContainer,.main-card-cardContainer:hover .main-card-PlayButtonContainer{opacity:1;pointer-events:auto;position:absolute}.main-card-card:focus-within .main-card-PlayButtonContainer,.main-card-cardContainer:focus-within .main-card-PlayButtonContainer{opacity:1;pointer-events:auto;position:absolute}}.main-card-cardMetadata,.v3isO2phyJAoZRkmme0G{display:-webkit-box;-webkit-box-orient:vertical}
309299
`
310300
}
311301
return content
@@ -1115,7 +1105,7 @@ func splitVersion(version string) ([3]int, error) {
11151105
if len(vSplit) != 3 {
11161106
return [3]int{}, errors.New("invalid version string")
11171107
}
1118-
for i := 0; i < 3; i++ {
1108+
for i := range 3 {
11191109
conv, err := strconv.Atoi(vSplit[i])
11201110
if err != nil {
11211111
return [3]int{}, err

0 commit comments

Comments
 (0)