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'
'
+
+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: