summary refs log tree commit diff
path: root/src/util/schemas/responses/Tenor.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/util/schemas/responses/Tenor.ts')
-rw-r--r--src/util/schemas/responses/Tenor.ts72
1 files changed, 72 insertions, 0 deletions
diff --git a/src/util/schemas/responses/Tenor.ts b/src/util/schemas/responses/Tenor.ts
new file mode 100644
index 00000000..9dddf9d0
--- /dev/null
+++ b/src/util/schemas/responses/Tenor.ts
@@ -0,0 +1,72 @@
+export enum TenorMediaTypes {
+	gif,
+	mediumgif,
+	tinygif,
+	nanogif,
+	mp4,
+	loopedmp4,
+	tinymp4,
+	nanomp4,
+	webm,
+	tinywebm,
+	nanowebm,
+}
+
+export type TenorMedia = {
+	preview: string;
+	url: string;
+	dims: number[];
+	size: number;
+};
+
+export type TenorGif = {
+	created: number;
+	hasaudio: boolean;
+	id: string;
+	media: { [type in keyof typeof TenorMediaTypes]: TenorMedia }[];
+	tags: string[];
+	title: string;
+	itemurl: string;
+	hascaption: boolean;
+	url: string;
+};
+
+export type TenorCategory = {
+	searchterm: string;
+	path: string;
+	image: string;
+	name: string;
+};
+
+export type TenorCategoriesResults = {
+	tags: TenorCategory[];
+};
+
+export type TenorTrendingResults = {
+	next: string;
+	results: TenorGif[];
+	locale: string;
+};
+
+export type TenorSearchResults = {
+	next: string;
+	results: TenorGif[];
+};
+
+export interface TenorGifResponse {
+	id: string;
+	title: string;
+	url: string;
+	src: string;
+	gif_src: string;
+	width: number;
+	height: number;
+	preview: string;
+}
+
+export interface TenorTrendingResponse {
+	categories: TenorCategoriesResults;
+	gifs: TenorGifResponse[];
+}
+
+export type TenorGifsResponse = TenorGifResponse[];