ó
    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/   € ØŒØ!Ÿ-™-›/¨!Ñ,ˆŒØ,ÔØ×+˜DŸO™Oˆ�	ó    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)   € Ü�w‰w�~‰~˜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   € Ø�m‰mˆØ�s‹?Ø�5‰LˆCØ”E—K’K Ó)Ñ)ˆØˆ
r   )r   r   r
   r	   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r&   Ú__static_attributes__© r   r   r   r   %   s   † Ø26¸Rõ ,òCð 68÷ r   r   c                   ó    • \ rS rSr/ 4S jrSrg)ÚMutté7   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›   € Ø�m‰mˆØ�s‹?Ø�5‰LˆCØ”E—K’K Ó)Ñ)ˆÞá'óFÚ'�q×+AÑ+AÀ!×+Dó 3”5—;’;œrŸw™wŸ™¨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)ÚGnuséE   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ˆô —6’6˜* l°HÓ=ˆÜ—’˜EÑ,Ó-‰ÛRWÒY^Ð_ˆØˆ
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)ÚMailtoéU   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ˆÞØ—h‘h˜rŸw™w r§}¡}£Ó7Ó8ˆGØ—o‘o cÓ3ˆGàˆ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=i0øÿÿz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ˆ  € ØˆØ—(‘(˜2Ÿ7™7 3 t¡9×#7Ñ#7Ó#9Ó:Ó;Ñ;ˆØ�#‰ˆã+ˆCØ×+Ñ+¨CÓ5Ñ5ŠFñ ,ð ×Ñ×ÑØ—=‘= Ó&Ð&æá#.óMÚ#.˜a×2HÑ2HÈ×2Kó L˜,×-Ñ-¨d¯h©h´r·w±w·±ÀqÓ7IÓ.JÖKÙ#.ð ð MæØ˜"Ÿ'™' *Ó-Ñ-�à�‰ dˆÐ+×2Ñ2¸)Ð2ÐDˆÞØ 'Ñ)¨D¯H©H°T«NÑ:ˆJÜ�j“/¤NÓ2Ø˜F˜U�|�Þä$Ð%;Ó<Ð<ØÐ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¼¿¹×9NÑ9NÑOˆG÷ !ð ×Ñ˜tŸ™°×0CÑ0CÀGÈ[Ó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×Ñ˜s¤c§h¡h£jÓ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   € ô �cœ3×Ñð	Ü�c‘(ˆCô ‡|‚|�C—N‘N×#Ñ#ØØøô	 ó 	Ùð	ú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   € ð" 	”R—Z‘ZÓØ ¤B§J¡JÓ.ØÜ�#”s×ÑØ�n‰nˆØ
ÔÓØØ
ˆkÓ˜h¬b¯j©jÓ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ÙÐ6ÀuÑMÙ�]Ó#Ù�;ÓÙ˜°EÑ:Ù�G¨EÑ2ÙÐ0ÀÑGÙÐ+¸EÑBÙ˜°EÑ:ñ€ò Ð òò&ó0r   