X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2Fvideos%2Fshared%2Fvideo.model.ts;h=f5e16fc13f9ffc1ef10c4bf3c56ddcb5858dbc56;hb=154898b0b7bc1af41fc5a94974e338a3590c90f3;hp=0cf4039df312b5f33a1d354710af7d50747db2a5;hpb=69f616ab3aeefd6ce330600604df90f2f48bfe3b;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 0cf4039df..f5e16fc13 100644 --- a/client/src/app/videos/shared/video.model.ts +++ b/client/src/app/videos/shared/video.model.ts @@ -1,55 +1,56 @@ -import { Video as VideoServerModel } from '../../../../../shared'; -import { User } from '../../shared'; +import { Video as VideoServerModel } from '../../../../../shared' +import { User } from '../../shared' export class Video implements VideoServerModel { - author: string; - by: string; - createdAt: Date; - categoryLabel: string; - category: number; - licenceLabel: string; - licence: number; - languageLabel: string; - language: number; - description: string; - duration: number; - durationLabel: string; - id: string; - isLocal: boolean; - magnetUri: string; - name: string; - podHost: string; - tags: string[]; - thumbnailPath: string; - views: number; - likes: number; - dislikes: number; - nsfw: boolean; + author: string + by: string + createdAt: Date + categoryLabel: string + category: number + licenceLabel: string + licence: number + languageLabel: string + language: number + description: string + duration: number + durationLabel: string + id: string + isLocal: boolean + magnetUri: string + name: string + podHost: string + tags: string[] + thumbnailPath: string + thumbnailUrl: string + views: number + likes: number + dislikes: number + nsfw: boolean - private static createByString(author: string, podHost: string) { - return author + '@' + podHost; + private static createByString (author: string, podHost: string) { + return author + '@' + podHost } - private static createDurationString(duration: number) { - const minutes = Math.floor(duration / 60); - const seconds = duration % 60; - const minutes_padding = minutes >= 10 ? '' : '0'; - const seconds_padding = seconds >= 10 ? '' : '0'; + private static createDurationString (duration: number) { + const minutes = Math.floor(duration / 60) + const seconds = duration % 60 + const minutesPadding = minutes >= 10 ? '' : '0' + const secondsPadding = seconds >= 10 ? '' : '0' - return minutes_padding + minutes.toString() + ':' + seconds_padding + seconds.toString(); + return minutesPadding + minutes.toString() + ':' + secondsPadding + seconds.toString() } - constructor(hash: { + constructor (hash: { author: string, createdAt: string, categoryLabel: string, category: number, licenceLabel: string, licence: number, - languageLabel: string; - language: number; + languageLabel: string + language: number description: string, - duration: number; + duration: number id: string, isLocal: boolean, magnetUri: string, @@ -62,56 +63,57 @@ export class Video implements VideoServerModel { dislikes: number, nsfw: boolean }) { - this.author = hash.author; - this.createdAt = new Date(hash.createdAt); - this.categoryLabel = hash.categoryLabel; - this.category = hash.category; - this.licenceLabel = hash.licenceLabel; - this.licence = hash.licence; - this.languageLabel = hash.languageLabel; - this.language = hash.language; - this.description = hash.description; - this.duration = hash.duration; - this.durationLabel = Video.createDurationString(hash.duration); - this.id = hash.id; - 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.views = hash.views; - this.likes = hash.likes; - this.dislikes = hash.dislikes; - this.nsfw = hash.nsfw; + this.author = hash.author + this.createdAt = new Date(hash.createdAt) + this.categoryLabel = hash.categoryLabel + this.category = hash.category + this.licenceLabel = hash.licenceLabel + this.licence = hash.licence + this.languageLabel = hash.languageLabel + this.language = hash.language + this.description = hash.description + this.duration = hash.duration + this.durationLabel = Video.createDurationString(hash.duration) + this.id = hash.id + 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.views = hash.views + this.likes = hash.likes + this.dislikes = hash.dislikes + this.nsfw = hash.nsfw - this.by = Video.createByString(hash.author, hash.podHost); + this.by = Video.createByString(hash.author, hash.podHost) } - isRemovableBy(user) { - return user && this.isLocal === true && (this.author === user.username || user.isAdmin() === true); + isRemovableBy (user) { + return user && this.isLocal === true && (this.author === user.username || user.isAdmin() === true) } - isBlackistableBy(user) { - return user && user.isAdmin() === true && this.isLocal === false; + isBlackistableBy (user) { + return user && user.isAdmin() === true && this.isLocal === false } - isUpdatableBy(user) { - return user && this.isLocal === true && user.username === this.author; + isUpdatableBy (user) { + return user && this.isLocal === true && user.username === this.author } - isVideoNSFWForUser(user: User) { + 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)); + return (this.nsfw && (!user || user.displayNSFW === false)) } - patch(values: Object) { + patch (values: Object) { Object.keys(values).forEach((key) => { - this[key] = values[key]; - }); + this[key] = values[key] + }) } - toJSON() { + toJSON () { return { author: this.author, createdAt: this.createdAt, @@ -131,6 +133,6 @@ export class Video implements VideoServerModel { likes: this.likes, dislikes: this.dislikes, nsfw: this.nsfw - }; + } } }