o
    mjj                     @   sd   d dl m Z mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dlm
Z
 e
G dd deZd	S )
    )datetime	timedelta)utils)Plugin)text)get_monday_to_monday)register_pluginc                   @   sH   e Zd ZdZdZdZdd Zdd Zdd	 Zd
d Z	dd Z
dd ZdS )RemedyCheckinPluginremedy_checkinu'   为用户补卡并扣除对应积分。   c                 C   s<   | j ||}|| jkr| jtd||| j dS dS )Nu(   {}年补卡次数已达上限（{}/{}）FT)	dbmanagerget_user_remedy_usedYEARLY_LIMITapisend_msgr   format)selfuser_idyearused r   3/home/dore/onebot/Bot_Ero/plugins/remedy_checkin.py_check_remedy_limit   s
   
z'RemedyCheckinPlugin._check_remedy_limitc                 C   s<   |  ddrdS |  ddrdS |  ddr|  rdS dS )	N   /单日补卡   /單日補卡Tu   /补卡u   /補卡   /超级补卡   /超級補卡F)on_command_any
admin_user)r   message_typer   r   r   match   s   zRemedyCheckinPlugin.matchc              
   C   s  | j jd krd S | jd dv }| jd dv r|   d S t| jdkrzt| jd dtdd }W n! tyT } z| j	
td| jd  W Y d }~d S d }~ww | j j}t| jd	kre| jd	 }t|\}}| j|||}d
}t|dkr|s| ||jsd S | j|}	|	|ks|rd}
| j	
t|
|dd |dd | | j||dd  |st| j||d  | j|j|d d S d S | j	
td|	| d S | j	
td|dd |dd  d S |   d S )Nr   )r   r   )r   r      %Y-%m-%d   )hours   {}格式不正确   r   u   {}-{}原来没有打卡吗？真拿你没办法……
*涂写*好了帮你补上了喵，一共消费{}点数，谢谢惠顾喵 uR   补卡当然不是免费的喵!
你现在现在点数是：{}
补卡需要{}点喵u/   上当了喵！{}-{}你已经打过卡了喵！)	bot_eventr   argshandle_single_day_remedylenr   strptimer   	Exceptionr   r   r   r   r   r    search_target_user_checkin_ranger   r   get_user_pointsplitr
   r   add_user_pointadd_user_remedy_usedfind_remedy)r   
super_modedter   startendrowscostpointssuccess_msgr   r   r   handle   sF    
.0zRemedyCheckinPlugin.handlec           	   
   C   s  | j jd krd S t| jdkr/|  }|d u r!| jtd d S | jtd|| d S zt	
| jd d}W n tyR   | jtd| jd  Y d S w |d}|tdd d}| j j}| j|||}t|dkr| jtd	| jd  d S | ||jsd S d
}| j|}||k r| jtd|| d S | j|| jd  t| j||d  | j|j|d | jtd| jd | d S )Nr!   u6   今年每天都打过卡了喵，不需要单日补卡uC   找到最近漏打卡日期：{}
可使用指令：/单日补卡 {}r"   r%   %Y-%m-%d 08:00:00daysr   u$   {} 这一天你已经打过卡了喵r&   uR   补卡当然不是免费的喵!
你现在点数是：{}
单日补卡需要{}点喵r(   u,   {} 已补卡成功喵，一共消费{}点数)r)   r   r,   r*   find_single_day_remedyr   r   r   r   r   r-   r.   strftimer   r   r/   r   r   r0   remedy_checkin_one_dayr   r2   r3   )	r   suggest_dayday	day_startday_endr   r:   r;   r<   r   r   r   r+   L   sB   
"z,RemedyCheckinPlugin.handle_single_day_remedyc                 C   s   t  tdd }|j}|j|krA|d}|tdd d}| j| jj||}t	|dkr5|dS |tdd }|j|ksd S )Nr!   r@   r?   r   r"   )
r   todayr   r   rC   r   r/   r)   r   r,   )r   datecurrent_yearrG   rH   r:   r   r   r   rB   u   s   



z*RemedyCheckinPlugin.find_single_day_remedyc              
   C   s   t  }|j}	 |tdd }t|\}}t |dj|kr+| jtd	| d S | j
| jj||}t|dkrY| jtd	|dd |dd |dd  d S |}q)	NT   r@   z%Y-%m-%d %H:%M:%Su5   {}每一周都打了卡呢！完全不需要补卡喵r   uM   找到{}-{}这一周没有打卡喵，使用指令"/补卡 {}"确认补卡喵r'   )r   rI   r   r   r   r-   r   r   r   r   r   r/   r)   r   r,   r1   )r   rJ   rK   pre_date	tmp_starttmp_endr:   r   r   r   r4      s   8zRemedyCheckinPlugin.find_remedyN)__name__
__module____qualname__namedescriptionr   r   r    r>   r+   rB   r4   r   r   r   r   r	      s    	-)r	   N)r   r   corer   	core.baser   core.cqr   
core.utilsr   r   r	   r   r   r   r   <module>   s    