&=dddlZddlZddlZddlZddlZddlZddlZddlmZdZ GddZ Gdde Z Gd d e Z Gd d e Z e d e de de de e dde de de dde dde dde dde ddd ZgdZdZdZdZdS)N) BadMessageic&eZdZddZdZgfdZdS)MuaTc`||_|d|_||_dS)Nr)_commandsplit executableneeds_terminal)selfcommandr s 2/usr/lib/python3/dist-packages/reportbug/mailer.py__init__z Mua.__init__&s+ !--//!,,c~tj|otj|tjS)N)ospathisfileaccessR_OK)r afiles r_check_attachablezMua._check_attachable+s)w~~e$$B5"')B)BBrcT|j}d|vr|dz }|tj|z}|S)N%s %s)rshlexquote)r filename attachmentscmds rget_send_commandzMua.get_send_command.s4m s?? 5LCEK))) rN)T)__name__ __module__ __qualname__rrr!rrrr%sS---- CCC68rrceZdZgfdZdS)Muttcj}d|vr|dz }|tj|z}|r+fd|D}|r|dd|zz }|S)Nrrcg|]H}|tjtj|ISr%)rrrrrabspath.0ar s r z)Mutt.get_send_command..=sZFFF4+A+A!+D+DF5;rwq1122FFFrz -a  )rrrjoin)r rrr atts` rr!zMutt.get_send_command7sm s?? 5LCEK)))  .FFFF'FFFC .v -- rN)r"r#r$r!r%rrr'r'6s+57      rr'ceZdZdZgfdZdS)Gnusc"d|_d|_dS)N emacsclientT)r r )r s rrz Gnus.__init__Es'"rctd}tjdd|}tj||z}d|d|}|S)Nz(progn (load-file "/usr/share/reportbug/reportbug.el") (tfheen-reportbug-insert-template "%s"))z["\\]z\\\g<0>zemacsclient --no-wait --eval z 2>/dev/null || emacs --eval )resubrr)r rrelispr s rr!zGnus.get_send_commandIsNB6*lH== EH,--RWRWRWY^Y^_ rN)r"r#r$rr!r%rrr3r3Ds<###68rr3c.eZdZdZdZgfdZgfdZdS)MailtocFtj|ddS)N/replace)safeerrors)urllibparser)r inss r_uqz Mailto._uqTs|!!#C !BBBrcd}||}|rP|d|}d||}|S)Nz{}={}&)rDr0 splitlinesformat)r hdrmsgparmstrhdcontents r_get_headerparamzMailto._get_headerparamWsU X  4hhrwwr}}7788Gooc733Grc d}|d|dz }|dz }dD]}|||z }|r|dS|r(fd|D}|r|d|z }|d d }|r|d z|z}t|tkrS|dd }|std|dz }|d z|z}t|tkS|}|dS)Nzmailto:rFto?)subjectccbccz?&c g|]\}|dtj|]S)z attach={}&)rrHrDrrr*r+s rr.z)Mailto._msg_to_mailto..msjMMM$2H2H2K2KM,--dhhrwq7I7I.J.JKKMMMrT)decoder>)r@zbody=i0zunreasonable messagez; [ MAILBODY EXCEEDED REASONABLE LENGTH, OUTPUT TRUNCATED ]) rDr0rGrN is_multipartrstrip get_payloadrVlenMAX_ARG_LENGTHr)r rJrmailtorI attstrlistbody try_mailtos` r_msg_to_mailtozMailto._msg_to_mailtoas$((2773t9#7#7#9#9::;;;# + 6 6C d++C55 5FF      '==&& &  .MMMM#.MMMJ ."''*---d++22)2DD  ')DHHTNN:Jj//N22FUF|=$%;<<<WW#g-> j//N22 F}}T"""rct|d5}tj|tjj}dddn #1swxYwYd|j|||}|S)Nr)policyz{} "{}")openemailmessage_from_filerccompat32rHr r`)r rrfpmessager s rr!zMailto.get_send_commands (C  PB-b9NOOOG P P P P P P P P P P P P P P Pt0C0CG[0Y0YZZ s&AA AN)r"r#r$rDrNr`r!r%rrr;r;SsgCCC/1####>68rr;zmutt -Hz neomutt -Hz/usr/bin/mh/comp -use -filezclaws-mail --compose-from-fileF)r z alpine -urlz pine -url evolutionkmailzthunderbird -composezsylpheed --compose xdg-email) muttneomuttmhnmhgnus claws-mailalpinepinerjrk thunderbirdsylpheedrl)rrrjrkrurvcjt|ts|tvrdSdS)z Check if the mua is supported by reportbug Parameters ---------- mua : Mua instance or str mail user agent Returns ------- bool True if supported, otherwise False TF) isinstancerMUAkeysmuas rmua_is_supportedr}s2#sschhjj00t 5rct|ts t|}n#t$rYdSwxYwt j|jrdSdS)z Check if the mua is available on the system Parameters ---------- mua : Mua instance or str mail user agent Returns ------- bool True if available, otherwise False FT)rxrryKeyErrorshutilwhichr r{s r mua_existsrsf c3   c(CC   55  |CN##t 5s % 33cdtjvsdtjvrdSt|tr|j}|t vrdS|dkrdtjvrdSdS)a2 Check if the mua can run in the current environment Some MUAs need a graphical environment and cannot run on a text console. Parameters ---------- mua : Mua instance or str mail user agent Returns ------- bool True if it can run, otherwise False DISPLAYWAYLAND_DISPLAYTFrlMAILER)renvironrxrr MUA_NEEDS_DISPLAYr{s r mua_can_runrsn" RZ BJ..t#sn u khbj88u 4r)re email.policyrr7rrrA exceptionsrr[rr'r3r;ryrr}rrr%rrrs&0  """""""     3        3   22222S222l DOOtL!! #+ , , 3, - - DFF#6uMMMf]## F;   E::: VGE 2 2 260GGG+EBBB E::: &0r