1
0
Fork 0

Update videos response api

This commit is contained in:
Chocobozzz 2018-03-19 10:24:12 +01:00
parent f47776e265
commit ae5a3dd664
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
4 changed files with 62 additions and 48 deletions

View File

@ -1,6 +1,5 @@
import { NgModule } from '@angular/core'
import { Routes, RouterModule } from '@angular/router'
import { RedirectService } from '@app/core/routing/redirect.service'
import { RouterModule, Routes } from '@angular/router'
import { PreloadSelectedModulesList } from './core'

View File

@ -26,8 +26,12 @@ function isVideoLicenceValid (value: number) {
return value === null || VIDEO_LICENCES[value] !== undefined
}
function areVideoLanguagesValid (value: number[]) {
return value === null || (isArray(value) && value.every(v => isVideoLanguageValid(v)))
}
function isVideoLanguageValid (value: number) {
return value === null || VIDEO_LANGUAGES[value] !== undefined
return VIDEO_LANGUAGES[value] !== undefined
}
function isVideoDurationValid (value: string) {
@ -133,6 +137,7 @@ export {
isVideoDescriptionValid,
isVideoFileInfoHashValid,
isVideoNameValid,
areVideoLanguagesValid,
isVideoTagsValid,
isVideoAbuseReasonValid,
isVideoFile,

View File

@ -802,6 +802,27 @@ export class VideoModel extends Model<VideoModel> {
return {}
}
private static getCategoryLabel (id: number) {
let categoryLabel = VIDEO_CATEGORIES[id]
if (!categoryLabel) categoryLabel = 'Misc'
return categoryLabel
}
private static getLicenceLabel (id: number) {
let licenceLabel = VIDEO_LICENCES[id]
if (!licenceLabel) licenceLabel = 'Unknown'
return licenceLabel
}
private static getLanguageLabel (id: number) {
let languageLabel = VIDEO_LANGUAGES[id]
if (!languageLabel) languageLabel = 'Unknown'
return languageLabel
}
getOriginalFile () {
if (Array.isArray(this.VideoFiles) === false) return undefined
@ -896,12 +917,18 @@ export class VideoModel extends Model<VideoModel> {
id: this.id,
uuid: this.uuid,
name: this.name,
category: this.category,
categoryLabel: this.getCategoryLabel(),
licence: this.licence,
licenceLabel: this.getLicenceLabel(),
language: this.language,
languageLabel: this.getLanguageLabel(),
category: {
id: this.category,
label: VideoModel.getCategoryLabel(this.category)
},
licence: {
id: this.licence,
label: VideoModel.getLicenceLabel(this.licence)
},
language: {
id: this.language,
label: VideoModel.getLanguageLabel(this.language)
},
nsfw: this.nsfw,
description: this.getTruncatedDescription(),
isLocal: this.isOwned(),
@ -932,8 +959,10 @@ export class VideoModel extends Model<VideoModel> {
if (!privacyLabel) privacyLabel = 'Unknown'
const detailsJson = {
privacyLabel,
privacy: this.privacy,
privacy: {
id: this.privacy,
label: privacyLabel
},
support: this.support,
descriptionPath: this.getDescriptionPath(),
channel: this.VideoChannel.toFormattedJSON(),
@ -950,8 +979,10 @@ export class VideoModel extends Model<VideoModel> {
let resolutionLabel = videoFile.resolution + 'p'
return {
resolution: videoFile.resolution,
resolutionLabel,
resolution: {
id: videoFile.resolution,
label: resolutionLabel
},
magnetUri: this.generateMagnetUri(videoFile, baseUrlHttp, baseUrlWs),
size: videoFile.size,
torrentUrl: this.getTorrentUrl(videoFile, baseUrlHttp),
@ -979,8 +1010,8 @@ export class VideoModel extends Model<VideoModel> {
let language
if (this.language) {
language = {
identifier: this.language + '',
name: this.getLanguageLabel()
id: this.language + '',
name: VideoModel.getLanguageLabel(this.language)
}
}
@ -988,7 +1019,7 @@ export class VideoModel extends Model<VideoModel> {
if (this.category) {
category = {
identifier: this.category + '',
name: this.getCategoryLabel()
name: VideoModel.getCategoryLabel(this.category)
}
}
@ -996,7 +1027,7 @@ export class VideoModel extends Model<VideoModel> {
if (this.licence) {
licence = {
identifier: this.licence + '',
name: this.getLicenceLabel()
name: VideoModel.getLicenceLabel(this.licence)
}
}
@ -1224,27 +1255,6 @@ export class VideoModel extends Model<VideoModel> {
return `/api/${API_VERSION}/videos/${this.uuid}/description`
}
getCategoryLabel () {
let categoryLabel = VIDEO_CATEGORIES[this.category]
if (!categoryLabel) categoryLabel = 'Misc'
return categoryLabel
}
getLicenceLabel () {
let licenceLabel = VIDEO_LICENCES[this.licence]
if (!licenceLabel) licenceLabel = 'Unknown'
return licenceLabel
}
getLanguageLabel () {
let languageLabel = VIDEO_LANGUAGES[this.language]
if (!languageLabel) languageLabel = 'Unknown'
return languageLabel
}
removeThumbnail () {
const thumbnailPath = join(CONFIG.STORAGE.THUMBNAILS_DIR, this.getThumbnailName())
return unlinkPromise(thumbnailPath)

View File

@ -3,10 +3,14 @@ import { Avatar } from '../avatars/avatar.model'
import { VideoChannel } from './video-channel.model'
import { VideoPrivacy } from './video-privacy.enum'
export interface VideoConstant <T> {
id: number
label: string
}
export interface VideoFile {
magnetUri: string
resolution: number
resolutionLabel: string
resolution: VideoConstant<number>
size: number // Bytes
torrentUrl: string
fileUrl: string
@ -17,12 +21,9 @@ export interface Video {
uuid: string
createdAt: Date | string
updatedAt: Date | string
categoryLabel: string
category: number
licenceLabel: string
licence: number
languageLabel: string
language: number
category: VideoConstant<number>
licence: VideoConstant<number>
language: VideoConstant<number>
description: string
duration: number
isLocal: boolean
@ -45,8 +46,7 @@ export interface Video {
}
export interface VideoDetails extends Video {
privacy: VideoPrivacy
privacyLabel: string
privacy: VideoConstant<VideoPrivacy>
descriptionPath: string
support: string
channel: VideoChannel