Files
DanDingNoneBot/danding_bot/plugins/onmyoji_gacha/utils.py
Mr.Xia 7f022b92e0 feat: 抽卡签到功能 - 首次抽卡/三连自动签到获随机积分
- data_manager: 新增 daily_sign_in 表、has_signed_in_today、record_sign_in 方法
- utils: 新增 get_luck_description、format_sign_in_message 函数
- __init__: 新增 try_handle_daily_sign_in 签到入口
- handle_gacha/handle_triple_gacha 成功路径 finish()→send()+签到+return
- 签到失败不影响抽卡主流程,UNIQUE约束防并发重复
2026-04-05 22:07:50 +08:00

43 lines
1.2 KiB
Python

import os
from typing import Optional
from pathlib import Path
def get_image_path(file_path: str) -> str:
"""获取图片的绝对路径"""
return os.path.abspath(file_path)
def format_user_mention(user_id: str, user_name: Optional[str] = None) -> str:
"""格式化用户@信息"""
display_name = user_name if user_name else f"用户{user_id}"
return f"@{display_name}"
def get_luck_description(points: int) -> tuple[str, str]:
"""根据积分返回运气描述与emoji"""
if points <= 10:
return "非酋", "😭"
if points <= 30:
return "一般", "😐"
if points <= 60:
return "小欧", "😊"
if points <= 90:
return "大欧", "🎉"
return "欧皇", "👑"
def format_sign_in_message(
user_id: str,
user_name: str,
points: int,
balance: int,
) -> str:
"""格式化签到成功消息"""
luck_text, luck_emoji = get_luck_description(points)
mention = format_user_mention(user_id, user_name)
return (
f"{mention} 📅 每日签到成功!\n"
f"🎁 获得积分:{points}\n"
f"{luck_emoji} 今日运气:{luck_text}\n"
f"💰 当前积分:{balance}"
)