mirror of
https://git.waldn.net/git/knotteye/satyr.git
synced 2025-12-09 08:02:17 +00:00
Add API function for getting a user's configuration.
This commit is contained in:
19
src/api.ts
19
src/api.ts
@@ -69,4 +69,21 @@ async function deleteVODs(vodlist: Array<string>, username: string): Promise<obj
|
||||
return {"success":""};
|
||||
}
|
||||
|
||||
export { register, update, changepwd, changesk, login, updateChat, deleteVODs };
|
||||
async function getConfig(username: string, all?: boolean): Promise<object>{
|
||||
let t = {username: username};
|
||||
if(all) {
|
||||
let users = await db.query('SELECT stream_key,record_flag FROM users WHERE username='+db.raw.escape(username));
|
||||
if(users[0]) Object.assign(t, users[0]);
|
||||
let usermeta = await db.query('SELECT title,about FROM user_meta WHERE username='+db.raw.escape(username));
|
||||
if(usermeta[0]) Object.assign(t, users[0]);
|
||||
let ci = await db.query('SELECT irc,xmpp,twitch,discord FROM chat_integration WHERE username='+db.raw.escape(username));
|
||||
if(ci[0]) Object.assign(t, ci[0]);
|
||||
}
|
||||
else {
|
||||
let um = await db.query('SELECT title,about FROM user_meta WHERE username='+db.raw.escape(username));
|
||||
if(um[0]) Object.assign(t, um[0]);
|
||||
}
|
||||
return t;
|
||||
}
|
||||
|
||||
export { register, update, changepwd, changesk, login, updateChat, deleteVODs, getConfig };
|
||||
37
src/http.ts
37
src/http.ts
@@ -168,15 +168,23 @@ async function initAPI() {
|
||||
);
|
||||
});
|
||||
app.get('/api/users/live', (req, res) => {
|
||||
if(req.params.sort) {
|
||||
|
||||
}
|
||||
if(req.params.num){
|
||||
|
||||
}
|
||||
db.query('select username,title from user_meta where live=1 limit 10;').then((result) => {
|
||||
res.send(result);
|
||||
});
|
||||
});
|
||||
app.get('/api/users/live/:num', (req, res) => {
|
||||
if(req.params.num > 50) req.params.num = 50;
|
||||
db.query('select username,title from user_meta where live=1 limit '+req.params.num+';').then((result) => {
|
||||
res.send(result);
|
||||
});
|
||||
app.get('/api/users/all', (req, res) => {
|
||||
if(req.params.sort) {
|
||||
|
||||
}
|
||||
if(req.params.num) {
|
||||
|
||||
}
|
||||
});
|
||||
app.post('/api/register', (req, res) => {
|
||||
api.register(req.body.username, req.body.password, req.body.confirm).then( (result) => {
|
||||
@@ -312,7 +320,7 @@ async function initAPI() {
|
||||
});
|
||||
}
|
||||
});
|
||||
app.get('/api/:user/vods/list', (req, res) => {
|
||||
app.get('/api/:user/vods', (req, res) => {
|
||||
readdir('./site/live/'+req.params.user, {withFileTypes: true} , (err, files) => {
|
||||
if(err) {
|
||||
res.send([]);
|
||||
@@ -322,6 +330,23 @@ async function initAPI() {
|
||||
res.send(list);
|
||||
});
|
||||
});
|
||||
app.get('/api/:user/config', (req, res) => {
|
||||
if(req.cookies.Authorization) validToken(req.cookies.Authorization).then(r => {
|
||||
if(r && r['username'] === req.params.user) {
|
||||
api.getConfig(req.params.user, true).then(re => {
|
||||
res.send(JSON.stringify(re));
|
||||
});
|
||||
return;
|
||||
}
|
||||
api.getConfig(req.params.user).then(re => {
|
||||
res.send(JSON.stringify(re));
|
||||
});
|
||||
return;
|
||||
});
|
||||
api.getConfig(req.params.user).then(r => {
|
||||
res.send(JSON.stringify(r));
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
async function initSite(openReg) {
|
||||
|
||||
Reference in New Issue
Block a user