U
    X?8_                     @   s^  d dl mZmZmZmZmZmZ d dlmZ d dlm	Z	 d dl
Z
d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZ d dlZddlmZ d dlmZ d	d
 ZedddddgZedede_zejej W n   eje Y nX ddie_ejedgdZ edddddZdd Z!e Z"e"#de dedd Z$e"#d e d!ed"d# Z%e"#d$e d%ed&d' Z&e"#d(e d)ed*d+ Z'e"#d,e d)ed-d. Z(e"#d/e d0ed1d2 Z)e"#d3e d4ed5d6 Z*e"#d7e d8ed9d: Z+e"#d;e d<ed=d> Z,e"j#d?d@dAdBd@ Z-dCe"_.dS )D    )jinja2_viewstatic_fileJinja2TemplateBottlerequesturl)datetime)wsgiN)ceil   )Database)OrderedDictc                    s    fdd}|S )Nc                     s,    | |}t dtjtjdtjf |S )NzFINSERT INTO viewers (ip, user_agent, request_url) VALUES (%s, %s, %s);HTTP_USER_AGENT)databaseexecuter   remote_addrenvirongetpath)argskwargsdatafn /opt/wsgi/harry/harry.pynewFn   s
    
zcountView.<locals>.newFnr   )r   r   r   r   r   	countView   s    r   )ZStartpagina/)ZUitgaven	/uitgaven)Z	Artikelen
/artikelen)z)<span id='colorshift'>Solliciteren</span>/doemee)zOver de Harry/overHarry)r   Z	site_nameZ
navigation
autoescapeT	templates)template_lookupZharryZySStB5hFaaNmLhKwXH	localhost)userpasswordr   hostc                 C   s"   |  d}|dr|  d}|S )Nz%d %B %Y, %H:%Mz00:00z%d %B %Y)strftimeendswith)dateZfmt_dater   r   r   reformat_date/   s    


r.   r   z
index.htmlc               	   C   s~   t d } | D ]}t|d |d< qdd | D }dd | D |dd   }tt|d }d||d	 |d
 tt|d
dS )NS
        SELECT * FROM select_articles() ORDER BY date DESC, page_number DESC;
    r-   c                 S   s   g | ]}|d  r|qS Zfeaturedr   .0resultr   r   r   
<listcomp>C   s      zindex.<locals>.<listcomp>c                 S   s   g | ]}|d  s|qS r0   r   r1   r   r   r   r4   D   s         	   r#   r   r   )titleresultsZfresult1Zfresult2	enumeraterangenpagespage)r   r   fetchallr.   r
   lenr9   r:   )r8   r3   Zfeatured_resultsZnormal_resultsnPagesr   r   r   index8   s     
   r@   z/artikel/<id:int>zartikel.htmlc              
   C   s   t d|  }|d }t|d }t|d }d|d }d|d }|d pXd	}d
d|d  d }t| t d|f }g }	|D ]0}
|
d D ]"}|d |kr||	kr|	| qqt	
|	 d| |||||||	d d dS )NzW
        SELECT * FROM select_articles() WHERE id = %s ORDER BY date, page_number;
    r7   r-   bodyz, authors
categoriesZ	image_urlz$https://www.w3.org/Icons/w3cmem4.gif{,}z5SELECT * FROM articles_per_cat() WHERE name =any(%s);articles_jsonz
Harry - %s   )r7   Zarticle_titler-   rA   rB   rC   banner_imagesuggestions)r   r   fetchoner.   
commonmarkjoinprintr=   appendrandomshuffle)idr3   r7   r-   rA   rB   rC   rI   Zcategories_as_pgarrayrJ   rowitemr   r   r   artikelP   s6    

   
rU   r   zuitgaven.htmlc                   C   s   ddiS )Nr7   zHarry - Uitgavenr   r   r   r   r   uitgavenr   s    rV   r    zartikelen.htmlc                   C   s   t dS )Nr   )artikelen_pager   r   r   r   	artikelenx   s    rX   z/artikelen/<page:int>c                 C   s~   t d }|D ]}t|d |d< q| d d }| d }tt|d }dd t d D }d||| t||| d	S )
Nr/   r-   r   r6   c                 S   s   g | ]}|d  dk	r|qS rG   Nr   r2   ir   r   r   r4      s    z"artikelen_page.<locals>.<listcomp> SELECT * FROM articles_per_cat()zHarry - Artikelen)r7   r8   r9   rC   r;   r<   )r   r   r=   r.   r
   r>   r9   )r<   r8   r3   beginendr?   rC   r   r   r   rW   ~   s      rW   r!   zsolliciteren.htmlc                   C   s   ddiS )Nr7   zHarry - Solliciterenr   r   r   r   r   solliciteren   s    r_   r"   z	over.htmlc                   C   s   ddiS )Nr7   zHarry - Over de Harryr   r   r   r   r   over   s    r`   z/uitgaven/<id:int>zviewer.htmlc                 C   s&   t jd|  stdddS d| dS )Nzstatic/harry-druk-%d.pdfr   i3  )codezHarry - Jaargang 2015-2016)r7   rR   )osr   existsredirect)rR   r   r   r   view_edition   s    re   z/categorie/<id:int>zcategorie.htmlc                 C   s8   t d|  }dd t d D }dt|t|dS )Nz.SELECT * FROM articles_per_cat() WHERE id = %sc                 S   s   g | ]}|d  dk	r|qS rY   r   rZ   r   r   r   r4      s    z!view_category.<locals>.<listcomp>r\   zHarry - Categorie)r7   reprcategoryr9   rC   )r   r   rK   r=   rf   r9   )rR   rg   rC   r   r   r   view_category   s     rh   z/static/:path#.+#static)namec                 C   s   t | ddS )Nri   )root)r   )r   r   r   r   ri      s    F)/bottler   r   r   r   r   r   r   cherootr	   rb   Zpsycopg2jsonrL   	tracebackrP   	functoolsmathr
   localer   r   collectionsr   r   Zmenudefaultsupdate__builtins____dict__settingspartialviewr.   approuter@   rU   rV   rX   rW   r_   r`   re   rh   ri   catchallr   r   r   r   <module>   s    



