Backend lol
This commit is contained in:
@@ -9,7 +9,7 @@ router.get(/^\/api$/, (req, res) => {
|
||||
});
|
||||
|
||||
router.get(/^\/api\/random(\/user\/.+|\/image|\/video|\/audio)?$/, async (req, res) => {
|
||||
const db = await sql;
|
||||
const db = await sql.getConnection();
|
||||
const args = [];
|
||||
let q = queries.random.main;
|
||||
|
||||
@@ -30,33 +30,48 @@ router.get(/^\/api\/random(\/user\/.+|\/image|\/video|\/audio)?$/, async (req, r
|
||||
.writeHead(500)
|
||||
.end(JSON.stringify(err), 'utf-8');
|
||||
}
|
||||
db.end();
|
||||
});
|
||||
|
||||
router.get(/^\/api\/p$/, async (req, res) => {
|
||||
const db = await sql;
|
||||
const id = parseInt(req.url.qs.id) || 99999999;
|
||||
const db = await sql.getConnection();
|
||||
let id = parseInt(req.url.qs.id) || 99999999;
|
||||
const eps = Math.min(parseInt(req.url.qs.eps) || 100, 200);
|
||||
const [ order, trend ] = req.url.qs.order === "asc" ? [ "asc", ">" ] : [ "desc", "<" ];
|
||||
let [ order, trend ] = req.url.qs.order === "asc" ? [ "asc", ">" ] : [ "desc", "<" ];
|
||||
|
||||
try {
|
||||
const rows = await db.query(`select id, mime from f0ck.items where id ${trend} ? order by id ${order} limit ?`, [ id, eps ]);
|
||||
const tmp = (await db.query("select min(id) as min, max(id) as max from items limit 1"))[0];
|
||||
if((id - 1 + eps) > tmp.max) {
|
||||
id = tmp.max;
|
||||
[ order, trend ] = [ "desc", "<=" ];
|
||||
}
|
||||
if((id + 1 - eps) < tmp.min) {
|
||||
id = tmp.min;
|
||||
[ order, trend ] = [ "asc", ">=" ];
|
||||
}
|
||||
|
||||
const rows = await db.query(queries.p(trend, order), [ id, eps ]);
|
||||
const items = {
|
||||
items: rows,
|
||||
first: rows[0].id,
|
||||
last: rows[rows.length - 1].id
|
||||
last: rows[rows.length - 1].id,
|
||||
newest: tmp.max,
|
||||
oldest: tmp.min
|
||||
};
|
||||
res
|
||||
.writeHead(200, { 'Content-Type': 'application/json' })
|
||||
.end(JSON.stringify(items), 'utf-8');
|
||||
} catch(err) {
|
||||
console.error(err);
|
||||
res
|
||||
.writeHead(500)
|
||||
.end(JSON.stringify(err), 'utf-8');
|
||||
}
|
||||
db.end();
|
||||
});
|
||||
|
||||
router.get(/^\/api\/item\/[0-9]+$/, async (req, res) => {
|
||||
const db = await sql;
|
||||
const db = await sql.getConnection();
|
||||
try {
|
||||
const rows = await db.query(queries.item, Array(3).fill(req.url.split[2]));
|
||||
const data = rows[0].length > 0 ? {
|
||||
@@ -76,10 +91,11 @@ router.get(/^\/api\/item\/[0-9]+$/, async (req, res) => {
|
||||
.writeHead(500)
|
||||
.end(JSON.stringify(err), 'utf-8');
|
||||
}
|
||||
db.end();
|
||||
});
|
||||
|
||||
router.get(/^\/api\/user\/.*(\/[0-9]+)?$/, async (req, res) => { // auf qs umstellen
|
||||
const db = await sql;
|
||||
const db = await sql.getConnection();
|
||||
const user = req.url.split[2];
|
||||
const eps = Math.min(req.url.split[3] || 50, 50);
|
||||
try {
|
||||
@@ -92,4 +108,5 @@ router.get(/^\/api\/user\/.*(\/[0-9]+)?$/, async (req, res) => { // auf qs umste
|
||||
.writeHead(500)
|
||||
.end(JSON.stringify(err), 'utf-8');
|
||||
}
|
||||
db.end();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user