Skip to content

Instantly share code, notes, and snippets.

@cookieukw
Last active January 2, 2023 12:15
Show Gist options
  • Save cookieukw/c6dc34a4ec0aa2b19b11caac66aab5ec to your computer and use it in GitHub Desktop.
Save cookieukw/c6dc34a4ec0aa2b19b11caac66aab5ec to your computer and use it in GitHub Desktop.
emojiFy
/* All codes in this gist profile bearing the name of
a written license are licensed
under that same license, while
codes without one are unlicensed
and may be used without attribution.
MIT LICENSE
*/
const model = [
{
a: [1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0],
},
{
b: [0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1],
},
{
c: [0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0],
},
{
d: [0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1],
},
{
e: [0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0],
},
{
f: [0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1],
},
{
g: [0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0],
},
{
h: [0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0],
},
{
i: [1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1],
},
{
j: [1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0],
},
{
k: [0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0],
},
{
l: [0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0],
},
{
m: [0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0],
},
{
n: [0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0],
},
{
o: [0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0],
},
{
p: [0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1],
},
{
q: [0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0],
},
{
r: [0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0],
},
{
s: [0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0],
},
{
t: [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1],
},
{
u: [0, 1, 1, 0, , 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0],
},
{
v: [0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1],
},
{
w: [0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0],
},
{
x: [0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0],
},
{
y: [0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1],
},
{
z: [0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0],
},
];
const { log } = console;
const fs = require("fs");
const letterToEmote = (letter) => {
if (letter.length > 1) return null;
letter = letter.trim().toLowerCase();
let res = model.find((res) => {
if (Object.keys(res)[0] == letter) return true;
return false;
});
res = res[letter].map((item, i) => {
if (item == 0) return `:1px:${(i + 1) % 4 == 0 ? `\n` : ""}`;
return `:0px:${(i + 1) % 4 == 0 ? `\n` : ""}`;
});
return res.join("");
};
const emojiFy = (text) => {
let splited = text.split("");
splited = splited
.map((letter, i) => {
return letterToEmote(letter) + `${i == splited.length - 1 ? "" : "\n\n"}`;
})
.join("");
return splited;
};
fs.writeFileSync("../emojiFy.txt", emojiFy("kie"));
@cookieukw
Copy link
Author

@cookieukw
Copy link
Author

@cookieukw
Copy link
Author

@cookieukw
Copy link
Author

disadvantages: the code gives an error if you put letters other than the common alphabet (abcde...), that is, you cannot put accents, emojis, characteristics, etc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment