X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2Fvideos%2Fshared%2Fvideo.model.ts;h=7f28710328daceeb661d29aa4f08840a6dc64043;hb=fd45e8f43c2638478599ca75632518054461da85;hp=f0556343f5045c2ac70b5be795804c3de5e2800a;hpb=43f61d2635113001c3d19e3299d8700a00d47e48;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/videos/shared/video.model.ts b/client/src/app/videos/shared/video.model.ts index f0556343f..7f2871032 100644 --- a/client/src/app/videos/shared/video.model.ts +++ b/client/src/app/videos/shared/video.model.ts @@ -5,6 +5,7 @@ export class Video implements VideoServerModel { author: string by: string createdAt: Date + updatedAt: Date categoryLabel: string category: number licenceLabel: string @@ -17,7 +18,6 @@ export class Video implements VideoServerModel { id: number uuid: string isLocal: boolean - magnetUri: string name: string podHost: string tags: string[] @@ -25,6 +25,8 @@ export class Video implements VideoServerModel { thumbnailUrl: string previewPath: string previewUrl: string + embedPath: string + embedUrl: string views: number likes: number dislikes: number @@ -43,33 +45,15 @@ export class Video implements VideoServerModel { return minutesPadding + minutes.toString() + ':' + secondsPadding + seconds.toString() } - constructor (hash: { - author: string, - createdAt: string, - categoryLabel: string, - category: number, - licenceLabel: string, - licence: number, - languageLabel: string - language: number - description: string, - duration: number - id: number, - uuid: string, - isLocal: boolean, - magnetUri: string, - name: string, - podHost: string, - tags: string[], - thumbnailPath: string, - previewPath: string, - views: number, - likes: number, - dislikes: number, - nsfw: boolean - }) { + constructor (hash: VideoServerModel) { + let absoluteAPIUrl = API_URL + if (!absoluteAPIUrl) { + // The API is on the same domain + absoluteAPIUrl = window.location.origin + } + this.author = hash.author - this.createdAt = new Date(hash.createdAt) + this.createdAt = new Date(hash.createdAt.toString()) this.categoryLabel = hash.categoryLabel this.category = hash.category this.licenceLabel = hash.licenceLabel @@ -82,14 +66,15 @@ export class Video implements VideoServerModel { this.id = hash.id this.uuid = hash.uuid this.isLocal = hash.isLocal - this.magnetUri = hash.magnetUri this.name = hash.name this.podHost = hash.podHost this.tags = hash.tags this.thumbnailPath = hash.thumbnailPath - this.thumbnailUrl = API_URL + hash.thumbnailPath + this.thumbnailUrl = absoluteAPIUrl + hash.thumbnailPath this.previewPath = hash.previewPath - this.previewUrl = API_URL + hash.previewPath + this.previewUrl = absoluteAPIUrl + hash.previewPath + this.embedPath = hash.embedPath + this.embedUrl = absoluteAPIUrl + hash.embedPath this.views = hash.views this.likes = hash.likes this.dislikes = hash.dislikes @@ -98,49 +83,8 @@ export class Video implements VideoServerModel { this.by = Video.createByString(hash.author, hash.podHost) } - isRemovableBy (user) { - return user && this.isLocal === true && (this.author === user.username || user.isAdmin() === true) - } - - isBlackistableBy (user) { - return user && user.isAdmin() === true && this.isLocal === false - } - - isUpdatableBy (user) { - return user && this.isLocal === true && user.username === this.author - } - isVideoNSFWForUser (user: User) { // If the video is NSFW and the user is not logged in, or the user does not want to display NSFW videos... return (this.nsfw && (!user || user.displayNSFW === false)) } - - patch (values: Object) { - Object.keys(values).forEach((key) => { - this[key] = values[key] - }) - } - - toJSON () { - return { - author: this.author, - createdAt: this.createdAt, - category: this.category, - licence: this.licence, - language: this.language, - description: this.description, - duration: this.duration, - id: this.id, - isLocal: this.isLocal, - magnetUri: this.magnetUri, - name: this.name, - podHost: this.podHost, - tags: this.tags, - thumbnailPath: this.thumbnailPath, - views: this.views, - likes: this.likes, - dislikes: this.dislikes, - nsfw: this.nsfw - } - } }