Changeset 231 for trunk/email2trac.py.in
- Timestamp:
- 10/31/08 18:08:56 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/email2trac.py.in
r230 r231 219 219 self.VERBATIM_FORMAT = 1 220 220 221 if parameters.has_key('reflow'): 222 self.REFLOW = int(parameter['reflow']) 223 else: 224 self.REFLOW = 1 225 221 226 if parameters.has_key('strip_signature'): 222 227 self.STRIP_SIGNATURE = int(parameters['strip_signature']) … … 860 865 return ('\n'.join(body)) 861 866 867 def reflow(self, text, delsp = 0): 868 """ 869 Reflow the message based on the format="flowed" specification (RFC 3676) 870 """ 871 flowedlines = [] 872 quotelevel = 0 873 prevflowed = 0 874 875 for line in text.splitlines(): 876 from re import match 877 878 # Figure out the quote level and the content of the current line 879 m = match('(>*)( ?)(.*)', line) 880 linequotelevel = len(m.group(1)) 881 line = m.group(3) 882 883 # Determine whether this line is flowed 884 if line and line != '-- ' and line[-1] == ' ': 885 flowed = 1 886 else: 887 flowed = 0 888 889 if flowed and delsp and line and line[-1] == ' ': 890 line = line[:-1] 891 892 # If the previous line is flowed, append this line to it 893 if prevflowed and line != '-- ' and linequotelevel == quotelevel: 894 flowedlines[-1] += line 895 # Otherwise, start a new line 896 else: 897 flowedlines.append('>' * linequotelevel + line) 898 899 prevflowed = flowed 900 901 902 return '\n'.join(flowedlines) 903 862 904 def strip_quotes(self, text): 863 905 """ … … 918 960 if not body_text: 919 961 body_text = part.get_payload(decode=0) 962 963 format = email.Utils.collapse_rfc2231_value(part.get_param('Format')).lower() 964 delsp = email.Utils.collapse_rfc2231_value(part.get_param('DelSp')).lower() 965 966 if self.REFLOW and not self.VERBATIM_FORMAT and format == 'flowed': 967 body_text = self.reflow(body_text, delsp == 'yes') 920 968 921 969 if self.STRIP_SIGNATURE:
Note: See TracChangeset
for help on using the changeset viewer.