Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let bttvEmotes = [];
- loadEmotes({ size: '2x', channels: ['callowcreation', 'marleyxo'] });
- function loadEmotes(emoteSets) {
- $.getJSON("https://api.betterttv.net/2/emotes").done((data) => {
- bttvEmotes = data.emotes;
- for (let i = 0; i < emoteSets.channels.length; i++) {
- const channel = emoteSets.channels[i];
- $.getJSON(`https://api.betterttv.net/2/channels/${channel}`).done((data) => {
- const emotes = data.emotes.map((x) => {
- //console.log(`//cdn.betterttv.net/emote/${x.id}/2x`);
- return {
- url: `//cdn.betterttv.net/emote/${x.id}/2x`,
- width: x.width,
- height: x.height,
- imageType: x.imageType,
- regex: x.code,
- channel: x.channel
- }
- });
- bttvEmotes = bttvEmotes.concat(emotes);
- }).fail(() => { console.log(`${channel} bttv emote set not loaded`); });
- }
- }).fail(() => { console.log("Could not load bttv emote set"); });
- }
- function formatBttvEmotes(message) {
- for (let i = 0; i < bttvEmotes.length; i++) {
- const emote = bttvEmotes[i];
- try {
- if(typeof emote.regex === 'undefined') {
- console.log(emote);
- continue;
- }
- const re = new RegExp(`\\b${emote.regex}\\b`, "g");
- message = message.replace(re, `<img src="${emote.url}" />`);
- } catch (ex) {
- //console.log(ex);
- }
- }
- return message;
- }
- function formatEmotes(message, emotes) {
- let splitText = message.split('');
- for (let i in emotes) {
- const e = emotes[i];
- for (let j in e) {
- let mote = e[j];
- if (typeof mote == 'string') {
- mote = mote.split('-');
- mote = [parseInt(mote[0]), parseInt(mote[1])];
- const length = mote[1] - mote[0],
- empty = Array.apply(null, new Array(length + 1)).map(() => { return '' });
- splitText = splitText.slice(0, mote[0]).concat(empty).concat(splitText.slice(mote[1] + 1, splitText.length));
- splitText.splice(mote[0], 1, '<img class="emoticon" src="http://static-cdn.jtvnw.net/emoticons/v1/' + i + '/3.0">');
- }
- }
- }
- return splitText.join('');
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement