init commit
This commit is contained in:
310
libs/phantombot/scripts/discord/handlers/subscribeHandler.js
Normal file
310
libs/phantombot/scripts/discord/handlers/subscribeHandler.js
Normal file
@@ -0,0 +1,310 @@
|
||||
/*
|
||||
* Copyright (C) 2016-2020 phantombot.github.io/PhantomBot
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/**
|
||||
* This module is to handle subscriber notifications.
|
||||
*/
|
||||
(function() {
|
||||
var subMessage = $.getSetIniDbString('discordSettings', 'subMessage', '(name) just subscribed!'),
|
||||
primeMessage = $.getSetIniDbString('discordSettings', 'primeMessage', '(name) just subscribed with Twitch Prime!'),
|
||||
resubMessage = $.getSetIniDbString('discordSettings', 'resubMessage', '(name) just subscribed for (months) months in a row!'),
|
||||
giftsubMessage = $.getSetIniDbString('discordSettings', 'giftsubMessage', '(name) just gifted (recipient) a subscription!'),
|
||||
subToggle = $.getSetIniDbBoolean('discordSettings', 'subToggle', false),
|
||||
primeToggle = $.getSetIniDbBoolean('discordSettings', 'primeToggle', false),
|
||||
resubToggle = $.getSetIniDbBoolean('discordSettings', 'resubToggle', false),
|
||||
giftsubToggle = $.getSetIniDbBoolean('discordSettings', 'giftsubToggle', false),
|
||||
channelName = $.getSetIniDbString('discordSettings', 'subChannel', ''),
|
||||
announce = false;
|
||||
|
||||
/**
|
||||
* @event webPanelSocketUpdate
|
||||
*/
|
||||
$.bind('webPanelSocketUpdate', function(event) {
|
||||
if (event.getScript().equalsIgnoreCase('./discord/handlers/subscribeHandler.js')) {
|
||||
subMessage = $.getIniDbString('discordSettings', 'subMessage', '(name) just subscribed!');
|
||||
primeMessage = $.getIniDbString('discordSettings', 'primeMessage', '(name) just subscribed with Twitch Prime!');
|
||||
resubMessage = $.getIniDbString('discordSettings', 'resubMessage', '(name) just subscribed for (months) months in a row!');
|
||||
giftsubMessage = $.getSetIniDbString('discordSettings', 'giftsubMessage', '(name) just gifted (recipient) a subscription!');
|
||||
subToggle = $.getIniDbBoolean('discordSettings', 'subToggle', false);
|
||||
primeToggle = $.getIniDbBoolean('discordSettings', 'primeToggle', false);
|
||||
resubToggle = $.getIniDbBoolean('discordSettings', 'resubToggle', false);
|
||||
giftsubToggle = $.getSetIniDbBoolean('discordSettings', 'giftsubToggle', false);
|
||||
channelName = $.getIniDbString('discordSettings', 'subChannel', '');
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @event twitchSubscriber
|
||||
*/
|
||||
$.bind('twitchSubscriber', function(event) {
|
||||
var subscriber = event.getSubscriber(),
|
||||
s = subMessage;
|
||||
|
||||
if (announce === false || subToggle === false || channelName == '') {
|
||||
return;
|
||||
}
|
||||
|
||||
if (s.match(/\(name\)/g)) {
|
||||
s = $.replace(s, '(name)', subscriber);
|
||||
}
|
||||
|
||||
$.discordAPI.sendMessageEmbed(channelName, new Packages.tv.phantombot.discord.util.EmbedBuilder()
|
||||
.withColor(100, 65, 164)
|
||||
.withThumbnail('https://static-cdn.jtvnw.net/badges/v1/5d9f2208-5dd8-11e7-8513-2ff4adfae661/2')
|
||||
.withTitle($.lang.get('discord.subscribehandler.subscriber.embedtitle'))
|
||||
.appendDescription(s)
|
||||
.withTimestamp(Date.now())
|
||||
.withFooterText('Twitch')
|
||||
.withFooterIcon($.twitchcache.getLogoLink()).build());
|
||||
});
|
||||
|
||||
/*
|
||||
* @event twitchSubscriptionGift
|
||||
*/
|
||||
$.bind('twitchSubscriptionGift', function(event) {
|
||||
var gifter = event.getUsername(),
|
||||
recipient = event.getRecipient(),
|
||||
months = event.getMonths(),
|
||||
s = giftsubMessage;
|
||||
|
||||
if (announce === false || giftsubToggle === false || channelName == '') {
|
||||
return;
|
||||
}
|
||||
|
||||
if (s.match(/\(name\)/g)) {
|
||||
s = $.replace(s, '(name)', gifter);
|
||||
}
|
||||
|
||||
if (s.match(/\(recipient\)/g)) {
|
||||
s = $.replace(s, '(recipient)', recipient);
|
||||
}
|
||||
|
||||
if (s.match(/\(months\)/g)) {
|
||||
s = $.replace(s, '(months)', months);
|
||||
}
|
||||
|
||||
$.discordAPI.sendMessageEmbed(channelName, new Packages.tv.phantombot.discord.util.EmbedBuilder()
|
||||
.withColor(100, 65, 164)
|
||||
.withThumbnail('https://static-cdn.jtvnw.net/badges/v1/5d9f2208-5dd8-11e7-8513-2ff4adfae661/2')
|
||||
.withTitle($.lang.get('discord.subscribehandler.giftsubscriber.embedtitle'))
|
||||
.appendDescription(s)
|
||||
.withTimestamp(Date.now())
|
||||
.withFooterText('Twitch')
|
||||
.withFooterIcon($.twitchcache.getLogoLink()).build());
|
||||
});
|
||||
|
||||
/**
|
||||
* @event twitchPrimeSubscriber
|
||||
*/
|
||||
$.bind('twitchPrimeSubscriber', function(event) {
|
||||
var subscriber = event.getSubscriber(),
|
||||
s = primeMessage;
|
||||
|
||||
if (announce === false || primeToggle === false || channelName == '') {
|
||||
return;
|
||||
}
|
||||
|
||||
if (s.match(/\(name\)/g)) {
|
||||
s = $.replace(s, '(name)', subscriber);
|
||||
}
|
||||
|
||||
$.discordAPI.sendMessageEmbed(channelName, new Packages.tv.phantombot.discord.util.EmbedBuilder()
|
||||
.withColor(100, 65, 164)
|
||||
.withThumbnail('https://static-cdn.jtvnw.net/badges/v1/5d9f2208-5dd8-11e7-8513-2ff4adfae661/2')
|
||||
.withTitle($.lang.get('discord.subscribehandler.primesubscriber.embedtitle'))
|
||||
.appendDescription(s)
|
||||
.withTimestamp(Date.now())
|
||||
.withFooterText('Twitch')
|
||||
.withFooterIcon($.twitchcache.getLogoLink()).build());
|
||||
});
|
||||
|
||||
/**
|
||||
* @event twitchReSubscriber
|
||||
*/
|
||||
$.bind('twitchReSubscriber', function(event) {
|
||||
var subscriber = event.getReSubscriber(),
|
||||
months = event.getMonths(),
|
||||
s = resubMessage;
|
||||
|
||||
if (announce === false || resubToggle === false || channelName == '') {
|
||||
return;
|
||||
}
|
||||
|
||||
if (s.match(/\(name\)/g)) {
|
||||
s = $.replace(s, '(name)', subscriber);
|
||||
}
|
||||
|
||||
if (s.match(/\(months\)/g)) {
|
||||
s = $.replace(s, '(months)', months);
|
||||
}
|
||||
|
||||
$.discordAPI.sendMessageEmbed(channelName, new Packages.tv.phantombot.discord.util.EmbedBuilder()
|
||||
.withColor(100, 65, 164)
|
||||
.withThumbnail('https://static-cdn.jtvnw.net/badges/v1/5d9f2208-5dd8-11e7-8513-2ff4adfae661/2')
|
||||
.withTitle($.lang.get('discord.subscribehandler.resubscriber.embedtitle'))
|
||||
.appendDescription(s)
|
||||
.withTimestamp(Date.now())
|
||||
.withFooterText('Twitch')
|
||||
.withFooterIcon($.twitchcache.getLogoLink()).build());
|
||||
});
|
||||
|
||||
/**
|
||||
* @event discordChannelCommand
|
||||
*/
|
||||
$.bind('discordChannelCommand', function(event) {
|
||||
var sender = event.getSender(),
|
||||
channel = event.getDiscordChannel(),
|
||||
command = event.getCommand(),
|
||||
mention = event.getMention(),
|
||||
arguments = event.getArguments(),
|
||||
args = event.getArgs(),
|
||||
action = args[0],
|
||||
subAction = args[1];
|
||||
|
||||
if (command.equalsIgnoreCase('subscribehandler')) {
|
||||
if (action === undefined) {
|
||||
$.discord.say(channel, $.discord.userPrefix(mention) + $.lang.get('discord.subscribehandler.usage'));
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* @discordcommandpath subscribehandler subtoggle - Toggles subscriber announcements.
|
||||
*/
|
||||
if (action.equalsIgnoreCase('subtoggle')) {
|
||||
subToggle = !subToggle;
|
||||
$.inidb.set('discordSettings', 'subToggle', subToggle);
|
||||
$.discord.say(channel, $.discord.userPrefix(mention) + $.lang.get('discord.subscribehandler.sub.toggle', (subToggle === true ? $.lang.get('common.enabled') : $.lang.get('common.disabled'))));
|
||||
}
|
||||
|
||||
/**
|
||||
* @discordcommandpath subscribehandler giftsubtoggle - Toggles gifted subscriber announcements.
|
||||
*/
|
||||
if (action.equalsIgnoreCase('giftsubtoggle')) {
|
||||
giftsubToggle = !giftsubToggle;
|
||||
$.inidb.set('discordSettings', 'giftsubToggle', giftsubToggle);
|
||||
$.discord.say(channel, $.discord.userPrefix(mention) + $.lang.get('discord.subscribehandler.giftsub.toggle', (giftsubToggle === true ? $.lang.get('common.enabled') : $.lang.get('common.disabled'))));
|
||||
}
|
||||
|
||||
/**
|
||||
* @discordcommandpath subscribehandler primetoggle - Toggles Twitch Prime subscriber announcements.
|
||||
*/
|
||||
if (action.equalsIgnoreCase('primetoggle')) {
|
||||
primeToggle = !primeToggle;
|
||||
$.inidb.set('discordSettings', 'primeToggle', primeToggle);
|
||||
$.discord.say(channel, $.discord.userPrefix(mention) + $.lang.get('discord.subscribehandler.prime.toggle', (primeToggle === true ? $.lang.get('common.enabled') : $.lang.get('common.disabled'))));
|
||||
}
|
||||
|
||||
/**
|
||||
* @discordcommandpath subscribehandler resubtoggle - Toggles re-subscriber announcements.
|
||||
*/
|
||||
if (action.equalsIgnoreCase('resubtoggle')) {
|
||||
resubToggle = !resubToggle;
|
||||
$.inidb.set('discordSettings', 'resubToggle', resubToggle);
|
||||
$.discord.say(channel, $.discord.userPrefix(mention) + $.lang.get('discord.subscribehandler.resub.toggle', (resubToggle === true ? $.lang.get('common.enabled') : $.lang.get('common.disabled'))));
|
||||
}
|
||||
|
||||
/**
|
||||
* @discordcommandpath subscribehandler submessage [message] - Sets the subscriber announcement message.
|
||||
*/
|
||||
if (action.equalsIgnoreCase('submessage')) {
|
||||
if (subAction === undefined) {
|
||||
$.discord.say(channel, $.discord.userPrefix(mention) + $.lang.get('discord.subscribehandler.sub.message.usage'));
|
||||
return;
|
||||
}
|
||||
|
||||
subMessage = args.slice(1).join(' ');
|
||||
$.inidb.set('discordSettings', 'subMessage', subMessage);
|
||||
$.discord.say(channel, $.discord.userPrefix(mention) + $.lang.get('discord.subscribehandler.sub.message.set', subMessage));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @discordcommandpath subscribehandler giftsubmessage [message] - Sets the gift subscriber announcement message.
|
||||
*/
|
||||
if (action.equalsIgnoreCase('giftsubmessage')) {
|
||||
if (subAction === undefined) {
|
||||
$.discord.say(channel, $.discord.userPrefix(mention) + $.lang.get('discord.subscribehandler.giftsub.message.usage'));
|
||||
return;
|
||||
}
|
||||
|
||||
giftsubMessage = args.slice(1).join(' ');
|
||||
$.inidb.set('discordSettings', 'giftsubMessage', giftsubMessage);
|
||||
$.discord.say(channel, $.discord.userPrefix(mention) + $.lang.get('discord.subscribehandler.giftsub.message.set', giftsubMessage));
|
||||
}
|
||||
|
||||
/**
|
||||
* @discordcommandpath subscribehandler primemessage [message] - Sets the Twitch Prime subscriber announcement message.
|
||||
*/
|
||||
if (action.equalsIgnoreCase('primemessage')) {
|
||||
if (subAction === undefined) {
|
||||
$.discord.say(channel, $.discord.userPrefix(mention) + $.lang.get('discord.subscribehandler.prime.sub.message.usage'));
|
||||
return;
|
||||
}
|
||||
|
||||
primeMessage = args.slice(1).join(' ');
|
||||
$.inidb.set('discordSettings', 'primeMessage', primeMessage);
|
||||
$.discord.say(channel, $.discord.userPrefix(mention) + $.lang.get('discord.subscribehandler.prime.sub.message.set', primeMessage));
|
||||
}
|
||||
|
||||
/**
|
||||
* @discordcommandpath subscribehandler resubmessage [message] - Sets the re-subscriber announcement message.
|
||||
*/
|
||||
if (action.equalsIgnoreCase('resubmessage')) {
|
||||
if (subAction === undefined) {
|
||||
$.discord.say(channel, $.discord.userPrefix(mention) + $.lang.get('discord.subscribehandler.resub.message.usage'));
|
||||
return;
|
||||
}
|
||||
|
||||
resubMessage = args.slice(1).join(' ');
|
||||
$.inidb.set('discordSettings', 'resubMessage', resubMessage);
|
||||
$.discord.say(channel, $.discord.userPrefix(mention) + $.lang.get('discord.subscribehandler.resub.message.set', resubMessage));
|
||||
}
|
||||
|
||||
/**
|
||||
* @discordcommandpath subscribehandler channel [channel name] - Sets the channel that announcements from this module will be said in.
|
||||
*/
|
||||
if (action.equalsIgnoreCase('channel')) {
|
||||
if (subAction === undefined) {
|
||||
$.discord.say(channel, $.discord.userPrefix(mention) + $.lang.get('discord.subscribehandler.channel.usage'));
|
||||
return;
|
||||
}
|
||||
|
||||
channelName = $.discord.sanitizeChannelName(subAction);
|
||||
$.inidb.set('discordSettings', 'subChannel', channelName);
|
||||
$.discord.say(channel, $.discord.userPrefix(mention) + $.lang.get('discord.subscribehandler.channel.set', subAction));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @event initReady
|
||||
*/
|
||||
$.bind('initReady', function() {
|
||||
$.discord.registerCommand('./discord/handlers/subscribeHandler.js', 'subscribehandler', 1);
|
||||
$.discord.registerSubCommand('subscribehandler', 'subtoggle', 1);
|
||||
$.discord.registerSubCommand('subscribehandler', 'giftsubtoggle', 1);
|
||||
$.discord.registerSubCommand('subscribehandler', 'primetoggle', 1);
|
||||
$.discord.registerSubCommand('subscribehandler', 'resubtoggle', 1);
|
||||
$.discord.registerSubCommand('subscribehandler', 'submessage', 1);
|
||||
$.discord.registerSubCommand('subscribehandler', 'giftsubmessage', 1);
|
||||
$.discord.registerSubCommand('subscribehandler', 'primemessage', 1);
|
||||
$.discord.registerSubCommand('subscribehandler', 'resubmessage', 1);
|
||||
$.discord.registerSubCommand('subscribehandler', 'channel', 1);
|
||||
|
||||
announce = true;
|
||||
});
|
||||
})();
|
||||
Reference in New Issue
Block a user