import { getHLSDirectory, getTorrentFileName, getTorrentFilePath, getVideoFilename, getVideoFilePath } from '@server/lib/video-paths'
import { ModelCache } from '@server/models/model-cache'
import { buildListQuery, BuildVideosQueryOptions, wrapForAPIResults } from './video-query-builder'
+import { buildNSFWFilter } from '@server/helpers/express-utils'
export enum ScopeNames {
AVAILABLE_FOR_LIST_IDS = 'AVAILABLE_FOR_LIST_IDS',
remote: false
}
})
- const totalVideos = await VideoModel.count()
let totalLocalVideoViews = await VideoModel.sum('views', {
where: {
remote: false
}
})
+
// Sequelize could return null...
if (!totalLocalVideoViews) totalLocalVideoViews = 0
+ const { total: totalVideos } = await VideoModel.listForApi({
+ start: 0,
+ count: 0,
+ sort: '-publishedAt',
+ nsfw: buildNSFWFilter(),
+ includeLocalVideos: true,
+ withFiles: false
+ })
+
return {
totalLocalVideos,
totalLocalVideoViews,
}
function getModels () {
+ if (options.count === 0) return Promise.resolve([])
+
const { query, replacements, order } = buildListQuery(VideoModel, options)
const queryModels = wrapForAPIResults(query, replacements, options, order)
getVideoFileMetadataUrl (videoFile: MVideoFile, baseUrlHttp: string) {
const path = '/api/v1/videos/'
- return videoFile.metadata
+
+ return this.isOwned()
? baseUrlHttp + path + this.uuid + '/metadata/' + videoFile.id
: videoFile.metadataUrl
}