o
    kjA                     @   s   d dl m Z  d dlmZ d dlZ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 d dlmZ d d	lmZmZ d d
lmZ dedefddZdedejdB fddZeG dd deZdS )    )datetime)BytesION)Image)context)CommandPlugin)imageat)Event)PersonalRecordStatsgen_personal_record_card)register_pluginevreturnc                 C   s`   | j }t|tr"|dpd }|r|S |dpd }|r"|S | j}|d ur.d| S dS )Ncard nicknameQQu   未知用户)sender
isinstancedictgetstripuser_id)r   sr   nickuid r   >/home/dore/onebot/Bot_Ero/plugins/personal_records/__init__.py_sender_display_name   s   
r   urlc                 C   sB   zt j| dd}|  tt|j}|W S  ty    Y d S w )N   )timeout)requestsr   raise_for_statusPILImageopenr   content	Exception)r   rimr   r   r   _load_avatar_from_url   s   r*   c                   @   s    e Zd ZdZdZdZdd ZdS )PersonalRecordsshow_personal_recordsu*   生成并展示用户年度打卡档案。)u   /档案u   /檔案c                 C   s  | j jd krd S tt j}t| jdkrt| jd }| jj	
| j j|}i }dgd }|D ]5}|d dkrZ||d d ||d   d7  < |t|d d   d7  < q0d|t|d d < q0| jj	| j j}t|t|t||d |d	 |d
 |d | jj| j jd}t| j }d }	| j| j j}
|
rt|
}	t||| j j|||	d tjdtj| j j}| jt| j jtd|  d S )Nr   in     remedy_checkin      current_weeklylongest_weeklycurrent_dailylongest_daily)yeartotal_distinct_daystotal_checkin_imagesr2   r3   r4   r5   points)user_display_nameavatarz3{}/personal_records/{}_calendar_heatmap_monthly.pngzfile://) 	bot_eventr   intr   todayr6   lenargs	dbmanagercheckinsearch_year
setdefaultutilsday_of_yearstreaksr
   r9   r   r   apiget_qq_avatarr*   r   ospathabspathformatr   llonebot_data_pathsend_msgr   r   )selfr6   rowstime_mapday_checkin_countrow
streak_resstatsdisplay_name	avatar_imr   
image_pathr   r   r   handle/   sV   
 

"zPersonalRecords.handleN)__name__
__module____qualname__namedescriptionCOMMANDSrZ   r   r   r   r   r+   )   s
    r+   )r   ior   rJ   r"   PILr   r$   corer   	core.baser   core.cqr   r   
core.eventr	   
core.utilsrE   core.gen_imager
   r   r   strr   r*   r+   r   r   r   r   <module>   s     
