View file File name : mailcap.pyo Content :� zfc @ s� d Z d d l Z d d l Z d d l Z d d g Z e j d � j Z d e f d � � YZ d � Z d � Z d � Z d � Z d � Z d d g d � Z d d � Z g d � Z d � Z d � Z d � Z e d k r� e � n d S( s% Mailcap file handling. See RFC 1524.i����Nt getcapst findmatchs [^\xa1-\xff\w@+=:,./-]t UnsafeMailcapInputc B s e Z d Z RS( s) Warning raised when refusing unsafe input( t __name__t __module__t __doc__( ( ( s /usr/lib64/python2.7/mailcap.pyR s c C s� i } x� t � D]� } y t | d � } Wn t k r? q n X| � t | � } Wd QXxE | j � D]7 \ } } | | k r� | | | <qf | | | | | <qf Wq W| S( s� Return a dictionary containing the mailcap database. The dictionary maps a MIME type (in all lowercase, e.g. 'text/plain') to a list of dictionaries corresponding to mailcap entries. The list collects all the entries for that MIME type from all available mailcap files. Each dictionary contains key-value pairs for that MIME type, where the viewing command is stored with the key "view". t rN( t listmailcapfilest opent IOErrort readmailcapfilet iteritems( t capst mailcapt fpt morecapst keyt value( ( s /usr/lib64/python2.7/mailcap.pyR s c C sm d t j k r. t j d } | j d � } n; d t j k rM t j d } n d } | d d d d g } | S( s7 Return a list of all mailcap files found on the system.t MAILCAPSt :t HOMEt .s /.mailcaps /etc/mailcaps /usr/etc/mailcaps /usr/local/etc/mailcap( t ost environt split( t strt mailcapst home( ( s /usr/lib64/python2.7/mailcap.pyR + s c C s; i } x.| j � } | s Pn | d d k s | j � d k rG q n | } x= | d d k r� | j � } | s{ d } n | d | } qP Wt | � \ } } | o� | s� q n | j d � } x. t t | � � D] } | | j � | | <q� Wd j | � j � } | | k r&| | j | � q | g | | <q W| S( s� Read a mailcap file and return a dictionary keyed by MIME type. Each MIME type is mapped to an entry consisting of a list of dictionaries; the list will contain more than one such dictionary if a given MIME type appears more than once in the mailcap file. Each dictionary contains key-value pairs for that MIME type, where the viewing command is stored with the key "view". i t #t i����s \ s t /( t readlinet stript parselineR t ranget lent joint lowert append( R R t linet nextlineR t fieldst typest j( ( s /usr/lib64/python2.7/mailcap.pyR >