[new] add txt json download support
This commit is contained in:
@@ -1,26 +1,187 @@
|
||||
module.exports = (app, router, upload) => {
|
||||
const fileWorker = require('../controllers/file.controller.js');
|
||||
const fileWorker = require('../controllers/file.controller.js')
|
||||
|
||||
var path = __basedir + '/views/';
|
||||
var path = __basedir + '/views/'
|
||||
|
||||
const tsp_list = ["ulysses16", "att48", "st70", "a280", "pcb442", "dsj1000"]
|
||||
|
||||
router.use((req,res,next) => {
|
||||
console.log("/" + req.method);
|
||||
next();
|
||||
console.log("/" + req.method)
|
||||
next()
|
||||
});
|
||||
|
||||
app.get('/', (req,res) => {
|
||||
res.sendFile(path + "index.html");
|
||||
res.sendFile(path + "index.html")
|
||||
});
|
||||
|
||||
app.post('/api/files/upload', upload.single("uploadfile"), fileWorker.uploadFile);
|
||||
app.get('/leaderboard', (req, res) => {
|
||||
leaderboard = global.leaderboard
|
||||
if(req.query.type === 'txt') {
|
||||
res.set({"Content-Disposition":"attachment; filename=\"" + tsp_list[req.query.tsp] + ".txt\""})
|
||||
result = "Not Found"
|
||||
switch (parseInt(req.query.tsp)) {
|
||||
case 0:
|
||||
leaderboard.ulysses16.forEach(e => {
|
||||
console.log('leader', e.id)
|
||||
if(e.id == req.query.id) {
|
||||
sentFlag = true
|
||||
result = `${e.fitness}\n${e.solution}`
|
||||
}
|
||||
})
|
||||
res.end(result)
|
||||
break;
|
||||
case 1:
|
||||
leaderboard.att48.forEach(e => {
|
||||
if(e.id == req.query.id) {
|
||||
result = `${e.fitness}\n${e.solution}`
|
||||
}
|
||||
})
|
||||
res.end(result)
|
||||
break;
|
||||
case 2:
|
||||
leaderboard.st70.forEach(e => {
|
||||
if(e.id == req.query.id) {
|
||||
result = `${e.fitness}\n${e.solution}`
|
||||
}
|
||||
})
|
||||
res.end(result)
|
||||
break;
|
||||
case 3:
|
||||
leaderboard.a280.forEach(e => {
|
||||
if(e.id == req.query.id) {
|
||||
result = `${e.fitness}\n${e.solution}`
|
||||
}
|
||||
})
|
||||
res.end(result)
|
||||
break;
|
||||
case 4:
|
||||
leaderboard.pcb442.forEach(e => {
|
||||
if(e.id == req.query.id) {
|
||||
result = `${e.fitness}\n${e.solution}`
|
||||
}
|
||||
})
|
||||
res.end(result)
|
||||
break;
|
||||
case 5:
|
||||
leaderboard.dsj1000.forEach(e => {
|
||||
if(e.id == req.query.id) {
|
||||
result = `${e.fitness}\n${e.solution}`
|
||||
}
|
||||
})
|
||||
res.end(result)
|
||||
default:
|
||||
res.sendStatus(404);
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (req.query.type === 'json') {
|
||||
res.set({"Content-Disposition":"attachment; filename=\"" + tsp_list[req.query.tsp] + ".json\""})
|
||||
// res.header("Content-Type",'application/json');
|
||||
data = {}
|
||||
switch (parseInt(req.query.tsp)) {
|
||||
case 0:
|
||||
data = require('../../data/ulysses16.json')
|
||||
data['edges'] = []
|
||||
leaderboard.ulysses16.forEach(e => {
|
||||
if(e.id == req.query.id) {
|
||||
for (let i = 0; i < e.solution.length; i++) {
|
||||
data['edges'].push({
|
||||
'source': e.solution[i % e.solution.length],
|
||||
'target': e.solution[(i+1) % e.solution.length]
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
break;
|
||||
case 1:
|
||||
data = require('../../data/att48.json')
|
||||
data['edges'] = []
|
||||
leaderboard.att48.forEach(e => {
|
||||
if(e.id == req.query.id) {
|
||||
for (let i = 0; i < e.solution.length; i++) {
|
||||
data['edges'].push({
|
||||
'source': e.solution[i % e.solution.length],
|
||||
'target': e.solution[(i+1) % e.solution.length]
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
break;
|
||||
case 2:
|
||||
data = require('../../data/st70.json')
|
||||
data['edges'] = []
|
||||
leaderboard.st70.forEach(e => {
|
||||
if(e.id == req.query.id) {
|
||||
for (let i = 0; i < e.solution.length; i++) {
|
||||
data['edges'].push({
|
||||
'source': e.solution[i % e.solution.length],
|
||||
'target': e.solution[(i+1) % e.solution.length]
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
break;
|
||||
case 3:
|
||||
data = require('../../data/a280.json')
|
||||
data['edges'] = []
|
||||
leaderboard.a280.forEach(e => {
|
||||
if(e.id == req.query.id) {
|
||||
for (let i = 0; i < e.solution.length; i++) {
|
||||
data['edges'].push({
|
||||
'source': e.solution[i % e.solution.length],
|
||||
'target': e.solution[(i+1) % e.solution.length]
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
break;
|
||||
case 4:
|
||||
data = require('../../data/pcb442.json')
|
||||
data['edges'] = []
|
||||
leaderboard.pcb442.forEach(e => {
|
||||
if(e.id == req.query.id) {
|
||||
for (let i = 0; i < e.solution.length; i++) {
|
||||
data['edges'].push({
|
||||
'source': e.solution[i % e.solution.length],
|
||||
'target': e.solution[(i+1) % e.solution.length]
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
break;
|
||||
case 5:
|
||||
data = require('../../data/dsj1000.json')
|
||||
data['edges'] = []
|
||||
leaderboard.dsj1000.forEach(e => {
|
||||
if(e.id == req.query.id) {
|
||||
for (let i = 0; i < e.solution.length; i++) {
|
||||
data['edges'].push({
|
||||
'source': e.solution[i % e.solution.length],
|
||||
'target': e.solution[(i+1) % e.solution.length]
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
res.end(JSON.stringify(data));
|
||||
}
|
||||
else {
|
||||
res.sendStatus(404);
|
||||
}
|
||||
});
|
||||
|
||||
app.get('/api/files/getall', fileWorker.listAllFiles);
|
||||
app.post('/api/files/upload', upload.single("uploadfile"), fileWorker.uploadFile)
|
||||
|
||||
app.get('/api/files/:filename', fileWorker.downloadFile);
|
||||
app.get('/api/files/getall', fileWorker.listAllFiles)
|
||||
|
||||
app.use('/',router);
|
||||
app.get('/api/files/result', fileWorker.downloadFile)
|
||||
|
||||
app.use('/',router)
|
||||
|
||||
app.use('*', (req,res) => {
|
||||
res.sendFile(path + "404.html");
|
||||
});
|
||||
res.sendFile(path + "404.html")
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user