🐛 : 修复签到问题

This commit is contained in:
HibiKier 2024-07-21 19:06:50 +08:00
parent 167555016a
commit 487f019c89
7 changed files with 21 additions and 24 deletions

View File

@ -54,7 +54,7 @@ from public.bag_users t1
""" """
# @driver.on_startup @driver.on_startup
async def _(): async def _():
global flag global flag
await shop_register.load_register() await shop_register.load_register()

View File

@ -80,14 +80,14 @@ class SignManage:
@classmethod @classmethod
async def sign( async def sign(
cls, session: EventSession, nickname: str, is_view_card: bool = False cls, session: EventSession, nickname: str, is_card_view: bool = False
) -> Path | None: ) -> Path | None:
"""签到 """签到
参数: 参数:
session: Session session: Session
nickname: 用户昵称 nickname: 用户昵称
is_view_card: 是否展示卡片 is_card_view: 是否展示卡片
返回: 返回:
Path: 卡片路径 Path: 卡片路径
@ -100,17 +100,15 @@ class SignManage:
user_id=session.id1, user_id=session.id1,
defaults={"user_console": user_console, "platform": session.platform}, defaults={"user_console": user_console, "platform": session.platform},
) )
new_log = await SignLog.filter(user_id=session.id1).first() new_log = (
file_name = f"{user}_sign_{datetime.now().date()}.png" await SignLog.filter(user_id=session.id1).order_by("-create_time").first()
if ( )
user.sign_count != 0 if not is_card_view:
or (new_log and now > new_log.create_time) if not new_log or (new_log and new_log.create_time.date() != now.date()):
or file_name in os.listdir(SIGN_TODAY_CARD_PATH) return await cls._handle_sign_in(user, nickname, session)
): return await get_card(
path = await get_card(user, nickname, -1, user_console.gold, "") user, nickname, -1, user_console.gold, "", is_card_view=is_card_view
else: )
path = await cls._handle_sign_in(user, nickname, session, is_view_card)
return path
@classmethod @classmethod
async def _handle_sign_in( async def _handle_sign_in(
@ -118,7 +116,6 @@ class SignManage:
user: SignUser, user: SignUser,
nickname: str, nickname: str,
session: EventSession, session: EventSession,
is_view_card: bool,
) -> Path: ) -> Path:
"""签到处理 """签到处理
@ -126,7 +123,6 @@ class SignManage:
user: SignUser user: SignUser
nickname: 用户昵称 nickname: 用户昵称
session: Session session: Session
is_view_card: 是否展示卡片
返回: 返回:
Path: 卡片路径 Path: 卡片路径
@ -165,5 +161,4 @@ class SignManage:
gold, gold,
gift, gift,
rand + add_probability > 0.97 or rand < specify_probability, rand + add_probability > 0.97 or rand < specify_probability,
is_view_card,
) )

View File

@ -172,9 +172,8 @@ async def _generate_card(
uid_img = await BuildImage.build_text_image( uid_img = await BuildImage.build_text_image(
f"UID: {uid}", size=30, font_color=(255, 255, 255) f"UID: {uid}", size=30, font_color=(255, 255, 255)
) )
sign_count = await SignLog.filter(user_id=user.user_id).count()
sign_day_img = await BuildImage.build_text_image( sign_day_img = await BuildImage.build_text_image(
f"{sign_count}", size=40, font_color=(211, 64, 33) f"{user.sign_count}", size=40, font_color=(211, 64, 33)
) )
lik_text1_img = await BuildImage.build_text_image("当前", size=20) lik_text1_img = await BuildImage.build_text_image("当前", size=20)
lik_text2_img = await BuildImage.build_text_image( lik_text2_img = await BuildImage.build_text_image(

View File

@ -69,7 +69,10 @@ class ConfigGroup(BaseModel):
def get(self, c: str, default: Any = None) -> Any: def get(self, c: str, default: Any = None) -> Any:
cfg = self.configs.get(c) cfg = self.configs.get(c)
if cfg is not None: if cfg is not None:
return cfg.value if cfg.value is not None:
return cfg.value
if cfg.default_value is not None:
return cfg.default_value
return default return default

View File

@ -10,7 +10,7 @@ class SignLog(Model):
id = fields.IntField(pk=True, generated=True, auto_increment=True) id = fields.IntField(pk=True, generated=True, auto_increment=True)
"""自增id""" """自增id"""
user_id = fields.CharField(255, unique=True, description="用户id") user_id = fields.CharField(255, description="用户id")
"""用户id""" """用户id"""
impression = fields.DecimalField(10, 3, default=0, description="好感度") impression = fields.DecimalField(10, 3, default=0, description="好感度")
"""好感度""" """好感度"""

View File

@ -24,7 +24,7 @@ anime_data = json.load(open(DATA_PATH / "anime.json", "r", encoding="utf8"))
async def get_chat_result( async def get_chat_result(
message: UniMsg, user_id: str, nickname: str message: UniMsg, user_id: str, nickname: str
) -> Text | MessageFactory: ) -> Text | MessageFactory | None:
"""获取 AI 返回值,顺序: 特殊回复 -> 图灵 -> 青云客 """获取 AI 返回值,顺序: 特殊回复 -> 图灵 -> 青云客
参数: 参数:
@ -54,7 +54,7 @@ async def get_chat_result(
if not rst: if not rst:
rst = await xie_ai(text) rst = await xie_ai(text)
if not rst: if not rst:
return no_result() return None
if nickname: if nickname:
if len(nickname) < 5: if len(nickname) < 5:
if random.random() < 0.5: if random.random() < 0.5:

View File

@ -6,7 +6,7 @@ from pydantic import BaseModel
from zhenxun.configs.config import Config from zhenxun.configs.config import Config
from zhenxun.configs.path_config import DATA_PATH from zhenxun.configs.path_config import DATA_PATH
base_config = Config.get("mute") base_config = Config.get("mute_setting")
class GroupData(BaseModel): class GroupData(BaseModel):