| @@ -0,0 +1,44 @@ | |||
| #!/usr/bin/python3 | |||
| import os | |||
| import re | |||
| import sys | |||
| import codecs | |||
| class Emoji: | |||
| def __init__(self, m): | |||
| self.emoji = m.group(1) | |||
| self.pronunciation = m.group(2) | |||
| self.codepoints = m.group(3) | |||
| self.comment = m.group(4) | |||
| def __repr__(self): | |||
| return "Emoji(emoji={0}, pronunciation={1}, codepoints={2}, comment={3})".format( | |||
| repr(self.emoji), | |||
| repr(self.pronunciation), | |||
| repr(self.codepoints), | |||
| repr(self.comment)) | |||
| def __str__(self): | |||
| return "{0}{1}// [{2}]{3}".format(self.emoji, self.pronunciation, self.codepoints, self.comment) | |||
| def read_emoji(filename, encoding="utf-8"): | |||
| re_emoji = re.compile(r"^([^ \t]*)([^/]*)// \[([^\]]*)\](.*)$") | |||
| with codecs.open(filename, "r", encoding) as f: | |||
| for line in f: | |||
| line = line.replace("\n", "") | |||
| if line.strip() == "": | |||
| yield line # blank line | |||
| elif line.startswith("//"): | |||
| yield line # line comment | |||
| elif line.startswith("$"): | |||
| yield line # flags only | |||
| else: | |||
| m = re_emoji.match(line) | |||
| if m: | |||
| yield Emoji(m) | |||
| else: | |||
| yield line | |||
| for line in read_emoji(sys.argv[1]): | |||
| print(line) | |||