1 files changed, 18 insertions, 0 deletions
diff --git a/src/gateway/util/SessionUtils.ts b/src/gateway/util/SessionUtils.ts
index 843341cc..f84304c6 100644
--- a/src/gateway/util/SessionUtils.ts
+++ b/src/gateway/util/SessionUtils.ts
@@ -16,6 +16,8 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+import { getDatabase, Member, Session } from "@spacebar/util";
+
export function genSessionId() {
return genRanHex(32);
}
@@ -27,3 +29,19 @@ export function genVoiceToken() {
function genRanHex(size: number) {
return [...Array(size)].map(() => Math.floor(Math.random() * 16).toString(16)).join("");
}
+
+export function getMostRelevantSession(sessions: Session[]) {
+ const statusMap = {
+ online: 0,
+ idle: 1,
+ dnd: 2,
+ invisible: 3,
+ offline: 4,
+ };
+ // sort sessions by relevance
+ sessions = sessions.sort((a, b) => {
+ return statusMap[a.status] - statusMap[b.status] + ((a.activities?.length ?? 0) - (b.activities?.length ?? 0)) * 2;
+ });
+
+ return sessions[0];
+}
|