Removed video, combined all images
This commit is contained in:
parent
941ae62099
commit
b7dca38786
|
@ -1,23 +0,0 @@
|
||||||
import { Collections } from "../../constants";
|
|
||||||
import { buildImageCollectionConfig } from "../../utils/imageCollectionConfig";
|
|
||||||
|
|
||||||
const fields = {
|
|
||||||
filename: "filename",
|
|
||||||
mimeType: "mimeType",
|
|
||||||
filesize: "filesize",
|
|
||||||
posts: "posts",
|
|
||||||
updatedAt: "updatedAt",
|
|
||||||
} as const satisfies Record<string, string>;
|
|
||||||
|
|
||||||
export const BackgroundImages = buildImageCollectionConfig({
|
|
||||||
slug: Collections.BackgroundImages,
|
|
||||||
labels: {
|
|
||||||
singular: "Background Image",
|
|
||||||
plural: "Background Images",
|
|
||||||
},
|
|
||||||
admin: { defaultColumns: [fields.filename, fields.posts, fields.updatedAt] },
|
|
||||||
upload: {
|
|
||||||
imageSizes: [],
|
|
||||||
},
|
|
||||||
fields: [],
|
|
||||||
});
|
|
|
@ -206,7 +206,7 @@ export const Collectibles = buildVersionedCollectionConfig({
|
||||||
fields: [
|
fields: [
|
||||||
imageField({
|
imageField({
|
||||||
name: fields.backgroundImage,
|
name: fields.backgroundImage,
|
||||||
relationTo: Collections.BackgroundImages,
|
relationTo: Collections.Images,
|
||||||
admin: {
|
admin: {
|
||||||
description:
|
description:
|
||||||
"The image used as background from the webpage.\
|
"The image used as background from the webpage.\
|
||||||
|
|
|
@ -101,7 +101,7 @@ export const Pages = buildVersionedCollectionConfig({
|
||||||
}),
|
}),
|
||||||
imageField({
|
imageField({
|
||||||
name: fields.backgroundImage,
|
name: fields.backgroundImage,
|
||||||
relationTo: Collections.BackgroundImages,
|
relationTo: Collections.Images,
|
||||||
admin: {
|
admin: {
|
||||||
description:
|
description:
|
||||||
"The image used as background from the webpage.\
|
"The image used as background from the webpage.\
|
||||||
|
|
|
@ -89,7 +89,7 @@ export const Recorders = buildCollectionConfig({
|
||||||
},
|
},
|
||||||
imageField({
|
imageField({
|
||||||
name: fields.avatar,
|
name: fields.avatar,
|
||||||
relationTo: Collections.RecordersThumbnails,
|
relationTo: Collections.Images,
|
||||||
}),
|
}),
|
||||||
]),
|
]),
|
||||||
{
|
{
|
||||||
|
|
|
@ -27,7 +27,7 @@ export const importFromStrapi = createStrapiImportEndpoint<StrapiRecorder>({
|
||||||
collection: Collections.Recorders,
|
collection: Collections.Recorders,
|
||||||
import: async ({ username, anonymize, anonymous_code, languages, avatar, bio: bios }, user) => {
|
import: async ({ username, anonymize, anonymous_code, languages, avatar, bio: bios }, user) => {
|
||||||
const avatarId = await uploadStrapiImage({
|
const avatarId = await uploadStrapiImage({
|
||||||
collection: Collections.RecordersThumbnails,
|
collection: Collections.Images,
|
||||||
image: avatar,
|
image: avatar,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -1,42 +0,0 @@
|
||||||
import { Collections } from "../../constants";
|
|
||||||
import { backPropagationField } from "../../fields/backPropagationField/backPropagationField";
|
|
||||||
import { buildImageCollectionConfig } from "../../utils/imageCollectionConfig";
|
|
||||||
|
|
||||||
const fields = {
|
|
||||||
filename: "filename",
|
|
||||||
mimeType: "mimeType",
|
|
||||||
filesize: "filesize",
|
|
||||||
recorder: "recorder",
|
|
||||||
updatedAt: "updatedAt",
|
|
||||||
} as const satisfies Record<string, string>;
|
|
||||||
|
|
||||||
export const RecordersThumbnails = buildImageCollectionConfig({
|
|
||||||
slug: Collections.RecordersThumbnails,
|
|
||||||
labels: {
|
|
||||||
singular: "Recorders Thumbnail",
|
|
||||||
plural: "Recorders Thumbnails",
|
|
||||||
},
|
|
||||||
admin: { defaultColumns: [fields.filename, fields.recorder, fields.updatedAt] },
|
|
||||||
upload: {
|
|
||||||
imageSizes: [
|
|
||||||
{
|
|
||||||
name: "square",
|
|
||||||
height: 150,
|
|
||||||
width: 150,
|
|
||||||
fit: "cover",
|
|
||||||
formatOptions: {
|
|
||||||
format: "webp",
|
|
||||||
options: { effort: 6, quality: 80, alphaQuality: 80 },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
fields: [
|
|
||||||
backPropagationField({
|
|
||||||
name: fields.recorder,
|
|
||||||
hasMany: false,
|
|
||||||
relationTo: Collections.Recorders,
|
|
||||||
where: ({ id }) => ({ avatar: { equals: id } }),
|
|
||||||
}),
|
|
||||||
],
|
|
||||||
});
|
|
|
@ -1,93 +0,0 @@
|
||||||
import { CollectionConfig } from "payload/types";
|
|
||||||
import { mustBeAdmin } from "../../accesses/collections/mustBeAdmin";
|
|
||||||
import { CollectionGroups, Collections, VideoSources } from "../../constants";
|
|
||||||
import { rowField } from "../../fields/rowField/rowField";
|
|
||||||
import { buildCollectionConfig } from "../../utils/collectionConfig";
|
|
||||||
import { importFromStrapi } from "./endpoints/importFromStrapi";
|
|
||||||
|
|
||||||
const fields = {
|
|
||||||
uid: "uid",
|
|
||||||
gone: "gone",
|
|
||||||
source: "source",
|
|
||||||
liveChat: "liveChat",
|
|
||||||
title: "title",
|
|
||||||
description: "description",
|
|
||||||
publishedDate: "publishedDate",
|
|
||||||
views: "views",
|
|
||||||
likes: "likes",
|
|
||||||
channel: "channel",
|
|
||||||
} as const satisfies Record<string, string>;
|
|
||||||
|
|
||||||
export const Videos: CollectionConfig = buildCollectionConfig({
|
|
||||||
slug: Collections.Videos,
|
|
||||||
labels: {
|
|
||||||
singular: "Video",
|
|
||||||
plural: "Videos",
|
|
||||||
},
|
|
||||||
defaultSort: fields.uid,
|
|
||||||
admin: {
|
|
||||||
useAsTitle: fields.title,
|
|
||||||
defaultColumns: [
|
|
||||||
fields.uid,
|
|
||||||
fields.title,
|
|
||||||
fields.source,
|
|
||||||
fields.gone,
|
|
||||||
fields.liveChat,
|
|
||||||
fields.publishedDate,
|
|
||||||
fields.views,
|
|
||||||
fields.likes,
|
|
||||||
fields.channel,
|
|
||||||
],
|
|
||||||
group: CollectionGroups.Media,
|
|
||||||
disableDuplicate: true,
|
|
||||||
},
|
|
||||||
access: {
|
|
||||||
create: mustBeAdmin,
|
|
||||||
delete: mustBeAdmin,
|
|
||||||
},
|
|
||||||
endpoints: [importFromStrapi],
|
|
||||||
timestamps: false,
|
|
||||||
fields: [
|
|
||||||
rowField([
|
|
||||||
{ name: fields.uid, type: "text", required: true, unique: true },
|
|
||||||
{
|
|
||||||
name: fields.gone,
|
|
||||||
type: "checkbox",
|
|
||||||
defaultValue: false,
|
|
||||||
required: true,
|
|
||||||
admin: {
|
|
||||||
description:
|
|
||||||
"Is the video no longer available (deleted, privatized, unlisted, blocked...)",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: fields.source,
|
|
||||||
type: "select",
|
|
||||||
required: true,
|
|
||||||
options: Object.entries(VideoSources).map(([_, value]) => ({
|
|
||||||
label: value,
|
|
||||||
value: value,
|
|
||||||
})),
|
|
||||||
},
|
|
||||||
]),
|
|
||||||
{ name: fields.title, type: "text", required: true },
|
|
||||||
{ name: fields.description, type: "textarea" },
|
|
||||||
rowField([
|
|
||||||
{ name: fields.likes, type: "number" },
|
|
||||||
{ name: fields.views, type: "number" },
|
|
||||||
]),
|
|
||||||
{
|
|
||||||
name: fields.publishedDate,
|
|
||||||
type: "date",
|
|
||||||
admin: {
|
|
||||||
date: { pickerAppearance: "dayOnly", displayFormat: "yyyy-MM-dd" },
|
|
||||||
},
|
|
||||||
required: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: fields.channel,
|
|
||||||
type: "relationship",
|
|
||||||
relationTo: Collections.VideosChannels,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
});
|
|
|
@ -1,88 +0,0 @@
|
||||||
import payload from "payload";
|
|
||||||
import { Collections, VideoSources } from "../../../constants";
|
|
||||||
import { createStrapiImportEndpoint } from "../../../endpoints/createStrapiImportEndpoint";
|
|
||||||
import { isDefined, isUndefined } from "../../../utils/asserts";
|
|
||||||
|
|
||||||
type StapiVideo = {
|
|
||||||
uid: string;
|
|
||||||
title: string;
|
|
||||||
description: string;
|
|
||||||
published_date: {
|
|
||||||
year?: number;
|
|
||||||
month?: number;
|
|
||||||
day?: number;
|
|
||||||
};
|
|
||||||
views: number;
|
|
||||||
likes: number;
|
|
||||||
source?: VideoSources;
|
|
||||||
gone: boolean;
|
|
||||||
channel: { data?: { attributes: { uid: string; title: string; subscribers: number } } };
|
|
||||||
};
|
|
||||||
|
|
||||||
export const importFromStrapi = createStrapiImportEndpoint<StapiVideo>({
|
|
||||||
strapi: {
|
|
||||||
collection: "videos",
|
|
||||||
params: { populate: "published_date,channel" },
|
|
||||||
},
|
|
||||||
payload: {
|
|
||||||
collection: Collections.Videos,
|
|
||||||
import: async (
|
|
||||||
{
|
|
||||||
uid,
|
|
||||||
title,
|
|
||||||
description,
|
|
||||||
views,
|
|
||||||
likes,
|
|
||||||
gone,
|
|
||||||
source,
|
|
||||||
published_date: { year, month, day },
|
|
||||||
channel,
|
|
||||||
},
|
|
||||||
user
|
|
||||||
) => {
|
|
||||||
if (isUndefined(source)) throw new Error("A source is required to create a Video");
|
|
||||||
if (source === VideoSources.YouTube && isUndefined(channel.data))
|
|
||||||
throw new Error("A channel is required to create a YouTube Video");
|
|
||||||
|
|
||||||
let videoChannelId;
|
|
||||||
if (isDefined(channel.data)) {
|
|
||||||
try {
|
|
||||||
await payload.create({
|
|
||||||
collection: Collections.VideosChannels,
|
|
||||||
data: {
|
|
||||||
uid: channel.data.attributes.uid,
|
|
||||||
title: channel.data.attributes.title,
|
|
||||||
subscribers: channel.data.attributes.subscribers,
|
|
||||||
},
|
|
||||||
user,
|
|
||||||
});
|
|
||||||
} catch (e) {}
|
|
||||||
|
|
||||||
const result = await payload.find({
|
|
||||||
collection: Collections.VideosChannels,
|
|
||||||
where: { uid: { equals: channel.data.attributes.uid } },
|
|
||||||
});
|
|
||||||
|
|
||||||
if (result.docs[0]) {
|
|
||||||
videoChannelId = result.docs[0].id;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
await payload.create({
|
|
||||||
collection: Collections.Videos,
|
|
||||||
data: {
|
|
||||||
uid,
|
|
||||||
title,
|
|
||||||
description,
|
|
||||||
views,
|
|
||||||
likes,
|
|
||||||
gone,
|
|
||||||
source,
|
|
||||||
publishedDate: `${year}-${month}-${day}`,
|
|
||||||
channel: videoChannelId,
|
|
||||||
},
|
|
||||||
user,
|
|
||||||
});
|
|
||||||
},
|
|
||||||
},
|
|
||||||
});
|
|
|
@ -1,39 +0,0 @@
|
||||||
import { CollectionConfig } from "payload/types";
|
|
||||||
import { mustBeAdmin } from "../../accesses/collections/mustBeAdmin";
|
|
||||||
import { CollectionGroups, Collections } from "../../constants";
|
|
||||||
import { rowField } from "../../fields/rowField/rowField";
|
|
||||||
import { buildCollectionConfig } from "../../utils/collectionConfig";
|
|
||||||
|
|
||||||
const fields = {
|
|
||||||
uid: "uid",
|
|
||||||
title: "title",
|
|
||||||
subscribers: "subscribers",
|
|
||||||
videos: "videos",
|
|
||||||
} as const satisfies Record<string, string>;
|
|
||||||
|
|
||||||
export const VideosChannels: CollectionConfig = buildCollectionConfig({
|
|
||||||
slug: Collections.VideosChannels,
|
|
||||||
labels: {
|
|
||||||
singular: "Videos Channel",
|
|
||||||
plural: "Videos Channels",
|
|
||||||
},
|
|
||||||
defaultSort: fields.title,
|
|
||||||
admin: {
|
|
||||||
useAsTitle: fields.title,
|
|
||||||
defaultColumns: [fields.uid, fields.title, fields.subscribers, fields.videos],
|
|
||||||
group: CollectionGroups.Media,
|
|
||||||
disableDuplicate: true,
|
|
||||||
},
|
|
||||||
access: {
|
|
||||||
create: mustBeAdmin,
|
|
||||||
delete: mustBeAdmin,
|
|
||||||
},
|
|
||||||
timestamps: false,
|
|
||||||
fields: [
|
|
||||||
{ name: fields.uid, type: "text", required: true, unique: true },
|
|
||||||
rowField([
|
|
||||||
{ name: fields.title, type: "text", required: true },
|
|
||||||
{ name: fields.subscribers, type: "number" },
|
|
||||||
]),
|
|
||||||
],
|
|
||||||
});
|
|
|
@ -11,9 +11,6 @@ export enum Collections {
|
||||||
Pages = "pages",
|
Pages = "pages",
|
||||||
PagesThumbnails = "pages-thumbnails",
|
PagesThumbnails = "pages-thumbnails",
|
||||||
Recorders = "recorders",
|
Recorders = "recorders",
|
||||||
RecordersThumbnails = "recorders-thumbnails",
|
|
||||||
VideosChannels = "videos-channels",
|
|
||||||
Videos = "videos",
|
|
||||||
Folders = "folders",
|
Folders = "folders",
|
||||||
Tags = "tags",
|
Tags = "tags",
|
||||||
TagsGroups = "tags-groups",
|
TagsGroups = "tags-groups",
|
||||||
|
@ -21,7 +18,6 @@ export enum Collections {
|
||||||
Wordings = "wordings",
|
Wordings = "wordings",
|
||||||
Collectibles = "collectibles",
|
Collectibles = "collectibles",
|
||||||
GenericContents = "generic-contents",
|
GenericContents = "generic-contents",
|
||||||
BackgroundImages = "background-images",
|
|
||||||
HomeFolders = "home-folders",
|
HomeFolders = "home-folders",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,12 +75,6 @@ export enum CollectionStatus {
|
||||||
Published = "published",
|
Published = "published",
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum VideoSources {
|
|
||||||
YouTube = "YouTube",
|
|
||||||
NicoNico = "NicoNico",
|
|
||||||
Tumblr = "Tumblr",
|
|
||||||
}
|
|
||||||
|
|
||||||
export enum PageType {
|
export enum PageType {
|
||||||
Content = "Content",
|
Content = "Content",
|
||||||
Post = "Post",
|
Post = "Post",
|
||||||
|
|
|
@ -2,7 +2,6 @@ import { webpackBundler } from "@payloadcms/bundler-webpack";
|
||||||
import { mongooseAdapter } from "@payloadcms/db-mongodb";
|
import { mongooseAdapter } from "@payloadcms/db-mongodb";
|
||||||
import path from "path";
|
import path from "path";
|
||||||
import { buildConfig } from "payload/config";
|
import { buildConfig } from "payload/config";
|
||||||
import { BackgroundImages } from "./collections/BackgroundImages/BackgroundImages";
|
|
||||||
import { ChronologyEvents } from "./collections/ChronologyEvents/ChronologyEvents";
|
import { ChronologyEvents } from "./collections/ChronologyEvents/ChronologyEvents";
|
||||||
import { Collectibles } from "./collections/Collectibles/Collectibles";
|
import { Collectibles } from "./collections/Collectibles/Collectibles";
|
||||||
import { Currencies } from "./collections/Currencies/Currencies";
|
import { Currencies } from "./collections/Currencies/Currencies";
|
||||||
|
@ -14,11 +13,8 @@ import { Languages } from "./collections/Languages/Languages";
|
||||||
import { Notes } from "./collections/Notes/Notes";
|
import { Notes } from "./collections/Notes/Notes";
|
||||||
import { Pages } from "./collections/Pages/Pages";
|
import { Pages } from "./collections/Pages/Pages";
|
||||||
import { Recorders } from "./collections/Recorders/Recorders";
|
import { Recorders } from "./collections/Recorders/Recorders";
|
||||||
import { RecordersThumbnails } from "./collections/RecordersThumbnails/RecordersThumbnails";
|
|
||||||
import { Tags } from "./collections/Tags/Tags";
|
import { Tags } from "./collections/Tags/Tags";
|
||||||
import { TagsGroups } from "./collections/TagsGroups/TagsGroups";
|
import { TagsGroups } from "./collections/TagsGroups/TagsGroups";
|
||||||
import { Videos } from "./collections/Videos/Videos";
|
|
||||||
import { VideosChannels } from "./collections/VideosChannels/VideosChannels";
|
|
||||||
import { Wordings } from "./collections/Wordings/Wordings";
|
import { Wordings } from "./collections/Wordings/Wordings";
|
||||||
import { Icon } from "./components/Icon";
|
import { Icon } from "./components/Icon";
|
||||||
import { Logo } from "./components/Logo";
|
import { Logo } from "./components/Logo";
|
||||||
|
@ -47,10 +43,6 @@ export default buildConfig({
|
||||||
Notes,
|
Notes,
|
||||||
|
|
||||||
Images,
|
Images,
|
||||||
BackgroundImages,
|
|
||||||
RecordersThumbnails,
|
|
||||||
Videos,
|
|
||||||
VideosChannels,
|
|
||||||
|
|
||||||
Tags,
|
Tags,
|
||||||
TagsGroups,
|
TagsGroups,
|
||||||
|
|
|
@ -49,10 +49,6 @@ export interface Config {
|
||||||
"chronology-events": ChronologyEvent;
|
"chronology-events": ChronologyEvent;
|
||||||
notes: Note;
|
notes: Note;
|
||||||
images: Image;
|
images: Image;
|
||||||
"background-images": BackgroundImage;
|
|
||||||
"recorders-thumbnails": RecordersThumbnail;
|
|
||||||
videos: Video;
|
|
||||||
"videos-channels": VideosChannel;
|
|
||||||
tags: Tag;
|
tags: Tag;
|
||||||
"tags-groups": TagsGroup;
|
"tags-groups": TagsGroup;
|
||||||
recorders: Recorder;
|
recorders: Recorder;
|
||||||
|
@ -76,7 +72,7 @@ export interface Page {
|
||||||
slug: string;
|
slug: string;
|
||||||
type: "Content" | "Post" | "Generic";
|
type: "Content" | "Post" | "Generic";
|
||||||
thumbnail?: string | Image | null;
|
thumbnail?: string | Image | null;
|
||||||
backgroundImage?: string | BackgroundImage | null;
|
backgroundImage?: string | Image | null;
|
||||||
tags?: (string | Tag)[] | null;
|
tags?: (string | Tag)[] | null;
|
||||||
authors?: (string | Recorder)[] | null;
|
authors?: (string | Recorder)[] | null;
|
||||||
translations: {
|
translations: {
|
||||||
|
@ -160,31 +156,6 @@ export interface Image {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
/**
|
|
||||||
* This interface was referenced by `Config`'s JSON-Schema
|
|
||||||
* via the `definition` "background-images".
|
|
||||||
*/
|
|
||||||
export interface BackgroundImage {
|
|
||||||
id: string;
|
|
||||||
updatedAt: string;
|
|
||||||
createdAt: string;
|
|
||||||
url?: string | null;
|
|
||||||
filename?: string | null;
|
|
||||||
mimeType?: string | null;
|
|
||||||
filesize?: number | null;
|
|
||||||
width?: number | null;
|
|
||||||
height?: number | null;
|
|
||||||
sizes?: {
|
|
||||||
thumb?: {
|
|
||||||
url?: string | null;
|
|
||||||
width?: number | null;
|
|
||||||
height?: number | null;
|
|
||||||
mimeType?: string | null;
|
|
||||||
filesize?: number | null;
|
|
||||||
filename?: string | null;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
/**
|
/**
|
||||||
* This interface was referenced by `Config`'s JSON-Schema
|
* This interface was referenced by `Config`'s JSON-Schema
|
||||||
* via the `definition` "tags".
|
* via the `definition` "tags".
|
||||||
|
@ -233,7 +204,7 @@ export interface TagsGroup {
|
||||||
export interface Recorder {
|
export interface Recorder {
|
||||||
id: string;
|
id: string;
|
||||||
username: string;
|
username: string;
|
||||||
avatar?: string | RecordersThumbnail | null;
|
avatar?: string | Image | null;
|
||||||
languages?: (string | Language)[] | null;
|
languages?: (string | Language)[] | null;
|
||||||
biographies?: RecorderBiographies;
|
biographies?: RecorderBiographies;
|
||||||
role?: ("Admin" | "Recorder" | "Api")[] | null;
|
role?: ("Admin" | "Recorder" | "Api")[] | null;
|
||||||
|
@ -247,40 +218,6 @@ export interface Recorder {
|
||||||
lockUntil?: string | null;
|
lockUntil?: string | null;
|
||||||
password?: string | null;
|
password?: string | null;
|
||||||
}
|
}
|
||||||
/**
|
|
||||||
* This interface was referenced by `Config`'s JSON-Schema
|
|
||||||
* via the `definition` "recorders-thumbnails".
|
|
||||||
*/
|
|
||||||
export interface RecordersThumbnail {
|
|
||||||
id: string;
|
|
||||||
recorder?: (string | null) | Recorder;
|
|
||||||
updatedAt: string;
|
|
||||||
createdAt: string;
|
|
||||||
url?: string | null;
|
|
||||||
filename?: string | null;
|
|
||||||
mimeType?: string | null;
|
|
||||||
filesize?: number | null;
|
|
||||||
width?: number | null;
|
|
||||||
height?: number | null;
|
|
||||||
sizes?: {
|
|
||||||
thumb?: {
|
|
||||||
url?: string | null;
|
|
||||||
width?: number | null;
|
|
||||||
height?: number | null;
|
|
||||||
mimeType?: string | null;
|
|
||||||
filesize?: number | null;
|
|
||||||
filename?: string | null;
|
|
||||||
};
|
|
||||||
square?: {
|
|
||||||
url?: string | null;
|
|
||||||
width?: number | null;
|
|
||||||
height?: number | null;
|
|
||||||
mimeType?: string | null;
|
|
||||||
filesize?: number | null;
|
|
||||||
filename?: string | null;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
/**
|
/**
|
||||||
* This interface was referenced by `Config`'s JSON-Schema
|
* This interface was referenced by `Config`'s JSON-Schema
|
||||||
* via the `definition` "folders".
|
* via the `definition` "folders".
|
||||||
|
@ -371,7 +308,7 @@ export interface Collectible {
|
||||||
} | null;
|
} | null;
|
||||||
id?: string | null;
|
id?: string | null;
|
||||||
}[];
|
}[];
|
||||||
backgroundImage?: string | BackgroundImage | null;
|
backgroundImage?: string | Image | null;
|
||||||
gallery?:
|
gallery?:
|
||||||
| {
|
| {
|
||||||
image: string | Image;
|
image: string | Image;
|
||||||
|
@ -685,32 +622,6 @@ export interface Note {
|
||||||
updatedAt: string;
|
updatedAt: string;
|
||||||
createdAt: string;
|
createdAt: string;
|
||||||
}
|
}
|
||||||
/**
|
|
||||||
* This interface was referenced by `Config`'s JSON-Schema
|
|
||||||
* via the `definition` "videos".
|
|
||||||
*/
|
|
||||||
export interface Video {
|
|
||||||
id: string;
|
|
||||||
uid: string;
|
|
||||||
gone: boolean;
|
|
||||||
source: "YouTube" | "NicoNico" | "Tumblr";
|
|
||||||
title: string;
|
|
||||||
description?: string | null;
|
|
||||||
likes?: number | null;
|
|
||||||
views?: number | null;
|
|
||||||
publishedDate: string;
|
|
||||||
channel?: (string | null) | VideosChannel;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* This interface was referenced by `Config`'s JSON-Schema
|
|
||||||
* via the `definition` "videos-channels".
|
|
||||||
*/
|
|
||||||
export interface VideosChannel {
|
|
||||||
id: string;
|
|
||||||
uid: string;
|
|
||||||
title: string;
|
|
||||||
subscribers?: number | null;
|
|
||||||
}
|
|
||||||
/**
|
/**
|
||||||
* This interface was referenced by `Config`'s JSON-Schema
|
* This interface was referenced by `Config`'s JSON-Schema
|
||||||
* via the `definition` "wordings".
|
* via the `definition` "wordings".
|
||||||
|
|
Loading…
Reference in New Issue