From 012a3beb5e2ddfe689b853950fad2de50f69a4c4 Mon Sep 17 00:00:00 2001 From: mtvpls Date: Thu, 25 Dec 2025 00:00:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3getAllUsers()=E4=B8=8D?= =?UTF-8?q?=E5=8C=85=E5=90=AB=E7=AB=99=E9=95=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/api/debug/watch-room-config/route.ts | 57 -------------------- src/lib/redis-base.db.ts | 10 +++- src/lib/upstash.db.ts | 10 +++- 3 files changed, 18 insertions(+), 59 deletions(-) delete mode 100644 src/app/api/debug/watch-room-config/route.ts diff --git a/src/app/api/debug/watch-room-config/route.ts b/src/app/api/debug/watch-room-config/route.ts deleted file mode 100644 index d21f201..0000000 --- a/src/app/api/debug/watch-room-config/route.ts +++ /dev/null @@ -1,57 +0,0 @@ -/* eslint-disable no-console */ - -import { NextRequest, NextResponse } from 'next/server'; - -import { getConfig } from '@/lib/config'; - -export const runtime = 'nodejs'; - -export async function GET(request: NextRequest) { - try { - const storageType = process.env.NEXT_PUBLIC_STORAGE_TYPE || 'localstorage'; - - // 调试信息 - const debugInfo = { - storageType, - envVars: { - hasRedisUrl: !!process.env.REDIS_URL, - hasUpstashUrl: !!process.env.UPSTASH_REDIS_REST_URL, - hasUpstashToken: !!process.env.UPSTASH_REDIS_REST_TOKEN, - hasKvrocksUrl: !!process.env.KVROCKS_URL, - watchRoomEnabled: process.env.WATCH_ROOM_ENABLED, - watchRoomServerType: process.env.WATCH_ROOM_SERVER_TYPE, - hasWatchRoomExternalUrl: !!process.env.WATCH_ROOM_EXTERNAL_SERVER_URL, - hasWatchRoomExternalAuth: !!process.env.WATCH_ROOM_EXTERNAL_SERVER_AUTH, - }, - watchRoomConfig: { - enabled: process.env.WATCH_ROOM_ENABLED === 'true', - serverType: process.env.WATCH_ROOM_SERVER_TYPE || 'internal', - externalServerUrl: process.env.WATCH_ROOM_EXTERNAL_SERVER_URL, - externalServerAuth: process.env.WATCH_ROOM_EXTERNAL_SERVER_AUTH ? '***' : undefined, - }, - configReadError: null as string | null, - }; - - // 尝试读取配置(验证数据库连接) - try { - await getConfig(); - } catch (error) { - debugInfo.configReadError = (error as Error).message; - } - - return NextResponse.json(debugInfo, { - headers: { - 'Cache-Control': 'no-store', - }, - }); - } catch (error) { - console.error('Debug API error:', error); - return NextResponse.json( - { - error: 'Failed to get debug info', - details: (error as Error).message, - }, - { status: 500 } - ); - } -} diff --git a/src/lib/redis-base.db.ts b/src/lib/redis-base.db.ts index e513c67..c63320d 100644 --- a/src/lib/redis-base.db.ts +++ b/src/lib/redis-base.db.ts @@ -650,7 +650,15 @@ export abstract class BaseRedisStorage implements IStorage { const users = await this.withRetry(() => this.client.zRange(userListKey, 0, -1) ); - return users.map(u => ensureString(u)); + const userList = users.map(u => ensureString(u)); + + // 确保站长在列表中(站长可能不在数据库中,使用环境变量认证) + const ownerUsername = process.env.USERNAME; + if (ownerUsername && !userList.includes(ownerUsername)) { + userList.unshift(ownerUsername); + } + + return userList; } // ---------- 管理员配置 ---------- diff --git a/src/lib/upstash.db.ts b/src/lib/upstash.db.ts index a0856ed..830f259 100644 --- a/src/lib/upstash.db.ts +++ b/src/lib/upstash.db.ts @@ -678,7 +678,15 @@ export class UpstashRedisStorage implements IStorage { const users = await withRetry(() => this.client.zrange(userListKey, 0, -1) ); - return users.map(u => ensureString(u)); + const userList = users.map(u => ensureString(u)); + + // 确保站长在列表中(站长可能不在数据库中,使用环境变量认证) + const ownerUsername = process.env.USERNAME; + if (ownerUsername && !userList.includes(ownerUsername)) { + userList.unshift(ownerUsername); + } + + return userList; } // ---------- 管理员配置 ----------