diff --git a/package-lock.json b/package-lock.json
index 2149fde8..46acb02d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "sengi",
- "version": "0.9.0",
+ "version": "0.9.1",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -3892,6 +3892,11 @@
"integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
"dev": true
},
+ "emojione": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/emojione/-/emojione-4.5.0.tgz",
+ "integrity": "sha512-Tq55Y3UgPOnayFDN+Qd6QMP0rpoH10a1nhSFN27s8gXW3qymgFIHiXys2ECYYAI134BafmI3qP9ni2rZOe9BjA=="
+ },
"emojis-list": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
@@ -6322,11 +6327,6 @@
"integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
"dev": true
},
- "ionicons": {
- "version": "4.5.5",
- "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-4.5.5.tgz",
- "integrity": "sha512-dIGI73XG6Fg2Ps77ry5Ywe36Pq7wUGkDkl0pBhC4uhsiyoW+oXe+pplmarXEnKEcB5fmlkRrBOxYYzZaoRiUGw=="
- },
"ip": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
diff --git a/package.json b/package.json
index cd723868..0f7e589b 100644
--- a/package.json
+++ b/package.json
@@ -15,6 +15,7 @@
"scripts": {
"ng": "ng",
"start": "ng serve",
+ "start-mem": "node --max_old_space_size=5048 ./node_modules/@angular/cli/bin/ng serve",
"build": "ng build --prod",
"test": "ng test",
"test-nowatch": "ng test --watch=false",
@@ -45,6 +46,7 @@
"bootstrap": "^4.1.3",
"core-js": "^2.5.4",
"ionicons": "^4.4.3",
+ "emojione": "~4.5.0",
"rxjs": "^6.4.0",
"tslib": "^1.9.0",
"zone.js": "^0.8.29"
diff --git a/src/app/tools/emoji.tools.ts b/src/app/tools/emoji.tools.ts
index 614fd888..41071014 100644
--- a/src/app/tools/emoji.tools.ts
+++ b/src/app/tools/emoji.tools.ts
@@ -1,8 +1,9 @@
import { Emoji } from "../services/models/mastodon.interfaces";
-import { EmojiOne } from "./emoji-one";
+// import { EmojiOne } from "./emoji-one";
+import * as EmojiOne from 'emojione';
export class EmojiConverter {
- private emojiOne = new EmojiOne();
+ // private emojiOne = new EmojiOne();
applyEmojis(emojis: Emoji[], text: string, type: EmojiTypeEnum): string {
if (!text) return text;
@@ -14,12 +15,38 @@ export class EmojiConverter {
if (emojis) {
emojis.forEach(emoji => {
- text = this.replaceAll(text, `:${emoji.shortcode}:`, ``)
+ try {
+ text = this.replaceAll(text, `:${emoji.shortcode}:`, ``);
+ } catch (err) {}
});
}
- text = this.emojiOne.toImage(text, className);
+ text = this.applyEmojiOne(className, text);
+
+ // try {
+ // text = this.emojiOne.toImage(text, className);
+ // } catch (err) {}
+ return text;
+ }
+
+ private applyEmojiOne(className: string, text: string): string{
+ text = EmojiOne.toImage(text);
+
+ while (text.includes('class="emojione"')) {
+ text = text.replace('class="emojione"', `class="emojione ${className}"`);
+ }
+
+ while (
+ text.includes("https://cdn.jsdelivr.net/emojione/assets/4.5/png/32/")
+ ) {
+ text = text.replace(
+ "https://cdn.jsdelivr.net/emojione/assets/4.5/png/32/",
+ "assets/emoji/72x72/"
+ );
+ // text = text.replace('.png', '.svg');
+ }
+
return text;
}