You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

42 lines
1.1 KiB

import * as fs from "node:fs";
import * as path from "node:path";
import {getAllMusics, getMusicMetadata, insertMusicFile, insertMusicMetadata} from "../services/musics.services.js";
export async function scan(req, res) {
const dir = process.env.DATA_PATH;
const content = fs.readdirSync(path.join(dir, "import"), 'utf8');
const inBase = await getAllMusics();
console.log("MUSIC IN BASE");
console.log(inBase.rows);
if (content.length > 1) {
res.status(400).json({
"error": "400",
"message": "Too many files"
})
}
const discogs_metadata = await getMusicMetadata(content[0]);
const filename = content[0].split('.')[0];
const file_id = await insertMusicFile(content[0])
console.log("FILE ID")
console.log(file_id.rows[0].id);
const metadata = {
name: filename.split('---')[0],
artist: filename.split('---')[1],
album: discogs_metadata.results[0].title,
cover: discogs_metadata.results[0]["cover_image"],
file: file_id.rows[0].id
}
const meta = await insertMusicMetadata(metadata)
res.status(200).json(meta);
}