fix listitem-hr queuing fail after radio items

This commit is contained in:
vapormusic 2022-02-13 23:23:58 +07:00
parent 1578e224c5
commit 28e75a52e4
2 changed files with 30 additions and 20 deletions

View file

@ -2804,17 +2804,17 @@ const app = new Vue({
})
})
} else {
this.mk.clearQueue().then(function (_) {
if (app.mk.shuffleMode == 1) {
shuffleArray(query)
}
app.mk.queue.append(query)
if (childIndex != -1) {
app.mk.changeToMediaAtIndex(childIndex)
} else {
app.mk.play()
}
})
app.mk.queue.splice(0, app.mk.queue._itemIDs.length)
if (app.mk.shuffleMode == 1) {
shuffleArray(query)
}
app.mk.queue.append(query)
if (childIndex != -1) {
app.mk.changeToMediaAtIndex(childIndex)
} else {
app.mk.play()
}
}
})
} else if (parent.startsWith('listitem-hr')) {
@ -2859,20 +2859,30 @@ const app = new Vue({
itemsToPlay[item.kind].push(item.id)
})
// loop through itemsToPlay
app.mk.queue.splice(0, app.mk.queue._itemIDs.length)
let ind = 0;
for (let kind in itemsToPlay) {
let ids = itemsToPlay[kind]
app.mk.clearQueue().then(function () {
if (ids.length > 0) {
app.mk.playLater({ [kind + "s"]: itemsToPlay[kind] }).then(function() {
if (ids.length > 0) {
if (app.mk.queue._itemIDs.length > 0) {
app.mk.playLater({ [kind + "s"]: itemsToPlay[kind] }).then(function () {
ind += 1;
console.log(ind, Object.keys(itemsToPlay).length)
if (ind >= Object.keys(itemsToPlay).length) {
app.mk.changeToMediaAtIndex(app.mk.queue._itemIDs.indexOf(item.attributes.playParams.id ?? item.id))
}
}
)} else {
app.mk.setQueue({ [kind + "s"]: itemsToPlay[kind] }).then(function () {
ind += 1;
console.log(ind , Object.keys(itemsToPlay).length)
if(ind >= Object.keys(itemsToPlay).length) {
console.log(ind, Object.keys(itemsToPlay).length)
if (ind >= Object.keys(itemsToPlay).length) {
app.mk.changeToMediaAtIndex(app.mk.queue._itemIDs.indexOf(item.attributes.playParams.id ?? item.id))
}
}
)}
})
)}
}
}
}
})

View file

@ -1,6 +1,6 @@
<script type="text/x-template" id="remote-pair">
<div style="display:flex;width:100%;height:100%;padding-top: var(--navigationBarHeight);position:absolute;top:0;left:0;">
<webview id="foo" src="https://music.apple.com/includes/commerce/account/settings?product=music&isFullscreen=true&isModal=false" style="display:inline-flex; width:100%;"></webview>
<webview id="foo" src="https://cider.sh" style="display:inline-flex; width:100%;"></webview>
</div>
</script>
<script>