videoChannelBy?: string
videoChannelAvatarUrl?: string
+ private thumbnailVersion: number
+ private originThumbnailUrl: string
+
constructor (hash: ServerVideoPlaylist, translations: {}) {
const absoluteAPIUrl = getAbsoluteAPIUrl()
this.privacy = hash.privacy
this.thumbnailPath = hash.thumbnailPath
- this.thumbnailUrl = absoluteAPIUrl + hash.thumbnailPath
+
+ if (this.thumbnailPath) {
+ this.thumbnailUrl = absoluteAPIUrl + hash.thumbnailPath
+ this.originThumbnailUrl = this.thumbnailUrl
+ } else {
+ this.thumbnailUrl = window.location.origin + '/client/assets/images/default-playlist.jpg'
+ }
this.videosLength = hash.videosLength
this.displayName = peertubeTranslate(this.displayName, translations)
}
}
+
+ refreshThumbnail () {
+ if (!this.originThumbnailUrl) return
+
+ if (!this.thumbnailVersion) this.thumbnailVersion = 0
+ this.thumbnailVersion++
+
+ this.thumbnailUrl = this.originThumbnailUrl + '?v' + this.thumbnailVersion
+ }
}