Spaces:
Sleeping
Sleeping
| 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}`); | |
| }); |