Python 3.7

mailcap - mailcap फ़ाइल हैंडलिंग




python

mailcap - mailcap फ़ाइल हैंडलिंग

स्रोत कोड: Lib/mailcap.py

मेल की गई फ़ाइलों का उपयोग यह देखने के लिए किया जाता है कि मेल रीडर और वेब ब्राउज़र जैसे MIME- अवगत एप्लिकेशन विभिन्न MIME प्रकार की फ़ाइलों के साथ कैसे प्रतिक्रिया करते हैं। (नाम "mailcap" वाक्यांश "मेल क्षमता" से लिया गया है।) उदाहरण के लिए, एक mailcap फ़ाइल में video/mpeg; xmpeg %s जैसी एक पंक्ति हो सकती है video/mpeg; xmpeg %s video/mpeg; xmpeg %s फिर, यदि उपयोगकर्ता MIME टाइप वीडियो / एमपीईजी के साथ एक ईमेल संदेश या वेब दस्तावेज़ का सामना करता है, तो %s को फ़ाइल नाम से बदला जाएगा (आमतौर पर एक अस्थायी फ़ाइल से संबंधित) और xmpeg प्रोग्राम को स्वचालित रूप से फ़ाइल को देखने के लिए शुरू किया जा सकता है।

मेल किए गए प्रारूप को RFC 1524 , "A उपयोगकर्ता एजेंट कॉन्फ़िगरेशन तंत्र मल्टीमीडिया मेल स्वरूप जानकारी के लिए" में प्रलेखित किया गया है , लेकिन यह इंटरनेट मानक नहीं है। हालाँकि, अधिकांश Unix सिस्टम पर मेल की गई फ़ाइलों का समर्थन किया जाता है।

mailcap.findmatch(caps, MIMEtype, key='view', filename='/dev/null', plist=[])

एक 2-ट्यूपल लौटें; पहला तत्व एक स्ट्रिंग है जिसमें कमांड लाइन को निष्पादित किया जाना है (जिसे os.system() ) में पारित किया जा सकता है, और दूसरा तत्व किसी दिए गए MIME प्रकार के लिए मेलकैप प्रविष्टि है। यदि कोई मिलान MIME प्रकार (None, None) मिल सकता है, (None, None) वापस आ गया है।

कुंजी वांछित क्षेत्र का नाम है, जो प्रदर्शन की जाने वाली गतिविधि के प्रकार का प्रतिनिधित्व करता है; डिफ़ॉल्ट मान 'दृश्य' है, क्योंकि सबसे सामान्य स्थिति में आप केवल MIME- टाइप किए गए डेटा का मुख्य भाग देखना चाहते हैं। अन्य संभावित मान 'कंपोज़' और 'एडिट' हो सकते हैं, यदि आप दिए गए MIME प्रकार की नई बॉडी बनाना चाहते हैं या मौजूदा बॉडी डेटा को बदलना चाहते हैं। इन क्षेत्रों की पूरी सूची के लिए RFC 1524 देखें।

फ़ाइल नाम कमांड लाइन में %s लिए प्रतिस्थापित किया जाने वाला फ़ाइल नाम है; डिफ़ॉल्ट मान '/dev/null' जो लगभग निश्चित रूप से नहीं है जो आप चाहते हैं, इसलिए आमतौर पर आप इसे एक फ़ाइल नाम निर्दिष्ट करके ओवरराइड करेंगे।

प्लिस्ट एक सूची हो सकती है जिसमें नामित पैरामीटर होते हैं; डिफ़ॉल्ट मान बस एक खाली सूची है। सूची में प्रत्येक प्रविष्टि को एक स्ट्रिंग होना चाहिए जिसमें पैरामीटर नाम, एक बराबर चिह्न ( '=' ) और पैरामीटर का मान हो। मेल की गई प्रविष्टियों में %{foo} जैसे नामांकित पैरामीटर हो सकते हैं, जिन्हें 'foo' नाम के पैरामीटर के मान से बदल दिया जाएगा। उदाहरण के लिए, यदि कमांड लाइन showpartial %{id} %{number} %{total} एक मेल की गई फ़ाइल में थी, और plist को ['id=1', 'number=2', 'total=3'] पर सेट किया गया था , जिसके परिणामस्वरूप कमांड लाइन 'showpartial 1 2 3'

एक मेल की गई फ़ाइल में, "परीक्षण" फ़ील्ड वैकल्पिक रूप से कुछ बाहरी स्थिति (जैसे मशीन आर्किटेक्चर, या उपयोग में विंडो सिस्टम) का परीक्षण करने के लिए निर्दिष्ट किया जा सकता है ताकि यह निर्धारित किया जा सके कि मेलकैप लाइन लागू होती है या नहीं। findmatch() स्वचालित रूप से ऐसी स्थितियों की जाँच करेगा और यदि प्रविष्टि विफल होती है तो प्रविष्टि को छोड़ देगा।

mailcap.getcaps()

मेलबेक फ़ाइल प्रविष्टियों की सूची के लिए एक शब्दकोश मैपिंग MIME प्रकार लौटाता है। इस शब्दकोश को findmatch() फ़ंक्शन में पास करना होगा। प्रविष्टि को शब्दकोशों की सूची के रूप में संग्रहीत किया जाता है, लेकिन इस प्रतिनिधित्व के विवरण को जानना आवश्यक नहीं होना चाहिए।

जानकारी सिस्टम पर पाई गई सभी मेल की गई फ़ाइलों से ली गई है। उपयोगकर्ता की mailcap फ़ाइल $HOME/.mailcap में सेटिंग्स सिस्टम मेल की गई फ़ाइलों /etc/mailcap , /usr/etc/mailcap , और /usr/local/etc/mailcap में सेटिंग्स को ओवरराइड /usr/local/etc/mailcap

एक उदाहरण का उपयोग:

>>> import mailcap
>>> d = mailcap.getcaps()
>>> mailcap.findmatch(d, 'video/mpeg', filename='tmp1223')
('xmpeg tmp1223', {'view': 'xmpeg %s'})