o
    jj                  	   @   s\   d dl m Z  ddlmZ dd Zdd Zdd	ed
ededefddZdde dB fddZdS )    )datetime   )
TITLE_DEFSc                 C   s
   t | S Nr   get)title_id r	   0/home/dore/onebot/Bot_Ero/plugins/title/logic.pyget_title_def   s   
r   c                   C   s   dd t  D S )Nc                 S   s"   g | ]\}}| d dkr|qS )unlock_typelottery)r   ).0tiddatar	   r	   r
   
<listcomp>   s   " z)get_lottery_title_ids.<locals>.<listcomp>)r   itemsr	   r	   r	   r
   get_lottery_title_ids
   s   r      unlockedtotalwidthreturnc              
   C   sv   |dkrdd|  dS t dtdd|  | }tt||  | |}dd|  d||   d|  d	| d
|dd
S )Nr   [u   ░z] 0/0 (0.0%)g        g      Y@u   █z] /z (z.1fz%))maxminint)r   r   r   pctfilledr	   r	   r
   _title_collection_progress   s
   0r    N
checkin_dtc              
      s  t g  fdd}|d ur|j|j}}|dks%|dkr-|dkr-|dk r-|d |dks9|dkrA|dkrA|dk rA|d	 |d
ksM|d
kr]|dkr]|dk sY|dkr]|dkr]|d |dksi|dkrq|dkrq|dk rq|d | }|dkr|dks|dkr|dks|dkr|dk r|d |j|jf}dddddddddd	}||v r|||  |j|jkr|d |dkr|dks|dkr|d v r|d! |dkr|dkr|d"  j}	|	dkr|d# |	d$kr|d% |	d&kr|d' |	d(kr|d)  j	}
 j
}t|
d* |}|dkr|d+ |d,kr"|d- |d.kr+|d/ |d0kr4|d1 |d$kr=|d2 |d&krF|d3 |d4krO|d5 |d6krX|d7 |d8kra|d9 |d:krj|d; |d<krs|d= |d>kr||d? |d@kr|dA |
dB dkr|dC |
dB d,kr|dD |
dB d$kr|dE |
dF dkr|dG |
dH d8kr|dI |
dH d,kr|dJ |
dH dkr|dK |
dH dkr|dL |
dH dMkr|dN |
dH dkr|dO |
dP dkr|dQ |
dP d,kr	|dR |
dP d0kr|dS |
dP d$kr|dT |
dP d>kr*|dU  j}|dkr9|dV |dMkrB|dW |dkrK|dX |d0krT|dY  j}|dkrc|dZ |d8krl|d[ |dkru|d\ |d,kr~|d] |d^kr|d_  j}t|}|d,kr|d` |d^kr|da |dkr|db |d0kr|dc |d$kr|dd  j}tdedf |D r|dg  j}t|d8krtdhdf |D r|di S )jNc                    s:   | t v r j| s j|  |  d S d S d S r   )r   titleshasunlockappend)r   	dbmanagernewly_unlockeduser_idr	   r
   r$      s   z*evaluate_and_unlock_titles.<locals>.unlock   r            r                  r                                             )	)r3   r   )   r   )r5   r   )
      )      )rD   r-   )r*      )   r-   )r   r      ;   )r   r            d            im     
draw_count   rB            2            i     i     rG      K            i,     i     duplicate_count         has_hit_ten   max_zero_streak                     total_zeros   i  i  i  i              i  i  i  i     i	                 c                 s   &    | ]}t |i d dkV  qdS rarity	legendaryNr   r   tr	   r	   r
   	<genexpr>      $ z-evaluate_and_unlock_titles.<locals>.<genexpr>   c                 s   r~   r   r   r   r	   r	   r
   r      r      )r   hourminuteweekdaymonthdaycheckincount_all_daysr   profilespentr   quest
completionclear_countr"   listlenanyequipped_allall)r'   r)   r!   r$   hmr   mmddmapping
total_daysr   r   rR   quest_totalr   r"   cntequippedr	   r&   r
   evaluate_and_unlock_titles   s    0 0 


























"r   )r   r   )	r   defsr   r   r   r   strr    r   r	   r	   r	   r
   <module>   s    