From 06079b98f7f1471556ec77de680098db92a55633 Mon Sep 17 00:00:00 2001
From: suyiiyii <suyiiyii@gmail.com>
Date: Fri, 6 Sep 2024 10:16:24 +0800
Subject: [PATCH] =?UTF-8?q?:sparkles:=20=E5=85=B3=E8=81=94cookie=E6=98=AF?=
 =?UTF-8?q?=E4=B8=8D=E6=98=BE=E7=A4=BA=E5=8C=BF=E5=90=8Dcookie?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 nonebot_bison/config/db_config.py | 8 ++------
 nonebot_bison/utils/site.py       | 3 ++-
 2 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/nonebot_bison/config/db_config.py b/nonebot_bison/config/db_config.py
index fc5ea53..63a18c7 100644
--- a/nonebot_bison/config/db_config.py
+++ b/nonebot_bison/config/db_config.py
@@ -260,8 +260,9 @@ class DBConfig:
         return res
 
     async def get_cookie(self, platform_name: str = None, target: T_Target = None) -> list[Cookie]:
+        """根据平台名和订阅名获取 cookie,不会返回匿名cookie"""
         async with create_session() as sess:
-            query = select(Cookie).distinct()
+            query = select(Cookie).distinct().where(Cookie.is_universal == False)  # noqa: E712
             if platform_name:
                 query = query.where(Cookie.platform_name == platform_name)
             query = query.outerjoin(CookieTarget).options(selectinload(Cookie.targets))
@@ -277,12 +278,7 @@ class DBConfig:
             query = select(Cookie).distinct().where(Cookie.is_universal == True)  # noqa: E712
             if platform_name:
                 query = query.where(Cookie.platform_name == platform_name)
-            query = query.outerjoin(CookieTarget).options(selectinload(Cookie.targets))
             res = (await sess.scalars(query)).all()
-            if target:
-                query = select(CookieTarget.cookie_id).join(Target).where(Target.target == target)
-                ids = set((await sess.scalars(query)).all())
-                res = [cookie for cookie in res if cookie.id in ids]
             return res
 
     async def add_cookie_with_content(self, platform_name: str, content: str) -> int:
diff --git a/nonebot_bison/utils/site.py b/nonebot_bison/utils/site.py
index 4aeb8de..56f7132 100644
--- a/nonebot_bison/utils/site.py
+++ b/nonebot_bison/utils/site.py
@@ -55,9 +55,10 @@ class CookieClientManager(ClientManager):
     async def init_universal_cookie(cls):
         """移除已有的匿名cookie,添加一个新的匿名cookie"""
         universal_cookies = await config.get_unviersal_cookie(cls._platform_name)
+        universal_cookie = Cookie(platform_name=cls._platform_name, content="{}", is_universal=True)
         for cookie in universal_cookies:
             await config.delete_cookie(cookie.id)
-        universal_cookie = Cookie(platform_name=cls._platform_name, content="{}", is_universal=True)
+            universal_cookie.id = cookie.id  # 保持原有的id
         await config.add_cookie(universal_cookie)
 
     @classmethod