From 19d93d2809b910c170b8d3ec8a6e056c37cd5919 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eirik=20=C3=98verby?= Date: Sun, 24 Aug 2025 00:14:07 +0200 Subject: [PATCH] Initial commit --- .gitmodules | 3 +++ LICENSE | 23 +++++++++++++++++++++++ conv.py | 24 ++++++++++++++++++++++++ smiley | 1 + 4 files changed, 51 insertions(+) create mode 100644 .gitmodules create mode 100644 LICENSE create mode 100644 conv.py create mode 160000 smiley diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..a063e37 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "smiley"] + path = smiley + url = git@git.anduin.net:ltning/emoji_to_smiley diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..77f06fd --- /dev/null +++ b/LICENSE @@ -0,0 +1,23 @@ +Copyright 2025 and all subsequent years, Eirik Øverby aka Ltning + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/conv.py b/conv.py new file mode 100644 index 0000000..5ed3b43 --- /dev/null +++ b/conv.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python3 +import sys +from smiley import smiley +from html.entities import codepoint2name + +def retrohtml(line): + new_line_list = [] + for char in line: + code_point = ord(char) + if code_point < 128: + new_line_list.append(char) + else: + try: + # Try to find a named HTML entity + new_line_list.append(f"&{codepoint2name[code_point]};") + except KeyError: + # And fall back to a numeric entity + new_line_list.append(f"&#{code_point};") + return "".join(new_line_list).strip() + +for line in sys.stdin: + line=smiley.replace_emoji(line) + line=retrohtml(line) + print(line) diff --git a/smiley b/smiley new file mode 160000 index 0000000..afd80fb --- /dev/null +++ b/smiley @@ -0,0 +1 @@ +Subproject commit afd80fb0247d4ba1f28c1351b8b0436418f98063