
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ¡ê,a¨  ã                   @   s    d dl Z d dlZddgZdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Zdd„ Z	ddg fdd„Z
ddd„Zg fdd„Zdd„ Zdd„ Zdd„ Zedkrœeƒ  dS ) é    NÚgetcapsÚ	findmatchc                 C   s   d| krd| d fS dS d S )NÚlinenor   )é   r   © )Úentryr   r   ú,/opt/alt/python38/lib64/python3.8/mailcap.pyÚlineno_sort_key	   s    r	   c               
   C   s’   i } d}t ƒ D ]~}zt|dƒ}W n tk
r8   Y qY nX |� t||ƒ\}}W 5 Q R X | ¡ D ]*\}}|| krz|| |< q`| | | | |< q`q| S )Nr   Úr)ÚlistmailcapfilesÚopenÚOSErrorÚ_readmailcapfileÚitems)Úcapsr   ZmailcapÚfpZmorecapsÚkeyÚvaluer   r   r   r      s    



c                  C   sP   dt jkr"t jd } |  t j¡}n*dt jkr8t jd }nd}|d dddg}|S )NZMAILCAPSÚHOMEÚ.z	/.mailcapz/etc/mailcapz/usr/etc/mailcapz/usr/local/etc/mailcap)ÚosÚenvironÚsplitÚpathsep)ZpathstrZmailcapsÚhomer   r   r   r   -   s    


 ÿr   c                 C   s    t  dtd¡ t| d ƒ\}}|S )Nz2readmailcapfile is deprecated, use getcaps insteadé   )ÚwarningsÚwarnÚDeprecationWarningr   )r   r   Ú_r   r   r   Úreadmailcapfile?   s     ÿr    c           	      C   sö   i }|   ¡ }|sqî|d dks| ¡ dkr,q|}|dd … dkrb|   ¡ }|sPd}|d d… | }q0t|ƒ\}}|r|sxq|d k	r�||d< |d7 }| d	¡}tt|ƒƒD ]}||  ¡ ||< q¦d	 |¡ ¡ }||krâ||  |¡ q|g||< q||fS )
Nr   ú#Ú éþÿÿÿz\
Ú
r   r   ú/)	ÚreadlineÚstripÚ	parseliner   ÚrangeÚlenÚjoinÚlowerÚappend)	r   r   r   ÚlineZnextliner   ÚfieldsÚtypesÚjr   r   r   r   G   s4    	  
r   c           
      C   sÚ   g }dt | ƒ }}||k r>t| ||ƒ\}}| |¡ |d }qt |ƒdk rNdS |d |d |dd …   }}}d|i}|D ]V}| d¡}|dk rš|}d}	n$|d |…  ¡ }||d d …  ¡ }	||krÈqz|	||< qz||fS )Nr   r   r   ©NNÚviewú=r"   )r*   Ú
parsefieldr-   Úfindr'   )
r.   r/   ÚiÚnÚfieldr   r3   ÚrestZfkeyZfvaluer   r   r   r(   p   s*    

 

r(   c                 C   sP   |}||k r<| | }|dkr q<q|dkr2|d }q|d }q| ||…   ¡ |fS )Nú;ú\r   r   )r'   )r.   r7   r8   ÚstartÚcr   r   r   r5   �   s    

r5   r3   z	/dev/nullc           	      C   sb   t | ||ƒ}|D ]L}d|kr@t|d ||ƒ}|r@t |¡dkr@qt|| |||ƒ}||f  S dS )NÚtestr   r2   )ÚlookupÚsubstr   Úsystem)	r   ÚMIMEtyper   ÚfilenameÚplistÚentriesÚer?   Úcommandr   r   r   r   Ÿ   s    	c                    sl   g }|| kr|| |  }|  d¡}|d d }|| krB|| |  }ˆ d k	r\‡ fdd„|D ƒ}t|td�}|S )Nr%   r   z/*c                    s   g | ]}ˆ |kr|‘qS r   r   )Ú.0rG   ©r   r   r   Ú
<listcomp>¼   s      zlookup.<locals>.<listcomp>rJ   )r   Úsortedr	   )r   rC   r   rF   Z	MIMEtypesr   rJ   r   r@   ³   s    
r@   c           
      C   s  d}dt | ƒ }}||k �r | | }|d }|dkr^|dkrT| ||d … }|d }|| }q| | }|d }|dkr€|| }q|dkr’|| }q|dkr¤|| }q|dkrò|}||k rÎ| | d	krÎ|d }q°| ||… }	|d }|t|	|ƒ }q|d | }q|S )
Nr"   r   r   ú%r<   ÚsÚtÚ{Ú})r*   Ú	findparam)
r9   rC   rD   rE   Úresr7   r8   r>   r=   Únamer   r   r   rA   À   s6    
  
 



rA   c                 C   sF   |   ¡ d } t| ƒ}|D ](}|d |…   ¡ | kr||d …   S qdS )Nr4   r"   )r,   r*   )rT   rE   r8   Úpr   r   r   rR   à   s    rR   c            	      C   sÄ   dd l } tƒ }| jdd … s(t|ƒ d S tdt| jƒdƒD ]„}| j||d … }t|ƒdk rjtdƒ  d S |d }|d }t||d|ƒ\}}|sœtdtƒ q:td|ƒ t	 
|¡}|r:td|ƒ q:d S )	Nr   r   r   z"usage: mailcap [MIMEtype file] ...r3   zNo viewer found forz
Executing:zExit status:)Úsysr   ÚargvÚshowr)   r*   Úprintr   Útyper   rB   )	rV   r   r7   ÚargsrC   ÚfilerH   rG   Ústsr   r   r   r?   ë   s&    

r?   c                 C   s˜   t dƒ tƒ D ]}t d| ƒ qt ƒ  | s0tƒ } t dƒ t ƒ  t| ƒ}|D ]H}t |ƒ | | }|D ].}t|ƒ}|D ]}t d| || ƒ qrt ƒ  qbqJd S )NzMailcap files:ú	zMailcap entries:z  %-15s)rY   r   r   rL   )r   ÚfnZckeysrZ   rF   rG   ÚkeysÚkr   r   r   rX     s"    
  rX   Ú__main__)N)r   r   Ú__all__r	   r   r   r    r   r(   r5   r   r@   rA   rR   r?   rX   Ú__name__r   r   r   r   Ú<module>   s"   
)
 