mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-07 12:30:12 +02:00
37 lines
853 B
TypeScript
37 lines
853 B
TypeScript
import { ImageType } from '@prisma/client';
|
|
import { prisma } from '../../lib';
|
|
import { SSAlbumListEntry, SSAlbumResponse } from './subsonic.types';
|
|
|
|
const insertImages = async (items: SSAlbumListEntry[]) => {
|
|
const createMany = items
|
|
.filter((item) => item.coverArt)
|
|
.map((item) => ({
|
|
remoteUrl: item.coverArt,
|
|
type: ImageType.PRIMARY,
|
|
}));
|
|
|
|
await prisma.image.createMany({
|
|
data: createMany,
|
|
skipDuplicates: true,
|
|
});
|
|
};
|
|
|
|
const insertSongImages = async (item: SSAlbumResponse) => {
|
|
const createMany = item.album.song
|
|
.filter((song) => song.coverArt)
|
|
.map((song) => ({
|
|
remoteUrl: song.coverArt,
|
|
type: ImageType.PRIMARY,
|
|
}));
|
|
|
|
await prisma.image.createMany({
|
|
data: createMany,
|
|
skipDuplicates: true,
|
|
});
|
|
};
|
|
|
|
export const subsonicUtils = {
|
|
insertImages,
|
|
insertSongImages,
|
|
};
|