async/await
This commit is contained in:
parent
6f6f3c8481
commit
06f665b220
@ -5,19 +5,18 @@ export let admins = [];
|
||||
export const loadAdmins = async () => {
|
||||
const db = await sql;
|
||||
admins = [];
|
||||
db.query(`select * from user`)
|
||||
.then(rows => rows.forEach(row => {
|
||||
admins.push({
|
||||
id: row.id,
|
||||
prefix: row.prefix,
|
||||
account: row.account,
|
||||
network: row.network,
|
||||
level: row.level
|
||||
});
|
||||
}))
|
||||
.catch(err => {
|
||||
console.log("keine Admins vorhanden", err);
|
||||
});
|
||||
try {
|
||||
const rows = await db.query("select id, prefix, account, level, network from user");
|
||||
rows.forEach(row => admins.push({
|
||||
id: row.id,
|
||||
prefix: row.prefix,
|
||||
account: row.account,
|
||||
network: row.network,
|
||||
level: row.level
|
||||
}));
|
||||
} catch(err) {
|
||||
console.log("keine Admins vorhanden", err);
|
||||
}
|
||||
};
|
||||
|
||||
(async () => {
|
||||
|
@ -10,11 +10,9 @@ router.get(/^\/api$/, (req, res) => {
|
||||
|
||||
router.get(/^\/api\/random(\/user\/.+|\/image|\/video|\/audio)?$/, async (req, res) => {
|
||||
const db = await sql;
|
||||
const args = [];
|
||||
let q = queries.random.main;
|
||||
let args = [];
|
||||
|
||||
res.writeHead(200, { 'Content-Type': 'text/html' });
|
||||
|
||||
if(req.url.split[2] === "user") {
|
||||
q += queries.random.where("username like ?");
|
||||
args.push(req.url.split[3] || "flummi");
|
||||
@ -22,59 +20,76 @@ router.get(/^\/api\/random(\/user\/.+|\/image|\/video|\/audio)?$/, async (req, r
|
||||
else
|
||||
q += queries.random.where(mimes[req.url.split[2]] ? mimes[req.url.split[2]].map(mime => `mime = "${mime}"`).join(" or ") : null);
|
||||
|
||||
db.query(q, args)
|
||||
.then(rows => {
|
||||
res.end(JSON.stringify(rows.length > 0 ? rows[0] : []), 'utf-8');
|
||||
}).catch(err => res.end(JSON.stringify( err ), 'utf-8'));
|
||||
try {
|
||||
const rows = await db.query(q, args);
|
||||
res
|
||||
.writeHead(200, { 'Content-Type': 'application/json' })
|
||||
.end(JSON.stringify(rows.length > 0 ? rows[0] : []), 'utf-8');
|
||||
} catch(err) {
|
||||
res
|
||||
.writeHead(500)
|
||||
.end(JSON.stringify(err), 'utf-8');
|
||||
}
|
||||
});
|
||||
|
||||
//router.get(/^\/api\/p(\/[0-9]+|\/)?(\/[0-9]+)?$/, async (req, res) => {
|
||||
router.get(/^\/api\/p$/, async (req, res) => {
|
||||
const db = await sql;
|
||||
const id = parseInt(req.url.qs.id) || 99999999;
|
||||
const eps = Math.min(parseInt(req.url.qs.eps) || 100, 200);
|
||||
db.query("select * from f0ck.items where id < ? order by id desc limit ?", [id, eps])
|
||||
.then(rows => {
|
||||
let items = {
|
||||
"items": [],
|
||||
"last": id
|
||||
};
|
||||
rows.forEach(e => {
|
||||
items.items.push({
|
||||
"id": e.id,
|
||||
"mime": e.mime
|
||||
});
|
||||
items.last = e.id;
|
||||
});
|
||||
res.writeHead(200, { 'Content-Type': 'text/html' });
|
||||
res.end(JSON.stringify(items), 'utf-8');
|
||||
}).catch(err => res.end(JSON.stringify( err ), 'utf-8'));
|
||||
const [ 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 items = {
|
||||
items: rows,
|
||||
first: rows[0].id,
|
||||
last: rows[rows.length - 1].id
|
||||
};
|
||||
res
|
||||
.writeHead(200, { 'Content-Type': 'application/json' })
|
||||
.end(JSON.stringify(items), 'utf-8');
|
||||
} catch(err) {
|
||||
res
|
||||
.writeHead(500)
|
||||
.end(JSON.stringify(err), 'utf-8');
|
||||
}
|
||||
});
|
||||
|
||||
router.get(/^\/api\/item\/[0-9]+$/, async (req, res) => {
|
||||
const db = await sql;
|
||||
db.query(queries.item, Array(3).fill(req.url.split[2]))
|
||||
.then(rows => {
|
||||
const data = rows[0].length > 0 ? {
|
||||
...rows[0][0], ...{
|
||||
thumb: `${cfg.main.url}/t/${rows[0][0].id}.png`,
|
||||
next: rows[1].length ? rows[1][0].id : null,
|
||||
prev: rows[2].length ? rows[2][0].id : null,
|
||||
}
|
||||
} : {
|
||||
error: true
|
||||
};
|
||||
res.writeHead(200, { 'Content-Type': 'text/html' });
|
||||
res.end(JSON.stringify(data), 'utf-8');
|
||||
}).catch(err => res.end(JSON.stringify( err ), 'utf-8'));
|
||||
try {
|
||||
const rows = await db.query(queries.item, Array(3).fill(req.url.split[2]));
|
||||
const data = rows[0].length > 0 ? {
|
||||
...rows[0][0], ...{
|
||||
thumb: `${cfg.main.url}/t/${rows[0][0].id}.png`,
|
||||
next: rows[1].length ? rows[1][0].id : null,
|
||||
prev: rows[2].length ? rows[2][0].id : null,
|
||||
}
|
||||
} : {
|
||||
error: true
|
||||
};
|
||||
res
|
||||
.writeHead(200, { 'Content-Type': 'application/json' })
|
||||
.end(JSON.stringify(data), 'utf-8');
|
||||
} catch(err) {
|
||||
res
|
||||
.writeHead(500)
|
||||
.end(JSON.stringify(err), 'utf-8');
|
||||
}
|
||||
});
|
||||
|
||||
router.get(/^\/api\/user\/.*(\/[0-9]+)?$/, async (req, res) => {
|
||||
router.get(/^\/api\/user\/.*(\/[0-9]+)?$/, async (req, res) => { // auf qs umstellen
|
||||
const db = await sql;
|
||||
const user = req.url.split[2];
|
||||
const eps = Math.min(req.url.split[3] || 50, 50);
|
||||
db.query(queries.user, [ user, eps ])
|
||||
.then(rows => {
|
||||
res.end(JSON.stringify(rows.length > 0 ? rows : []), 'utf-8');
|
||||
}).catch(err => res.end(JSON.stringify( err ), 'utf-8'));
|
||||
try {
|
||||
const rows = await db.query(queries.user, [ user, eps ]);
|
||||
res
|
||||
.writeHead(200, { 'Content-Type': 'application/json' })
|
||||
.end(JSON.stringify(rows.length > 0 ? rows : []), 'utf-8');
|
||||
} catch(err) {
|
||||
res
|
||||
.writeHead(500)
|
||||
.end(JSON.stringify(err), 'utf-8');
|
||||
}
|
||||
});
|
||||
|
@ -9,14 +9,16 @@ const template = fs.readFileSync("./views/index.hbs", "utf-8");
|
||||
|
||||
router.get(/^\/$/, async (req, res) => {
|
||||
const db = await sql;
|
||||
res.writeHead(200, { 'Content-Type': 'text/html' });
|
||||
|
||||
db.query(queries.items)
|
||||
.then(items => {
|
||||
const tpl = handlebars.compile(template);
|
||||
res.end(tpl({ items: items, debug: JSON.stringify(req.url, null, 2) }));
|
||||
}).catch(err => res.end(JSON.stringify( err ), 'utf-8'));
|
||||
|
||||
/*const tpl = handlebars.compile(template);
|
||||
res.end(tpl());*/
|
||||
try {
|
||||
const rows = await db.query(queries.items);
|
||||
const tpl = handlebars.compile(template);
|
||||
res
|
||||
.writeHead(200, { 'Content-Type': 'text/html' })
|
||||
.end(tpl({ items: rows, debug: JSON.stringify(req.url, null, 2) }));
|
||||
} catch(err) {
|
||||
res
|
||||
.writeHead(500)
|
||||
.end(JSON.stringify(err), 'utf-8');
|
||||
}
|
||||
});
|
||||
|
@ -16,5 +16,5 @@ http.createServer((req, res, r) => {
|
||||
|
||||
console.log(`[${(new Date()).toLocaleTimeString()}] ${req.method} ${req.url.pathname}`);
|
||||
|
||||
!(r = routes.getRegex(req.url.pathname, req.method)) ? res.end(`404 - ${req.url.pathname}`) : r(req, res);
|
||||
!(r = routes.getRegex(req.url.pathname, req.method)) ? res.writeHead(404).end(`404 - ${req.url.pathname}`) : r(req, res);
|
||||
}).listen(cfg.websrv.port, () => console.log(`f0ck is listening on port ${cfg.websrv.port}.`));
|
||||
|
Loading…
Reference in New Issue
Block a user