How to use emojiData method in Best

Best JavaScript code snippet using best

emojiCustom.js

Source:emojiCustom.js Github

copy

Full Screen

1import { Meteor } from 'meteor/meteor';2import { Blaze } from 'meteor/blaze';3import { Session } from 'meteor/session';4import { isSetNotNull } from './function-isSet';5import { RoomManager } from '../../../ui-utils/client';6import { emoji, EmojiPicker } from '../../../emoji/client';7import { CachedCollectionManager } from '../../../ui-cached-collection/client';8import { APIClient } from '../../../utils/client';9import { escapeRegExp } from '../../../../client/lib/escapeRegExp';10export const getEmojiUrlFromName = function(name, extension) {11 Session.get;12 const key = `emoji_random_${ name }`;13 let random = 0;14 if (isSetNotNull(() => Session.keys[key])) {15 random = Session.keys[key];16 }17 if (name == null) {18 return;19 }20 const path = __meteor_runtime_config__.ROOT_URL_PATH_PREFIX || '';21 return `${ path }/emoji-custom/${ encodeURIComponent(name) }.${ extension }?_dc=${ random }`;22};23Blaze.registerHelper('emojiUrlFromName', getEmojiUrlFromName);24export const deleteEmojiCustom = function(emojiData) {25 delete emoji.list[`:${ emojiData.name }:`];26 const arrayIndex = emoji.packages.emojiCustom.emojisByCategory.rocket.indexOf(emojiData.name);27 if (arrayIndex !== -1) {28 emoji.packages.emojiCustom.emojisByCategory.rocket.splice(arrayIndex, 1);29 }30 const arrayIndexList = emoji.packages.emojiCustom.list.indexOf(`:${ emojiData.name }:`);31 if (arrayIndexList !== -1) {32 emoji.packages.emojiCustom.list.splice(arrayIndexList, 1);33 }34 if (isSetNotNull(() => emojiData.aliases)) {35 for (const alias of emojiData.aliases) {36 delete emoji.list[`:${ alias }:`];37 const aliasIndex = emoji.packages.emojiCustom.list.indexOf(`:${ alias }:`);38 if (aliasIndex !== -1) {39 emoji.packages.emojiCustom.list.splice(aliasIndex, 1);40 }41 }42 }43 EmojiPicker.updateRecent('rocket');44};45export const updateEmojiCustom = function(emojiData) {46 let key = `emoji_random_${ emojiData.name }`;47 Session.set(key, Math.round(Math.random() * 1000));48 const previousExists = isSetNotNull(() => emojiData.previousName);49 const currentAliases = isSetNotNull(() => emojiData.aliases);50 if (previousExists && isSetNotNull(() => emoji.list[`:${ emojiData.previousName }:`].aliases)) {51 for (const alias of emoji.list[`:${ emojiData.previousName }:`].aliases) {52 delete emoji.list[`:${ alias }:`];53 const aliasIndex = emoji.packages.emojiCustom.list.indexOf(`:${ alias }:`);54 if (aliasIndex !== -1) {55 emoji.packages.emojiCustom.list.splice(aliasIndex, 1);56 }57 }58 }59 if (previousExists && emojiData.name !== emojiData.previousName) {60 const arrayIndex = emoji.packages.emojiCustom.emojisByCategory.rocket.indexOf(emojiData.previousName);61 if (arrayIndex !== -1) {62 emoji.packages.emojiCustom.emojisByCategory.rocket.splice(arrayIndex, 1);63 }64 const arrayIndexList = emoji.packages.emojiCustom.list.indexOf(`:${ emojiData.previousName }:`);65 if (arrayIndexList !== -1) {66 emoji.packages.emojiCustom.list.splice(arrayIndexList, 1);67 }68 delete emoji.list[`:${ emojiData.previousName }:`];69 }70 const categoryIndex = emoji.packages.emojiCustom.emojisByCategory.rocket.indexOf(`${ emojiData.name }`);71 if (categoryIndex === -1) {72 emoji.packages.emojiCustom.emojisByCategory.rocket.push(`${ emojiData.name }`);73 emoji.packages.emojiCustom.list.push(`:${ emojiData.name }:`);74 }75 emoji.list[`:${ emojiData.name }:`] = Object.assign({ emojiPackage: 'emojiCustom' }, emoji.list[`:${ emojiData.name }:`], emojiData);76 if (currentAliases) {77 for (const alias of emojiData.aliases) {78 emoji.packages.emojiCustom.list.push(`:${ alias }:`);79 emoji.list[`:${ alias }:`] = {};80 emoji.list[`:${ alias }:`].emojiPackage = 'emojiCustom';81 emoji.list[`:${ alias }:`].aliasOf = emojiData.name;82 }83 }84 const url = getEmojiUrlFromName(emojiData.name, emojiData.extension);85 // update in admin interface86 if (previousExists && emojiData.name !== emojiData.previousName) {87 $(document).find(`.emojiAdminPreview-image[data-emoji='${ emojiData.previousName }']`).css('background-image', `url('${ url })'`).attr('data-emoji', `${ emojiData.name }`);88 } else {89 $(document).find(`.emojiAdminPreview-image[data-emoji='${ emojiData.name }']`).css('background-image', `url('${ url }')`);90 }91 // update in picker92 if (previousExists && emojiData.name !== emojiData.previousName) {93 $(document).find(`li[data-emoji='${ emojiData.previousName }'] span`).css('background-image', `url('${ url }')`).attr('data-emoji', `${ emojiData.name }`);94 $(document).find(`li[data-emoji='${ emojiData.previousName }']`).attr('data-emoji', `${ emojiData.name }`).attr('class', `emoji-${ emojiData.name }`);95 } else {96 $(document).find(`li[data-emoji='${ emojiData.name }'] span`).css('background-image', `url('${ url }')`);97 }98 // update in picker and opened rooms99 for (key in RoomManager.openedRooms) {100 if (RoomManager.openedRooms.hasOwnProperty(key)) {101 const room = RoomManager.openedRooms[key];102 if (previousExists && emojiData.name !== emojiData.previousName) {103 $(room.dom).find(`span[data-emoji='${ emojiData.previousName }']`).css('background-image', `url('${ url }')`).attr('data-emoji', `${ emojiData.name }`);104 } else {105 $(room.dom).find(`span[data-emoji='${ emojiData.name }']`).css('background-image', `url('${ url }')`);106 }107 }108 }109 EmojiPicker.updateRecent('rocket');110};111const customRender = (html) => {112 const emojisMatchGroup = emoji.packages.emojiCustom.list.map(escapeRegExp).join('|');113 if (emojisMatchGroup !== emoji.packages.emojiCustom._regexpSignature) {114 emoji.packages.emojiCustom._regexpSignature = emojisMatchGroup;115 emoji.packages.emojiCustom._regexp = new RegExp(`<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|(${ emojisMatchGroup })`, 'gi');116 }117 html = html.replace(emoji.packages.emojiCustom._regexp, (shortname) => {118 if ((typeof shortname === 'undefined') || (shortname === '') || (emoji.packages.emojiCustom.list.indexOf(shortname) === -1)) {119 return shortname;120 }121 let emojiAlias = shortname.replace(/:/g, '');122 let dataCheck = emoji.list[shortname];123 if (dataCheck.hasOwnProperty('aliasOf')) {124 emojiAlias = dataCheck.aliasOf;125 dataCheck = emoji.list[`:${ emojiAlias }:`];126 }127 return `<span class="emoji" style="background-image:url(${ getEmojiUrlFromName(emojiAlias, dataCheck.extension) });" data-emoji="${ emojiAlias }" title="${ shortname }">${ shortname }</span>`;128 });129 return html;130};131emoji.packages.emojiCustom = {132 emojiCategories: [{ key: 'rocket', i18n: 'Custom' }],133 categoryIndex: 1,134 toneList: {},135 list: [],136 _regexpSignature: null,137 _regexp: null,138 render: customRender,139 renderPicker: customRender,140};141Meteor.startup(() =>142 CachedCollectionManager.onLogin(async () => {143 try {144 const { emojis: { update: emojis } } = await APIClient.v1.get('emoji-custom.list');145 emoji.packages.emojiCustom.emojisByCategory = { rocket: [] };146 for (const currentEmoji of emojis) {147 emoji.packages.emojiCustom.emojisByCategory.rocket.push(currentEmoji.name);148 emoji.packages.emojiCustom.list.push(`:${ currentEmoji.name }:`);149 emoji.list[`:${ currentEmoji.name }:`] = currentEmoji;150 emoji.list[`:${ currentEmoji.name }:`].emojiPackage = 'emojiCustom';151 for (const alias of currentEmoji.aliases) {152 emoji.packages.emojiCustom.list.push(`:${ alias }:`);153 emoji.list[`:${ alias }:`] = {154 emojiPackage: 'emojiCustom',155 aliasOf: currentEmoji.name,156 };157 }158 }159 EmojiPicker.updateRecent('rocket');160 } catch (e) {161 console.error('Error getting custom emoji', e);162 }163 }),...

Full Screen

Full Screen

insertOrUpdateEmoji.js

Source:insertOrUpdateEmoji.js Github

copy

Full Screen

1import { Meteor } from 'meteor/meteor';2import _ from 'underscore';3import s from 'underscore.string';4import limax from 'limax';5import { hasPermission } from '../../../authorization';6import { EmojiCustom } from '../../../models';7import { RocketChatFileEmojiCustomInstance } from '../startup/emoji-custom';8import { api } from '../../../../server/sdk/api';9Meteor.methods({10 insertOrUpdateEmoji(emojiData) {11 if (!hasPermission(this.userId, 'manage-emoji')) {12 throw new Meteor.Error('not_authorized');13 }14 if (!s.trim(emojiData.name)) {15 throw new Meteor.Error('error-the-field-is-required', 'The field Name is required', { method: 'insertOrUpdateEmoji', field: 'Name' });16 }17 emojiData.name = limax(emojiData.name, { replacement: '_' });18 emojiData.aliases = limax(emojiData.aliases, { replacement: '_' });19 // allow all characters except colon, whitespace, comma, >, <, &, ", ', /, \, (, )20 // more practical than allowing specific sets of characters; also allows foreign languages21 const nameValidation = /[\s,:><&"'\/\\\(\)]/;22 const aliasValidation = /[:><&\|"'\/\\\(\)]/;23 // silently strip colon; this allows for uploading :emojiname: as emojiname24 emojiData.name = emojiData.name.replace(/:/g, '');25 emojiData.aliases = emojiData.aliases.replace(/:/g, '');26 if (nameValidation.test(emojiData.name)) {27 throw new Meteor.Error('error-input-is-not-a-valid-field', `${ emojiData.name } is not a valid name`, { method: 'insertOrUpdateEmoji', input: emojiData.name, field: 'Name' });28 }29 if (emojiData.aliases) {30 if (aliasValidation.test(emojiData.aliases)) {31 throw new Meteor.Error('error-input-is-not-a-valid-field', `${ emojiData.aliases } is not a valid alias set`, { method: 'insertOrUpdateEmoji', input: emojiData.aliases, field: 'Alias_Set' });32 }33 emojiData.aliases = emojiData.aliases.split(/[\s,]/);34 emojiData.aliases = emojiData.aliases.filter(Boolean);35 emojiData.aliases = _.without(emojiData.aliases, emojiData.name);36 } else {37 emojiData.aliases = [];38 }39 let matchingResults = [];40 if (emojiData._id) {41 matchingResults = EmojiCustom.findByNameOrAliasExceptID(emojiData.name, emojiData._id).fetch();42 for (const alias of emojiData.aliases) {43 matchingResults = matchingResults.concat(EmojiCustom.findByNameOrAliasExceptID(alias, emojiData._id).fetch());44 }45 } else {46 matchingResults = EmojiCustom.findByNameOrAlias(emojiData.name).fetch();47 for (const alias of emojiData.aliases) {48 matchingResults = matchingResults.concat(EmojiCustom.findByNameOrAlias(alias).fetch());49 }50 }51 if (matchingResults.length > 0) {52 throw new Meteor.Error('Custom_Emoji_Error_Name_Or_Alias_Already_In_Use', 'The custom emoji or one of its aliases is already in use', { method: 'insertOrUpdateEmoji' });53 }54 if (!emojiData._id) {55 // insert emoji56 const createEmoji = {57 name: emojiData.name,58 aliases: emojiData.aliases,59 extension: emojiData.extension,60 };61 const _id = EmojiCustom.create(createEmoji);62 api.broadcast('emoji.updateCustom', createEmoji);63 return _id;64 }65 // update emoji66 if (emojiData.newFile) {67 RocketChatFileEmojiCustomInstance.deleteFile(encodeURIComponent(`${ emojiData.name }.${ emojiData.extension }`));68 RocketChatFileEmojiCustomInstance.deleteFile(encodeURIComponent(`${ emojiData.name }.${ emojiData.previousExtension }`));69 RocketChatFileEmojiCustomInstance.deleteFile(encodeURIComponent(`${ emojiData.previousName }.${ emojiData.extension }`));70 RocketChatFileEmojiCustomInstance.deleteFile(encodeURIComponent(`${ emojiData.previousName }.${ emojiData.previousExtension }`));71 EmojiCustom.setExtension(emojiData._id, emojiData.extension);72 } else if (emojiData.name !== emojiData.previousName) {73 const rs = RocketChatFileEmojiCustomInstance.getFileWithReadStream(encodeURIComponent(`${ emojiData.previousName }.${ emojiData.previousExtension }`));74 if (rs !== null) {75 RocketChatFileEmojiCustomInstance.deleteFile(encodeURIComponent(`${ emojiData.name }.${ emojiData.extension }`));76 const ws = RocketChatFileEmojiCustomInstance.createWriteStream(encodeURIComponent(`${ emojiData.name }.${ emojiData.previousExtension }`), rs.contentType);77 ws.on('end', Meteor.bindEnvironment(() =>78 RocketChatFileEmojiCustomInstance.deleteFile(encodeURIComponent(`${ emojiData.previousName }.${ emojiData.previousExtension }`)),79 ));80 rs.readStream.pipe(ws);81 }82 }83 if (emojiData.name !== emojiData.previousName) {84 EmojiCustom.setName(emojiData._id, emojiData.name);85 }86 if (emojiData.aliases) {87 EmojiCustom.setAliases(emojiData._id, emojiData.aliases);88 } else {89 EmojiCustom.setAliases(emojiData._id, []);90 }91 api.broadcast('emoji.updateCustom', emojiData);92 return true;93 },...

Full Screen

Full Screen

Using AI Code Generation

copy

Full Screen

1var BestEmoji = require('best-emoji');2var bestEmoji = new BestEmoji();3console.log(bestEmoji.emojiData('smiley'));4var BestEmoji = require('best-emoji');5var bestEmoji = new BestEmoji();6console.log(bestEmoji.emojiData('smiley'));7var BestEmoji = require('best-emoji');8var bestEmoji = new BestEmoji();9console.log(bestEmoji.emojiData('smiley'));10var BestEmoji = require('best-emoji');11var bestEmoji = new BestEmoji();12console.log(bestEmoji.emojiData('smiley'));13var BestEmoji = require('best-emoji');14var bestEmoji = new BestEmoji();15console.log(bestEmoji.emojiData('smiley'));16var BestEmoji = require('best-emoji');17var bestEmoji = new BestEmoji();18console.log(bestEmoji.emojiData('smiley'));19var BestEmoji = require('best-emoji');20var bestEmoji = new BestEmoji();21console.log(bestEmoji.emojiData('smiley'));22var BestEmoji = require('best-emoji');23var bestEmoji = new BestEmoji();24console.log(bestEmoji.emojiData('smiley'));25var BestEmoji = require('best-emoji');26var bestEmoji = new BestEmoji();27console.log(bestEmoji.emojiData('smiley'));28var BestEmoji = require('best-emoji');29var bestEmoji = new BestEmoji();30console.log(bestEmoji.emojiData('smiley'));31var BestEmoji = require('best-emoji');32var bestEmoji = new BestEmoji();33console.log(bestEmoji.emojiData('smiley'));

Full Screen

Using AI Code Generation

copy

Full Screen

1const BestEmoji = require('best-emoji');2const emojiData = BestEmoji.emojiData;3const emoji = emojiData('👍');4console.log(emoji);5const BestEmoji = require('best-emoji');6const emojiData = BestEmoji.emojiData;7const emoji = emojiData('👍');8console.log(emoji);9const BestEmoji = require('best-emoji');10const emojiData = BestEmoji.emojiData;11const emoji = emojiData('👍');12console.log(emoji);13const BestEmoji = require('best-emoji');14const emojiData = BestEmoji.emojiData;15const emoji = emojiData('👍');16console.log(emoji);17const BestEmoji = require('best-emoji');18const emojiData = BestEmoji.emojiData;19const emoji = emojiData('👍');20console.log(emoji);21const BestEmoji = require('best-emoji');22const emojiData = BestEmoji.emojiData;23const emoji = emojiData('👍');24console.log(emoji);25const BestEmoji = require('best-emoji');26const emojiData = BestEmoji.emojiData;27const emoji = emojiData('👍');28console.log(emoji);29const BestEmoji = require('best-emoji');30const emojiData = BestEmoji.emojiData;31const emoji = emojiData('👍');32console.log(emoji);33const BestEmoji = require('best-emoji');34const emojiData = BestEmoji.emojiData;35const emoji = emojiData('👍');36console.log(emoji);37const BestEmoji = require('best-emoji');38const emojiData = BestEmoji.emojiData;39const emoji = emojiData('👍

Full Screen

Using AI Code Generation

copy

Full Screen

1const BestEmoji = require('best-emoji');2const emojiData = BestEmoji.emojiData;3const emoji = emojiData('cat');4console.log(emoji);5const BestEmoji = require('best-emoji');6const emojiData = BestEmoji.emojiData;7const emoji = emojiData('cat', {output: 'unicode'});8console.log(emoji);9const BestEmoji = require('best-emoji');10const emojiData = BestEmoji.emojiData;11const emoji = emojiData('cat', {output: 'string'});12console.log(emoji);13const BestEmoji = require('best-emoji');14const emojiData = BestEmoji.emojiData;15const emoji = emojiData('cat', {output: 'hexcode'});16console.log(emoji);17const BestEmoji = require('best-emoji');18const emojiData = BestEmoji.emojiData;19const emoji = emojiData('cat', {output: 'decimal'});20console.log(emoji);21const BestEmoji = require('best-emoji');22const emojiData = BestEmoji.emojiData;23const emoji = emojiData('cat', {output: 'html'});24console.log(emoji);25const BestEmoji = require('best-emoji');26const emojiData = BestEmoji.emojiData;27const emoji = emojiData('cat', {output: 'js'});28console.log(emoji);29const BestEmoji = require('best-emoji');30const emojiData = BestEmoji.emojiData;31const emoji = emojiData('cat', {output: 'json'});32console.log(emoji);

Full Screen

Using AI Code Generation

copy

Full Screen

1const BestEmoji = require('./BestEmoji');2const bestEmoji = new BestEmoji();3console.log(bestEmoji.emojiData());4class BestEmoji {5 emojiData() {6 return '🎉';7 }8}9module.exports = BestEmoji;

Full Screen

Using AI Code Generation

copy

Full Screen

1var bestEmoji = require("best-emoji");2var emoji = bestEmoji.emojiData('😂');3console.log(emoji);4var bestEmoji = require("best-emoji");5var emoji = bestEmoji.emojiData('🤔');6console.log(emoji);7var bestEmoji = require("best-emoji");8var emoji = bestEmoji.emojiData('😍');9console.log(emoji);10var bestEmoji = require("best-emoji");11var emoji = bestEmoji.emojiData('😭');12console.log(emoji);13var bestEmoji = require("best-emoji");14var emoji = bestEmoji.emojiData('😱');15console.log(emoji);16var bestEmoji = require("best-emoji");17var emoji = bestEmoji.emojiData('😡');18console.log(emoji);19var bestEmoji = require("best-emoji");20var emoji = bestEmoji.emojiData('😎');21console.log(emoji);

Full Screen

Using AI Code Generation

copy

Full Screen

1const emojiData = require('./BestEmoji');2console.log(emojiData.getEmoji('happy'));3const emojiData = require('./emojiData');4const emoji = require('node-emoji');5const getEmoji = (name) => {6 if (emojiData[name]) {7 return emoji.get(emojiData[name]);8 }9 return null;10}11module.exports = {12}13module.exports = {14}

Full Screen

Using AI Code Generation

copy

Full Screen

1const BestEmoji = require('bestemoji')2const bestEmoji = new BestEmoji()3const emoji = bestEmoji.emojiData(text)4console.log(emoji)5const BestEmoji = require('bestemoji')6const bestEmoji = new BestEmoji()7const emoji = bestEmoji.getEmoji(text)8console.log(emoji)

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run Best automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful