NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

encoders.py (1239B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\stdlib\email\encoders.py
      2 __all__ = ['encode_7or8bit',
      3  'encode_base64',
      4  'encode_noop',
      5  'encode_quopri']
      6 import base64
      7 from quopri import encodestring as _encodestring
      8 
      9 def _qencode(s):
     10     enc = _encodestring(s, quotetabs=True)
     11     return enc.replace(' ', '=20')
     12 
     13 
     14 def _bencode(s):
     15     if not s:
     16         return s
     17     hasnewline = s[-1] == '\n'
     18     value = base64.encodestring(s)
     19     if not hasnewline and value[-1] == '\n':
     20         return value[:-1]
     21     return value
     22 
     23 
     24 def encode_base64(msg):
     25     orig = msg.get_payload()
     26     encdata = _bencode(orig)
     27     msg.set_payload(encdata)
     28     msg['Content-Transfer-Encoding'] = 'base64'
     29 
     30 
     31 def encode_quopri(msg):
     32     orig = msg.get_payload()
     33     encdata = _qencode(orig)
     34     msg.set_payload(encdata)
     35     msg['Content-Transfer-Encoding'] = 'quoted-printable'
     36 
     37 
     38 def encode_7or8bit(msg):
     39     orig = msg.get_payload()
     40     if orig is None:
     41         msg['Content-Transfer-Encoding'] = '7bit'
     42         return
     43     try:
     44         orig.encode('ascii')
     45     except UnicodeError:
     46         msg['Content-Transfer-Encoding'] = '8bit'
     47     else:
     48         msg['Content-Transfer-Encoding'] = '7bit'
     49 
     50 
     51 def encode_noop(msg):
     52     pass