He%ddlZddlZddlZddlZddlmZddlmZmZddlm Z ddl m Z ddl m Z ddlmZmZddlmZmZmZdd lmZdd lmZdd lmZgd d dgd dgdZGddZeGddZeGddZeGddZeGddZ dS)N) dataclass) timedeltadatetime)Header) MIMEMultipart)MIMEText) PrettyTableALL)WMT_TEMPLATES_DIR&LICENSE_EXPIRED_FAREWELL_LETTER_MARKER JWT_TOKEN)WmtEmailException)clemail) MailHelper)All SuccessfulFailedUndoneAverage time (ms)URLz Error codesr)summary_report error_reportduration_reportceZdZdZdZdZdS)SupportedNotificationTypesalertreportfarewellN)__name__ __module__ __qualname__ALERTREPORTFAREWELLL/opt/cloudlinux/venv/lib/python3.11/site-packages/wmt/common/notification.pyrr#s E FHHHr&rc.eZdZUeed<eed<eed<dS)Emailsubject text_sample html_sampleNrr r!str__annotations__r%r&r'r)r))s3 LLLr&r)c$eZdZUeed<eed<dS) EmailReport text_option html_optionNr-r%r&r'r1r10s*r&r1ceZdZUeed<eed<dZeed<dZeed<dZeed<dZ eed<d Z eed <e d Z d Z d ZdS) EmailTemplate target_mail from_mailNrrr Administrator target_nameen_USlocalectjtd}t |d5}t j|d}dddn #1swxYwY|S)Nzlogo.pngrbutf-8) ospathjoinr openbase64 b64encodereaddecode) logo_pathlogologo_img_encodeds r' _get_logozEmailTemplate._get_logoBsGLL!2J?? )T " " Md%/ <<CCGLL  M M M M M M M M M M M M M M Ms:A<<BBc|j|d}|tjtjfvr!|d|jji|tjkr,||jj|jjd|S)zI Convert to txt template keys see wmt_notify.txt )TONAMEDATE ERROR_REPORT)SUMMARY_REPORTDURATION_REPORT) r9rr#r"updaterr2rrselfdate notify_typetemplates r'to_text_templatezEmailTemplate.to_text_templateIs &   5<>X>^_ _ _ OO 1 =    4; ; ; OO"&"5"A#'#7#C   r&c.|j||d}|tjtjfvr!|d|jji|tjkr,||jj|j jd|S)zK Convert to html template keys see wmt_notify.html )rLrMLOGOERROR_HTML_REPORT)SUMMARY_HTML_REPORTDURATION_HTML_REPORT) r9rJrr#r"rQrr3rrrRs r'to_html_templatezEmailTemplate.to_html_template]s &NN$$   5<>X>^_ _ _ OO#T%6%B    4; ; ; OO'+':'F(,(<(H   r&)rr r!r.r/rr1rrr9r; staticmethodrJrWr]r%r&r'r5r56sNNN"&NK&&& $L+$$$#'O['''&K&&&FC  \ (r&r5ceZdZUeed<eed<eed<eed<edefdZedZ dZ d Z ed Z de fd Zd Zdefd ZdefdZdefdZdS)Notifier target_email from_emailrnotification_typereturnc|jtjkr7tjtjt dz dS|jtjkr&tjtjdS|jtjkrtj tsdStj tj tz }t|dz}|dkrt!|dSt|d z}t!|d St#d |j) N)daysz%Y-%m-%dz%Y-%m-%d %H:%M:%SiQrz day(s) agoiz hour(s) agounexpected notifier type: )rcrr#rstrftimenowrr"r$r?r@existsr timegetmtimeintr.NotImplementedError)rSsecondsrghourss r'periodzNotifier.periodzs&  !%?%F F F$X\^^iQ6G6G6G%GTT T  #'A'G G G$X\^^5HII I  #'A'J J J7>>),, rikkBG$4$4Y$?$??Gw9-..Daxxd))0000GtO,,e**2222%&[4CY&[&[\\ \r&cTttddS)Nw)rBr closer%r&r'create_farewell_letter_markerz&Notifier.create_farewell_letter_markers% 3S99??AAAAAr&ct}|}||}||j|jg||jtjkr| dSdSN) r_generate_template_data_generate_final_messagesendmailr7r6rcrr$rw)rS mail_managerrVmessages r'notifyzNotifier.notifys!|| //11..x88h083G2H'RRR  !%?%H H H  . . 0 0 0 0 0 I Hr&cj|jtjkrJtjt dtjt dfS|jtjkrJtjt dtjt dfS|jtjkrJtjt dtjt dfStd|j)Nzwmt_notify_solo.txtzwmt_notify_solo.htmlz wmt_alert.txtzwmt_alert.htmlzwmt_farewell_solo.txtzwmt_farewell_solo.htmlri) rcrr#r?r@rAr r"r$rp)rSs r'_get_templateszNotifier._get_templatess  !%?%F F F7<< 13HII7<< 13IJJK K  #'A'G G G7<< 1?CC7<< 13CDDE E  #'A'J J J7<< 13JKK7<< 13KLLM M&&[4CY&[&[\\ \r&ct|Sry)HEADERS_REPORT_MAPPING)sections r'_get_table_headerszNotifier._get_table_headerss %g..r&c Zd|j}|d|}|d|}|r|n|}|r#|ddttn|}t |t j|ddS) NzNo domains for texthtmlT)formatborderhrulesvrulesztext-align: centerztext-align: left)r2r3) rs _get_table get_stringget_html_stringr r1runescapereplace)rSrno_domains_message text_table html_tabletext_final_strhtml_final_strs r'_generate_tableszNotifier._generate_tablessV..000DVDNf334;?;>;>4@@@Tf & n&<&<=QSe&f&fgg    r&c|j|}|sdSt||}d|_t |t s|g}|D]*}|||+|S)Nl)rr ralign isinstancelistadd_row to_template)rS alternativer table_datatablerows r'rzNotifier._get_tables[)  4D33G<<== *d++ &$J 8 8C MM#//+66 7 7 7 7 r&cp|j|jd}|jtjtjfvr*|d|di|jtjkr>||d|ddtdi|S)N)r6r7rrr)rrr%) rarbrcrr#r"rQrr5)rSrVs r'rzz Notifier._generate_template_datas,    !&@&GIcIi%j j j OO 5 5n E E     !%?%F F F OO"&"7"78H"I"I#'#8#89J#K#K   ((x(((r&c,|\}}tj|rtj|st d|d|d |j}d|jd|}|jtjkrd|j d|}|jtj kr d|j}tj ||||j| \}}tj ||||j| \}}n3#tjjj$r} t d | d} ~ wwxYwt'||| S) Nz unable to find email templates: z, z. Try to reinstall packagezWeb Monitoring Tool z for [z] z1[EXPIRED CloudLinux LICENSE] Web Monitoring Tool ) templ_datar*zcannot generate email, reason: )r*r+r,)rr?r@rlrrsrcrr"upperr$rClEmailgenerate_mail_jinja2rWr]jinja2 exceptions TemplateErrorr)) rSr text_template html_templatersr* text_body_ html_bodyes r'_generate_emailzNotifier._generate_emails'+':':'<'<$ }w~~m,, @BGNN=4Q4Q @#%?}%?%?Xe%?%?%?@@ @ K[FRT-CRR&RRG%)C)IIIId4::<<IIII%)C)LLLfdNdff!(!E!E&*A*A&$J`*a*a"F"!"! GY#???&*A*A&$J`*a*a@!!LAyy~(6 K K K#$Ia$I$IJJ J KW)SSSSs-C#EF*E<<F template_datac||}|jddd}|jddd}t d}|t|dd|t|ddt|j d|d<|j |d<|j |d<|S) Nr>xmlcharrefreplacerplainrSubjectFromTo) rr+encoderFr,rattachrrr*r7r6)rSremailrrr~s r'r{z Notifier._generate_final_messages$$]33%,,W6IJJQQRYZZ %,,W6IJJQQRYZZ  ..x 7G<<===x 67;;<<<#EM7;;BBDD '1%1 r&N)rr r!r.r/dictpropertyrsr^rwrrrr1rrr5rzrr{r%r&r'r`r`ssDOOO LLL ]]]]X]$BB\B111 ] ] ]//\/  ;        ))))) TmTTTT4 ]      r&r`)!rr?rCrm dataclassesrrr email.headerremail.mime.multipartremail.mime.textr prettytabler r wmt.common.constr r r wmt.common.exceptionsrclcommonrclcommon.mail_helperrrrr)r1r5r`r%r&r'rs8 !!!!!!((((((((......$$$$$$((((((((aaaaaaaaaa333333++++++,,, "$+-          9999999 9x FFFFFFF FFFr&