|
@@ -730,72 +730,6 @@
|
|
|
return frag
|
|
|
};
|
|
|
|
|
|
- u.addEmoji = function (_converse, emojione, text) {
|
|
|
- if (_converse.use_emojione) {
|
|
|
- return emojione.toImage(text);
|
|
|
- } else {
|
|
|
- return emojione.shortnameToUnicode(text);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- u.getEmojisByCategory = function (_converse, emojione) {
|
|
|
- /* Return a dict of emojis with the categories as keys and
|
|
|
- * lists of emojis in that category as values.
|
|
|
- */
|
|
|
- if (_.isUndefined(_converse.emojis_by_category)) {
|
|
|
- const emojis = _.values(_.mapValues(emojione.emojioneList, function (value, key, o) {
|
|
|
- value._shortname = key;
|
|
|
- return value
|
|
|
- }));
|
|
|
- const tones = [':tone1:', ':tone2:', ':tone3:', ':tone4:', ':tone5:'];
|
|
|
- const excluded = [':kiss_ww:', ':kiss_mm:', ':kiss_woman_man:'];
|
|
|
- const excluded_substrings = [
|
|
|
- ':woman', ':man', ':women_', ':men_', '_man_', '_woman_', '_woman:', '_man:'
|
|
|
- ];
|
|
|
- const excluded_categories = ['modifier', 'regional'];
|
|
|
- const categories = _.difference(
|
|
|
- _.uniq(_.map(emojis, _.partial(_.get, _, 'category'))),
|
|
|
- excluded_categories
|
|
|
- );
|
|
|
- const emojis_by_category = {};
|
|
|
- _.forEach(categories, (cat) => {
|
|
|
- let list = _.sortBy(_.filter(emojis, ['category', cat]), ['uc_base']);
|
|
|
- list = _.filter(
|
|
|
- list,
|
|
|
- (item) => !_.includes(_.concat(tones, excluded), item._shortname) &&
|
|
|
- !_.some(excluded_substrings, _.partial(_.includes, item._shortname))
|
|
|
- );
|
|
|
- if (cat === 'people') {
|
|
|
- const idx = _.findIndex(list, ['uc_base', '1f600']);
|
|
|
- list = _.union(_.slice(list, idx), _.slice(list, 0, idx+1));
|
|
|
- } else if (cat === 'activity') {
|
|
|
- list = _.union(_.slice(list, 27-1), _.slice(list, 0, 27));
|
|
|
- } else if (cat === 'objects') {
|
|
|
- list = _.union(_.slice(list, 24-1), _.slice(list, 0, 24));
|
|
|
- } else if (cat === 'travel') {
|
|
|
- list = _.union(_.slice(list, 17-1), _.slice(list, 0, 17));
|
|
|
- } else if (cat === 'symbols') {
|
|
|
- list = _.union(_.slice(list, 60-1), _.slice(list, 0, 60));
|
|
|
- }
|
|
|
- emojis_by_category[cat] = list;
|
|
|
- });
|
|
|
- _converse.emojis_by_category = emojis_by_category;
|
|
|
- }
|
|
|
- return _converse.emojis_by_category;
|
|
|
- };
|
|
|
-
|
|
|
- u.getTonedEmojis = function (_converse) {
|
|
|
- _converse.toned_emojis = _.uniq(
|
|
|
- _.map(
|
|
|
- _.filter(
|
|
|
- u.getEmojisByCategory(_converse).people,
|
|
|
- (person) => _.includes(person._shortname, '_tone')
|
|
|
- ),
|
|
|
- (person) => person._shortname.replace(/_tone[1-5]/, '')
|
|
|
- ));
|
|
|
- return _converse.toned_emojis;
|
|
|
- };
|
|
|
-
|
|
|
u.isPersistableModel = function (model) {
|
|
|
return model.collection && model.collection.browserStorage;
|
|
|
};
|