B
    †¡Bi  ã               @   s†  d dl mZ d dlZd dl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m
Z
 d dlmZ d dlmZ d dlmZ d dlZd d	lmZ d dlZd d
lmZ dadadadadZdadddddddgZdd„ Zdd„ Zdd„ Zdd„ Z dd„ Z!dd„ Z"e#dkr‚d Z$yej%d! Z$W n   e&e '¡ ƒ Y nX e&d"e$ƒ e$d#krfeƒ  e ƒ  ne$d$kr~eƒ  e"ƒ  nd!Z(dS )%é    )ÚstorageN)Úcredentials)Údb)Ú	firestore)Úsend_moni_noti)Úcreate_interactive_report)Údate)Úrun_assignment_cycle)Úinit_firebasezfarmbase-b2f7e.appspot.comZsnQYQZqQx3SmVbRztmEqYn5Mkcz2ZKZQ7TZIYXnXN0b07OtrL1hlyYij1ZCeMGYvLXrGR5ZThxZ46iV7vY8sa2ZTCXcp5VIsfhHZrh0nm2VsgBtcGy2ZmFFHQdEtiSbn2hbYQAwwoIdYVi02ZVIVD8q1ZbvQgzU1ci5JOjWvgitl1ZhOV9C5CalZc9mIYCQQxplvgAfkG3c               C   sj   t  d¡ay,tjtddiddatjtddiddaW n   tt 	¡ ƒ Y nX t
jdd	at t¡ad S )
Nzservicekey.jsonZdatabaseURLz,https://farmbase-b2f7e-31c0c.firebaseio.com/Úapp1)Únamez,https://farmbase-b2f7e-60c5a.firebaseio.com/Úapp2zfarmbase-b2f7e)Zproject)r   ZCertificateÚcredÚfirebase_adminZinitialize_appr   r   ÚprintÚ	tracebackÚ
format_excr   ZClientÚstorage_clientr   ÚclientÚdb_firestore© r   r   ú7/home/ankuromar296_gmail_com/init_interactive_report.pyÚinit_session_flow'   s    
r   c             C   sŽ   t  t¡}tj| td d¡ d¡ ¡ }|d kr4d}| d|  d ¡}| 	| d ¡ | d| d d	d
œ}ddi}d}t
j|t |¡|d}d S )N)ÚappZ	MyProfileÚNameÚ zPaidMonitoredFields/z/interactive_report.htmlzHi zw, the new consolidated report for your fields is now ready. Visit the "Reports" section of the app to view the details!z&Your New Consolidated Report is Ready!)ZUIDZnotification_bodyZnotification_titlezContent-typezapplication/jsonzKhttps://us-central1-farmbase-b2f7e.cloudfunctions.net/send_fcm_notification)ÚdataÚheaders)r   Z
get_bucketÚbucket_namer   Ú	referencer   ÚchildÚgetÚblobZupload_from_filenameÚrequestsÚpostÚjsonÚdumps)ÚuidÚbucketZ	user_namer"   Zreq_objr   ÚurlÚresponser   r   r   Úupload_report<   s    

r+   c              C   sR   d} xH| dkrLt  d¡ ddd¡ ¡ }t|ƒ tdd„ |D ƒƒ t d¡ qW d S )	Né   ÚInteractiveReportRequestsÚ	Processedz==r   c             S   s   i | ]}|  ¡ |j“qS r   )Úto_dictÚid)Ú.0Údocr   r   r   ú
<dictcomp>\   s    z#instant_session.<locals>.<dictcomp>é<   )r   Ú
collectionÚwherer!   r   Úprocess_requestsÚtimeÚsleep)ÚaÚreport_requests_objr   r   r   Úinstant_sessionO   s    

r<   c              C   sR   d} xH| dkrLt  d¡ ddd¡ ¡ }t|ƒ tdd„ |D ƒƒ t d¡ qW d	S )
z#
    Runs cycle every 1 minute
    r,   r-   r.   z==r   c             S   s   i | ]}|  ¡ |j“qS r   )r/   r0   )r1   r2   r   r   r   r3   o   s    z$instant_session2.<locals>.<dictcomp>r4   N)r   r5   r6   r!   r   r	   r8   r9   )r:   r;   r   r   r   Úinstant_session2`   s    

r=   c          
   C   sr  yRt dt| ƒƒ tdkr tƒ  x.|  ¡ D ] \}}t|ƒ}t |¡}d|d< | dd¡}d|d< t |ƒ t	j
dtd d¡ |¡ ¡ }|d	kr–d}|s¤|tkr0t d
ƒ d}|d }t|ddd}| ¡ }	W dQ R X tj |¡sðt |¡ t|dƒ}
|
 |	¡ W dQ R X t|ƒ t d¡ |¡ |¡ q,t dƒ g }t	j
dtd d¡ |¡jdd}|dkr€t d¡ |¡ |¡ P |dkr¾x$| ¡ D ]\}}| t|ƒ¡ q”W tt|ƒƒ}nt|ƒ}t	j
dtd d¡ |¡ |¡ d¡ d¡jdd}|dk	r,t |ƒ t |ƒ yt|ƒ W n   t t ¡ ƒ Y nX t d¡ |¡ |¡ q,W W n   t t ¡ ƒ Y nX dS )zK
    :param report_requests_obj: (dict) {iod: report_request_obj, ...}
    zstarting processingNr,   r.   ZFieldIDZSalesAssociatesPromo)r   Z	AdminUIDs)ZmmC6X2DpreSxO6580MtUKhyaVgq1Z2k7JiD9RyISioSMvA4Vf5xuOkcs1ZMp9nnxRJQsOVH6NIc31VJWPr74L2Zadminzdemo_report_jeevanai.htmlz/interactive_report.htmlÚrzutf-8)ÚencodingÚwr-   ÚnormalÚPaidMonitoredFieldsÚPMFT)ZshallowZHealthZndvi)r   Úlenr   r   ÚitemsÚstrÚcopyÚdeepcopyr!   r   r   r   r    ÚdisabledUIDsÚopenÚreadÚosÚpathÚexistsÚmakedirsÚwriter+   r5   ZdocumentÚsetÚappendÚintÚmaxr   r   r   )r;   r'   Ztemp_main_obj2Ztemp_main_objZlatest_fieldZis_adminZtemplate_file_nameZoutput_file_nameÚfileZcontent_strÚfZ
fields_arrZfield_list_objZfield_idÚvalZsensed_days_objr   r   r   r7   s   s€    






r7   c              C   st   xnt jdtd d¡ dd¡} xB|  ¡ D ]6\}}|tkr(yt|ƒ W q(   tt	 
¡ ƒ Y q(X q(W t d¡ qW d S )NrB   )r   rC   FTi€— )r   r   r   r    r!   rE   rI   r   r   r   r   r8   r9   )Zuid_listr'   rW   r   r   r   Údaily_sessionÙ   s    rX   Ú__main__éÿÿÿÿr,   Úsession_typeÚ0Ú1))Zgoogle.cloudr   r8   r   r   r   r   Úsysr%   r#   r   r   Z)create_interactive_jeevanai_report_serverr   Údatetimer   rL   Úinit_interactive_report2r	   rG   Úutilsr
   r   r   r   r   r   r   rI   r   r+   r<   r=   r7   rX   Ú__name__r[   Úargvr   r   r:   r   r   r   r   Ú<module>   sd   f



