
­­­­­­­­­­­­­­­­­­
<!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re  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 ]}||  ||< qd	| }||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rqz|	||< 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|\}}|st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"   
)
 