From 9326e3f1b07617eeee0ba010ebc6224df49367ce Mon Sep 17 00:00:00 2001 From: anka <1350989414@qq.com> Date: Tue, 22 Apr 2025 10:55:32 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BD=BF=E7=94=A8enum=E4=BB=A3?= =?UTF-8?q?=E6=9B=BF=E5=AD=97=E5=85=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: 渡鸦95676 --- packages/astrbot/main.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/packages/astrbot/main.py b/packages/astrbot/main.py index d319b997c..1b1f7d4dc 100644 --- a/packages/astrbot/main.py +++ b/packages/astrbot/main.py @@ -35,7 +35,29 @@ from typing import Union class Main(star.Star): SCENE_MAP = {1: "group_unique_on", 2: "group_unique_off", 3: "private"} - SCENE_NAMES = {1: "群聊+会话隔离开启", 2: "群聊+会话隔离关闭", 3: "私聊"} +class RstScene(Enum): + GROUP_UNIQUE_ON = ("group_unique_on", "群聊+会话隔离开启") + GROUP_UNIQUE_OFF = ("group_unique_off", "群聊+会话隔离关闭") + PRIVATE = ("private", "私聊") + + @property + def key(self) -> str: + return self.value[0] + + @property + def name(self) -> str: + return self.value[1] + + @classmethod + def from_index(cls, index: int) -> "RstScene": + mapping = {1: cls.GROUP_UNIQUE_ON, 2: cls.GROUP_UNIQUE_OFF, 3: cls.PRIVATE} + return mapping[index] + + @classmethod + def get_scene(cls, is_group: bool, is_unique_session: bool) -> "RstScene": + if is_group: + return cls.GROUP_UNIQUE_ON if is_unique_session else cls.GROUP_UNIQUE_OFF + return cls.PRIVATE def __init__(self, context: star.Context) -> None: self.context = context