diff --git a/app_chatgpt/__manifest__.py b/app_chatgpt/__manifest__.py index 509a2c27..51f99218 100644 --- a/app_chatgpt/__manifest__.py +++ b/app_chatgpt/__manifest__.py @@ -10,7 +10,7 @@ { 'name': 'ChatGPT Robot Multi Chat and Training(Under Construction)', - 'version': '16.23.02.15', + 'version': '16.23.02.20', 'author': 'Sunpop.cn', 'company': 'Sunpop.cn', 'maintainer': 'Sunpop.cn', @@ -19,6 +19,7 @@ 'license': 'LGPL-3', 'sequence': 10, 'license': 'AGPL-3', + 'images': ['static/description/banner.png'], 'summary': ''' Multi Odoo ChatGPT Robot. Integration All ChatGpt Api. Chat channel with several ChatGPT Robots. @@ -42,8 +43,15 @@ 'data/ir_config_parameter.xml', 'views/res_config_settings_views.xml', ], + 'assets': { + 'mail.assets_messaging': [ + 'app_chatgpt/static/src/models/*.js', + ], + 'mail.assets_model_data': [ + 'app_chatgpt/static/src/models_data/*.js', + ], + }, 'external_dependencies': {'python': ['openai']}, - 'images': ['static/description/banner.png'], 'installable': True, 'application': False, 'auto_install': False, diff --git a/app_chatgpt/static/src/models/emoji_registry.js b/app_chatgpt/static/src/models/emoji_registry.js new file mode 100644 index 00000000..1dee227e --- /dev/null +++ b/app_chatgpt/static/src/models/emoji_registry.js @@ -0,0 +1,48 @@ +/** @odoo-module **/ + +import { insert } from '@mail/model/model_field_command'; +import { getBundle, loadBundle } from '@web/core/assets'; +import { registerPatch } from '@mail/model/model_core'; + +registerPatch({ + name: 'EmojiRegistry', + recordMethods: { + async loadEmojiData() { + this.update({isLoading: true}); + await getBundle('mail.assets_model_data').then(loadBundle); + //优化 data 文件 + const {emojiCategoriesData, emojisData} = await odoo.runtimeImport("@app_chatgpt/models_data/emoji_data"); + if (!this.exists()) { + return; + } + this._populateFromEmojiData(emojiCategoriesData, emojisData); + }, + async _populateFromEmojiData(dataCategories, dataEmojis) { + dataCategories.map(category => { + const emojiCount = dataEmojis.reduce((acc, emoji) => emoji.category === category.name ? acc + 1 : acc, 0); + this.update({ + dataCategories: insert({ + name: category.name, + displayName: category.displayName, + title: category.title, + sortId: category.sortId, + emojiCount, + }), + }); + }); + this.models['Emoji'].insert(dataEmojis.map(emojiData => ({ + codepoints: emojiData.codepoints, + shortcodes: emojiData.shortcodes, + emoticons: emojiData.emoticons, + name: emojiData.name, + keywords: emojiData.keywords, + emojiDataCategory: {name: emojiData.category}, + }))); + this.update({ + isLoaded: true, + isLoading: false, + }); + }, + }, + } +) diff --git a/app_chatgpt/static/src/models_data/emoji_data.js b/app_chatgpt/static/src/models_data/emoji_data.js new file mode 100644 index 00000000..66b27117 --- /dev/null +++ b/app_chatgpt/static/src/models_data/emoji_data.js @@ -0,0 +1,21921 @@ +/** @odoo-module **/ + +// Emoji data are generated from Unicode CLDR, falling under the following +// licence: + +/** + * UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE + * + * See Terms of Use + * for definitions of Unicode Inc.’s Data Files and Software. + * + * NOTICE TO USER: Carefully read the following legal agreement. + * BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S + * DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), + * YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE + * TERMS AND CONDITIONS OF THIS AGREEMENT. + * IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE + * THE DATA FILES OR SOFTWARE. + * + * COPYRIGHT AND PERMISSION NOTICE + * + * Copyright © 1991-2022 Unicode, Inc. All rights reserved. + * Distributed under the Terms of Use in https://www.unicode.org/copyright.html. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of the Unicode data files and any associated documentation + * (the "Data Files") or Unicode software and any associated documentation + * (the "Software") to deal in the Data Files or Software + * without restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, and/or sell copies of + * the Data Files or Software, and to permit persons to whom the Data Files + * or Software are furnished to do so, provided that either + * (a) this copyright and permission notice appear with all copies + * of the Data Files or Software, or + * (b) this copyright and permission notice appear in associated + * Documentation. + * + * THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF + * ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE + * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT OF THIRD PARTY RIGHTS. + * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS + * NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL + * DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THE DATA FILES OR SOFTWARE. + * + * Except as contained in this notice, the name of a copyright holder + * shall not be used in advertising or otherwise to promote the sale, + * use or other dealings in these Data Files or Software without prior + * written authorization of the copyright holder. + */ + +// Since JSON grammar is way simpler than JavaScript's grammar, it is actually +// faster to parse the data as a JSON object than as a JavaScript object. + +import { _lt as lazyTranslate } from "@web/core/l10n/translation"; +const _lt = str => JSON.stringify(lazyTranslate(str)).slice(1, -1); + +export const emojiCategoriesData = JSON.parse(`[ + { + "name": "ChatGpt Training", + "displayName": "`+ _lt("ChatGpt Training") + `", + "title": "💬", + "sortId": 0 + }, + { + "name": "Smileys & Emotion", + "displayName": "`+ _lt("Smileys & Emotion") + `", + "title": "🙂", + "sortId": 1 + }, + { + "name": "People & Body", + "displayName": "`+ _lt("People & Body") + `", + "title": "🤟", + "sortId": 2 + }, + { + "name": "Animals & Nature", + "displayName": "`+ _lt("Animals & Nature") + `", + "title": "🐢", + "sortId": 3 + }, + { + "name": "Food & Drink", + "displayName": "`+ _lt("Food & Drink") + `", + "title": "🍭", + "sortId": 4 + }, + { + "name": "Travel & Places", + "displayName": "`+ _lt("Travel & Places") + `", + "title": "🚗", + "sortId": 5 + }, + { + "name": "Activities", + "displayName": "`+ _lt("Activities") + `", + "title": "🏈", + "sortId": 6 + }, + { + "name": "Objects", + "displayName": "`+ _lt("Objects") + `", + "title": "📕", + "sortId": 7 + }, + { + "name": "Symbols", + "displayName": "`+ _lt("Symbols") + `", + "title": "🔠", + "sortId": 8 + } +]`); + +const emojisData1 = `{ + "category": "Smileys & Emotion", + "codepoints": "😀", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("grin") + `", + "` + _lt("grinning face") + `" + ], + "name": "` + _lt("grinning face") + `", + "shortcodes": [ + ":grinning:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😃", + "emoticons": [ + ":D", + ":-D", + "=D" + ], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("grinning face with big eyes") + `", + "` + _lt("mouth") + `", + "` + _lt("open") + `", + "` + _lt("smile") + `" + ], + "name": "` + _lt("grinning face with big eyes") + `", + "shortcodes": [ + ":smiley:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😄", + "emoticons": [], + "keywords": [ + "` + _lt("eye") + `", + "` + _lt("face") + `", + "` + _lt("grinning face with smiling eyes") + `", + "` + _lt("mouth") + `", + "` + _lt("open") + `", + "` + _lt("smile") + `" + ], + "name": "` + _lt("grinning face with smiling eyes") + `", + "shortcodes": [ + ":smile:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😁", + "emoticons": [], + "keywords": [ + "` + _lt("beaming face with smiling eyes") + `", + "` + _lt("eye") + `", + "` + _lt("face") + `", + "` + _lt("grin") + `", + "` + _lt("smile") + `" + ], + "name": "` + _lt("beaming face with smiling eyes") + `", + "shortcodes": [ + ":grin:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😆", + "emoticons": [ + "xD", + "XD" + ], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("grinning squinting face") + `", + "` + _lt("laugh") + `", + "` + _lt("mouth") + `", + "` + _lt("satisfied") + `", + "` + _lt("smile") + `" + ], + "name": "` + _lt("grinning squinting face") + `", + "shortcodes": [ + ":laughing:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😅", + "emoticons": [], + "keywords": [ + "` + _lt("cold") + `", + "` + _lt("face") + `", + "` + _lt("grinning face with sweat") + `", + "` + _lt("open") + `", + "` + _lt("smile") + `", + "` + _lt("sweat") + `" + ], + "name": "` + _lt("grinning face with sweat") + `", + "shortcodes": [ + ":sweat_smile:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🤣", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("floor") + `", + "` + _lt("laugh") + `", + "` + _lt("rofl") + `", + "` + _lt("rolling") + `", + "` + _lt("rolling on the floor laughing") + `", + "` + _lt("rotfl") + `" + ], + "name": "` + _lt("rolling on the floor laughing") + `", + "shortcodes": [ + ":rofl:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😂", + "emoticons": [ + "x'D" + ], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("face with tears of joy") + `", + "` + _lt("joy") + `", + "` + _lt("laugh") + `", + "` + _lt("tear") + `" + ], + "name": "` + _lt("face with tears of joy") + `", + "shortcodes": [ + ":joy:", + ":jpp:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🙂", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("slightly smiling face") + `", + "` + _lt("smile") + `" + ], + "name": "` + _lt("slightly smiling face") + `", + "shortcodes": [ + ":slight_smile:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🙃", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("upside-down") + `", + "` + _lt("upside down") + `", + "` + _lt("upside-down face") + `" + ], + "name": "` + _lt("upside-down face") + `", + "shortcodes": [ + ":upside_down:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😉", + "emoticons": [ + ";)", + ";-)" + ], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("wink") + `", + "` + _lt("winking face") + `" + ], + "name": "` + _lt("winking face") + `", + "shortcodes": [ + ":wink:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😊", + "emoticons": [ + ":)", + ":-)", + "=)", + ":]" + ], + "keywords": [ + "` + _lt("blush") + `", + "` + _lt("eye") + `", + "` + _lt("face") + `", + "` + _lt("smile") + `", + "` + _lt("smiling face with smiling eyes") + `" + ], + "name": "` + _lt("smiling face with smiling eyes") + `", + "shortcodes": [ + ":smiling_face_with_smiling_eyes:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😇", + "emoticons": [ + "o:)" + ], + "keywords": [ + "` + _lt("angel") + `", + "` + _lt("face") + `", + "` + _lt("fantasy") + `", + "` + _lt("halo") + `", + "` + _lt("innocent") + `", + "` + _lt("smiling face with halo") + `" + ], + "name": "` + _lt("smiling face with halo") + `", + "shortcodes": [ + ":innocent:", + ":halo:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🥰", + "emoticons": [], + "keywords": [ + "` + _lt("adore") + `", + "` + _lt("crush") + `", + "` + _lt("hearts") + `", + "` + _lt("in love") + `", + "` + _lt("smiling face with hearts") + `" + ], + "name": "` + _lt("smiling face with hearts") + `", + "shortcodes": [ + ":smiling_face_with_hearts:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😍", + "emoticons": [ + ":heart_eyes" + ], + "keywords": [ + "` + _lt("eye") + `", + "` + _lt("face") + `", + "` + _lt("love") + `", + "` + _lt("smile") + `", + "` + _lt("smiling face with heart-eyes") + `", + "` + _lt("smiling face with heart eyes") + `" + ], + "name": "` + _lt("smiling face with heart-eyes") + `", + "shortcodes": [ + ":heart_eyes:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🤩", + "emoticons": [], + "keywords": [ + "` + _lt("eyes") + `", + "` + _lt("face") + `", + "` + _lt("grinning") + `", + "` + _lt("star") + `", + "` + _lt("star-struck") + `" + ], + "name": "` + _lt("star-struck") + `", + "shortcodes": [ + ":star_struck:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😘", + "emoticons": [ + ":*", + ":-*" + ], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("face blowing a kiss") + `", + "` + _lt("kiss") + `" + ], + "name": "` + _lt("face blowing a kiss") + `", + "shortcodes": [ + ":kissing_heart:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😗", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("kiss") + `", + "` + _lt("kissing face") + `" + ], + "name": "` + _lt("kissing face") + `", + "shortcodes": [ + ":kissing:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😚", + "emoticons": [], + "keywords": [ + "` + _lt("closed") + `", + "` + _lt("eye") + `", + "` + _lt("face") + `", + "` + _lt("kiss") + `", + "` + _lt("kissing face with closed eyes") + `" + ], + "name": "` + _lt("kissing face with closed eyes") + `", + "shortcodes": [ + ":kissing_closed_eyes:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😙", + "emoticons": [], + "keywords": [ + "` + _lt("eye") + `", + "` + _lt("face") + `", + "` + _lt("kiss") + `", + "` + _lt("kissing face with smiling eyes") + `", + "` + _lt("smile") + `" + ], + "name": "` + _lt("kissing face with smiling eyes") + `", + "shortcodes": [ + ":kissing_smiling_eyes:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😋", + "emoticons": [ + ":p", + ":P", + ":-p", + ":-P", + "=P" + ], + "keywords": [ + "` + _lt("delicious") + `", + "` + _lt("face") + `", + "` + _lt("face savoring food") + `", + "` + _lt("savouring") + `", + "` + _lt("smile") + `", + "` + _lt("yum") + `", + "` + _lt("face savouring food") + `", + "` + _lt("savoring") + `" + ], + "name": "` + _lt("face savoring food") + `", + "shortcodes": [ + ":yum:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😛", + "emoticons": [ + ":P" + ], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("face with tongue") + `", + "` + _lt("tongue") + `" + ], + "name": "` + _lt("face with tongue") + `", + "shortcodes": [ + ":stuck_out_ltongue:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😜", + "emoticons": [ + ";p", + ";P" + ], + "keywords": [ + "` + _lt("eye") + `", + "` + _lt("face") + `", + "` + _lt("joke") + `", + "` + _lt("tongue") + `", + "` + _lt("wink") + `", + "` + _lt("winking face with tongue") + `" + ], + "name": "` + _lt("winking face with tongue") + `", + "shortcodes": [ + ":stuck_out_ltongue_winking_eye:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🤪", + "emoticons": [], + "keywords": [ + "` + _lt("eye") + `", + "` + _lt("goofy") + `", + "` + _lt("large") + `", + "` + _lt("small") + `", + "` + _lt("zany face") + `" + ], + "name": "` + _lt("zany face") + `", + "shortcodes": [ + ":zany:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😝", + "emoticons": [ + "xp", + "xP" + ], + "keywords": [ + "` + _lt("eye") + `", + "` + _lt("face") + `", + "` + _lt("horrible") + `", + "` + _lt("squinting face with tongue") + `", + "` + _lt("taste") + `", + "` + _lt("tongue") + `" + ], + "name": "` + _lt("squinting face with tongue") + `", + "shortcodes": [ + ":stuck_out_ltongue_closed_eyes:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🤑", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("money") + `", + "` + _lt("money-mouth face") + `", + "` + _lt("mouth") + `" + ], + "name": "` + _lt("money-mouth face") + `", + "shortcodes": [ + ":money_mouth:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🤗", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("hug") + `", + "` + _lt("hugging") + `", + "` + _lt("open hands") + `", + "` + _lt("smiling face") + `", + "` + _lt("smiling face with open hands") + `" + ], + "name": "` + _lt("smiling face with open hands") + `", + "shortcodes": [ + ":hugging_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🤭", + "emoticons": [], + "keywords": [ + "` + _lt("face with hand over mouth") + `", + "` + _lt("whoops") + `", + "` + _lt("oops") + `", + "` + _lt("embarrassed") + `" + ], + "name": "` + _lt("face with hand over mouth") + `", + "shortcodes": [ + ":hand_over_mouth:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🤫", + "emoticons": [], + "keywords": [ + "` + _lt("quiet") + `", + "` + _lt("shooshing face") + `", + "` + _lt("shush") + `", + "` + _lt("shushing face") + `" + ], + "name": "` + _lt("shushing face") + `", + "shortcodes": [ + ":shush:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🤔", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("thinking") + `" + ], + "name": "` + _lt("thinking face") + `", + "shortcodes": [ + ":thinking:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🤐", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("mouth") + `", + "` + _lt("zipper") + `", + "` + _lt("zipper-mouth face") + `" + ], + "name": "` + _lt("zipper-mouth face") + `", + "shortcodes": [ + ":zipper_mouth:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🤨", + "emoticons": [], + "keywords": [ + "` + _lt("distrust") + `", + "` + _lt("face with raised eyebrow") + `", + "` + _lt("skeptic") + `" + ], + "name": "` + _lt("face with raised eyebrow") + `", + "shortcodes": [ + ":raised_eyebrow:", + ":skeptic:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😐", + "emoticons": [ + ":|", + ":-|" + ], + "keywords": [ + "` + _lt("deadpan") + `", + "` + _lt("face") + `", + "` + _lt("meh") + `", + "` + _lt("neutral") + `" + ], + "name": "` + _lt("neutral face") + `", + "shortcodes": [ + ":neutral:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😑", + "emoticons": [], + "keywords": [ + "` + _lt("expressionless") + `", + "` + _lt("face") + `", + "` + _lt("inexpressive") + `", + "` + _lt("meh") + `", + "` + _lt("unexpressive") + `" + ], + "name": "` + _lt("expressionless face") + `", + "shortcodes": [ + ":expressionless:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😶", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("face without mouth") + `", + "` + _lt("mouth") + `", + "` + _lt("quiet") + `", + "` + _lt("silent") + `" + ], + "name": "` + _lt("face without mouth") + `", + "shortcodes": [ + ":no_mouth:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😏", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("smirk") + `", + "` + _lt("smirking face") + `" + ], + "name": "` + _lt("smirking face") + `", + "shortcodes": [ + ":smirk:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😒", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("unamused") + `", + "` + _lt("unhappy") + `" + ], + "name": "` + _lt("unamused face") + `", + "shortcodes": [ + ":unamused_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🙄", + "emoticons": [], + "keywords": [ + "` + _lt("eyeroll") + `", + "` + _lt("eyes") + `", + "` + _lt("face") + `", + "` + _lt("face with rolling eyes") + `", + "` + _lt("rolling") + `" + ], + "name": "` + _lt("face with rolling eyes") + `", + "shortcodes": [ + ":face_with_rolling_eyes:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😬", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("grimace") + `", + "` + _lt("grimacing face") + `" + ], + "name": "` + _lt("grimacing face") + `", + "shortcodes": [ + ":grimacing_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🤥", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("lie") + `", + "` + _lt("lying face") + `", + "` + _lt("pinocchio") + `" + ], + "name": "` + _lt("lying face") + `", + "shortcodes": [ + ":lying_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😌", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("relieved") + `" + ], + "name": "` + _lt("relieved face") + `", + "shortcodes": [ + ":relieved_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😔", + "emoticons": [], + "keywords": [ + "` + _lt("dejected") + `", + "` + _lt("face") + `", + "` + _lt("pensive") + `" + ], + "name": "` + _lt("pensive face") + `", + "shortcodes": [ + ":pensive_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😪", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("good night") + `", + "` + _lt("sleep") + `", + "` + _lt("sleepy face") + `" + ], + "name": "` + _lt("sleepy face") + `", + "shortcodes": [ + ":sleepy_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🤤", + "emoticons": [], + "keywords": [ + "` + _lt("drooling") + `", + "` + _lt("face") + `" + ], + "name": "` + _lt("drooling face") + `", + "shortcodes": [ + ":drooling_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😴", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("good night") + `", + "` + _lt("sleep") + `", + "` + _lt("sleeping face") + `", + "` + _lt("ZZZ") + `" + ], + "name": "` + _lt("sleeping face") + `", + "shortcodes": [ + ":sleeping_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😷", + "emoticons": [], + "keywords": [ + "` + _lt("cold") + `", + "` + _lt("doctor") + `", + "` + _lt("face") + `", + "` + _lt("face with medical mask") + `", + "` + _lt("mask") + `", + "` + _lt("sick") + `", + "` + _lt("ill") + `", + "` + _lt("medicine") + `", + "` + _lt("poorly") + `" + ], + "name": "` + _lt("face with medical mask") + `", + "shortcodes": [ + ":face_with_medical_mask:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🤒", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("face with thermometer") + `", + "` + _lt("ill") + `", + "` + _lt("sick") + `", + "` + _lt("thermometer") + `" + ], + "name": "` + _lt("face with thermometer") + `", + "shortcodes": [ + ":face_with_lthermometer:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🤕", + "emoticons": [], + "keywords": [ + "` + _lt("bandage") + `", + "` + _lt("face") + `", + "` + _lt("face with head-bandage") + `", + "` + _lt("hurt") + `", + "` + _lt("injury") + `", + "` + _lt("face with head bandage") + `" + ], + "name": "` + _lt("face with head-bandage") + `", + "shortcodes": [ + ":face_with_head-bandage:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🤢", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("nauseated") + `", + "` + _lt("vomit") + `" + ], + "name": "` + _lt("nauseated face") + `", + "shortcodes": [ + ":nauseated_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🤮", + "emoticons": [], + "keywords": [ + "` + _lt("face vomiting") + `", + "` + _lt("puke") + `", + "` + _lt("sick") + `", + "` + _lt("vomit") + `" + ], + "name": "` + _lt("face vomiting") + `", + "shortcodes": [ + ":face_vomiting:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🤧", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("gesundheit") + `", + "` + _lt("sneeze") + `", + "` + _lt("sneezing face") + `", + "` + _lt("bless you") + `" + ], + "name": "` + _lt("sneezing face") + `", + "shortcodes": [ + ":sneezing_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🥵", + "emoticons": [], + "keywords": [ + "` + _lt("feverish") + `", + "` + _lt("flushed") + `", + "` + _lt("heat stroke") + `", + "` + _lt("hot") + `", + "` + _lt("hot face") + `", + "` + _lt("red-faced") + `", + "` + _lt("sweating") + `" + ], + "name": "` + _lt("hot face") + `", + "shortcodes": [ + ":hot_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🥶", + "emoticons": [], + "keywords": [ + "` + _lt("blue-faced") + `", + "` + _lt("cold") + `", + "` + _lt("cold face") + `", + "` + _lt("freezing") + `", + "` + _lt("frostbite") + `", + "` + _lt("icicles") + `" + ], + "name": "` + _lt("cold face") + `", + "shortcodes": [ + ":cold_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🥴", + "emoticons": [], + "keywords": [ + "` + _lt("dizzy") + `", + "` + _lt("intoxicated") + `", + "` + _lt("tipsy") + `", + "` + _lt("uneven eyes") + `", + "` + _lt("wavy mouth") + `", + "` + _lt("woozy face") + `" + ], + "name": "` + _lt("woozy face") + `", + "shortcodes": [ + ":woozy_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😵", + "emoticons": [], + "keywords": [ + "` + _lt("crossed-out eyes") + `", + "` + _lt("dead") + `", + "` + _lt("face") + `", + "` + _lt("face with crossed-out eyes") + `", + "` + _lt("knocked out") + `" + ], + "name": "` + _lt("face with crossed-out eyes") + `", + "shortcodes": [ + ":face_with_crossed-out_eyes:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🤯", + "emoticons": [], + "keywords": [ + "` + _lt("exploding head") + `", + "` + _lt("mind blown") + `", + "` + _lt("shocked") + `" + ], + "name": "` + _lt("exploding head") + `", + "shortcodes": [ + ":exploding_head:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🤠", + "emoticons": [], + "keywords": [ + "` + _lt("cowboy") + `", + "` + _lt("cowgirl") + `", + "` + _lt("face") + `", + "` + _lt("hat") + `" + ], + "name": "` + _lt("cowboy hat face") + `", + "shortcodes": [ + ":cowboy_hat_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🥳", + "emoticons": [], + "keywords": [ + "` + _lt("celebration") + `", + "` + _lt("hat") + `", + "` + _lt("horn") + `", + "` + _lt("party") + `", + "` + _lt("partying face") + `" + ], + "name": "` + _lt("partying face") + `", + "shortcodes": [ + ":partying_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😎", + "emoticons": [ + "B)", + "8)", + "B-)", + "8-)" + ], + "keywords": [ + "` + _lt("bright") + `", + "` + _lt("cool") + `", + "` + _lt("face") + `", + "` + _lt("smiling face with sunglasses") + `", + "` + _lt("sun") + `", + "` + _lt("sunglasses") + `" + ], + "name": "` + _lt("smiling face with sunglasses") + `", + "shortcodes": [ + ":smiling_face_with_sunglasses:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🤓", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("geek") + `", + "` + _lt("nerd") + `" + ], + "name": "` + _lt("nerd face") + `", + "shortcodes": [ + ":nerd_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🧐", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("face with monocle") + `", + "` + _lt("monocle") + `", + "` + _lt("stuffy") + `" + ], + "name": "` + _lt("face with monocle") + `", + "shortcodes": [ + ":face_with_monocle:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😕", + "emoticons": [ + ":/", + ":-/" + ], + "keywords": [ + "` + _lt("confused") + `", + "` + _lt("face") + `", + "` + _lt("meh") + `" + ], + "name": "` + _lt("confused face") + `", + "shortcodes": [ + ":confused_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😟", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("worried") + `" + ], + "name": "` + _lt("worried face") + `", + "shortcodes": [ + ":worried_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🙁", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("frown") + `", + "` + _lt("slightly frowning face") + `" + ], + "name": "` + _lt("slightly frowning face") + `", + "shortcodes": [ + ":slightly_frowning_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😮", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("face with open mouth") + `", + "` + _lt("mouth") + `", + "` + _lt("open") + `", + "` + _lt("sympathy") + `" + ], + "name": "` + _lt("face with open mouth") + `", + "shortcodes": [ + ":face_with_open_mouth:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😯", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("hushed") + `", + "` + _lt("stunned") + `", + "` + _lt("surprised") + `" + ], + "name": "` + _lt("hushed face") + `", + "shortcodes": [ + ":hushed_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😲", + "emoticons": [ + ":O", + ":-O", + ":o", + ":-o" + ], + "keywords": [ + "` + _lt("astonished") + `", + "` + _lt("face") + `", + "` + _lt("shocked") + `", + "` + _lt("totally") + `" + ], + "name": "` + _lt("astonished face") + `", + "shortcodes": [ + ":astonished_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😳", + "emoticons": [ + "o_o" + ], + "keywords": [ + "` + _lt("dazed") + `", + "` + _lt("face") + `", + "` + _lt("flushed") + `" + ], + "name": "` + _lt("flushed face") + `", + "shortcodes": [ + ":flushed_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🥺", + "emoticons": [], + "keywords": [ + "` + _lt("begging") + `", + "` + _lt("mercy") + `", + "` + _lt("pleading face") + `", + "` + _lt("puppy eyes") + `" + ], + "name": "` + _lt("pleading face") + `", + "shortcodes": [ + ":pleading_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😦", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("frown") + `", + "` + _lt("frowning face with open mouth") + `", + "` + _lt("mouth") + `", + "` + _lt("open") + `" + ], + "name": "` + _lt("frowning face with open mouth") + `", + "shortcodes": [ + ":frowning_face_with_open_mouth:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😧", + "emoticons": [], + "keywords": [ + "` + _lt("anguished") + `", + "` + _lt("face") + `" + ], + "name": "` + _lt("anguished face") + `", + "shortcodes": [ + ":anguished_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😨", + "emoticons": [ + ":'o" + ], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("fear") + `", + "` + _lt("fearful") + `", + "` + _lt("scared") + `" + ], + "name": "` + _lt("fearful face") + `", + "shortcodes": [ + ":fearful_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😰", + "emoticons": [], + "keywords": [ + "` + _lt("anxious face with sweat") + `", + "` + _lt("blue") + `", + "` + _lt("cold") + `", + "` + _lt("face") + `", + "` + _lt("rushed") + `", + "` + _lt("sweat") + `" + ], + "name": "` + _lt("anxious face with sweat") + `", + "shortcodes": [ + ":anxious_face_with_sweat:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😥", + "emoticons": [], + "keywords": [ + "` + _lt("disappointed") + `", + "` + _lt("face") + `", + "` + _lt("relieved") + `", + "` + _lt("sad but relieved face") + `", + "` + _lt("whew") + `" + ], + "name": "` + _lt("sad but relieved face") + `", + "shortcodes": [ + ":sad_but_relieved_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😢", + "emoticons": [ + ":'(" + ], + "keywords": [ + "` + _lt("cry") + `", + "` + _lt("crying face") + `", + "` + _lt("face") + `", + "` + _lt("sad") + `", + "` + _lt("tear") + `" + ], + "name": "` + _lt("crying face") + `", + "shortcodes": [ + ":crying_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😭", + "emoticons": [ + ":'-(", + ":\\"(" + ], + "keywords": [ + "` + _lt("cry") + `", + "` + _lt("face") + `", + "` + _lt("loudly crying face") + `", + "` + _lt("sad") + `", + "` + _lt("sob") + `", + "` + _lt("tear") + `" + ], + "name": "` + _lt("loudly crying face") + `", + "shortcodes": [ + ":loudly_crying_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😱", + "emoticons": [ + ":@" + ], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("face screaming in fear") + `", + "` + _lt("fear") + `", + "` + _lt("Munch") + `", + "` + _lt("scared") + `", + "` + _lt("scream") + `", + "` + _lt("munch") + `" + ], + "name": "` + _lt("face screaming in fear") + `", + "shortcodes": [ + ":face_screaming_in_fear:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😖", + "emoticons": [], + "keywords": [ + "` + _lt("confounded") + `", + "` + _lt("face") + `" + ], + "name": "` + _lt("confounded face") + `", + "shortcodes": [ + ":confounded_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😣", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("persevere") + `", + "` + _lt("persevering face") + `" + ], + "name": "` + _lt("persevering face") + `", + "shortcodes": [ + ":persevering_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😞", + "emoticons": [ + ":(" + ], + "keywords": [ + "` + _lt("disappointed") + `", + "` + _lt("face") + `" + ], + "name": "` + _lt("disappointed face") + `", + "shortcodes": [ + ":disappointed_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😓", + "emoticons": [], + "keywords": [ + "` + _lt("cold") + `", + "` + _lt("downcast face with sweat") + `", + "` + _lt("face") + `", + "` + _lt("sweat") + `" + ], + "name": "` + _lt("downcast face with sweat") + `", + "shortcodes": [ + ":downcast_face_with_sweat:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😩", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("tired") + `", + "` + _lt("weary") + `" + ], + "name": "` + _lt("weary face") + `", + "shortcodes": [ + ":weary_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😫", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("tired") + `" + ], + "name": "` + _lt("tired face") + `", + "shortcodes": [ + ":tired_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🥱", + "emoticons": [], + "keywords": [ + "` + _lt("bored") + `", + "` + _lt("tired") + `", + "` + _lt("yawn") + `", + "` + _lt("yawning face") + `" + ], + "name": "` + _lt("yawning face") + `", + "shortcodes": [ + ":yawning_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😤", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("face with steam from nose") + `", + "` + _lt("triumph") + `", + "` + _lt("won") + `", + "` + _lt("angry") + `", + "` + _lt("frustration") + `" + ], + "name": "` + _lt("face with steam from nose") + `", + "shortcodes": [ + ":face_with_steam_from_nose:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😡", + "emoticons": [], + "keywords": [ + "` + _lt("angry") + `", + "` + _lt("enraged") + `", + "` + _lt("face") + `", + "` + _lt("mad") + `", + "` + _lt("pouting") + `", + "` + _lt("rage") + `", + "` + _lt("red") + `" + ], + "name": "` + _lt("enraged face") + `", + "shortcodes": [ + ":enraged_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😠", + "emoticons": [ + "3:(", + ">:(" + ], + "keywords": [ + "` + _lt("anger") + `", + "` + _lt("angry") + `", + "` + _lt("face") + `", + "` + _lt("mad") + `" + ], + "name": "` + _lt("angry face") + `", + "shortcodes": [ + ":angry_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🤬", + "emoticons": [], + "keywords": [ + "` + _lt("face with symbols on mouth") + `", + "` + _lt("swearing") + `" + ], + "name": "` + _lt("face with symbols on mouth") + `", + "shortcodes": [ + ":face_with_symbols_on_mouth:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😈", + "emoticons": [ + "3:)", + ">:)" + ], + "keywords": [ + "` + _lt("devil") + `", + "` + _lt("face") + `", + "` + _lt("fantasy") + `", + "` + _lt("horns") + `", + "` + _lt("smile") + `", + "` + _lt("smiling face with horns") + `", + "` + _lt("fairy tale") + `" + ], + "name": "` + _lt("smiling face with horns") + `", + "shortcodes": [ + ":smiling_face_with_horns:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "👿", + "emoticons": [], + "keywords": [ + "` + _lt("angry face with horns") + `", + "` + _lt("demon") + `", + "` + _lt("devil") + `", + "` + _lt("face") + `", + "` + _lt("fantasy") + `", + "` + _lt("imp") + `" + ], + "name": "` + _lt("angry face with horns") + `", + "shortcodes": [ + ":angry_face_with_horns:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "💀", + "emoticons": [ + ":skull" + ], + "keywords": [ + "` + _lt("death") + `", + "` + _lt("face") + `", + "` + _lt("fairy tale") + `", + "` + _lt("monster") + `", + "` + _lt("skull") + `" + ], + "name": "` + _lt("skull") + `", + "shortcodes": [ + ":skull:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "☠️", + "emoticons": [], + "keywords": [ + "` + _lt("crossbones") + `", + "` + _lt("death") + `", + "` + _lt("face") + `", + "` + _lt("monster") + `", + "` + _lt("skull") + `", + "` + _lt("skull and crossbones") + `" + ], + "name": "` + _lt("skull and crossbones") + `", + "shortcodes": [ + ":skull_and_crossbones:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "💩", + "emoticons": [ + ":poop" + ], + "keywords": [ + "` + _lt("dung") + `", + "` + _lt("face") + `", + "` + _lt("monster") + `", + "` + _lt("pile of poo") + `", + "` + _lt("poo") + `", + "` + _lt("poop") + `" + ], + "name": "` + _lt("pile of poo") + `", + "shortcodes": [ + ":pile_of_poo:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🤡", + "emoticons": [], + "keywords": [ + "` + _lt("clown") + `", + "` + _lt("face") + `" + ], + "name": "` + _lt("clown face") + `", + "shortcodes": [ + ":clown_face:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "👹", + "emoticons": [], + "keywords": [ + "` + _lt("creature") + `", + "` + _lt("face") + `", + "` + _lt("fairy tale") + `", + "` + _lt("fantasy") + `", + "` + _lt("monster") + `", + "` + _lt("ogre") + `" + ], + "name": "` + _lt("ogre") + `", + "shortcodes": [ + ":ogre:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "👺", + "emoticons": [], + "keywords": [ + "` + _lt("creature") + `", + "` + _lt("face") + `", + "` + _lt("fairy tale") + `", + "` + _lt("fantasy") + `", + "` + _lt("goblin") + `", + "` + _lt("monster") + `" + ], + "name": "` + _lt("goblin") + `", + "shortcodes": [ + ":goblin:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "👻", + "emoticons": [ + ":ghost" + ], + "keywords": [ + "` + _lt("creature") + `", + "` + _lt("face") + `", + "` + _lt("fairy tale") + `", + "` + _lt("fantasy") + `", + "` + _lt("ghost") + `", + "` + _lt("monster") + `" + ], + "name": "` + _lt("ghost") + `", + "shortcodes": [ + ":ghost:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "👽", + "emoticons": [ + ":et", + ":alien" + ], + "keywords": [ + "` + _lt("alien") + `", + "` + _lt("creature") + `", + "` + _lt("extraterrestrial") + `", + "` + _lt("face") + `", + "` + _lt("fantasy") + `", + "` + _lt("ufo") + `" + ], + "name": "` + _lt("alien") + `", + "shortcodes": [ + ":alien:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "👾", + "emoticons": [], + "keywords": [ + "` + _lt("alien") + `", + "` + _lt("creature") + `", + "` + _lt("extraterrestrial") + `", + "` + _lt("face") + `", + "` + _lt("monster") + `", + "` + _lt("ufo") + `" + ], + "name": "` + _lt("alien monster") + `", + "shortcodes": [ + ":alien_monster:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🤖", + "emoticons": [], + "keywords": [ + "` + _lt("face") + `", + "` + _lt("monster") + `", + "` + _lt("robot") + `" + ], + "name": "` + _lt("robot") + `", + "shortcodes": [ + ":robot:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😺", + "emoticons": [ + ":kitten" + ], + "keywords": [ + "` + _lt("cat") + `", + "` + _lt("face") + `", + "` + _lt("grinning") + `", + "` + _lt("mouth") + `", + "` + _lt("open") + `", + "` + _lt("smile") + `" + ], + "name": "` + _lt("grinning cat") + `", + "shortcodes": [ + ":grinning_cat:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😸", + "emoticons": [], + "keywords": [ + "` + _lt("cat") + `", + "` + _lt("eye") + `", + "` + _lt("face") + `", + "` + _lt("grin") + `", + "` + _lt("grinning cat with smiling eyes") + `", + "` + _lt("smile") + `" + ], + "name": "` + _lt("grinning cat with smiling eyes") + `", + "shortcodes": [ + ":grinning_cat_with_smiling_eyes:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😹", + "emoticons": [], + "keywords": [ + "` + _lt("cat") + `", + "` + _lt("cat with tears of joy") + `", + "` + _lt("face") + `", + "` + _lt("joy") + `", + "` + _lt("tear") + `" + ], + "name": "` + _lt("cat with tears of joy") + `", + "shortcodes": [ + ":cat_with_ltears_of_joy:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😻", + "emoticons": [], + "keywords": [ + "` + _lt("cat") + `", + "` + _lt("eye") + `", + "` + _lt("face") + `", + "` + _lt("heart") + `", + "` + _lt("love") + `", + "` + _lt("smile") + `", + "` + _lt("smiling cat with heart-eyes") + `", + "` + _lt("smiling cat face with heart eyes") + `", + "` + _lt("smiling cat face with heart-eyes") + `" + ], + "name": "` + _lt("smiling cat with heart-eyes") + `", + "shortcodes": [ + ":smiling_cat_with_heart-eyes:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😼", + "emoticons": [], + "keywords": [ + "` + _lt("cat") + `", + "` + _lt("cat with wry smile") + `", + "` + _lt("face") + `", + "` + _lt("ironic") + `", + "` + _lt("smile") + `", + "` + _lt("wry") + `" + ], + "name": "` + _lt("cat with wry smile") + `", + "shortcodes": [ + ":cat_with_wry_smile:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😽", + "emoticons": [], + "keywords": [ + "` + _lt("cat") + `", + "` + _lt("eye") + `", + "` + _lt("face") + `", + "` + _lt("kiss") + `", + "` + _lt("kissing cat") + `" + ], + "name": "` + _lt("kissing cat") + `", + "shortcodes": [ + ":kissing_cat:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🙀", + "emoticons": [], + "keywords": [ + "` + _lt("cat") + `", + "` + _lt("face") + `", + "` + _lt("oh") + `", + "` + _lt("surprised") + `", + "` + _lt("weary") + `" + ], + "name": "` + _lt("weary cat") + `", + "shortcodes": [ + ":weary_cat:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😿", + "emoticons": [], + "keywords": [ + "` + _lt("cat") + `", + "` + _lt("cry") + `", + "` + _lt("crying cat") + `", + "` + _lt("face") + `", + "` + _lt("sad") + `", + "` + _lt("tear") + `" + ], + "name": "` + _lt("crying cat") + `", + "shortcodes": [ + ":crying_cat:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "😾", + "emoticons": [], + "keywords": [ + "` + _lt("cat") + `", + "` + _lt("face") + `", + "` + _lt("pouting") + `" + ], + "name": "` + _lt("pouting cat") + `", + "shortcodes": [ + ":pouting_cat:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🙈", + "emoticons": [ + ":no_see" + ], + "keywords": [ + "` + _lt("evil") + `", + "` + _lt("face") + `", + "` + _lt("forbidden") + `", + "` + _lt("monkey") + `", + "` + _lt("see") + `", + "` + _lt("see-no-evil monkey") + `" + ], + "name": "` + _lt("see-no-evil monkey") + `", + "shortcodes": [ + ":see-no-evil_monkey:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🙉", + "emoticons": [ + ":no_hear" + ], + "keywords": [ + "` + _lt("evil") + `", + "` + _lt("face") + `", + "` + _lt("forbidden") + `", + "` + _lt("hear") + `", + "` + _lt("hear-no-evil monkey") + `", + "` + _lt("monkey") + `" + ], + "name": "` + _lt("hear-no-evil monkey") + `", + "shortcodes": [ + ":hear-no-evil_monkey:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "🙊", + "emoticons": [ + ":no_speak" + ], + "keywords": [ + "` + _lt("evil") + `", + "` + _lt("face") + `", + "` + _lt("forbidden") + `", + "` + _lt("monkey") + `", + "` + _lt("speak") + `", + "` + _lt("speak-no-evil monkey") + `" + ], + "name": "` + _lt("speak-no-evil monkey") + `", + "shortcodes": [ + ":speak-no-evil_monkey:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "💋", + "emoticons": [], + "keywords": [ + "` + _lt("kiss") + `", + "` + _lt("kiss mark") + `", + "` + _lt("lips") + `" + ], + "name": "` + _lt("kiss mark") + `", + "shortcodes": [ + ":kiss_mark:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "💌", + "emoticons": [], + "keywords": [ + "` + _lt("heart") + `", + "` + _lt("letter") + `", + "` + _lt("love") + `", + "` + _lt("mail") + `" + ], + "name": "` + _lt("love letter") + `", + "shortcodes": [ + ":love_letter:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "💘", + "emoticons": [], + "keywords": [ + "` + _lt("arrow") + `", + "` + _lt("cupid") + `", + "` + _lt("heart with arrow") + `" + ], + "name": "` + _lt("heart with arrow") + `", + "shortcodes": [ + ":heart_with_arrow:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "💝", + "emoticons": [], + "keywords": [ + "` + _lt("heart with ribbon") + `", + "` + _lt("ribbon") + `", + "` + _lt("valentine") + `" + ], + "name": "` + _lt("heart with ribbon") + `", + "shortcodes": [ + ":heart_with_ribbon:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "💖", + "emoticons": [], + "keywords": [ + "` + _lt("excited") + `", + "` + _lt("sparkle") + `", + "` + _lt("sparkling heart") + `" + ], + "name": "` + _lt("sparkling heart") + `", + "shortcodes": [ + ":sparkling_heart:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "💗", + "emoticons": [], + "keywords": [ + "` + _lt("excited") + `", + "` + _lt("growing") + `", + "` + _lt("growing heart") + `", + "` + _lt("nervous") + `", + "` + _lt("pulse") + `" + ], + "name": "` + _lt("growing heart") + `", + "shortcodes": [ + ":growing_heart:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "💓", + "emoticons": [], + "keywords": [ + "` + _lt("beating") + `", + "` + _lt("beating heart") + `", + "` + _lt("heartbeat") + `", + "` + _lt("pulsating") + `" + ], + "name": "` + _lt("beating heart") + `", + "shortcodes": [ + ":beating_heart:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "💞", + "emoticons": [], + "keywords": [ + "` + _lt("revolving") + `", + "` + _lt("revolving hearts") + `" + ], + "name": "` + _lt("revolving hearts") + `", + "shortcodes": [ + ":revolving_hearts:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "💕", + "emoticons": [], + "keywords": [ + "` + _lt("love") + `", + "` + _lt("two hearts") + `" + ], + "name": "` + _lt("two hearts") + `", + "shortcodes": [ + ":two_hearts:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "💟", + "emoticons": [], + "keywords": [ + "` + _lt("heart") + `", + "` + _lt("heart decoration") + `" + ], + "name": "` + _lt("heart decoration") + `", + "shortcodes": [ + ":heart_decoration:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "❣️", + "emoticons": [], + "keywords": [ + "` + _lt("exclamation") + `", + "` + _lt("heart exclamation") + `", + "` + _lt("mark") + `", + "` + _lt("punctuation") + `" + ], + "name": "` + _lt("heart exclamation") + `", + "shortcodes": [ + ":heart_exclamation:" + ] +}, +{ + "category": "Smileys & Emotion", + "codepoints": "💔", + "emoticons": [ + "