From 774efb2fe0f46dec4e720ac8cb71ec9909b81012 Mon Sep 17 00:00:00 2001 From: Soulter <905617992@qq.com> Date: Thu, 20 Nov 2025 17:02:01 +0800 Subject: [PATCH] refactor: update timestamp handling in session management and chat components --- astrbot/core/db/po.py | 2 +- astrbot/core/db/sqlite.py | 8 ++++---- astrbot/dashboard/routes/chat.py | 4 ++-- .../src/components/chat/ConversationSidebar.vue | 17 +---------------- dashboard/src/composables/useSessions.ts | 2 +- 5 files changed, 9 insertions(+), 24 deletions(-) diff --git a/astrbot/core/db/po.py b/astrbot/core/db/po.py index 8fb14c19..d6621d07 100644 --- a/astrbot/core/db/po.py +++ b/astrbot/core/db/po.py @@ -162,7 +162,7 @@ class PlatformSession(SQLModel, table=True): Each session can have multiple conversations (对话) associated with it. """ - __tablename__ = "platform_sessions" + __tablename__ = "platform_sessions" # type: ignore inner_id: int | None = Field( primary_key=True, diff --git a/astrbot/core/db/sqlite.py b/astrbot/core/db/sqlite.py index 4a7f2560..19461861 100644 --- a/astrbot/core/db/sqlite.py +++ b/astrbot/core/db/sqlite.py @@ -1,7 +1,7 @@ import asyncio import threading import typing as T -from datetime import datetime, timedelta +from datetime import datetime, timedelta, timezone from sqlalchemy.ext.asyncio import AsyncSession from sqlmodel import col, delete, desc, func, or_, select, text, update @@ -788,13 +788,13 @@ class SQLiteDatabase(BaseDatabase): async with self.get_db() as session: session: AsyncSession async with session.begin(): - values = {"updated_at": datetime.now()} + values: dict[str, T.Any] = {"updated_at": datetime.now(timezone.utc)} if display_name is not None: values["display_name"] = display_name await session.execute( update(PlatformSession) - .where(PlatformSession.session_id == session_id) + .where(col(PlatformSession.session_id == session_id)) .values(**values), ) @@ -805,6 +805,6 @@ class SQLiteDatabase(BaseDatabase): async with session.begin(): await session.execute( delete(PlatformSession).where( - PlatformSession.session_id == session_id, + col(PlatformSession.session_id == session_id), ), ) diff --git a/astrbot/dashboard/routes/chat.py b/astrbot/dashboard/routes/chat.py index 2620f1a1..1ad78956 100644 --- a/astrbot/dashboard/routes/chat.py +++ b/astrbot/dashboard/routes/chat.py @@ -334,8 +334,8 @@ class ChatRoute(Route): "creator": session.creator, "display_name": session.display_name, "is_group": session.is_group, - "created_at": int(session.created_at.timestamp()), - "updated_at": int(session.updated_at.timestamp()), + "created_at": session.created_at.astimezone().isoformat(), + "updated_at": session.updated_at.astimezone().isoformat(), } ) diff --git a/dashboard/src/components/chat/ConversationSidebar.vue b/dashboard/src/components/chat/ConversationSidebar.vue index 2ea9a481..b2ebd3fe 100644 --- a/dashboard/src/components/chat/ConversationSidebar.vue +++ b/dashboard/src/components/chat/ConversationSidebar.vue @@ -54,7 +54,7 @@ {{ item.display_name || tm('conversation.newConversation') }} - {{ formatDate(item.updated_at) }} + {{ new Date(item.updated_at).toLocaleString() }}