dd
This commit is contained in:
parent
8ef6a653d8
commit
cdfb501952
@ -1,6 +1,6 @@
|
||||
import { type Request, type Response } from "express";
|
||||
import UserModel, { values } from '../models/userModel';
|
||||
import MediaModel, { Table } from '../models/mediaModel';
|
||||
import MediaModel, { Table, Media } from '../models/mediaModel';
|
||||
|
||||
interface omdbRes{
|
||||
Title: string,
|
||||
@ -17,31 +17,24 @@ function fromStringToTable(value: string): (Table | undefined) {
|
||||
return;
|
||||
}
|
||||
|
||||
async function downloadImage(mData: omdbRes, cleanCode: number) {
|
||||
|
||||
async function downloadImage(mData: Media, type: Table) {
|
||||
// Specify the path where you want to save the image
|
||||
const outputPath = '/poster/' + mData.Type + '/' + cleanCode + '.jpg';
|
||||
const outputPath = '/poster/' + type + '/' + mData.code + '.jpg';
|
||||
|
||||
// Use Bun's built-in fetch to download the image
|
||||
const response = await fetch(mData.Poster);
|
||||
const response = await fetch(mData.webImg);
|
||||
|
||||
// Check if the request was successful
|
||||
if (!response.ok) {
|
||||
console.log("fetch image error");
|
||||
return
|
||||
}
|
||||
|
||||
// Convert the response to a blob
|
||||
const imageBlob = await response.blob();
|
||||
|
||||
// Use Bun's write to save the image to a file
|
||||
await Bun.write('./public/' + outputPath, await imageBlob.arrayBuffer());
|
||||
|
||||
if (mData.Type.localeCompare("movie") == 0) {
|
||||
MediaModel.updateWebImg(Table.movies, cleanCode, outputPath);
|
||||
}
|
||||
else if (mData.Type.localeCompare("series") == 0) {
|
||||
MediaModel.updateWebImg(Table.series, cleanCode, outputPath);
|
||||
}
|
||||
MediaModel.updateWebImg(type, mData.code, outputPath);
|
||||
|
||||
}
|
||||
|
||||
@ -68,37 +61,38 @@ async function createMed(req: Request, res: Response) {
|
||||
return res.status(404).json({ message: 'wrong code' });
|
||||
}
|
||||
|
||||
const media: Media = {
|
||||
id:0,
|
||||
code: cleanCode,
|
||||
title: mData.Title,
|
||||
released: mData.Released,
|
||||
webImg: mData.Poster,
|
||||
};
|
||||
|
||||
const seriesFound = MediaModel.findOne(Table.series, cleanCode);
|
||||
if (seriesFound.length != 0) {
|
||||
res.status(409).json({ message: 'Media already exists' });
|
||||
await downloadImage(mData, cleanCode);
|
||||
await downloadImage(media, Table.series);
|
||||
return;
|
||||
}
|
||||
|
||||
const moviesFound = MediaModel.findOne(Table.movies, cleanCode);
|
||||
if (moviesFound.length != 0) {
|
||||
res.status(409).json({ message: 'Media already exists' });
|
||||
await downloadImage(mData, cleanCode);
|
||||
await downloadImage(media, Table.movies);
|
||||
return;
|
||||
}
|
||||
|
||||
if (mData.Type.localeCompare("movie") == 0) {
|
||||
const savedMedia = MediaModel.save(Table.movies, cleanCode, mData.Title, mData.Released, mData.Poster);
|
||||
await downloadImage(media, Table.movies);
|
||||
}
|
||||
else if (mData.Type.localeCompare("series") == 0) {
|
||||
const savedMedia = MediaModel.save(Table.series, cleanCode, mData.Title, mData.Released, mData.Poster);
|
||||
await downloadImage(media, Table.series);
|
||||
}
|
||||
|
||||
const media = {
|
||||
code: mediaCode,
|
||||
title: mData.Title,
|
||||
released: mData.Released,
|
||||
webImg: mData.Poster,
|
||||
};
|
||||
|
||||
res.status(201).json(media);
|
||||
await downloadImage(mData, cleanCode);
|
||||
|
||||
} catch (err) {
|
||||
return res.status(500).json({ message: 'Error when creating media' });
|
||||
}
|
||||
@ -160,7 +154,8 @@ async function createGame(req: Request, res: Response) {
|
||||
)
|
||||
const coverData = await response.json()
|
||||
|
||||
const game = {
|
||||
const game: Media = {
|
||||
id: 0,
|
||||
code: gameCode,
|
||||
title: gameData[0].name,
|
||||
released: dateStr,
|
||||
|
@ -1,12 +1,12 @@
|
||||
import pool from 'miscellaneous/db'
|
||||
|
||||
|
||||
class Media {
|
||||
id?: number;
|
||||
code?: number;
|
||||
title?: string;
|
||||
released?: string;
|
||||
webImg?: string;
|
||||
export class Media {
|
||||
id!: number;
|
||||
code!: number;
|
||||
title!: string;
|
||||
released!: string;
|
||||
webImg!: string;
|
||||
}
|
||||
|
||||
export enum Table {
|
||||
|
Loading…
x
Reference in New Issue
Block a user