Files
RedditBot/src/services/media-library-types.ts
T

52 lines
1.4 KiB
TypeScript

export const MEDIA_LIBRARY_TAGS = ['penis', 'chest', 'selfie', 'topless', 'feet'] as const;
export type MediaLibraryTag = (typeof MEDIA_LIBRARY_TAGS)[number];
export const MEDIA_LIBRARY_SAFETY = ['sfw', 'nsfw', 'unknown'] as const;
export type MediaLibrarySafety = (typeof MEDIA_LIBRARY_SAFETY)[number];
export interface MediaLibraryClassification {
tags: MediaLibraryTag[];
safety: Exclude<MediaLibrarySafety, 'unknown'>;
description: string;
confidence: number;
}
export interface MediaLibraryAsset {
id: string;
tags: MediaLibraryTag[];
safety: MediaLibrarySafety;
classificationStatus: 'ready' | 'failed';
description: string | null;
confidence: number | null;
fileName: string;
relativePath: string;
mimeType: string;
sizeBytes: number;
width: number;
height: number;
enabled: boolean;
consentConfirmedAt: number;
createdAt: number;
updatedAt: number;
sendCount: number;
lastSentAt: number | null;
}
export type MediaRequestKind = MediaLibraryTag | 'generic';
export interface MediaLibrarySend {
id: number;
assetId: string;
accountId: string;
conversationId: string;
incomingKey: string;
requestKind: MediaRequestKind;
status: 'pending' | 'sent' | 'failed' | 'superseded';
requestedAt: number;
sentAt: number | null;
matrixMediaEventId: string | null;
matrixTextEventId: string | null;
mxcUri: string | null;
error: string | null;
}