Add video file metadata to download modal, via ffprobe (#2411)
* Add video file metadata via ffprobe * Federate video file metadata * Add tests for file metadata generation * Complete tests for videoFile metadata federation * Lint migration and video-file for metadata * Objectify metadata from getter in ffmpeg-utils * Add metadataUrl to all videoFiles * Simplify metadata API middleware * Load playlist in videoFile when requesting metadata
This commit is contained in:
parent
edb868655e
commit
8319d6ae72
23 changed files with 553 additions and 52 deletions
|
@ -3,6 +3,23 @@ import validator from 'validator'
|
|||
import { Col } from 'sequelize/types/lib/utils'
|
||||
import { literal, OrderItem } from 'sequelize'
|
||||
|
||||
type Primitive = string | Function | number | boolean | Symbol | undefined | null
|
||||
type DeepOmitHelper<T, K extends keyof T> = {
|
||||
[P in K]: // extra level of indirection needed to trigger homomorhic behavior
|
||||
T[P] extends infer TP // distribute over unions
|
||||
? TP extends Primitive
|
||||
? TP // leave primitives and functions alone
|
||||
: TP extends any[]
|
||||
? DeepOmitArray<TP, K> // Array special handling
|
||||
: DeepOmit<TP, K>
|
||||
: never
|
||||
}
|
||||
type DeepOmit<T, K> = T extends Primitive ? T : DeepOmitHelper<T, Exclude<keyof T, K>>
|
||||
|
||||
type DeepOmitArray<T extends any[], K> = {
|
||||
[P in keyof T]: DeepOmit<T[P], K>
|
||||
}
|
||||
|
||||
type SortType = { sortModel: string, sortValue: string }
|
||||
|
||||
// Translate for example "-name" to [ [ 'name', 'DESC' ], [ 'id', 'ASC' ] ]
|
||||
|
@ -193,6 +210,7 @@ function buildDirectionAndField (value: string) {
|
|||
// ---------------------------------------------------------------------------
|
||||
|
||||
export {
|
||||
DeepOmit,
|
||||
buildBlockedAccountSQL,
|
||||
buildLocalActorIdsIn,
|
||||
SortType,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue