Spaces:
Sleeping
Sleeping
File size: 1,564 Bytes
12d5b92 |
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 |
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 = 0;
const delayIncrement = 100;
const maxDelay = 5000;
if (fs.existsSync('delay.txt')) {
delay = parseInt(fs.readFileSync('delay.txt', 'utf8'));
}
console.log('File system loaded')
app.post('/translate', async (req, res) => {
console.log('Translate start')
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) {
if (error.response && error.response.status === 429) {
delay += delayIncrement;
if (delay > maxDelay) {
delay = maxDelay;
}
fs.writeFileSync('delay.txt', delay.toString());
console.log(`429 μλ¬ λ°μ. λλ μ΄ μ¦κ°: ${delay}ms`);
}
res.status(500).json({ error: 'Translation failed' });
}
});
app.get('/', (req, res) => {
res.send('μλ²κ° ꡬλλμμ΅λλ€.');
});
app.listen(PORT, () => {
console.log(`Server is running on http://localhost:${PORT}`);
}); |