fix for primary-content linking

This commit is contained in:
vapormusic 2022-07-24 10:15:50 +07:00
parent 5e9e989630
commit aad33acf0a
2 changed files with 27 additions and 15 deletions

View file

@ -2919,6 +2919,7 @@ const app = new Vue({
"include[albums]": "artists",
"include[songs]": "artists",
"include[music-videos]": "artists",
"include[personal-recommendation]": "primary-content",
"fields[albums]": ["artistName", "artistUrl", "artwork", "contentRating", "editorialArtwork", "editorialVideo", "name", "playParams", "releaseDate", "url"],
"fields[artists]": ["name", "url", "artwork"],
"extend[stations]": ["airDate", "supportsAirTimeUpdates"],

View file

@ -2,8 +2,9 @@
<div v-observe-visibility="{callback: visibilityChanged}">
<template v-if="isVisible && recom.attributes.display.kind != 'MusicSuperHeroShelf'">
<div class="row">
<div class="col" @click="navigateContent(recom.attributes.title.contentIds[0] ?? '')" :class="{'item-navigate' : (recom?.attributes?.title?.contentIds?.length ?? 0) > 0}">
<h3>{{ recom.attributes.title ? recom.attributes.title.stringForDisplay : " "}}</h3>
<div class="col">
<h3 @click="navigateContent(recom?.relationships['primary-content']?.data[0] ?? recom?.attributes?.title?.contentIds[0] ?? '')" style="width: fit-content;" :class="{'item-navigate' : (recom?.attributes?.title?.contentIds?.length ?? 0) > 0 | recom?.relationships['primary-content']?.data?.length > 0}">
{{ recom.attributes.title ? recom.attributes.title.stringForDisplay : " "}}</h3>
</div>
<div class="col-auto cider-flex-center" v-if="recom.relationships.contents.data.length >= 10">
<button class="cd-btn-seeall" @click="showCollection(recom)" >{{app.getLz('term.seeAll')}}</button>
@ -44,27 +45,37 @@
app.showCollection(recom.relationships.contents, recom.attributes.title ? recom.attributes.title.stringForDisplay : '', 'listen_now')
},
navigateContent: async function (id) {
try{
let a = await app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}?ids[albums]=${id}`)
let q1 = a.data?.data[0]
if (q1) {
app.routeView(q1)
} else {
if (typeof id != "string") {
app.routeView(id)
} else {
try{
let a = await app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}?ids[albums]=${id}`)
let q1 = a.data?.data[0]
if (q1) {
app.routeView(q1)
} else {
let b = await app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}?ids[artists]=${id}`)
let q2 = b.data?.data[0]
if (q2) {
app.routeView(q2)
} else {
let c = await app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}?ids[playlists]=${id}`)
let q3 = c.data?.data[0]
if (q3) {
app.routeView(q3)
}
}
}
} catch (e) {
let b = await app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}?ids[artists]=${id}`)
let q2 = b.data?.data[0]
if (q2) {
app.routeView(q2)
}
}
} catch (e) {
let b = await app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}?ids[artists]=${id}`)
let q2 = b.data?.data[0]
if (q2) {
app.routeView(q2)
}
}
}
}
})