### # Copyright (C) 2014-2017 Andrey Antukh # Copyright (C) 2014-2017 Jesús Espino Garcia # Copyright (C) 2014-2017 David Barragán Merino # Copyright (C) 2014-2017 Alejandro Alonso # Copyright (C) 2014-2017 Juan Francisco Alcántara # Copyright (C) 2014-2017 Xavi Julian # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # # File: modules/common/analytics.coffee ### taiga = @.taiga module = angular.module("taigaCommon") class EmojisService extends taiga.Service @.$inject = [] constructor: () -> @.emojis = _.map taiga.emojis, (it) -> it.image = "/#{window._version}/emojis/" + it.image return it @.emojisById = _.keyBy(@.emojis, 'id') @.emojisByName = _.keyBy(@.emojis, 'name') searchByName: (name) => return _.filter @.emojis, (it) -> it.name.indexOf(name) != -1 getEmojiById: (id) => return @.emojisById[id] getEmojiByName: (name) => return @.emojisByName[name] replaceImgsByEmojiName: (html) => emojiIds = taiga.getMatches(html, /emojis\/([^"]+).png"/gi) for emojiId in emojiIds regexImgs = new RegExp(']+\>', 'g') emoji = @.getEmojiById(emojiId) html = html.replace(regexImgs, ':' + emoji.name + ':') return html replaceEmojiNameByImgs: (text) => emojiIds = taiga.getMatches(text, /:([\w +-]*):/g) for emojiId in emojiIds regexImgs = new RegExp(':' + emojiId + ':', 'g') emoji = @.getEmojiByName(emojiId) if emoji text = text.replace(regexImgs, '![alt](' + emoji.image + ')') return text replaceEmojiNameByHtmlImgs: (text) => emojiIds = taiga.getMatches(text, /:([\w +-]*):/g) for emojiId in emojiIds regexImgs = new RegExp(':' + _.escapeRegExp(emojiId) + ':', 'g') emoji = @.getEmojiByName(emojiId) if emoji text = text.replace(regexImgs, '') return text module.service("$tgEmojis", EmojisService)