#!/usr/bin/env python3 import re import subprocess import sys from urllib.parse import parse_qs, quote, urlencode, urlparse, urlunparse TERM = 'termite' MAIL = 'mutt' def fix_msg_id(string): if re.match('^<.*>$', string): return string else: return '<{}>'.format(string) def main(): loc = urlparse(sys.argv[1]) headers = parse_qs(loc.query) if 'In-Reply-To' in headers: reply_to = [fix_msg_id(header) for header in headers['In-Reply-To']] headers['In-Reply-To'] = reply_to query = urlencode(headers, doseq=True, quote_via=quote) loc = loc._replace(query=query) url = urlunparse(loc) print(url) args = [TERM, '-e', '{} {}'.format(MAIL, url)] subprocess.call(args) if __name__ == '__main__': main()