Sparser use of .error

This commit is contained in:
Eradev 2025-02-02 03:47:04 -05:00
parent 055a6527fc
commit a5399b6614
15 changed files with 119 additions and 119 deletions

View File

@ -46,7 +46,7 @@ router.post('/caption-image', jsonParser, async (request, response) => {
if (!result.ok) {
const text = await result.text();
console.error(`Claude API returned error: ${result.status} ${result.statusText}`, text);
console.warn(`Claude API returned error: ${result.status} ${result.statusText}`, text);
return response.status(result.status).send({ error: true });
}

View File

@ -11,14 +11,14 @@ router.post('/list', jsonParser, async (req, res) => {
const key = readSecret(req.user.directories, SECRET_KEYS.AZURE_TTS);
if (!key) {
console.error('Azure TTS API Key not set');
console.warn('Azure TTS API Key not set');
return res.sendStatus(403);
}
const region = req.body.region;
if (!region) {
console.error('Azure TTS region not set');
console.warn('Azure TTS region not set');
return res.sendStatus(400);
}
@ -32,7 +32,7 @@ router.post('/list', jsonParser, async (req, res) => {
});
if (!response.ok) {
console.error('Azure Request failed', response.status, response.statusText);
console.warn('Azure Request failed', response.status, response.statusText);
return res.sendStatus(500);
}
@ -49,13 +49,13 @@ router.post('/generate', jsonParser, async (req, res) => {
const key = readSecret(req.user.directories, SECRET_KEYS.AZURE_TTS);
if (!key) {
console.error('Azure TTS API Key not set');
console.warn('Azure TTS API Key not set');
return res.sendStatus(403);
}
const { text, voice, region } = req.body;
if (!text || !voice || !region) {
console.error('Missing required parameters');
console.warn('Missing required parameters');
return res.sendStatus(400);
}
@ -75,7 +75,7 @@ router.post('/generate', jsonParser, async (req, res) => {
});
if (!response.ok) {
console.error('Azure Request failed', response.status, response.statusText);
console.warn('Azure Request failed', response.status, response.statusText);
return res.sendStatus(500);
}

View File

@ -114,7 +114,7 @@ async function sendClaudeRequest(request, response) {
}
if (!apiKey) {
console.log(color.red(`Claude API key is missing.\n${divider}`));
console.warn(color.red(`Claude API key is missing.\n${divider}`));
return response.status(400).send({ error: true });
}
@ -230,7 +230,7 @@ async function sendScaleRequest(request, response) {
const apiKey = readSecret(request.user.directories, SECRET_KEYS.SCALE);
if (!apiKey) {
console.log('Scale API key is missing.');
console.warn('Scale API key is missing.');
return response.status(400).send({ error: true });
}
@ -254,7 +254,7 @@ async function sendScaleRequest(request, response) {
});
if (!generateResponse.ok) {
console.error(`Scale API returned error: ${generateResponse.status} ${generateResponse.statusText} ${await generateResponse.text()}`);
console.warn(`Scale API returned error: ${generateResponse.status} ${generateResponse.statusText} ${await generateResponse.text()}`);
return response.status(500).send({ error: true });
}
@ -282,7 +282,7 @@ async function sendMakerSuiteRequest(request, response) {
const apiKey = request.body.reverse_proxy ? request.body.proxy_password : readSecret(request.user.directories, SECRET_KEYS.MAKERSUITE);
if (!request.body.reverse_proxy && !apiKey) {
console.error('Google AI Studio API key is missing.');
console.warn('Google AI Studio API key is missing.');
return response.status(400).send({ error: true });
}
@ -373,7 +373,7 @@ async function sendMakerSuiteRequest(request, response) {
}
} else {
if (!generateResponse.ok) {
console.error(`Google AI Studio API returned error: ${generateResponse.status} ${generateResponse.statusText} ${await generateResponse.text()}`);
console.warn(`Google AI Studio API returned error: ${generateResponse.status} ${generateResponse.statusText} ${await generateResponse.text()}`);
return response.status(generateResponse.status).send({ error: true });
}
@ -391,12 +391,12 @@ async function sendMakerSuiteRequest(request, response) {
}
const responseContent = candidates[0].content ?? candidates[0].output;
console.error('Google AI Studio response:', responseContent);
console.warn('Google AI Studio response:', responseContent);
const responseText = typeof responseContent === 'string' ? responseContent : responseContent?.parts?.filter(part => !part.thought)?.map(part => part.text)?.join('\n\n');
if (!responseText) {
let message = 'Google AI Studio Candidate text empty';
console.error(message, generateResponseJson);
console.warn(message, generateResponseJson);
return response.send({ error: { message } });
}
@ -456,7 +456,7 @@ async function sendAI21Request(request, response) {
} else {
if (!generateResponse.ok) {
const errorText = await generateResponse.text();
console.error(`AI21 API returned error: ${generateResponse.status} ${generateResponse.statusText} ${errorText}`);
console.warn(`AI21 API returned error: ${generateResponse.status} ${generateResponse.statusText} ${errorText}`);
const errorJson = tryParse(errorText) ?? { error: true };
return response.status(500).send(errorJson);
}
@ -484,7 +484,7 @@ async function sendMistralAIRequest(request, response) {
const apiKey = request.body.reverse_proxy ? request.body.proxy_password : readSecret(request.user.directories, SECRET_KEYS.MISTRALAI);
if (!apiKey) {
console.error('MistralAI API key is missing.');
console.warn('MistralAI API key is missing.');
return response.status(400).send({ error: true });
}
@ -533,7 +533,7 @@ async function sendMistralAIRequest(request, response) {
} else {
if (!generateResponse.ok) {
const errorText = await generateResponse.text();
console.error(`MistralAI API returned error: ${generateResponse.status} ${generateResponse.statusText} ${errorText}`);
console.warn(`MistralAI API returned error: ${generateResponse.status} ${generateResponse.statusText} ${errorText}`);
const errorJson = tryParse(errorText) ?? { error: true };
return response.status(500).send(errorJson);
}
@ -565,7 +565,7 @@ async function sendCohereRequest(request, response) {
});
if (!apiKey) {
console.error('Cohere API key is missing.');
console.warn('Cohere API key is missing.');
return response.status(400).send({ error: true });
}
@ -626,7 +626,7 @@ async function sendCohereRequest(request, response) {
const generateResponse = await fetch(apiUrl, config);
if (!generateResponse.ok) {
const errorText = await generateResponse.text();
console.error(`Cohere API returned error: ${generateResponse.status} ${generateResponse.statusText} ${errorText}`);
console.warn(`Cohere API returned error: ${generateResponse.status} ${generateResponse.statusText} ${errorText}`);
const errorJson = tryParse(errorText) ?? { error: true };
return response.status(500).send(errorJson);
}
@ -654,7 +654,7 @@ async function sendDeepSeekRequest(request, response) {
const apiKey = request.body.reverse_proxy ? request.body.proxy_password : readSecret(request.user.directories, SECRET_KEYS.DEEPSEEK);
if (!apiKey && !request.body.reverse_proxy) {
console.log('DeepSeek API key is missing.');
console.warn('DeepSeek API key is missing.');
return response.status(400).send({ error: true });
}
@ -775,12 +775,12 @@ router.post('/status', jsonParser, async function (request, response_getstatus_o
api_key_openai = request.body.reverse_proxy ? request.body.proxy_password : readSecret(request.user.directories, SECRET_KEYS.DEEPSEEK);
headers = {};
} else {
console.error('This chat completion source is not supported yet.');
console.warn('This chat completion source is not supported yet.');
return response_getstatus_openai.status(400).send({ error: true });
}
if (!api_key_openai && !request.body.reverse_proxy && request.body.chat_completion_source !== CHAT_COMPLETION_SOURCES.CUSTOM) {
console.error('Chat Completion API key is missing.');
console.warn('Chat Completion API key is missing.');
return response_getstatus_openai.status(400).send({ error: true });
}
@ -1059,12 +1059,12 @@ router.post('/generate', jsonParser, function (request, response) {
headers = {};
bodyParams = {};
} else {
console.error('This chat completion source is not supported yet.');
console.warn('This chat completion source is not supported yet.');
return response.status(400).send({ error: true });
}
if (!apiKey && !request.body.reverse_proxy && request.body.chat_completion_source !== CHAT_COMPLETION_SOURCES.CUSTOM) {
console.error('OpenAI API key is missing.');
console.warn('OpenAI API key is missing.');
return response.status(400).send({ error: true });
}

View File

@ -105,7 +105,7 @@ router.post('/generate', jsonParser, async function (request, response_generate)
} else {
if (!response.ok) {
const errorText = await response.text();
console.error(`Kobold returned error: ${response.status} ${response.statusText} ${errorText}`);
console.warn(`Kobold returned error: ${response.status} ${response.statusText} ${errorText}`);
try {
const errorJson = JSON.parse(errorText);

View File

@ -13,7 +13,7 @@ router.post('/', jsonParser, async (req, res) => {
const rawImage = await getRawImage(image);
if (!rawImage) {
console.error('Failed to parse captioned image');
console.warn('Failed to parse captioned image');
return res.sendStatus(400);
}

View File

@ -812,13 +812,13 @@ router.post('/rename', jsonParser, validateAvatarUrlMiddleware, async function (
router.post('/edit', urlencodedParser, validateAvatarUrlMiddleware, async function (request, response) {
if (!request.body) {
console.error('Error: no response body detected');
console.warn('Error: no response body detected');
response.status(400).send('Error: no response body detected');
return;
}
if (request.body.ch_name === '' || request.body.ch_name === undefined || request.body.ch_name === '.') {
console.error('Error: invalid name.');
console.warn('Error: invalid name.');
response.status(400).send('Error: invalid name.');
return;
}
@ -862,12 +862,12 @@ router.post('/edit', urlencodedParser, validateAvatarUrlMiddleware, async functi
router.post('/edit-attribute', jsonParser, validateAvatarUrlMiddleware, async function (request, response) {
console.debug(request.body);
if (!request.body) {
console.error('Error: no response body detected');
console.warn('Error: no response body detected');
return response.status(400).send('Error: no response body detected');
}
if (request.body.ch_name === '' || request.body.ch_name === undefined || request.body.ch_name === '.') {
console.error('Error: invalid name.');
console.warn('Error: invalid name.');
return response.status(400).send('Error: invalid name.');
}
@ -879,7 +879,7 @@ router.post('/edit-attribute', jsonParser, validateAvatarUrlMiddleware, async fu
const char = JSON.parse(charJSON);
//check if the field exists
if (char[request.body.field] === undefined && char.data[request.body.field] === undefined) {
console.error('Error: invalid field.');
console.warn('Error: invalid field.');
response.status(400).send('Error: invalid field.');
return;
}
@ -928,7 +928,7 @@ router.post('/merge-attributes', jsonParser, getFileNameValidationFunction('avat
await writeCharacterData(avatarPath, JSON.stringify(character), targetImg, request);
response.sendStatus(200);
} else {
console.error(validator.lastValidationError);
console.warn(validator.lastValidationError);
response.status(400).send({ message: `Validation failed for ${character.name}`, error: validator.lastValidationError });
}
} catch (exception) {
@ -1152,7 +1152,7 @@ router.post('/import', urlencodedParser, async function (request, response) {
const fileName = await importFunction(uploadPath, { request, response }, preservedFileName);
if (!fileName) {
console.error('Failed to import character');
console.warn('Failed to import character');
return response.sendStatus(400);
}
@ -1170,7 +1170,7 @@ router.post('/import', urlencodedParser, async function (request, response) {
router.post('/duplicate', jsonParser, validateAvatarUrlMiddleware, async function (request, response) {
try {
if (!request.body.avatar_url) {
console.error('avatar URL not found in request body');
console.warn('avatar URL not found in request body');
console.debug(request.body);
return response.sendStatus(400);
}

View File

@ -360,7 +360,7 @@ router.post('/generate-image', jsonParser, async (request, response) => {
{ token: api_key_horde });
if (!generation.id) {
console.error('Image generation request is not satisfyable:', generation.message || 'unknown error');
console.warn('Image generation request is not satisfyable:', generation.message || 'unknown error');
return response.sendStatus(400);
}

View File

@ -120,7 +120,7 @@ router.post('/status', jsonParser, async function (req, res) {
const api_key_novel = readSecret(req.user.directories, SECRET_KEYS.NOVEL);
if (!api_key_novel) {
console.error('NovelAI Access Token is missing.');
console.warn('NovelAI Access Token is missing.');
return res.sendStatus(400);
}
@ -141,7 +141,7 @@ router.post('/status', jsonParser, async function (req, res) {
return res.send({ error: true });
}
else {
console.error('NovelAI returned an error:', response.statusText);
console.warn('NovelAI returned an error:', response.statusText);
return res.send({ error: true });
}
} catch (error) {
@ -156,7 +156,7 @@ router.post('/generate', jsonParser, async function (req, res) {
const api_key_novel = readSecret(req.user.directories, SECRET_KEYS.NOVEL);
if (!api_key_novel) {
console.error('NovelAI Access Token is missing.');
console.warn('NovelAI Access Token is missing.');
return res.sendStatus(400);
}
@ -261,7 +261,7 @@ router.post('/generate', jsonParser, async function (req, res) {
if (!response.ok) {
const text = await response.text();
let message = text;
console.error(`Novel API returned error: ${response.status} ${response.statusText} ${text}`);
console.warn(`Novel API returned error: ${response.status} ${response.statusText} ${text}`);
try {
const data = JSON.parse(text);
@ -292,7 +292,7 @@ router.post('/generate-image', jsonParser, async (request, response) => {
const key = readSecret(request.user.directories, SECRET_KEYS.NOVEL);
if (!key) {
console.error('NovelAI Access Token is missing.');
console.warn('NovelAI Access Token is missing.');
return response.sendStatus(400);
}
@ -358,7 +358,7 @@ router.post('/generate-image', jsonParser, async (request, response) => {
if (!generateResult.ok) {
const text = await generateResult.text();
console.error('NovelAI returned an error.', generateResult.statusText, text);
console.warn('NovelAI returned an error.', generateResult.statusText, text);
return response.sendStatus(500);
}

View File

@ -63,7 +63,7 @@ router.post('/caption-image', jsonParser, async (request, response) => {
}
if (!key && !request.body.reverse_proxy && ['custom', 'ooba', 'koboldcpp', 'vllm'].includes(request.body.api) === false) {
console.error('No key found for API', request.body.api);
console.warn('No key found for API', request.body.api);
return response.sendStatus(400);
}
@ -93,7 +93,7 @@ router.post('/caption-image', jsonParser, async (request, response) => {
excludeKeysByYaml(body, request.body.custom_exclude_body);
}
console.error('Multimodal captioning request', body);
console.debug('Multimodal captioning request', body);
let apiUrl = '';
@ -158,7 +158,7 @@ router.post('/caption-image', jsonParser, async (request, response) => {
if (!result.ok) {
const text = await result.text();
console.error('Multimodal captioning request failed', result.statusText, text);
console.warn('Multimodal captioning request failed', result.statusText, text);
return response.status(500).send(text);
}
@ -184,12 +184,12 @@ router.post('/transcribe-audio', urlencodedParser, async (request, response) =>
const key = readSecret(request.user.directories, SECRET_KEYS.OPENAI);
if (!key) {
console.error('No OpenAI key found');
console.warn('No OpenAI key found');
return response.sendStatus(400);
}
if (!request.file) {
console.error('No audio file found');
console.warn('No audio file found');
return response.sendStatus(400);
}
@ -213,7 +213,7 @@ router.post('/transcribe-audio', urlencodedParser, async (request, response) =>
if (!result.ok) {
const text = await result.text();
console.error('OpenAI request failed', result.statusText, text);
console.warn('OpenAI request failed', result.statusText, text);
return response.status(500).send(text);
}
@ -232,7 +232,7 @@ router.post('/generate-voice', jsonParser, async (request, response) => {
const key = readSecret(request.user.directories, SECRET_KEYS.OPENAI);
if (!key) {
console.error('No OpenAI key found');
console.warn('No OpenAI key found');
return response.sendStatus(400);
}
@ -253,7 +253,7 @@ router.post('/generate-voice', jsonParser, async (request, response) => {
if (!result.ok) {
const text = await result.text();
console.error('OpenAI request failed', result.statusText, text);
console.warn('OpenAI request failed', result.statusText, text);
return response.status(500).send(text);
}
@ -271,7 +271,7 @@ router.post('/generate-image', jsonParser, async (request, response) => {
const key = readSecret(request.user.directories, SECRET_KEYS.OPENAI);
if (!key) {
console.error('No OpenAI key found');
console.warn('No OpenAI key found');
return response.sendStatus(400);
}
@ -288,7 +288,7 @@ router.post('/generate-image', jsonParser, async (request, response) => {
if (!result.ok) {
const text = await result.text();
console.error('OpenAI request failed', result.statusText, text);
console.warn('OpenAI request failed', result.statusText, text);
return response.status(500).send(text);
}
@ -308,7 +308,7 @@ custom.post('/generate-voice', jsonParser, async (request, response) => {
const { input, provider_endpoint, response_format, voice, speed, model } = request.body;
if (!provider_endpoint) {
console.error('No OpenAI-compatible TTS provider endpoint provided');
console.warn('No OpenAI-compatible TTS provider endpoint provided');
return response.sendStatus(400);
}
@ -329,7 +329,7 @@ custom.post('/generate-voice', jsonParser, async (request, response) => {
if (!result.ok) {
const text = await result.text();
console.error('OpenAI request failed', result.statusText, text);
console.warn('OpenAI request failed', result.statusText, text);
return response.status(500).send(text);
}

View File

@ -604,7 +604,7 @@ together.post('/models', jsonParser, async (request, response) => {
const key = readSecret(request.user.directories, SECRET_KEYS.TOGETHERAI);
if (!key) {
console.error('TogetherAI key not found.');
console.warn('TogetherAI key not found.');
return response.sendStatus(400);
}
@ -616,14 +616,14 @@ together.post('/models', jsonParser, async (request, response) => {
});
if (!modelsResponse.ok) {
console.error('TogetherAI returned an error.');
console.warn('TogetherAI returned an error.');
return response.sendStatus(500);
}
const data = await modelsResponse.json();
if (!Array.isArray(data)) {
console.error('TogetherAI returned invalid data.');
console.warn('TogetherAI returned invalid data.');
return response.sendStatus(500);
}
@ -643,7 +643,7 @@ together.post('/generate', jsonParser, async (request, response) => {
const key = readSecret(request.user.directories, SECRET_KEYS.TOGETHERAI);
if (!key) {
console.error('TogetherAI key not found.');
console.warn('TogetherAI key not found.');
return response.sendStatus(400);
}
@ -669,7 +669,7 @@ together.post('/generate', jsonParser, async (request, response) => {
});
if (!result.ok) {
console.error('TogetherAI returned an error.', { body: await result.text() });
console.warn('TogetherAI returned an error.', { body: await result.text() });
return response.sendStatus(500);
}
@ -794,14 +794,14 @@ pollinations.post('/models', jsonParser, async (_request, response) => {
const result = await fetch(modelsUrl);
if (!result.ok) {
console.error('Pollinations returned an error.', result.status, result.statusText);
console.warn('Pollinations returned an error.', result.status, result.statusText);
throw new Error('Pollinations request failed.');
}
const data = await result.json();
if (!Array.isArray(data)) {
console.error('Pollinations returned invalid data.');
console.warn('Pollinations returned invalid data.');
throw new Error('Pollinations request failed.');
}
@ -834,7 +834,7 @@ pollinations.post('/generate', jsonParser, async (request, response) => {
const result = await fetch(promptUrl);
if (!result.ok) {
console.error('Pollinations returned an error.', result.status, result.statusText);
console.warn('Pollinations returned an error.', result.status, result.statusText);
throw new Error('Pollinations request failed.');
}
@ -855,7 +855,7 @@ stability.post('/generate', jsonParser, async (request, response) => {
const key = readSecret(request.user.directories, SECRET_KEYS.STABILITY);
if (!key) {
console.error('Stability AI key not found.');
console.warn('Stability AI key not found.');
return response.sendStatus(400);
}
@ -896,7 +896,7 @@ stability.post('/generate', jsonParser, async (request, response) => {
if (!result.ok) {
const text = await result.text();
console.error('Stability AI returned an error.', result.status, result.statusText, text);
console.warn('Stability AI returned an error.', result.status, result.statusText, text);
return response.sendStatus(500);
}
@ -915,7 +915,7 @@ blockentropy.post('/models', jsonParser, async (request, response) => {
const key = readSecret(request.user.directories, SECRET_KEYS.BLOCKENTROPY);
if (!key) {
console.error('Block Entropy key not found.');
console.warn('Block Entropy key not found.');
return response.sendStatus(400);
}
@ -927,14 +927,14 @@ blockentropy.post('/models', jsonParser, async (request, response) => {
});
if (!modelsResponse.ok) {
console.error('Block Entropy returned an error.');
console.warn('Block Entropy returned an error.');
return response.sendStatus(500);
}
const data = await modelsResponse.json();
if (!Array.isArray(data)) {
console.error('Block Entropy returned invalid data.');
console.warn('Block Entropy returned invalid data.');
return response.sendStatus(500);
}
const models = data.map(x => ({ value: x.name, text: x.name }));
@ -951,7 +951,7 @@ blockentropy.post('/generate', jsonParser, async (request, response) => {
const key = readSecret(request.user.directories, SECRET_KEYS.BLOCKENTROPY);
if (!key) {
console.error('Block Entropy key not found.');
console.warn('Block Entropy key not found.');
return response.sendStatus(400);
}
@ -976,7 +976,7 @@ blockentropy.post('/generate', jsonParser, async (request, response) => {
});
if (!result.ok) {
console.error('Block Entropy returned an error.');
console.warn('Block Entropy returned an error.');
return response.sendStatus(500);
}
@ -998,7 +998,7 @@ huggingface.post('/generate', jsonParser, async (request, response) => {
const key = readSecret(request.user.directories, SECRET_KEYS.HUGGINGFACE);
if (!key) {
console.error('Hugging Face key not found.');
console.warn('Hugging Face key not found.');
return response.sendStatus(400);
}
@ -1016,7 +1016,7 @@ huggingface.post('/generate', jsonParser, async (request, response) => {
});
if (!result.ok) {
console.error('Hugging Face returned an error.');
console.warn('Hugging Face returned an error.');
return response.sendStatus(500);
}
@ -1037,7 +1037,7 @@ nanogpt.post('/models', jsonParser, async (request, response) => {
const key = readSecret(request.user.directories, SECRET_KEYS.NANOGPT);
if (!key) {
console.error('NanoGPT key not found.');
console.warn('NanoGPT key not found.');
return response.sendStatus(400);
}
@ -1050,7 +1050,7 @@ nanogpt.post('/models', jsonParser, async (request, response) => {
});
if (!modelsResponse.ok) {
console.error('NanoGPT returned an error.');
console.warn('NanoGPT returned an error.');
return response.sendStatus(500);
}
@ -1059,7 +1059,7 @@ nanogpt.post('/models', jsonParser, async (request, response) => {
const imageModels = data?.models?.image;
if (!imageModels || typeof imageModels !== 'object') {
console.error('NanoGPT returned invalid data.');
console.warn('NanoGPT returned invalid data.');
return response.sendStatus(500);
}
@ -1077,7 +1077,7 @@ nanogpt.post('/generate', jsonParser, async (request, response) => {
const key = readSecret(request.user.directories, SECRET_KEYS.NANOGPT);
if (!key) {
console.error('NanoGPT key not found.');
console.warn('NanoGPT key not found.');
return response.sendStatus(400);
}
@ -1093,7 +1093,7 @@ nanogpt.post('/generate', jsonParser, async (request, response) => {
});
if (!result.ok) {
console.error('NanoGPT returned an error.');
console.warn('NanoGPT returned an error.');
return response.sendStatus(500);
}
@ -1102,7 +1102,7 @@ nanogpt.post('/generate', jsonParser, async (request, response) => {
const image = data?.data?.[0]?.b64_json;
if (!image) {
console.error('NanoGPT returned invalid data.');
console.warn('NanoGPT returned invalid data.');
return response.sendStatus(500);
}
@ -1121,7 +1121,7 @@ bfl.post('/generate', jsonParser, async (request, response) => {
const key = readSecret(request.user.directories, SECRET_KEYS.BFL);
if (!key) {
console.error('BFL key not found.');
console.warn('BFL key not found.');
return response.sendStatus(400);
}
@ -1185,7 +1185,7 @@ bfl.post('/generate', jsonParser, async (request, response) => {
});
if (!result.ok) {
console.error('BFL returned an error.');
console.warn('BFL returned an error.');
return response.sendStatus(500);
}
@ -1201,7 +1201,7 @@ bfl.post('/generate', jsonParser, async (request, response) => {
if (!statusResult.ok) {
const text = await statusResult.text();
console.error('BFL returned an error.', text);
console.warn('BFL returned an error.', text);
return response.sendStatus(500);
}

View File

@ -988,7 +988,7 @@ router.post('/remote/kobold/count', jsonParser, async function (request, respons
const result = await fetch(url, args);
if (!result.ok) {
console.error(`API returned error: ${result.status} ${result.statusText}`);
console.warn(`API returned error: ${result.status} ${result.statusText}`);
return response.send({ error: true });
}
@ -1052,7 +1052,7 @@ router.post('/remote/textgenerationwebui/encode', jsonParser, async function (re
const result = await fetch(url, args);
if (!result.ok) {
console.error(`API returned error: ${result.status} ${result.statusText}`);
console.warn(`API returned error: ${result.status} ${result.statusText}`);
return response.send({ error: true });
}

View File

@ -46,7 +46,7 @@ router.post('/libre', jsonParser, async (request, response) => {
const url = readSecret(request.user.directories, SECRET_KEYS.LIBRE_URL);
if (!url) {
console.error('LibreTranslate URL is not configured.');
console.warn('LibreTranslate URL is not configured.');
return response.sendStatus(400);
}
@ -85,7 +85,7 @@ router.post('/libre', jsonParser, async (request, response) => {
if (!result.ok) {
const error = await result.text();
console.error('LibreTranslate error: ', result.statusText, error);
console.warn('LibreTranslate error: ', result.statusText, error);
return response.sendStatus(500);
}
@ -116,7 +116,7 @@ router.post('/google', jsonParser, async (request, response) => {
const result = await fetch(requestUrl);
if (!result.ok) {
console.error('Google Translate error: ', result.statusText);
console.warn('Google Translate error: ', result.statusText);
return response.sendStatus(500);
}
@ -173,7 +173,7 @@ router.post('/yandex', jsonParser, async (request, response) => {
if (!result.ok) {
const error = await result.text();
console.error('Yandex error: ', result.statusText, error);
console.warn('Yandex error: ', result.statusText, error);
return response.sendStatus(500);
}
@ -220,7 +220,7 @@ router.post('/lingva', jsonParser, async (request, response) => {
if (!result.ok) {
const error = await result.text();
console.error('Lingva error: ', result.statusText, error);
console.warn('Lingva error: ', result.statusText, error);
}
/** @type {any} */
@ -238,7 +238,7 @@ router.post('/deepl', jsonParser, async (request, response) => {
const key = readSecret(request.user.directories, SECRET_KEYS.DEEPL);
if (!key) {
console.error('DeepL key is not configured.');
console.warn('DeepL key is not configured.');
return response.sendStatus(400);
}
@ -280,7 +280,7 @@ router.post('/deepl', jsonParser, async (request, response) => {
if (!result.ok) {
const error = await result.text();
console.error('DeepL error: ', result.statusText, error);
console.warn('DeepL error: ', result.statusText, error);
return response.sendStatus(500);
}
@ -393,7 +393,7 @@ router.post('/deeplx', jsonParser, async (request, response) => {
if (!result.ok) {
const error = await result.text();
console.error('DeepLX error: ', result.statusText, error);
console.warn('DeepLX error: ', result.statusText, error);
return response.sendStatus(500);
}

View File

@ -53,12 +53,12 @@ router.post('/get', requireAdminMiddleware, jsonParser, async (_request, respons
router.post('/disable', requireAdminMiddleware, jsonParser, async (request, response) => {
try {
if (!request.body.handle) {
console.error('Disable user failed: Missing required fields');
console.warn('Disable user failed: Missing required fields');
return response.status(400).json({ error: 'Missing required fields' });
}
if (request.body.handle === request.user.profile.handle) {
console.error('Disable user failed: Cannot disable yourself');
console.warn('Disable user failed: Cannot disable yourself');
return response.status(400).json({ error: 'Cannot disable yourself' });
}
@ -82,7 +82,7 @@ router.post('/disable', requireAdminMiddleware, jsonParser, async (request, resp
router.post('/enable', requireAdminMiddleware, jsonParser, async (request, response) => {
try {
if (!request.body.handle) {
console.error('Enable user failed: Missing required fields');
console.warn('Enable user failed: Missing required fields');
return response.status(400).json({ error: 'Missing required fields' });
}
@ -106,7 +106,7 @@ router.post('/enable', requireAdminMiddleware, jsonParser, async (request, respo
router.post('/promote', requireAdminMiddleware, jsonParser, async (request, response) => {
try {
if (!request.body.handle) {
console.error('Promote user failed: Missing required fields');
console.warn('Promote user failed: Missing required fields');
return response.status(400).json({ error: 'Missing required fields' });
}
@ -130,12 +130,12 @@ router.post('/promote', requireAdminMiddleware, jsonParser, async (request, resp
router.post('/demote', requireAdminMiddleware, jsonParser, async (request, response) => {
try {
if (!request.body.handle) {
console.error('Demote user failed: Missing required fields');
console.warn('Demote user failed: Missing required fields');
return response.status(400).json({ error: 'Missing required fields' });
}
if (request.body.handle === request.user.profile.handle) {
console.error('Demote user failed: Cannot demote yourself');
console.warn('Demote user failed: Cannot demote yourself');
return response.status(400).json({ error: 'Cannot demote yourself' });
}
@ -159,7 +159,7 @@ router.post('/demote', requireAdminMiddleware, jsonParser, async (request, respo
router.post('/create', requireAdminMiddleware, jsonParser, async (request, response) => {
try {
if (!request.body.handle || !request.body.name) {
console.error('Create user failed: Missing required fields');
console.warn('Create user failed: Missing required fields');
return response.status(400).json({ error: 'Missing required fields' });
}
@ -167,12 +167,12 @@ router.post('/create', requireAdminMiddleware, jsonParser, async (request, respo
const handle = lodash.kebabCase(String(request.body.handle).toLowerCase().trim());
if (!handle) {
console.error('Create user failed: Invalid handle');
console.warn('Create user failed: Invalid handle');
return response.status(400).json({ error: 'Invalid handle' });
}
if (handles.some(x => x === handle)) {
console.error('Create user failed: User with that handle already exists');
console.warn('Create user failed: User with that handle already exists');
return response.status(409).json({ error: 'User already exists' });
}
@ -206,17 +206,17 @@ router.post('/create', requireAdminMiddleware, jsonParser, async (request, respo
router.post('/delete', requireAdminMiddleware, jsonParser, async (request, response) => {
try {
if (!request.body.handle) {
console.error('Delete user failed: Missing required fields');
console.warn('Delete user failed: Missing required fields');
return response.status(400).json({ error: 'Missing required fields' });
}
if (request.body.handle === request.user.profile.handle) {
console.error('Delete user failed: Cannot delete yourself');
console.warn('Delete user failed: Cannot delete yourself');
return response.status(400).json({ error: 'Cannot delete yourself' });
}
if (request.body.handle === DEFAULT_USER.handle) {
console.error('Delete user failed: Cannot delete default user');
console.warn('Delete user failed: Cannot delete default user');
return response.status(400).json({ error: 'Sorry, but the default user cannot be deleted. It is required as a fallback.' });
}
@ -238,7 +238,7 @@ router.post('/delete', requireAdminMiddleware, jsonParser, async (request, respo
router.post('/slugify', requireAdminMiddleware, jsonParser, async (request, response) => {
try {
if (!request.body.text) {
console.error('Slugify failed: Missing required fields');
console.warn('Slugify failed: Missing required fields');
return response.status(400).json({ error: 'Missing required fields' });
}

View File

@ -58,7 +58,7 @@ router.get('/me', async (request, response) => {
router.post('/change-avatar', jsonParser, async (request, response) => {
try {
if (!request.body.handle) {
console.error('Change avatar failed: Missing required fields');
console.warn('Change avatar failed: Missing required fields');
return response.status(400).json({ error: 'Missing required fields' });
}
@ -69,7 +69,7 @@ router.post('/change-avatar', jsonParser, async (request, response) => {
// Avatar is not a data URL or not an empty string
if (!request.body.avatar.startsWith('data:image/') && request.body.avatar !== '') {
console.error('Change avatar failed: Invalid data URL');
console.warn('Change avatar failed: Invalid data URL');
return response.status(400).json({ error: 'Invalid data URL' });
}
@ -93,7 +93,7 @@ router.post('/change-avatar', jsonParser, async (request, response) => {
router.post('/change-password', jsonParser, async (request, response) => {
try {
if (!request.body.handle) {
console.error('Change password failed: Missing required fields');
console.warn('Change password failed: Missing required fields');
return response.status(400).json({ error: 'Missing required fields' });
}
@ -142,7 +142,7 @@ router.post('/backup', jsonParser, async (request, response) => {
const handle = request.body.handle;
if (!handle) {
console.error('Backup failed: Missing required fields');
console.warn('Backup failed: Missing required fields');
return response.status(400).json({ error: 'Missing required fields' });
}
@ -163,7 +163,7 @@ router.post('/reset-settings', jsonParser, async (request, response) => {
const password = request.body.password;
if (request.user.profile.password && request.user.profile.password !== getPasswordHash(password, request.user.profile.salt)) {
console.error('Reset settings failed: Incorrect password');
console.warn('Reset settings failed: Incorrect password');
return response.status(403).json({ error: 'Incorrect password' });
}
@ -181,7 +181,7 @@ router.post('/reset-settings', jsonParser, async (request, response) => {
router.post('/change-name', jsonParser, async (request, response) => {
try {
if (!request.body.name || !request.body.handle) {
console.error('Change name failed: Missing required fields');
console.warn('Change name failed: Missing required fields');
return response.status(400).json({ error: 'Missing required fields' });
}
@ -194,7 +194,7 @@ router.post('/change-name', jsonParser, async (request, response) => {
const user = await storage.getItem(toKey(request.body.handle));
if (!user) {
console.error('Change name failed: User not found');
console.warn('Change name failed: User not found');
return response.status(404).json({ error: 'User not found' });
}
@ -225,19 +225,19 @@ router.post('/reset-step1', jsonParser, async (request, response) => {
router.post('/reset-step2', jsonParser, async (request, response) => {
try {
if (!request.body.code) {
console.error('Recover step 2 failed: Missing required fields');
console.warn('Recover step 2 failed: Missing required fields');
return response.status(400).json({ error: 'Missing required fields' });
}
if (request.user.profile.password && request.user.profile.password !== getPasswordHash(request.body.password, request.user.profile.salt)) {
console.error('Recover step 2 failed: Incorrect password');
console.warn('Recover step 2 failed: Incorrect password');
return response.status(400).json({ error: 'Incorrect password' });
}
const code = RESET_CACHE.get(request.user.profile.handle);
if (!code || code !== request.body.code) {
console.error('Recover step 2 failed: Incorrect code');
console.warn('Recover step 2 failed: Incorrect code');
return response.status(400).json({ error: 'Incorrect code' });
}

View File

@ -56,7 +56,7 @@ router.post('/list', async (_request, response) => {
router.post('/login', jsonParser, async (request, response) => {
try {
if (!request.body.handle) {
console.error('Login failed: Missing required fields');
console.warn('Login failed: Missing required fields');
return response.status(400).json({ error: 'Missing required fields' });
}
@ -72,12 +72,12 @@ router.post('/login', jsonParser, async (request, response) => {
}
if (!user.enabled) {
console.error('Login failed: User', user.handle, 'is disabled');
console.warn('Login failed: User', user.handle, 'is disabled');
return response.status(403).json({ error: 'User is disabled' });
}
if (user.password && user.password !== getPasswordHash(request.body.password, user.salt)) {
console.error('Login failed: Incorrect password for', user.handle);
console.warn('Login failed: Incorrect password for', user.handle);
return response.status(403).json({ error: 'Incorrect credentials' });
}
@ -104,7 +104,7 @@ router.post('/login', jsonParser, async (request, response) => {
router.post('/recover-step1', jsonParser, async (request, response) => {
try {
if (!request.body.handle) {
console.error('Recover step 1 failed: Missing required fields');
console.warn('Recover step 1 failed: Missing required fields');
return response.status(400).json({ error: 'Missing required fields' });
}
@ -144,7 +144,7 @@ router.post('/recover-step1', jsonParser, async (request, response) => {
router.post('/recover-step2', jsonParser, async (request, response) => {
try {
if (!request.body.handle || !request.body.code) {
console.error('Recover step 2 failed: Missing required fields');
console.warn('Recover step 2 failed: Missing required fields');
return response.status(400).json({ error: 'Missing required fields' });
}
@ -158,7 +158,7 @@ router.post('/recover-step2', jsonParser, async (request, response) => {
}
if (!user.enabled) {
console.error('Recover step 2 failed: User', user.handle, 'is disabled');
console.warn('Recover step 2 failed: User', user.handle, 'is disabled');
return response.status(403).json({ error: 'User is disabled' });
}
@ -166,7 +166,7 @@ router.post('/recover-step2', jsonParser, async (request, response) => {
if (request.body.code !== mfaCode) {
await recoverLimiter.consume(ip);
console.error('Recover step 2 failed: Incorrect code');
console.warn('Recover step 2 failed: Incorrect code');
return response.status(403).json({ error: 'Incorrect code' });
}