128 lines
8.3 KiB
JavaScript
128 lines
8.3 KiB
JavaScript
if (streamelements_token !== "") {
|
|
var streamElementsSocket;
|
|
const streamElementsConnect = () => {
|
|
streamElementsSocket = undefined;
|
|
streamElementsSocket = io('https://realtime.streamelements.com', {
|
|
transports: ['websocket']
|
|
});
|
|
|
|
streamElementsSocket.on('connect', onConnect);
|
|
streamElementsSocket.on('disconnect', onDisconnect);
|
|
streamElementsSocket.on('authenticated', onAuthenticated);
|
|
streamElementsSocket.on('unauthorized', console.error);
|
|
streamElementsSocket.on('event:test', onEvent);
|
|
streamElementsSocket.on('event', onEvent);
|
|
streamElementsSocket.on('event:update', onEvent);
|
|
streamElementsSocket.on('event:reset', onEvent);
|
|
|
|
function onConnect() {
|
|
logMessage("StreamElements", "Socket Connected");
|
|
streamElementsSocket.emit('authenticate', {method: 'apikey', token: streamelements_token});
|
|
}
|
|
|
|
function onDisconnect() {
|
|
logMessage("StreamElements", "Socket Disconnected");
|
|
streamElementsConnect();
|
|
}
|
|
|
|
function onAuthenticated(data) {
|
|
const {
|
|
channelId
|
|
} = data;
|
|
logMessage("StreamElements", `Channel ${channelId} Connected`);
|
|
}
|
|
|
|
function onEvent(data) {
|
|
logObject("StreamElements", data);
|
|
if (!countdownEnded) {
|
|
let factor_t1_local = (happy_hour_active ? factor_t1 : 1) * (random_hour_active ? randomBellSkew(...range_t1): 1);
|
|
let factor_t2_local = (happy_hour_active ? factor_t2 : 1) * (random_hour_active ? randomBellSkew(...range_t2): 1);
|
|
let factor_t3_local = (happy_hour_active ? factor_t3 : 1) * (random_hour_active ? randomBellSkew(...range_t3): 1);
|
|
let factor_bits_local = (happy_hour_active ? factor_bits : 1) * (random_hour_active ? randomBellSkew(...range_bits): 1);
|
|
let factor_donations_local = (happy_hour_active ? factor_donations : 1) * (random_hour_active ? randomBellSkew(...range_donations): 1);
|
|
|
|
if ((data['listener'] === "subscriber-latest") && subEnable) {
|
|
if (data['event']['gifted'] || data['event']['bulkGifted']) {
|
|
let amount;
|
|
if (data['event']['gifted']) amount = 1;
|
|
else amount = data['event']['amount'];
|
|
if (data['event']['tier'] == "prime" || data['event']['tier'] == "1000") {
|
|
addTime(endingTime, seconds_added_per_giftsub_tier1 * amount * factor_t1_local);
|
|
logMessage("StreamElements", `Added ${seconds_added_per_giftsub_tier1 * amount * factor_t1_local} Seconds Because ${data['event']['name']} Gifted ${amount} Tier 1 Subs`);
|
|
}
|
|
else if (data['event']['tier'] == "2000") {
|
|
addTime(endingTime, seconds_added_per_giftsub_tier2 * amount * factor_t2_local);
|
|
logMessage("StreamElements", `Added ${seconds_added_per_giftsub_tier2 * amount * factor_t2_local} Seconds Because ${data['event']['name']} Gifted ${amount} Tier 2 Subs`);
|
|
}
|
|
else if (data['event']['tier'] == "3000") {
|
|
addTime(endingTime, seconds_added_per_giftsub_tier3 * amount * factor_t3_local);
|
|
logMessage("StreamElements", `Added ${seconds_added_per_giftsub_tier3 * amount * factor_t3_local} Seconds Because ${data['event']['name']} Gifted ${amount} Tier 3 Subs`);
|
|
}
|
|
}
|
|
else if (data['event']['amount'] != "1") {
|
|
if (data['event']['tier'] == "prime") {
|
|
addTime(endingTime, seconds_added_per_resub_prime * factor_t1_local);
|
|
logMessage("StreamElements", `Added ${seconds_added_per_resub_prime * factor_t1_local} Seconds Because ${data['event']['name']} ReSubscribed With Prime`);
|
|
}
|
|
else if (data['event']['tier'] == "1000") {
|
|
addTime(endingTime, seconds_added_per_resub_tier1 * factor_t1_local);
|
|
logMessage("StreamElements", `Added ${seconds_added_per_resub_tier1 * factor_t1_local} Seconds Because ${data['event']['name']} ReSubscribed With Tier 1`);
|
|
}
|
|
else if (data['event']['tier'] == "2000") {
|
|
addTime(endingTime, seconds_added_per_resub_tier2 * factor_t2_local);
|
|
logMessage("StreamElements", `Added ${seconds_added_per_resub_tier2 * factor_t2_local} Seconds Because ${data['event']['name']} ReSubscribed With Tier 2`);
|
|
}
|
|
else if (data['event']['tier'] == "3000") {
|
|
addTime(endingTime, seconds_added_per_resub_tier3 * factor_t3_local);
|
|
logMessage("StreamElements", `Added ${seconds_added_per_resub_tier3 * factor_t3_local} Seconds Because ${data['event']['name']} ReSubscribed With Tier 3`);
|
|
}
|
|
}
|
|
else {
|
|
if (data['event']['tier'] == "prime") {
|
|
addTime(endingTime, seconds_added_per_sub_prime * factor_t1_local);
|
|
logMessage("StreamElements", `Added ${seconds_added_per_sub_prime * factor_t1_local} Seconds Because ${data['event']['name']} Subscribed With Prime`);
|
|
}
|
|
else if (data['event']['tier'] == "1000") {
|
|
addTime(endingTime, seconds_added_per_sub_tier1 * factor_t1_local);
|
|
logMessage("StreamElements", `Added ${seconds_added_per_sub_tier1 * factor_t1_local} Seconds Because ${data['event']['name']} Subscribed With Tier 1`);
|
|
}
|
|
else if (data['event']['tier'] == "2000") {
|
|
addTime(endingTime, seconds_added_per_sub_tier2 * factor_t2_local);
|
|
logMessage("StreamElements", `Added ${seconds_added_per_sub_tier2 * factor_t2_local} Seconds Because ${data['event']['name']} Subscribed With Tier 2`);
|
|
}
|
|
else if (data['event']['tier'] == "3000") {
|
|
addTime(endingTime, seconds_added_per_sub_tier3 * factor_t3_local);
|
|
logMessage("StreamElements", `Added ${seconds_added_per_sub_tier3 * factor_t3_local} Seconds Because ${data['event']['name']} Subscribed With Tier 3`);
|
|
}
|
|
}
|
|
if (!users.includes(data['event']['name'])) {
|
|
users.push(data['event']['name']);
|
|
}
|
|
}
|
|
|
|
else if ((data['listener'] === "cheer-latest") && bitEnable) {
|
|
if (data['event']['amount'] >= min_amount_of_bits) {
|
|
let times = Math.floor(data['event']['amount']/min_amount_of_bits);
|
|
addTime(endingTime, seconds_added_per_bits * times * factor_bits_local);
|
|
logMessage("StreamElements", `Added ${seconds_added_per_bits * times * factor_bits_local} Seconds Because ${data['event']['name']} Donated ${data['event']['amount']} Bits`);
|
|
if (!users.includes(data['event']['name'])) {
|
|
users.push(data['event']['name']);
|
|
}
|
|
}
|
|
}
|
|
|
|
else if ((data['listener'] === "tip-latest") && donationEnable) {
|
|
if (data['event']['amount'] >= min_donation_amount) {
|
|
let times = Math.floor(data['event']['amount']/min_donation_amount);
|
|
addTime(endingTime, seconds_added_per_donation * times * factor_donations_local);
|
|
logMessage("StreamElements", `Added ${seconds_added_per_donation * times * factor_donations_local} Seconds Because ${data['event']['name']} Donated ${data['event']['amount']}$`);
|
|
if (!users.includes(data['event']['name'])) {
|
|
users.push(data['event']['name']);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
streamElementsConnect();
|
|
} |