From 36e69aab0f8df938c67ed87551ffc1d7037360c8 Mon Sep 17 00:00:00 2001 From: KimigaiiWuyi <444835641@qq.com> Date: Tue, 17 Dec 2024 23:12:02 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20=E4=BF=AE=E5=A4=8D=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E8=AE=A2=E9=98=85=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gsuid_core/subscribe.py | 44 +++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/gsuid_core/subscribe.py b/gsuid_core/subscribe.py index 143c98d..55f7bf7 100644 --- a/gsuid_core/subscribe.py +++ b/gsuid_core/subscribe.py @@ -1,4 +1,4 @@ -from typing import List, Literal, Optional +from typing import Dict, List, Union, Literal, Optional from gsuid_core.models import Event from gsuid_core.utils.database.models import Subscribe @@ -38,21 +38,19 @@ class GsCoreSubscribe: `await GsCoreSubscribe.add_subscribe('single', '签到', event)` ''' - opt = { + opt: Dict[str, Union[str, int, None]] = { 'bot_id': event.bot_id, 'task_name': task_name, } if subscribe_type == 'session' and event.user_type == 'group': - condi = await Subscribe.data_exist( - group_id=event.group_id, - user_type=event.user_type, - **opt, - ) + opt['group_id'] = event.group_id + opt['user_type'] = event.user_type else: - condi = await Subscribe.data_exist( - user_id=event.user_id, - **opt, - ) + opt['user_id'] = event.user_id + + condi = await Subscribe.data_exist( + **opt, + ) if not condi: await Subscribe.full_insert_data( @@ -65,14 +63,22 @@ class GsCoreSubscribe: extra_message=extra_message, ) else: - await Subscribe.update_data( - user_id=event.user_id, - bot_id=event.bot_id, - group_id=event.group_id, - task_name=task_name, - bot_self_id=event.bot_self_id, - user_type=event.user_type, - extra_message=extra_message, + upd = {} + for i in [ + 'user_id', + 'bot_id', + 'group_id', + 'task_name', + 'bot_self_id', + 'user_type', + 'extra_message', + ]: + if i not in opt: + upd[i] = event.__getattribute__(i) + + await Subscribe.update_data_by_data( + opt, + upd, ) async def get_subscribe(self, task_name: str):