o
    kj(                     @   s   d dl Z d dlmZ d dlmZ d dlmZ d dlmZmZ d dl	m
Z
mZ d dlmZmZ dd	lmZ eG d
d deZdS )    N)datetime)utils)CommandPlugin)attext)on_quest_triggerregister_plugin)get_title_defevaluate_and_unlock_titles   )draw_rewardc                   @   s8   e Zd ZdZdZdZdZdZdd Zdd	 Z	d
d Z
dS )LotteryPluginlotteryu-   执行抽卡抽奖并发放奖励或称号。r   u$   本次抽卡免费（今日首抽）)u   /抽奖u   /抽獎u   /抽卡   /抽卡消费   /抽卡消費c                 C   sN   | j jD ]}|ddkr"|di d}|r"|dkr"t|  S qt|S )Ntyper   dataqqall)	bot_eventmessagegetint)selfdefault_user_idsegr    r   5/home/dore/onebot/Bot_Ero/plugins/lottery/__init__.py_extract_target_user_id   s   z%LotteryPlugin._extract_target_user_idc                 C   sz   |sd S dg}|D ]#}t |pdddd}|d| d|d  d	|d
  d|d   q	| jt|td| d S )Nu   解锁新称号：   未知称号unknownu   无)nameraritydescription[u   ] 「r!   u   」 (r"   z) - r#   
)r	   appendapisend_msgr   r   join)r   user_idunlocked_idslinestidr   r   r   r   _send_unlocked_titles_notice   s   0 z*LotteryPlugin._send_unlocked_titles_noticec                  C   s  | j jd krd S | j j}| jdv r1| |}| jj|}| jt	|t
d| d| d d S t d}| jj||}| jj||}| jj||}|rTdnd| }||krr| jt	|t
d|||rkd	nd
 d S |dk}	| jj|}
d}|	s| jj|}|dkrt dk rd}|s|
| jk r| jt	|t
d|
 d S | jj| n|
| jk r| jt	|t
d|
 d S |st| j|| j  | jj|| j | jj||d t| j|d}|	rdn|rdn| j}|	r| jn|rdnd}t | j|}| jj!|}|d d }|d }|d }|d }|d }|d }|d dkr|d }t| j|| |dkrS|d7 }|d7 }||krR|}nd}|dkr\d}| jj"||||||| t#| j|}| $|| || }| jj|}|	rd| j}n|rd}nd }|dkr| jt	|t
d!||| n| jt	|t
d"|||| |rd#%d$d% |D }| jt	|t
d&|  d S | jj|}|d d'kr@d}| jj"||||||| t#| j|}| $|| |d }t&|pd(d)d*}| jt	|t
d+||d, |d- || |r>d#%d.d% |D }| jt	|t
d&|  d S |d d/kr|d7 }d}| jj"||||||| t#| j|}| $|| |d }t&|psd(d)d*}|d0d}|	rd| j}n|rd}nd }| jt	|t
d1||d, |d- ||| |rd#%d2d% |D }| jt	|t
d&|  d S |d d3kr#d}| jj"||||||| t#| j|}| $|| |	rd| j}n|rd}nd }| jt	|t
d4|d- || |r!d#%d5d% |D }| jt	|t
d&|  d S | jt	|t
d6|d || |rRd#%d7d% |D }| jt	|t
d&|  d S d S )8N)r   r   u   用户 u    累计抽卡消费：u    积分z%Y-%m-%d      u.   今天抽卡次数已用完（{}/{}）。{}。u   你今天已打卡，可抽5次u"   今日未打卡，默认可抽2次r   Fg333333?Tu0   抽奖需要1点积分，你现在只有{}点喵r   r   u$   抽奖增强：本次不消耗积分u   本次消耗：1积分
draw_countduplicate_countzero_streakmax_zero_streakhas_hit_tentotal_zerosr   pointsvalue
   z{}
u%   抽奖增强：本次不消耗积分
 u_   *摇骰子* 居然什么都没有抽到呢……
本次净变化：{}积分
{}当前积分：{}u^   *摇骰子* 居然抽到了……{}点积分！
本次净变化：{}积分
{}当前积分：{}z | c                 s   &    | ]}|d   d|d  V  qdS r!   z +rewardNr   .0qr   r   r   	<genexpr>      $ z'LotteryPlugin.handle.<locals>.<genexpr>u   🎯 	title_newr   r    )r!   r"   uX   *摇骰子* 居然抽到了……解锁称号 [{}] 「{}」 ({})！
{}
当前积分：{}r!   r"   c                 s   r;   r<   r   r>   r   r   r   rA      rB   title_duplicaterebateuo   *摇骰子* 居然抽到了……已拥有称号 [{}] 「{}」 ({})！
已返还{}积分。
{}当前积分：{}c                 s   r;   r<   r   r>   r   r   r   rA      rB   
title_noneuq   *摇骰子* 居然抽到了……{}称号位！
当前没有可抽取的该稀有度称号。
{}当前积分：{}c                 s   r;   r<   r   r>   r   r   r   rA      rB   u;   *摇骰子* 居然抽到了……{}！
{}
当前积分：{}c                 s   r;   r<   r   r>   r   r   r   rA      rB   )'r   r*   cmdr   	dbmanagerr   spentr'   r(   r   r   r   nowstrftimer1   checkinhas_on_dateshop
draw_bonusformatr7   r   waiver_remainingrandomCOST
pop_waiverr   add_user_point	add_spentadd_drawr   FREE_DRAW_HINTr   profileupsert_profiler
   r.   r)   r	   ) r   r*   target_user_idrI   todayr1   has_checkin_todayextra_shop_drawsmax_draw
free_dailyr7   payment_exemptrem	completed	cost_paiddraw_cost_hintresultrY   r2   r3   r4   r5   r6   r=   unlockednet
now_pointsfree_midnamestitle_id
title_datarE   r   r   r   handle'   sf  

$





	
 zLotteryPlugin.handleN)__name__
__module____qualname__r!   r#   rS   rX   COMMANDSr   r.   rn   r   r   r   r   r      s    	r   )rR   r   corer   	core.baser   core.cqr   r   
core.utilsr   r   plugins.titler	   r
   rewardsr   r   r   r   r   r   <module>   s    