From 89db7d7ac18a38cc528453c49069083e7078fcc2 Mon Sep 17 00:00:00 2001 From: GabrielxD Date: Thu, 27 Nov 2025 16:40:00 +0800 Subject: [PATCH] fix(shiro/ps): prevent ps update from crashing when process payload missing --- shiro/functions/ps.ts | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/shiro/functions/ps.ts b/shiro/functions/ps.ts index ad7d559..0add23d 100644 --- a/shiro/functions/ps.ts +++ b/shiro/functions/ps.ts @@ -57,23 +57,25 @@ async function POST(ctx: Context) { const ts = +new Date() - const psInfo = ctx.req.body.process as Process - const mediaInfo = ctx.req.body.media as Media + const psInfo = ctx.req.body?.process as Process + const mediaInfo = ctx.req.body?.media as Media - if (psInfo?.name !== cachedProcessInfo?.name) - ctx?.broadcast?.('ps-update', { - processInfo: psInfo, - process: psInfo.name, - ts, - }) + if (psInfo || mediaInfo) { + if (psInfo?.name !== cachedProcessInfo?.name) + ctx?.broadcast?.('ps-update', { + processInfo: psInfo, + process: psInfo?.name, + ts, + }) - if (cachedMediaInfo?.title !== mediaInfo?.title) - ctx?.broadcast?.('media-update', mediaInfo || null) + if (cachedMediaInfo?.title !== mediaInfo?.title) + ctx?.broadcast?.('media-update', mediaInfo || null) - if (mediaInfo) { - await ctx.storage.cache.set('media', mediaInfo, 10) + if (mediaInfo) { + await ctx.storage.cache.set('media', mediaInfo, 10) + } + await ctx.storage.cache.set('ps', psInfo, 300) } - await ctx.storage.cache.set('ps', psInfo, 300) return { ok: 1,