a
    xhk                  	   @   s4  d dl mZmZmZmZ 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mZmZ d dlmZ e ZeeZe Ze	d	d
Zedeeedededededfeee ee ee ee ee dddZededddedfeedddZdeedddZdS )    )	APIRouterRequestDependsQuery)RedirectResponseJSONResponse)Jinja2Templates)HTTP_302_FOUND)jsonable_encoder)get_current_user)
open_mysqlget_mysql_credsget_pingconf_vars)Optional	templates)	directoryz/latestcommentsN)requestFromID	from_userToIDto_userchkpingsc              
   C   s\  |st dtdS ttx}|jdd}|}	|rT|sT|d|f | }
|
rT|
d }	|}|r|s|d|f | }
|
r|
d }W d    n1 s0    Y  |d ur|d }|dd	}t|	|}|r|nd	}|r|nd	}|r|s|d
|f | }
|
r|
d }|r>|s>|d
|f | }
|
r>|
d }t	
d| ||d |||dS )Nz/signin)urlstatus_codeT
dictionaryz6SELECT HandleID FROM Handles WHERE Handle = %s LIMIT 1ZHandleIDidhandle z6SELECT Handle FROM Handles WHERE HandleID = %s LIMIT 1Handlezlatestcomments.html)r   userZuser_idcommentsZFromNameZToName)r   r	   r   mysql_credscursorexecutefetchonegetget_latest_commentsr   TemplateResponse)r   r    r   r   r   r   r   connr#   Zactual_from_idrowZactual_to_idr!   	from_nameZto_name r,   1/wd/v2025.freedom4um.com/routes/latestcomments.pylatest_comments_page   sT    

&
r.   z/autocomplete.   )
min_lengthZhandles)querytypec                 C   sb   | sg S t t>}|jdd}d}||d|  df | }W d    n1 sT0    Y  |S )NTr   zsSELECT HandleID AS id, Handle AS handle FROM Handles WHERE Handle LIKE %s AND Handle != '' ORDER BY Handle LIMIT 10%)r   r"   r#   r$   fetchall)r1   r2   r)   r#   sqlZsuggestionsr,   r,   r-   autocompleteQ   s    
&r6   )from_idto_idc                 C   s(  d}|d ur|d7 }d}g }| d ur6|d7 }| |  |d urP|d7 }| | d| | d }td| tt0}|jd	d
}||| | }W d    n1 s0    Y  g }	|D ]h}
|
d r|
d d|
d< |
d dkrdnd|
d  d|
d< |
d r|
d gng |
d< |	 |
 q|	S )Nz
        FROM Comments c
        JOIN Articles a ON c.ArtNum = a.ArtNum
        JOIN Handles h_from ON c.HandleID = h_from.HandleID
    z
        JOIN Ping p ON c.GlobComNum = p.GlobComNum 
                     AND c.ArtNum = p.ArtNum 
                     AND c.HandleID = p.FromHandleID
        zWHERE a.Deleted = 0z AND c.HandleID = %sz AND p.ToHandleID = %sa	  
        SELECT
            c.ArtNum,
            c.ComNum,
            c.GlobComNum,
            a.Title AS ArticleTitle,
            c.PostDate,
            h_from.Handle AS FromUser,
            c.HandleID AS FromID,
            c.ReplyToHandleStr AS ToUser
    z/
        ORDER BY c.PostDate DESC LIMIT 50
    zsql: Tr   ZPostDatez%Y-%m-%d %H:%M:%SZComNumr   z	(Article)z(#)ZDisplayComNumZToUserZToUsers)appendprintr   r"   r#   r$   r4   strftime)r7   r8   Zsql_fromZ	sql_whereparamsr5   r)   r#   rowsr!   r*   r,   r,   r-   r'   b   s>    






&$r'   )NN) fastapir   r   r   r   fastapi.responsesr   r   fastapi.templatingr   Zstarlette.statusr	   fastapi.encodersr
   
utils.authr   utils.pingdatar   r   r   typingr   PingConfr"   routerr   r&   intstrr.   r6   r'   r,   r,   r,   r-   <module>   sD   
?
