diff --git a/app/lib/babycode.py b/app/lib/babycode.py index 817deed..890aa9e 100644 --- a/app/lib/babycode.py +++ b/app/lib/babycode.py @@ -28,6 +28,53 @@ TAGS = { "ol": lambda children, attr: f"
    {tag_list(children)}
", } +def make_emoji(name, code): + return f' {name}' + +EMOJI = { + 'angry': make_emoji('angry', 'angry'), + + '(': make_emoji('frown', '('), + + 'D': make_emoji('grin', 'D'), + + 'imp': make_emoji('imp', 'imp'), + + 'angryimp': make_emoji('impangry', 'angryimp'), + 'impangry': make_emoji('impangry', 'impangry'), + + 'lobster': make_emoji('lobster', 'lobster'), + + '|': make_emoji('neutral', '|'), + + 'pensive': make_emoji('pensive', 'pensive'), + + ')': make_emoji('smile', ')'), + + 'smiletear': make_emoji('smiletear', 'smiletear'), + 'crytear': make_emoji('smiletear', 'crytear'), + + ',': make_emoji('sob', ','), + 'T': make_emoji('sob', 'T'), + 'cry': make_emoji('sob', 'cry'), + 'sob': make_emoji('sob', 'sob'), + + 'o': make_emoji('surprised', 'o'), + 'O': make_emoji('surprised', 'O'), + + 'hmm': make_emoji('think', 'hmm'), + 'think': make_emoji('think', 'think'), + 'thinking': make_emoji('think', 'thinking'), + + 'P': make_emoji('tongue', 'P'), + 'p': make_emoji('tongue', 'p'), + + 'weary': make_emoji('weary', 'weary'), + + ';': make_emoji('wink', ';'), + 'wink': make_emoji('wink', 'wink'), +} + TEXT_ONLY = ["code"] def break_lines(text): @@ -40,8 +87,10 @@ def babycode_to_html(s): parser = Parser(subj) parser.valid_bbcode_tags = TAGS.keys() parser.bbcode_tags_only_text_children = TEXT_ONLY + parser.valid_emotes = EMOJI.keys() elements = parser.parse() + print(elements) out = "" def fold(element, nobr): if isinstance(element, str): @@ -59,6 +108,8 @@ def babycode_to_html(s): return res case "link": return f"{element['url']}" + case 'emote': + return EMOJI[element['name']] case "rule": return "
" for e in elements: