Merge pull request #1458 from valadaptive/novelai-router

Use Express router for novelai endpoint
This commit is contained in:
Cohee 2023-12-04 22:23:27 +02:00 committed by GitHub
commit ce1fb8a888
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 271 additions and 276 deletions

View File

@ -3591,7 +3591,7 @@ require('./src/endpoints/secrets').registerEndpoints(app, jsonParser);
require('./src/endpoints/thumbnails').registerEndpoints(app, jsonParser); require('./src/endpoints/thumbnails').registerEndpoints(app, jsonParser);
// NovelAI generation // NovelAI generation
require('./src/endpoints/novelai').registerEndpoints(app, jsonParser); app.use('/api/novelai', require('./src/endpoints/novelai').router);
// Third-party extensions // Third-party extensions
app.use('/api/extensions', require('./src/endpoints/extensions').router); app.use('/api/extensions', require('./src/endpoints/extensions').router);

View File

@ -1,8 +1,10 @@
const fetch = require('node-fetch').default; const fetch = require('node-fetch').default;
const express = require('express');
const util = require('util'); const util = require('util');
const { Readable } = require('stream'); const { Readable } = require('stream');
const { readSecret, SECRET_KEYS } = require('./secrets'); const { readSecret, SECRET_KEYS } = require('./secrets');
const { readAllChunks, extractFileFromZipBuffer } = require('../util'); const { readAllChunks, extractFileFromZipBuffer } = require('../util');
const { jsonParser } = require('../express-common');
const API_NOVELAI = 'https://api.novelai.net'; const API_NOVELAI = 'https://api.novelai.net';
@ -60,13 +62,9 @@ function getBadWordsList(model) {
return list.slice(); return list.slice();
} }
/** const router = express.Router();
* Registers NovelAI API endpoints.
* @param {import('express').Express} app - Express app router.post('/status', jsonParser, async function (req, res) {
* @param {any} jsonParser - JSON parser middleware
*/
function registerEndpoints(app, jsonParser) {
app.post('/api/novelai/status', jsonParser, async function (req, res) {
if (!req.body) return res.sendStatus(400); if (!req.body) return res.sendStatus(400);
const api_key_novel = readSecret(SECRET_KEYS.NOVEL); const api_key_novel = readSecret(SECRET_KEYS.NOVEL);
@ -98,9 +96,9 @@ function registerEndpoints(app, jsonParser) {
console.log(error); console.log(error);
return res.send({ error: true }); return res.send({ error: true });
} }
}); });
app.post('/api/novelai/generate', jsonParser, async function (req, res) { router.post('/generate', jsonParser, async function (req, res) {
if (!req.body) return res.sendStatus(400); if (!req.body) return res.sendStatus(400);
const api_key_novel = readSecret(SECRET_KEYS.NOVEL); const api_key_novel = readSecret(SECRET_KEYS.NOVEL);
@ -225,9 +223,9 @@ function registerEndpoints(app, jsonParser) {
} catch (error) { } catch (error) {
return res.send({ error: true }); return res.send({ error: true });
} }
}); });
app.post('/api/novelai/generate-image', jsonParser, async (request, response) => { router.post('/generate-image', jsonParser, async (request, response) => {
if (!request.body) { if (!request.body) {
return response.sendStatus(400); return response.sendStatus(400);
} }
@ -323,9 +321,9 @@ function registerEndpoints(app, jsonParser) {
console.log(error); console.log(error);
return response.sendStatus(500); return response.sendStatus(500);
} }
}); });
app.post('/api/novelai/generate-voice', jsonParser, async (request, response) => { router.post('/generate-voice', jsonParser, async (request, response) => {
const token = readSecret(SECRET_KEYS.NOVEL); const token = readSecret(SECRET_KEYS.NOVEL);
if (!token) { if (!token) {
@ -363,9 +361,6 @@ function registerEndpoints(app, jsonParser) {
console.error(error); console.error(error);
return response.sendStatus(500); return response.sendStatus(500);
} }
}); });
}
module.exports = { module.exports = { router };
registerEndpoints,
};