traxxx/src/web/releases.js

49 lines
1.1 KiB
JavaScript
Raw Normal View History

'use strict';
const config = require('config');
const path = require('path');
2020-05-19 23:11:32 +00:00
const { fetchScene, fetchScenes, searchScenes } = require('../releases');
async function fetchSceneApi(req, res) {
const release = await fetchScene(req.params.releaseId);
2020-05-19 23:11:32 +00:00
if (release) {
res.send({ scene: release });
2020-05-19 23:11:32 +00:00
return;
}
res.status(404).send({ scene: null });
2020-05-19 23:11:32 +00:00
}
async function fetchScenesApi(req, res) {
const query = req.query.query || req.query.q;
2021-02-26 18:39:48 +00:00
const limit = req.query.limit && Number(req.query.limit);
const relevance = req.query.relevance && Number(req.query.relevance);
2019-05-18 23:34:08 +00:00
const releases = query
2021-02-26 18:39:48 +00:00
? await searchScenes(query, limit, relevance)
: await fetchScenes(req.query.limit);
res.send({ scenes: releases });
}
async function fetchScenePosterApi(req, res) {
const scene = await fetchScene(req.params.releaseId);
const posterPath = scene?.poster?.path;
if (posterPath) {
res.sendFile(path.resolve(config.media.path, posterPath));
return;
}
res.status(404).send();
}
module.exports = {
fetchScene: fetchSceneApi,
fetchScenes: fetchScenesApi,
fetchScenePoster: fetchScenePosterApi,
};