Ticket #194: better-strip-outlook-style-replies.patch

File better-strip-outlook-style-replies.patch, 1.2 KB (added by Konstantin Ryabitsev <icon@…>, 10 years ago)

Enhancement to strip-outlook-replies functionality.

  • (a) email2trac.py.in vs. (b) /home/kryabi/email2trac-modified

    a b  
    12711325                """
    12721326                Strip quotes from message by Nicolas Mendoza
    12731327                """
    1274                 body = []
     1328                body = []
     1329                hold = []
     1330                seen_from = 0
     1331                seen_sent = 0
     1332
    12751333                for line in text.splitlines():
    12761334                        if line.startswith(self.EMAIL_QUOTE):
    12771335                                continue
    1278                         body.append(line)
     1336
     1337                        # try to blunt-fix top-post outlook responses with
     1338                        # -----Original Message----- type templates
     1339                        if re.search("^-----\w.*\w-----$", line):
     1340                                break
     1341
     1342                        # another way is to see if we see the succession of
     1343                        # From:
     1344                        # Sent:
     1345                        # To:
     1346                        # which indicates a quote of a top-post response
     1347
     1348                        if line.startswith('From: '):
     1349                                hold.append(line)
     1350                                seen_from = 1
     1351                        elif seen_from and line.startswith('Sent: '):
     1352                                hold.append(line)
     1353                                seen_sent = 1
     1354                        elif seen_sent and seen_from and line.startswith('To: '):
     1355                                break
     1356                        else:
     1357                                if seen_sent or seen_from:
     1358                                        body = body + hold
     1359                                        seen_from = 0
     1360                                        seen_sent = 0
     1361                                        hold = 0
     1362
     1363                                seen_from = 0
     1364                                seen_sent = 0
     1365                                hold = []
     1366                                body.append(line)
    12791367
    12801368                return ('\n'.join(body))
    12811369