aerc

Working clone of aerc-mail.org
git clone git://git.danielmoch.com/aerc.git
Log | Files | Refs | README | LICENSE

commit 56ea7f0e430bc44f8b652ef88bedb186b6b3e0df
parent 0abafa60e159f87595148c0d0fc4f5f46be2d400
Author: Drew DeVault <sir@cmpwn.com>
Date:   Sun, 31 Mar 2019 12:57:44 -0400

Add plaintext highlighter, escape ANSI in source

Diffstat:
Mcontrib/hldiff.py | 5++++-
Acontrib/plaintext.py | 21+++++++++++++++++++++
2 files changed, 25 insertions(+), 1 deletion(-)

diff --git a/contrib/hldiff.py b/contrib/hldiff.py @@ -3,10 +3,13 @@ from colorama import Fore, Style import sys import re -patch = sys.stdin.read().replace("\r\n", "\n") +ansi_escape = re.compile(r'\x1B\[[0-?]*[ -/]*[@-~]') stat_re = re.compile(r'(\+*)(\-*)') lines_re = re.compile(r'@@ (-\d+,\d+ \+\d+,\d+) @@') +patch = sys.stdin.read().replace("\r\n", "\n") +patch = ansi_escape.sub('', patch) + hit_diff = False for line in patch.split("\n"): if line.startswith("diff "): diff --git a/contrib/plaintext.py b/contrib/plaintext.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python3 +from colorama import Fore, Style +import sys +import re + +# TODO: Wrap text to terminal width? + +ansi_escape = re.compile(r'\x1B\[[0-?]*[ -/]*[@-~]') +# TODO: I guess this might vary from MUA to MUA. I've definitely seen localized +# versions in the wild +quote_prefix_re = re.compile(r"On [0-9: -]+( (AM|PM))?, .* wrote:") +quote_re = re.compile(r">+ ") + +mail = sys.stdin.read().replace("\r\n", "\n") +mail = ansi_escape.sub('', mail) + +for line in mail.split("\n"): + if quote_re.match(line) or quote_prefix_re.match(line): + print(f"{Style.DIM}{Fore.CYAN}{line}{Style.RESET_ALL}") + else: + print(line)