# run this in your home directory pls from __future__ import print_function from itertools import chain import re, sys, shutil MAX_LEN = 32 def universe(sub): cls = sub.split(",")[0] if len(cls) <= MAX_LEN: while len(cls) <= MAX_LEN: clsd = cls while len(clsd) <= MAX_LEN: yield clsd clsd += ".d" cls = "un" + cls else: yield cls def ununify(cls): m = re.match("^((?:un)*)(.*)$", cls) return (m.group(2), m.group(1)) shutil.copyfile(".zephyr.subs", ".zephyr.subs.bak") with open(".zephyr.subs") as infile: inlines = list(infile) print("Read {} lines".format(len(inlines)), file=sys.stderr) subs = sorted(set(chain(*map(universe, inlines))), key=ununify) print("Outputted {} subs".format(len(subs)), file=sys.stderr) with open(".zephyr.subs", "w") as outfile: outfile.write("".join(sub + ",*,*\n" for sub in subs))