U
    X^                     @   s  d dl Z d dlZd dlmZ d dlmZmZmZmZm	Z	m
Z
 d dlmZmZmZ d dlmZmZmZmZ d dlmZmZ d dlmZmZmZmZ eded	d
d Zeddd Zejdddgddd Zejdddgddd Z eddd Z!dd Z"ejdddgdedd Z#ejd dgdd!d" Z$ejd#ddgded$d% Z%ed&d'd( Z&ejd)ddgded*d+ Z'ejd,dgded-d. Z(dS )/    N)Image)render_templateurl_forflashredirectrequestabort)appdbbcrypt)RegistrationForm	LoginFormUpdateAccountFormPostForm)UserPost)
login_usercurrent_userlogout_userlogin_required/z/homec                  C   s   t j } td| dS )Nz	home.htmlZposts)r   queryallr   r    r   Vc:\Users\thekj\Desktop\Testesana\simple-project\project\Flask_Blog\flaskblog\routes.pyhome
   s    
r   z/aboutc                   C   s   t dddS )Nz
about.htmlZAbout)title)r   r   r   r   r   about   s    r   z	/registerGETPOST)methodsc                  C   s   t jrttdS t } |  rvt| jj	
d}t| jj	| jj	|d}tj| tj  tdd ttdS tdd| d	S )
Nr   zutf-8)usernameemailpasswordz.Your account has been registered successfully!successloginzregister.htmlZRegisterr   form)r   is_authenticatedr   r   r   validate_on_submitr   generate_password_hashr$   datadecoder   r"   r#   r
   sessionaddcommitr   r   )r(   hashed_passworduserr   r   r   register   s    

r3   z/loginc                  C   s   t jrttdS t } |  rtjj| j	j
d }|rt|j| jj
rt|| jj
d tjd}|rtt|S ttdS tdd tdd| d	S )
Nr   )r#   )remembernextz<Login Unsuccessful. Please check your email and/or password!Zdangerz
login.htmlZLoginr'   )r   r)   r   r   r   r*   r   r   	filter_byr#   r,   firstr   check_password_hashr$   r   r4   r   argsgetr   r   )r(   r2   Z	next_pager   r   r   r&   &   s    
r&   z/logoutc                   C   s   t   ttdS )Nr   )r   r   r   r   r   r   r   logout7   s    r;   c                 C   s\   t d}tj| j\}}|| }tjtjd|}d}t	
| }|| || |S )N   zstatic/profile_pics)}   r=   )secretsZ	token_hexospathsplitextfilenamejoinr	   	root_pathr   openZ	thumbnailsave)Zform_pictureZ
random_hex_Zf_extZ
picture_fnZpicture_pathZoutput_sizeir   r   r   save_picture>   s    



rI   z/accountc                  C   s   t  } |  r\| jjr(t| jj}|t_| jjt_| jjt_t	j
  tdd ttdS tjdkrztj| j_tj| j_tddtj d}tdd	|| td
S )Nz+Your account has been updated successfully!r%   accountr   staticprofile_pics/rB   account.htmlAccount)r   
image_filer(   r2   )r   r*   Zpicturer,   rI   r   rP   r"   r#   r
   r.   r0   r   r   r   r   methodr   )r(   Zpicture_filerP   r   r   r   rJ   N   s    






rJ   z/account/<user_name>c                 C   sP   t jj| d }|r@|tkr@tdd|j d}tdd||dS ttdS d	S )
N)r"   rK   rL   rM   rN   rO   )r   rP   r2   rJ   zThis user doesn't exist!)	r   r   r6   r7   r   r   rP   r   r   )Z	user_namer2   rP   r   r   r   accountViewd   s    rR   z	/post/newc                  C   s`   t  } |  rPt| jj| jjtd}tj	| tj
  tdd ttdS tddd| dS )N)r   contentauthorz(Your post has been created successfully!r%   r   create_post.htmlzNew Postr   legendr(   )r   r*   r   r   r,   rS   r   r
   r.   r/   r0   r   r   r   r   )r(   postr   r   r   new_posto   s    

 rY   z/post/<int:post_id>c                 C   s   t j| }td|j|dS )Nz	post.html)r   rX   )r   r   
get_or_404r   r   post_idrX   r   r   r   rX      s    rX   z/post/<int:post_id>/updatec                 C   s   t j| }|jtkrtd t }| rf|jj	|_|j
j	|_
tj  tdd ttd|jdS tjdkr|j|j_	|j
|j
_	tddd|d	S )
N  z(Your post has been updated successfully!r%   rX   )r\   r   rU   zUpdate PostrV   )r   r   rZ   rT   r   r   r   r*   r   r,   rS   r
   r.   r0   r   r   r   idr   rQ   r   )r\   rX   r(   r   r   r   update_post   s"    







 r_   z/post/<int:post_id>/deletec                 C   sJ   t j| }|jtkrtd tj| tj	  t
dd ttdS )Nr]   z(Your post has been deleted successfully!r%   r   )r   r   rZ   rT   r   r   r
   r.   deleter0   r   r   r   r[   r   r   r   delete_post   s    


ra   ))r>   r?   ZPILr   flaskr   r   r   r   r   r   	flaskblogr	   r
   r   Zflaskblog.formsr   r   r   r   Zflaskblog.modelsr   r   flask_loginr   r   r   r   router   r   r3   r&   r;   rI   rJ   rR   rY   rX   r_   ra   r   r   r   r   <module>   sD    






