
    z#g                     f   S SK r S SKr S SKrS SKrS SKrS SKrS SKrSSKJr  Sr	 " S S5      r
 " S S\
5      r " S	 S
\
5      r " S S\
5      r\" S5      \" S5      \
" SSS9\
" SSS9\" 5       \
" SSS9\" S5      \" S5      \" SSS9\" SSS9\" SSS9\" SSS9\" SSS9S.r/ SQrS rS  rS! rg)"    N   )
BadMessagei c                   6    \ rS rSrSSS.S jrS r/ 4S jrSrg	)
Mua%   T )needs_terminalnamec                    Xl         UR                  5       S   U l        X l        U=(       d    U R                  U l        g )Nr   )_commandsplit
executabler	   r
   )selfcommandr	   r
   s       2/usr/lib/python3/dist-packages/reportbug/mailer.py__init__Mua.__init__&   s/    !--/!,,+DOO	    c                     [         R                  R                  U5      =(       a%    [         R                  " U[         R                  5      $ )N)ospathisfileaccessR_OK)r   afiles     r   _check_attachableMua._check_attachable,   s)    ww~~e$B5"'')BBr   c                 f    U R                   nSU;  a  US-  nU[        R                  " U5      -  nU$ )N%s %s)r   shlexquote)r   filenameattachmentscmds       r   get_send_commandMua.get_send_command/   s3    mms?5LCEKK))
r   )r   r   r
   r	   N)__name__
__module____qualname____firstlineno__r   r   r&   __static_attributes__ r   r   r   r   %   s    26R ,C 68 r   r   c                        \ rS rSr/ 4S jrSrg)Mutt7   c                 n   U R                   nSU;  a  US-  nU[        R                  " U5      -  nU(       ax  U Vs/ s HM  o@R                  U5      (       d  M  [        R                  " [        R
                  R                  U5      5      PMO     nnU(       a  USSR                  U5      -   -  nU$ s  snf )Nr   r    z -a  )r   r!   r"   r   r   r   abspathjoin)r   r#   r$   r%   aatts         r   r&   Mutt.get_send_command8   s    mms?5LCEKK))'F'q+A+A!+D 35;;rwwq12'  Fv--
	Fs   B27B2r-   N)r(   r)   r*   r+   r&   r,   r-   r   r   r/   r/   7   s
    57 
r   r/   c                   &    \ rS rSrS r/ 4S jrSrg)GnusE   c                 .    SU l         SU l        SU l        g )NemacsclientTr9   )r   r	   r
   )r   s    r   r   Gnus.__init__F   s    '"	r   c                 ~    Sn[         R                  " SSU5      n[        R                  " X1-  5      nSU< SU< 3nU$ )Nz(progn
                      (load-file "/usr/share/reportbug/reportbug.el")
                      (tfheen-reportbug-insert-template "%s"))z["\\]z\\\g<0>zemacsclient --no-wait --eval z 2>/dev/null || emacs --eval )resubr!   r"   )r   r#   r$   elispr%   s        r   r&   Gnus.get_send_commandK   s?    B 66*lH=E,-RWY^_
r   )r   r
   r	   N)r(   r)   r*   r+   r   r&   r,   r-   r   r   r9   r9   E   s    
 68 r   r9   c                   8    \ rS rSrS rS r/ 4S jr/ 4S jrSrg)MailtoU   c                 @    [         R                  R                  USSS9$ )N/replace)safeerrors)urllibparser"   )r   inss     r   _uq
Mailto._uqV   s    ||!!#C	!BBr   c                     SnX!   nU(       a?  U R                  SR                  UR                  5       5      5      nSR                  X5      nU$ )Nr   z{}={}&)rN   r4   
splitlinesformat)r   hdrmsgparmstrhdcontents         r   _get_headerparamMailto._get_headerparamY   sA    Xhhrwwr}}78Gooc3Gr   c           
      `   SnX0R                  SR                  US   R                  5       5      5      -  nUS-  nS H  nX0R                  XA5      -  nM     UR	                  5       (       a  UR                  S5      $ U(       a  U Vs/ s HW  oPR                  U5      (       d  M  SR                  U R                  [        R                  R                  U5      5      5      PMY     nnU(       a  USR                  U5      -  nUR                  SS	9R                  S
S9nU(       at  US-   U R                  U5      -   n[        U5      [        :  aH  US S nU(       d  [        S5      eUS-  nUS-   U R                  U5      -   n[        U5      [        :  a  MH  UnUR                  S5      $ s  snf )Nzmailto:r   to?)subjectccbccz?&z
attach={}&T)decoderH   )rJ   zbody=i0zunreasonable messagez;

[ MAILBODY EXCEEDED REASONABLE LENGTH, OUTPUT TRUNCATED ])rN   r4   rQ   rX   is_multipartrstripr   rR   r   r   r3   get_payloadr`   lenMAX_ARG_LENGTHr   )	r   rT   r$   mailtorS   r5   
attstrlistbody
try_mailtos	            r   _msg_to_mailtoMailto._msg_to_mailtoc   s   ((2773t9#7#7#9:;;#+C++C55F , ==&&#.M#.a2H2H2K L,--dhhrwwq7I.JK#.  M"''*--d+22)2D')DHHTN:Jj/N2FU|$%;<<WW#g->
 j/N2  F}}T""#Ms   F+%AF+c                    [        US5       n[        R                  " U[        R                  R                  S9nS S S 5        SR                  U R                  U R                  WU5      5      nU$ ! , (       d  f       N<= f)Nr)policyz{} "{}")openemailmessage_from_filern   compat32rR   r   rj   )r   r#   r$   fpmessager%   s         r   r&   Mailto.get_send_command   sb    (C B--b9N9NOG ! t0C0CG[0YZ
	 ! s   .A11
A?r-   N)	r(   r)   r*   r+   rN   rX   rj   r&   r,   r-   r   r   rD   rD   U   s!    C /1 #> 68 r   rD   zmutt -Hz
neomutt -Hz/usr/bin/mh/comp -use -filemh)r
   nmhzclaws-mail --compose-from-fileF)r	   zalpine -urlz	pine -url	evolutionkmailzthunderbird -composezsylpheed --compose	xdg-email)muttneomuttrv   rw   gnus
claws-mailalpinepinerx   ry   thunderbirdsylpheedrz   )r~   rx   ry   r   r   c                 `    [        U [        5      (       d  U [        R                  5       ;   a  gg)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)
isinstancer   MUAkeysmuas    r   mua_is_supportedr      s$     #sschhj0r   c                     [        U [        5      (       d
   [        U    n [        R
                  " U R                  5      (       a  gg! [         a     gf = f)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)r   r   r   KeyErrorshutilwhichr   r   s    r   
mua_existsr      sN     c3	c(C ||CNN##	  		s   	A 
AAc                     S[         R                  ;   d  S[         R                  ;   a  g[        U [        5      (       a  U R                  n U [
        ;   a  gU S:X  a  S[         R                  ;  a  gg)a  
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
DISPLAYWAYLAND_DISPLAYTFrz   MAILER)r   environr   r   r   MUA_NEEDS_DISPLAYr   s    r   mua_can_runr      sZ    " 	RZZ BJJ.#snn

khbjj8r   )rp   email.policyr   r?   r!   r   rK   
exceptionsr   re   r   r/   r9   rD   r   r   r   r   r   r-   r   r   <module>r      s   0   	 	    "  $3 3  2S 2l OL!
+$
7,59F6uM]#;E:GE20G+EBE:  &0r   