File size: 2,235 Bytes
09a7c47
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3b780fb
09a7c47
3b780fb
09a7c47
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3b780fb
 
 
09a7c47
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
import { v4 as uuidv4 } from "uuid"

import {
  ChannelInfo,
  MediaInfo,
} from "@/types/general"
import { defaultChannel } from "./defaultChannel"

export function getNewMediaInfo(params: Partial<MediaInfo> = {}): MediaInfo {

  const channel = defaultChannel

  const mediaInfo: MediaInfo = {
    /**
     * UUID (v4)
     */
    id: uuidv4(),

    /**
     * Status of the media
     */
    status: "published",

    /**
     * Human readable title for the media
     */
    label: "",

    /**
     * Human readable description for the media
     */
    description: "",

    /**
     * Content prompt
     */
    prompt: "",

    /**
     * URL to the media thumbnail
     */
    thumbnailUrl: "",

    /**
     * URL to a clap file
     */
    clapUrl: "",

    assetUrl: "",

    /**
     * This is contain the storage URL of the higher-resolution content
     */
    assetUrlHd: "",

    /**
     * Counter for the number of views
     * 
     * Note: should be managed by the index to prevent cheating
     */
    numberOfViews: 0,

    /**
     * Counter for the number of likes
     * 
     * Note: should be managed by the index to prevent cheating
     */
    numberOfLikes: 0,

    /**
     * Counter for the number of dislikes
     * 
     * Note: should be managed by the index to prevent cheating
     */
    numberOfDislikes: 0,

    /**
     * When was the media updated
     */
    updatedAt: new Date().toISOString(),

    /**
     * Arbitrary string tags to label the content
     */
    tags: [],

    /**
     * Model name
     */
    model: "SDXL",

    /**
     * LoRA name
     */
    lora: "",

    /**
     * style name
     */
    style: "",

    /**
     * Music prompt
     */
    music: "",

    /**
     * Voice prompt
     */
    voice: "",

    /**
     * The channel
     */
    channel,

    /**
     * Media duration (in seconds)
     */
    duration: 2,

    /**
     * Media width (eg. 1024)
     */
    width: 1024,

    /**
     * Media height (eg. 576)
     */
    height: 576,

    /**
     * General media aspect ratio
     */
    orientation: "landscape",

    /**
     * Media projection (cartesian by default)
     */
    projection: "latent",

    ...params,
  }

  return mediaInfo
}