Add more DeArrow support.

This commit is contained in:
Kavin 2023-07-19 02:54:00 +01:00
parent 9c4390a0e7
commit d6acb3e098
No known key found for this signature in database
GPG key ID: 6E4598CA5C92C41F
4 changed files with 35 additions and 5 deletions

View file

@ -170,11 +170,6 @@ export default {
onFilterChange() {
this.setPreference("feedFilter", this.selectedFilter);
},
fetchDeArrowContent(videoIds) {
return this.fetchJson(this.apiUrl() + "/dearrow", {
videoIds: videoIds.join(","),
});
},
},
};
</script>

View file

@ -29,6 +29,13 @@ export default {
this.fetchTrending(region).then(videos => {
this.videos = videos;
this.updateWatched(this.videos);
const videoIds = this.videos.map(video => video.url.substr(-11)).sort();
this.fetchDeArrowContent(videoIds).then(json => {
Object.keys(json).forEach(key => {
const video = this.videos.find(video => video.url.substr(-11) == key);
video.dearrow = json[key];
});
});
});
},
activated() {

View file

@ -453,6 +453,17 @@ export default {
xmlDoc.querySelectorAll("br").forEach(elem => (elem.outerHTML = "\n"));
this.video.description = this.rewriteDescription(xmlDoc.querySelector("body").innerHTML);
this.updateWatched(this.video.relatedStreams);
const videoIds = this.video.relatedStreams
.filter(obj => obj.type === "stream")
.map(video => video.url.substr(-11))
.sort();
this.fetchDeArrowContent(videoIds).then(json => {
Object.keys(json).forEach(key => {
const video = this.video.relatedStreams.find(video => video.url.substr(-11) == key);
video.dearrow = json[key];
});
});
}
});
},
@ -473,6 +484,18 @@ export default {
}
}
});
await this.fetchPlaylistPages().then(() => {
const videoIds = this.playlist.relatedStreams
.filter(obj => obj.type === "stream")
.map(video => video.url.substr(-11))
.sort();
this.fetchDeArrowContent(videoIds).then(json => {
Object.keys(json).forEach(key => {
const video = this.playlist.relatedStreams.find(video => video.url.substr(-11) == key);
video.dearrow = json[key];
});
});
});
}
},
async fetchPlaylistPages() {

View file

@ -542,6 +542,11 @@ const mixin = {
return undefined;
}
},
fetchDeArrowContent(videoIds) {
return this.fetchJson(this.apiUrl() + "/dearrow", {
videoIds: videoIds.join(","),
});
},
},
computed: {
authenticated(_this) {