o
    Ӭj                     @  s\   d Z ddlmZ ddlmZ ddlmZ dZdZdZdefdddZ	dddZ
dddZdS )u?   网页留言簿：匿名展示，登录后可留言与点赞。    )annotations)datetime)	DbManageri     d      viewer_user_id
str | Nonepageint	page_sizereturndictc              	   C  s  t dt|}t dtt|t}|d | }| rt| nd }t }|jd t|j d }|jd||f |j }g }|D ]5\}	}
}}d}|d ura|jdt|	|f |j d u}|	t|	|
|pjdd d t|prd|d	 qC|||||t
| |k td
S )Nr   z&SELECT COUNT(*) FROM guestbook_entriesr   a  
        SELECT e.id, e.content, e.created_at,
               (SELECT COUNT(*) FROM guestbook_likes l WHERE l.entry_id = e.id) AS like_count
        FROM guestbook_entries e
        ORDER BY like_count DESC, e.created_at DESC, e.id DESC
        LIMIT ? OFFSET ?
        F@SELECT 1 FROM guestbook_likes WHERE entry_id = ? AND user_id = ?    )idcontent
created_at
like_countliked)itemstotalr
   r   has_moremax_content_len)maxr   minPAGE_SIZE_MAXr   curexecutefetchonefetchallappendlenMAX_CONTENT_LEN)r   r
   r   offsetviewerdbr   rowsr   eidr   r   r   r    r*   >/home/dore/onebot/Bot_Ero/checkin_gallery/guestbook_service.pylist_entries   sH   



r,   user_idstrr   c                 C  s|   |pd  }|stdt|tkrtdt dt d}t }|j	dt
| ||f |j  dt
|jjdS )	Nr   u   留言不能为空u   留言不能超过 u    字%Y-%m-%d %H:%M:%SzTINSERT INTO guestbook_entries (author_user_id, content, created_at) VALUES (?, ?, ?)u   留言已发布)messager   )strip
ValueErrorr#   r$   r   nowstrftimer   r   r   r   conncommit	lastrowid)r-   r   textr3   r'   r*   r*   r+   
post_entryE   s   
r9   entry_idc                 C  s   t  }|jdt|f |j }|stdt| }t|d |kr(td|jdt||f |j r<tdt d}|jdt|||f |j	
  |jd	t|f t|j d }d
|ddS )Nz9SELECT author_user_id FROM guestbook_entries WHERE id = ?u   留言不存在r   u   不能给自己的留言点赞r   u   你已经点过赞了r/   zLINSERT INTO guestbook_likes (entry_id, user_id, created_at) VALUES (?, ?, ?)z7SELECT COUNT(*) FROM guestbook_likes WHERE entry_id = ?u	   已点赞T)r0   r   r   )r   r   r   r   r    r2   r   r3   r4   r5   r6   )r-   r:   r'   rowuidr3   countr*   r*   r+   
like_entryV   s:   



r>   N)r   r	   r
   r   r   r   r   r   )r-   r.   r   r.   r   r   )r-   r.   r:   r   r   r   )__doc__
__future__r   r   core.database_managerr   r$   PAGE_SIZE_DEFAULTr   r,   r9   r>   r*   r*   r*   r+   <module>   s    
7