Spaces:
Sleeping
Sleeping
File size: 2,105 Bytes
ed43e92 c791e2a ed43e92 c791e2a ed43e92 12d5b92 e01be37 284ae3c ed43e92 284ae3c e01be37 284ae3c 12d5b92 ed43e92 12d5b92 00cafc8 ed43e92 12d5b92 00cafc8 12d5b92 ed43e92 12d5b92 ed43e92 12d5b92 ed43e92 12d5b92 00cafc8 c791e2a ed43e92 c791e2a ed43e92 12d5b92 00cafc8 12d5b92 ed43e92 12d5b92 ed43e92 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
const express = require('express');
const bodyParser = require('body-parser');
const { translate } = require('./translate');
const cors = require('cors');
const fs = require('fs');
const app = express();
const PORT = 7860;
app.use(cors({ origin: '*' }));
app.use(bodyParser.json());
let delay = 1500;
const delayIncrement = 100;
const maxDelay = 5000;
let currentTranslations = 0;
function delayFileTermination(delay) {
if (fs.existsSync('delay.txt')) {
delay = parseInt(fs.readFileSync('delay.txt', 'utf8'));
} else {
fs.writeFile('delay.txt', `delay:${delay}`, function (err) {
if (err === null) {
console.log('success');
} else {
console.log('fail');
}
});
}
}
console.log('File system loaded');
app.post('/translate', async (req, res) => {
console.log('Translate start');
currentTranslations++;
const { text, source_lang, target_lang } = req.body;
try {
await new Promise((resolve) => setTimeout(resolve, delay));
const result = await translate(text, source_lang, target_lang);
const responseData = {
alternatives: result.alternatives,
code: 200,
data: result.text,
id: Math.floor(Math.random() * 10000000000),
method: 'Free',
source_lang,
target_lang,
};
res.json(responseData);
} catch (error) {
console.error(`Translation failed: ${error}`);
res.status(500).json({ error: 'Translation failed' });
delay += delayIncrement;
if (delay > maxDelay) {
delay = maxDelay;
}
delayFileTermination(delay);
console.log(`νμ¬ Delay νμ: ${delay}ms`);
} finally {
currentTranslations--;
}
});
app.get('/', (req, res) => {
const delayMessage = fs.existsSync('delay.txt')
? fs.readFileSync('delay.txt', 'utf8')
: '0';
const statusMessage = `μλ²κ° ꡬλλμμ΅λλ€. νμ¬ λλ μ΄ μκ°μ ${delay}msμ΄λ©°, νμ¬ μ²λ¦¬ μ€μΈ λ²μ μμ² μλ ${currentTranslations}건μ
λλ€.`;
res.send(statusMessage);
});
app.listen(PORT, () => {
console.log(`Server is running on http://localhost:${PORT}`);
}); |