
    ݦi*                         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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 d dlmZmZmZ dgZd ZddZy)    N)timezone)	getConfig)Request)Credentials)InstalledAppFlow)build)encoders)MIMEText)MIMEBase)MIMEMultipart)BrandingCompanyEmail_templatez*https://www.googleapis.com/auth/gmail.sendc                 Z   	 t               d   d   }t               d   }| |d    }| |d    }|dz   }t        |dd	      5 }|j                         }d d d        j                  d
| d         j                  d| d         j                  d| d         j                  d| d         }d }t        j
                  j                  |      rt        j                  |t              }|r|j                  s|r2|j                  r&|j                  r|j                  t                      n0t        j                   t"        t              }	|	j%                  d      }t        |d      5 }|j'                  |j)                                d d d        t+        dd|      }
t-        d      }| d   |d<   d|d    d|d<   d|d<   t/        |d       }|j1                  |       t/        d!d"      }t3        j4                  |       |j7                  d#d!       t9        j:                  |j=                               j?                         }d$|i}|
jA                         jC                         jE                  d%|&      jG                          y # 1 sw Y   .xY w# 1 sw Y   xY w# tH        $ r} d }~ww xY w)'NDIR	root_pathSEND_EMAIL_CONFIGcredstokenz4/app_api/functions/email_templates/registration.htmlrzutf-8)encodingz[user_name]namez[user_email]emailz[user_password]passwordz[login_url]urlr   portwgmailv1credentialsmixedTozHirelines <sender>Fromz*Welcome to Hirelines! Your Account DetailsSubjecthtml plainzContent-Transfer-EncodingrawmeuserIdbody)%r   openreadreplaceospathexistsr   from_authorized_user_fileSCOPESvalidexpiredrefresh_tokenrefreshr   r   from_client_secrets_filecredrun_local_serverwriteto_jsonr   r   r
   attachr	   encode_base64
add_headerbase64urlsafe_b64encodeas_bytesdecodeusersmessagessendexecute	Exception)	mail_datar   email_configr   r   template_file_pathtemplate_fileemail_template
email_bodyflowservicemessage	emailbodyeml_atchencoded_messagecreate_draft_request_bodyes                    6/home/hirelines/hirelines/app_api/functions/mailing.pysendRegistrainMailr]      s   8['4	 {#67+l7345;|G456'*`` $c7; 	2}*//1N	2 &--mIf<MNw~i.@Aw0:1FGw}Yu-=> 	 77>>% 99%HEEKK5+>+>gi('@@&"--1-5eS! -UEMMO,- 59(!'*'X(>'?qAI	Z0	y!B(x(7< 2273C3C3EFMMO ?%
! 	  "''t9R'S[[]Y	2 	2,- -0  sJ   AJ JDJ $ JC<J JJ JJ 	J*$J%%J*c                    	 d}t               d   d   }t               d   }	| |	d    }
| |	d    }d }t        j                  j                  |      rt	        j
                  |t              }|r|j                  s|r2|j                  r&|j                  r|j                  t                      n,t        j                  |
t              }|j                  d      }t        |d	      5 }|j!                  |j#                                d d d        t%        d
d|      }t&        j(                  j+                  |       j-                         }t.        j(                  j1                  |       }|r|}n t&        j(                  j1                  d      }d}|r#t2        j(                  j+                  || |      }n!t2        j(                  j+                  ||       }|rG|r#t2        j(                  j1                  || |      }nht2        j(                  j1                  ||       }nF|r#t2        j(                  j1                  |d|      }n!t2        j(                  j1                  |d      }|j4                  r|j4                  n|j6                  }|dk(  rF|j9                  d      D cg c]  }|j;                          }}|d   }dj=                  |dd        }n|}|	d   }|}t?        d      }|r|j@                  nd|d<   | d| d|d<   ||d<   |dk(  r|d<   |r|jB                  nd}|r|jD                  nd}t.        j(                  j+                  |       j-                         } |r*|jG                         D ]  \  }}|jI                  ||      } |r|jJ                  nd}tM        jN                  d|      } | r| jQ                  d      nd }!|jR                  r|jR                  nd}"i }#tM        jT                  d      }$|$jW                  |"      D ](  } | jY                         \  }%}&|&j;                         |#|%<   * |jZ                  r|jZ                  nd}'|jI                  d |!      jI                  d!|j\                  rt_        |j\                        nd      jI                  d"|      jI                  d#|'      jI                  d$|#j1                  d%      r|#j1                  d%      nd&      jI                  d'|#j1                  d(      r|#j1                  d(      nd&      jI                  d)|#j1                  d*      r|#j1                  d*      nd&      jI                  d+|#j1                  d,      r|#j1                  d,      nd&      }d-| d.}(ta        |(d/      })|jc                  |)       ||}*|*je                  tg        jh                  d0            }*|*jI                  tg        jh                  d0      1      }+ti        jj                  d23      },|*|,z   jI                  tg        jh                  d0      1      }-ti        jl                         jo                  d4      }.|+jo                  d4      }/|-jo                  d4      }0d5|z   }1d6| jp                  z   d7z   |z   d8z   }2d9|z   d:z   |z   d;z   |z   |z   }3d<|z   d=z   |z   d>z   |z   d?z   |z   }4|4d@|z   dAz   |z   z  }4|4dB|z   dCz   |z   dDz   |z   dEz   |z   dFz   |z   dGz   |z   dHz   |z   z  }4|4dI|z   dJz   |z   dKz   |/z   |z   dLz   |0z   |z   dMz   |.z   |z   |2z   |z   z  }4|4dN|.z   |z   z  }4|4|3dOz   |.z   |z   |1z   dPz   |.z   |z   dQz   |z   dRz   |z   dSz   |z   z  }4|4dT|z   dUz   |z   dVz   |z   dWz   |z   z  }4dX}5ta        |4dY      }6t?        dZ      }7|jc                  |7       |7jc                  |6       ts        jt                  |jw                               jy                         }8d[|8i}9|j{                         j}                         j                  d\|9]      j                          y # 1 sw Y   xY wc c}w # t        $ r}:t        t_        |:              d }:~:ww xY w)^Nz
r   r   r   r   r   r   r   r   r   r    r!   )	companyid)idr*   )event
company_id
paper_type)ra   rb   Call_Schedule,z,    r%   r#   r(   z <r&   r'   r$   Ccz--brand-primary-color:\s*(.*?);z6(Linkedin|Facebook|Youtube|Twitter)\s*:\s*(.*?)(?:,|$)z[clr_primary]z[logo]z	[heading]z[company_website]z
[Linkedin]Linkedin#z
[Facebook]Facebookz	[Youtube]Youtubez	[Twitter]Twitterz
            z	
        r)   zAsia/Kolkata)tzinfo   )minutesz%Y%m%dT%H%M%SzDESCRIPTION: exam invitationzORGANIZER;CN=z:mailto:firstz @gmail.comzKATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;RSVP=TRUEz ;CN=z mailto:zBEGIN:VCALENDARzPRODID:pyICSParserzVERSION:2.0zCALSCALE:GREGORIANzBEGIN:VTIMEZONEzTZID:Asia/KolkatazBEGIN:STANDARDzDTSTART:19700101T000000zTZOFFSETFROM:+0530zTZOFFSETTO:+0530z
TZNAME:ISTzEND:STANDARDzEND:VTIMEZONEzMETHOD:REQUESTzBEGIN:VEVENTzDTSTART:zDTEND:zDTSTAMP:zUID:FIXMEUIDzCREATED:zLAST-MODIFIED:z	LOCATION:z
SEQUENCE:0zSTATUS:CONFIRMEDzSUMMARY:Exam invitation zTRANSP:OPAQUEz
END:VEVENTzEND:VCALENDARz[
.ics file will be visible in the invite of outlook and outlook.com but not google calendarzcalendar;method=REQUESTalternativer,   r-   r.   )Cr   r4   r5   r6   r   r7   r8   r9   r:   r;   r<   r   r   r=   r?   r1   r@   rA   r   r   objectsfilterlastr   getr   sender_labelr   splitstripjoinr   email_subjectrS   template_headingitemsr3   contentresearchgroupsociallinkscompilefinditergroupswebsitelogourlstrr
   rB   
astimezonepytzr   	timedeltanowstrftimecompany_namerE   rF   rG   rH   rI   rJ   rK   rL   rM   print);companyrc   participant_paper_idra   replacementsto_emailcalender_detailsCRLFr   rO   
creds_pathr   r   rT   token1rU   brandcompany_objrR   checkru   r   
email_listcc_recipientssender_emailreceiver_emailrV   rS   rz   placeholdervaluecssmatchbrand_primary_colorsocial_linksocial_linkssocial_links_patternplatformr   company_websitehtml_contentrW   cal_timeexamdtstartdur	examdtenddtstampdtstartdtenddescription	organizerattendeeicaleml_bodypart_calmsgAlternativerY   rZ   r[   s;                                                              r\   	sendEmailr   U   s	   i['4	 {#67!{<#8"9:
+l734577>>% 99%HEEKK5+>+>gi('@@VT--1-5eS! .VU]]_-. 59  '''':??Aoo))W)5E $$((1(5E"**11']g1hE"**11'1RE!/!7!7!;!;%T[gq!;!r!/!7!7!;!;%T[!;!\!/!7!7!;!;%TUak!;!l!/!7!7!;!;%TU!;!V7E7R7R33XcXhXhO#5=^^C5HIE%++-IJI!!}H IIjn5MH#H- "(=K^99QS	)N"\N!<&O#)GDM2@^..b
>L>::RT//((G(499;&2&8&8&: D"U'//UC
D  %emm"		<cB05ekk!n4+0+<+<e''"!zz*cd)22;? 	1E!LLNMHc%(YY[L"	1 2=1D1D+--"go.ABghU]]s5=='9PRSgk*:;g1/Bgl<K[K[\fKg<+;+;J+Gmpqgl<K[K[\fKg<+;+;J+GmpqgkIYIYZcId,*:*:9*EjmngkIYIYZcId,*:*:9*Ejmn 	L 	 \62	y!''H**4==+HIH"**$--2O*PK$$R0C!C00n8U0VIlln--o>G!**?;G&&7E84?K')=)==NQUUXeeIdgkknuu  yG  G  JT  T  We  e  hl  lH$t+.BBTIMY\``cwwz~~D %,/BBTIID$t+.GG$NQeehll  pB  B  EI  I  LX  X  [_  _  bp  p  sw  w  zI  I  LP  P  PD$t+n<tCjPSZZ]aadllottw{{  I  I  LS  S  VZ  Z  ]f  f  im  m  mDNW,t33DHz)G3d:[HK[[^eehllozz  ~B  B  EQ  Q  TX  X  [m  m  pt  t  tD.5G$NQ]]`ddgvvy}}}DuH&?@H*=9NNN>*!!(+$ !2273C3C3EFMMO ?%
! 	  "''t:S'T\\^i. .F Jf  c!fs>   C&`5 ( `#F`5 $`0;U'`5 #`-(`5 5	a>aa)N) r4   rE   r}   r   	mimetypesdjango.utilsr   hirelines.metadatar   google.auth.transport.requestsr   google.oauth2.credentialsr   google_auth_oauthlib.flowr   googleapiclient.discoveryr   r   r	   email.mime.textr
   email.mime.baser   email.mime.multipartr   app_api.modelsr   r   r   r8   r]   r        r\   <module>r      sN    	  	   ! ( 2 1 6 +  $ $ . < < 7	7:|jr   