From 630e9c8af974ee9834130dc175ea96154bb92df2 Mon Sep 17 00:00:00 2001 From: inmake Date: Mon, 24 Mar 2025 13:57:36 +0500 Subject: [PATCH] upd --- src/index.ts | 51 +++++++++++++++++++++++++++++++++------------------ 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/src/index.ts b/src/index.ts index 035fc19..dc223e4 100644 --- a/src/index.ts +++ b/src/index.ts @@ -16,7 +16,7 @@ type Session = typeof sessionsTable.$inferSelect & { client: { name: string; phone: string; - email?: string; + email: string | null; }; }; @@ -95,28 +95,24 @@ async function addApps() { json, }) .json(); - - console.log("Apps added"); } catch (error) { - // if (error instanceof HTTPError) { - // console.error("Error sending installed apps:", error.response.body); - // } else { - // console.error((error as Error).message); - // } + // console.error("Error adding apps", error); } } try { await addApps(); + console.log("Apps added"); } catch (error) { - console.log(error); + // console.error("Error adding apps", error); } async function getSessions() { - const session = await db.query.sessionsTable.findFirst({ + return await db.query.sessionsTable.findFirst({ where: and( eq(sessionsTable.serverId, serverInfo!.id), or( + eq(sessionsTable.status, "started"), eq(sessionsTable.status, "starting"), eq(sessionsTable.status, "ending") ) @@ -137,8 +133,6 @@ async function getSessions() { }, orderBy: desc(sessionsTable.createdAt), }); - - return session; } async function startSession(session: Session) { @@ -179,14 +173,35 @@ async function endSession(session: Session) { } async function scheduleSession() { - const session = await getSessions(); + try { + const session = await getSessions(); - if (!session) return; + if (!session) return; - if (session.status === "starting") { - startSession(session); - } else if (session.status === "ending") { - endSession(session); + if (session.status === "starting") { + startSession(session); + } else if (session.status === "ending") { + endSession(session); + } else if (session.status === "started") { + const result = exec( + `pwsh -c "Get-Process -Name ${session.app.fileName}"` + ); + + result.stderr?.on("data", async (data) => { + console.log(data.toString()); + + try { + await db + .update(sessionsTable) + .set({ status: "ended" }) + .where(eq(sessionsTable.id, session.id)); + } catch (error) { + console.error("Error ending session", error); + } + }); + } + } catch (error) { + console.error("Error scheduling session", error); } }