mirror of
https://github.com/FrankerFaceZ/FrankerFaceZ.git
synced 2025-06-27 12:55:55 +00:00
65 lines
No EOL
1.7 KiB
JavaScript
65 lines
No EOL
1.7 KiB
JavaScript
var FFZ = window.FrankerFaceZ,
|
|
utils = require('../utils');
|
|
|
|
|
|
// --------------------
|
|
// Initialization
|
|
// --------------------
|
|
|
|
FFZ.prototype.find_emote_menu = function(increment, delay) {
|
|
this.has_emote_menu = false;
|
|
if ( window.emoteMenu && emoteMenu.registerEmoteGetter )
|
|
return this.setup_emote_menu(delay||0);
|
|
|
|
if ( delay >= 60000 )
|
|
this.log("Emote Menu for Twitch was not detected after 60 seconds.");
|
|
else
|
|
setTimeout(this.find_emote_menu.bind(this, increment, (delay||0) + increment),
|
|
increment);
|
|
}
|
|
|
|
|
|
FFZ.prototype.setup_emote_menu = function(delay) {
|
|
this.log("Emote Menu for Twitch was detected after " + delay + "ms. Registering emote enumerator.");
|
|
emoteMenu.registerEmoteGetter("FrankerFaceZ", this._emote_menu_enumerator.bind(this));
|
|
}
|
|
|
|
|
|
// --------------------
|
|
// Emote Enumerator
|
|
// --------------------
|
|
|
|
FFZ.prototype._emote_menu_enumerator = function() {
|
|
if ( this.has_bttv_6 )
|
|
return [];
|
|
|
|
var twitch_user = this.get_user(),
|
|
user_id = twitch_user ? twitch_user.login : null,
|
|
controller = utils.ember_lookup('controller:chat'),
|
|
room_id = controller ? controller.get('currentRoom.id') : null,
|
|
sets = this.getEmotes(user_id, room_id),
|
|
emotes = [];
|
|
|
|
for(var x = 0; x < sets.length; x++) {
|
|
var set = this.emote_sets[sets[x]];
|
|
if ( ! set || ! set.emoticons )
|
|
continue;
|
|
|
|
for(var emote_id in set.emoticons) {
|
|
if ( ! set.emoticons.hasOwnProperty(emote_id) )
|
|
continue;
|
|
|
|
var emote = set.emoticons[emote_id];
|
|
if ( emote.hidden )
|
|
continue;
|
|
|
|
var title = (set.source || "FrankerFaceZ") + " " + set.title,
|
|
badge = set.icon || '//cdn.frankerfacez.com/script/devicon.png';
|
|
|
|
emotes.push({text: emote.name, url: emote.urls[1],
|
|
hidden: false, channel: title, badge: badge});
|
|
}
|
|
}
|
|
|
|
return emotes;
|
|
} |