From 1b551a5b8f06d8c7ecb85401878360b8c9544aaf Mon Sep 17 00:00:00 2001 From: knotteye Date: Fri, 15 Jan 2021 10:56:32 -0600 Subject: [PATCH] Increment and reset viewer count when appropriate --- src/cleanup.ts | 3 ++- src/server.ts | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/cleanup.ts b/src/cleanup.ts index 17e134e..6ae774f 100644 --- a/src/cleanup.ts +++ b/src/cleanup.ts @@ -27,7 +27,8 @@ async function init() { //If satyr is restarted in the middle of a stream //it causes problems //Live flags in the database stay live - await db.query('update user_meta set live=false'); + await db.query('update user_meta set live=false'); + await db.query('update user_meta set viewers=0'); } async function bringUpToDate(): Promise{ diff --git a/src/server.ts b/src/server.ts index 1546a86..c86c097 100644 --- a/src/server.ts +++ b/src/server.ts @@ -93,6 +93,8 @@ function init () { db.query('update user_meta,users set user_meta.live=false where users.stream_key='+db.raw.escape(key)); db.query('select username from users where stream_key='+db.raw.escape(key)+' limit 1').then(async (results) => { if(results[0]) keystore.rm(results[0].username); + // reset viewer count when finished with stream + db.query('update user_meta set viewers = 0 where username='+db.raw.escape(results[0].username)); }); } @@ -119,6 +121,8 @@ function init () { if(app === config['media']['publicEndpoint']) { if(keystore[key]){ session.playStreamPath = '/'+config['media']['privateEndpoint']+'/'+keystore[key]; + // increment viewer count + db.query('update user_meta set viewers = viewers + 1 where username='+db.raw.escape(key)); return true; } }