mirror of
https://github.com/TeamPiped/Piped.git
synced 2024-08-14 23:57:27 +00:00
Merge pull request #2112 from vr10t/progress-bar
Watch progress bar under video thumbnails
This commit is contained in:
commit
d29240546b
7 changed files with 31 additions and 9 deletions
|
@ -54,6 +54,8 @@ export default {
|
||||||
duration: video.duration,
|
duration: video.duration,
|
||||||
thumbnail: video.thumbnail,
|
thumbnail: video.thumbnail,
|
||||||
watchedAt: video.watchedAt,
|
watchedAt: video.watchedAt,
|
||||||
|
watched: true,
|
||||||
|
currentTime: video.currentTime,
|
||||||
});
|
});
|
||||||
if (this.videos.length < 1000) cursor.continue();
|
if (this.videos.length < 1000) cursor.continue();
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,7 +106,10 @@ export default {
|
||||||
async getPlaylistData() {
|
async getPlaylistData() {
|
||||||
this.fetchPlaylist()
|
this.fetchPlaylist()
|
||||||
.then(data => (this.playlist = data))
|
.then(data => (this.playlist = data))
|
||||||
.then(() => this.updateTitle());
|
.then(() => {
|
||||||
|
this.updateTitle();
|
||||||
|
this.updateWatched(this.playlist.relatedStreams);
|
||||||
|
});
|
||||||
},
|
},
|
||||||
async updateTitle() {
|
async updateTitle() {
|
||||||
document.title = this.playlist.name + " - Piped";
|
document.title = this.playlist.name + " - Piped";
|
||||||
|
|
|
@ -32,6 +32,7 @@ export default {
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.updateScroll();
|
this.updateScroll();
|
||||||
|
this.updateWatched(this.playlist.relatedStreams);
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
updateScroll() {
|
updateScroll() {
|
||||||
|
|
|
@ -72,7 +72,10 @@ export default {
|
||||||
},
|
},
|
||||||
async updateResults() {
|
async updateResults() {
|
||||||
document.title = this.$route.query.search_query + " - Piped";
|
document.title = this.$route.query.search_query + " - Piped";
|
||||||
this.results = this.fetchResults().then(json => (this.results = json));
|
this.results = this.fetchResults().then(json => {
|
||||||
|
this.results = json;
|
||||||
|
this.updateWatched(this.results.items);
|
||||||
|
});
|
||||||
},
|
},
|
||||||
updateFilter() {
|
updateFilter() {
|
||||||
this.$router.replace({
|
this.$router.replace({
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
},
|
},
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
|
<div class="w-full">
|
||||||
<img
|
<img
|
||||||
class="w-full aspect-video"
|
class="w-full aspect-video"
|
||||||
:src="item.thumbnail"
|
:src="item.thumbnail"
|
||||||
|
@ -17,6 +18,16 @@
|
||||||
:class="{ 'shorts-img': item.isShort }"
|
:class="{ 'shorts-img': item.isShort }"
|
||||||
loading="lazy"
|
loading="lazy"
|
||||||
/>
|
/>
|
||||||
|
<!-- progress bar -->
|
||||||
|
<div class="relative w-full h-1">
|
||||||
|
<div
|
||||||
|
class="absolute bottom-0 left-0 h-1 bg-red-600"
|
||||||
|
v-if="item.watched && item.duration > 0"
|
||||||
|
:style="{ width: `clamp(0%, ${(item.currentTime / item.duration) * 100}%, 100%` }"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="relative text-sm">
|
<div class="relative text-sm">
|
||||||
<span
|
<span
|
||||||
class="thumbnail-overlay thumbnail-right"
|
class="thumbnail-overlay thumbnail-right"
|
||||||
|
|
|
@ -425,6 +425,7 @@ export default {
|
||||||
});
|
});
|
||||||
xmlDoc.querySelectorAll("br").forEach(elem => (elem.outerHTML = "\n"));
|
xmlDoc.querySelectorAll("br").forEach(elem => (elem.outerHTML = "\n"));
|
||||||
this.video.description = this.rewriteDescription(xmlDoc.querySelector("body").innerHTML);
|
this.video.description = this.rewriteDescription(xmlDoc.querySelector("body").innerHTML);
|
||||||
|
this.updateWatched(this.video.relatedStreams);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
|
@ -213,6 +213,7 @@ const mixin = {
|
||||||
request.onsuccess = function (event) {
|
request.onsuccess = function (event) {
|
||||||
if (event.target.result) {
|
if (event.target.result) {
|
||||||
video.watched = true;
|
video.watched = true;
|
||||||
|
video.currentTime = event.target.result.currentTime;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue