B
    q_h                 @   s  d dl Z d dlZd dlZd dlZd dlmZmZmZmZm	Z	m
Z
mZ eeZyejd ejd< W n   ed Y nX dZeddd Zed	d
d Zeddd Zeddd Zeddd Zeddd Zeddd Zeddd Zeddd  Zed!d"d# Zed$d%d& Zd'd( Zed)d*d+ Zed,d-d. Z ed/d0d1 Z!ed2d3d4 Z"e#d5d6d7 Z$d8d9 Z%d:d; Z&d<d= Z'ed>kred? ej(d@dAdBdC dS )D    N)Flaskrender_templaterequestredirectResponse	send_fileabortZGA_TRACKING_IDzTracking ID not setz=https://drive.google.com/open?id=0B2BrrDjIiyvmcWp5T194cy00UmM/c              C   s.   t tj tddd jd } td| dS )Ni        im  z	home.html)age)intdatetimedatetodaydaysr   )r    r   #/var/www/rivanova.org/public/app.pyindex   s    "r   z	/timelinec               C   s   t dtdS )Nztimeline.html)resume_pdf_link)r   r   r   r   r   r   timeline   s    r   z/readingc              C   s   t d} td| dS )Nzstatic/files/reading.jsonzreading.html)data)get_static_jsonr   )r   r   r   r   reading   s    r   z	/projectsc                 sN   t dd } | jtdd tjd  d k	r@ fdd| D } td|  d	S )
Nzstatic/projects/projects.jsonprojectsT)keyreversetagsc                s*   g | ]"}   d d |d D kr|qS )c             S   s   g | ]}|  qS r   )lower).0Zproject_tagr   r   r   
<listcomp>+   s    z'projects.<locals>.<listcomp>.<listcomp>r   )r   )r   project)tagr   r   r    +   s    zprojects.<locals>.<listcomp>zprojects.html)r   r"   )r   sortorder_projects_by_weightr   argsgetr   )r   r   )r"   r   r   $   s    r   z/lifehacks/privacy-policyc               C   s   t dS )Nzlifehacks-privacy-policy.html)r   r   r   r   r   lifehacks_privacy_policy0   s    r'   z/dawebmail/privacy-policyc               C   s   t dS )Nzdawebmail-privacy-policy.html)r   r   r   r   r   dawebmail_privacy_policy5   s    r(   z/lifehacks/terms-and-conditionsc               C   s   t dS )Nz#lifehacks-terms-and-conditions.html)r   r   r   r   r   lifehacks_disclaimer:   s    r)   z/lifehacks/disclaimerc               C   s   t dS )Nzlifehacks-disclaimer.html)r   r   r   r   r   lifehacks_terms_and_conditions?   s    r*   z/mit-media-lab-applicationc               C   s   t dS )Nzmit-media-lab-application.html)r   r   r   r   r   media_lab_applicationD   s    r+   z/blogc               C   s   t dddS )Nz!http://bhardwajrish.blogspot.com/i.  )code)r   r   r   r   r   blogI   s    r-   z/experiencesc              C   s(   t dd } | jtdd td| d dS )Nz#static/experiences/experiences.jsonexperiencesT)r   r   zprojects.html)r   r"   )r   r#   r$   r   )r.   r   r   r   r.   N   s    r.   c             C   s&   yt | d S  tk
r    dS X d S )Nweightr   )r   KeyError)r   r   r   r   r$   U   s    r$   z/projects/<title>c                s   t dd }t dd }t fdd|D d }t fdd|D d }|d krd|d krdtdd	fS |d k	rz|d k	rz|}n|d k	r|}n|}d
|kr|d k	rdnd}tjtd||d |d f ddd |d
< td|dS )Nzstatic/projects/projects.jsonr   z#static/experiences/experiences.jsonr.   c             3   s   | ]}|d   kr|V  qdS )linkNr   )r   p)titler   r   	<genexpr>a   s    zproject.<locals>.<genexpr>c             3   s   | ]}|d   kr|V  qdS )r1   Nr   )r   r2   )r3   r   r   r4   b   s    z404.htmli  descriptionzstatic/%s/%s/%s.htmlr1   rzutf-8)encodingzproject.html)r!   )r   nextr   ioopenget_static_fileread)r3   r   r.   Z
in_projectZin_expselectedpathr   )r3   r   r!   \   s     (r!   z/podcasts/<filename>c             C   s$   |  drttd|  S tdS )Nz.mp3zstatic/podcasts/i  )endswithr   r;   r   )filenamer   r   r   podcastv   s    
rA   z/podcasts/index.xmlc               C   s   t t  ddS )Nzapplication/rss+xml)mimetype)r   podcast_feed_generatorZrss_strr   r   r   r   podcast_rss}   s    rD   z	/podcastsc              C   s   t d} td| dS )Nzstatic/podcasts/podcasts.jsonzpodcasts.html)podcasts)r   r   )rE   r   r   r   rE      s    rE   i  c             C   s   t ddfS )Nz404.htmli  )r   )er   r   r   page_not_found   s    rG   c             C   s"   t jt jt}t j|| S )N)osr>   realpathdirname__file__join)r>   Z	site_rootr   r   r   r;      s    r;   c             C   s   t tt| S )N)jsonloadr:   r;   )r>   r   r   r   r      s    r   c              C   s   t  } | d | d | jdd | ddd | d | d	 | d
 td}xP|D ]H}| 	 }||d  ||d  ||d  |
|d dd qbW | S )z3This should be optimized and constructed only once.z
rish.spacezRish's Spacezhttp://www.rish.space)ZhrefzRish Bhardwajzrishextra@gmail.com)nameemailz!Things that make my mind go bing!enzAMy corner of the Great WWW where I talk about things I relate to.zstatic/podcasts/podcasts.jsonurlr3   r5   r   z
audio/mpeg)ZFeedGeneratoridr3   r1   ZauthorZsubtitlelanguager5   r   	add_entryZ	enclosure)fgrE   rA   Zfer   r   r   rC      s     





rC   __main__zrunning py appz	127.0.0.1i  T)hostportdebug))r   r9   rM   rH   flaskr   r   r   r   r   r   r   __name__appenvironconfigprintr   router   r   r   r   r'   r(   r)   r*   r+   r-   r.   r$   r!   rA   rD   rE   errorhandlerrG   r;   r   rC   runr   r   r   r   <module>   sB   $
