init commit
This commit is contained in:
425
twitch_extension_delete/live/js/script.js
Normal file
425
twitch_extension_delete/live/js/script.js
Normal file
@@ -0,0 +1,425 @@
|
||||
"use strict";
|
||||
var elements = new Object();
|
||||
var modalActive = 0;
|
||||
const wpjson = "https://zinomedia.de/wp_hq/pkrstarsbotextension/wp-json";
|
||||
const production = 0;
|
||||
|
||||
document.addEventListener("DOMContentLoaded", function(event) {
|
||||
defer(function() {
|
||||
console.log("jQuery is now loaded");
|
||||
init();
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
function init() {
|
||||
// Append
|
||||
jQuery(".pp-offcanvas-content").append('<div id="slideOut" class="slideToggle vertical-center pp-offcanvas-5fb1907e2d646-close"><i class="fas fa-caret-left center"></i></div>');
|
||||
jQuery(".pp-modal-container").append('<div id="slideInOverlay" class="slideToggle vertical-center"><i class="fas fa-caret-right center"></i></div>');
|
||||
|
||||
|
||||
// Draggable
|
||||
jQuery(".pp-modal").draggable({
|
||||
containment: "#main",
|
||||
scroll: false,
|
||||
});
|
||||
|
||||
elements = {
|
||||
"sidebarLinks": {
|
||||
"1": { obj: jQuery(".pp-offcanvas-1"), callback: openModalStreamerInfo, extraClass: "modal-5fb29d747a583" },
|
||||
"2": { obj: jQuery(".pp-offcanvas-2"), callback: emptyCallback },
|
||||
"3": { obj: jQuery(".pp-offcanvas-3"), callback: emptyCallback },
|
||||
"4": { obj: jQuery(".pp-offcanvas-4"), callback: emptyCallback },
|
||||
"5": { obj: jQuery(".pp-offcanvas-5"), callback: emptyCallback },
|
||||
"6": { obj: jQuery(".pp-offcanvas-6"), callback: emptyCallback },
|
||||
},
|
||||
"sidebarToggles": {
|
||||
"slideIn": { obj: jQuery("#slideIn"), callback: sidebarSlideIn },
|
||||
"slideOut": { obj: jQuery("#slideOut"), callback: sidebarSlideOut },
|
||||
"slideInOverlay": { obj: jQuery("#slideInOverlay"), callback: sidebarSlideInOverlay },
|
||||
},
|
||||
"buttons": {
|
||||
"sample": { obj: jQuery("#sampleButton") },
|
||||
},
|
||||
"modals": {
|
||||
"streamerInfo": {
|
||||
"obj": jQuery("#modal-5fb29d747a583"),
|
||||
"header": jQuery("#modal-5fb29d747a583 .pp-modal-body"),
|
||||
"container": jQuery("#modal-5fb29d747a583 .pp-modal"),
|
||||
"close": jQuery("#modal-5fb29d747a583 .pp-modal-close"),
|
||||
"enabled": 0,
|
||||
// "intervalDelay": 60000,
|
||||
"callback": emptyCallback,
|
||||
"values": {
|
||||
"af": {
|
||||
"header": jQuery("span").filter(function() { return (jQuery(this).text() === 'Aggression Factor AF') })[0],
|
||||
"text": jQuery("span").filter(function() { return (jQuery(this).text() === 'Aggression Factor AF') }).parent()[0].nextElementSibling.children[0],
|
||||
"overall": jQuery("#afOverall")[0],
|
||||
"flop": jQuery("#afFlop")[0],
|
||||
"turn": jQuery("#afTurn")[0],
|
||||
"river": jQuery("#afRiver")[0],
|
||||
"refresh": function() {
|
||||
// loaderAF();
|
||||
initLoader("af", ["flop", "turn", "river"]);
|
||||
apirequest("/extension/v1/af", { "betrounds": ["flop", "turn", "river"] }, setAF, "overall");
|
||||
apirequest("/extension/v1/af", { "betrounds": ["flop"] }, setAF, "flop");
|
||||
apirequest("/extension/v1/af", { "betrounds": ["turn"] }, setAF, "turn");
|
||||
apirequest("/extension/v1/af", { "betrounds": ["river"] }, setAF, "river");
|
||||
},
|
||||
"startInterval": function() {
|
||||
startInterval("af");
|
||||
},
|
||||
"stopInterval": function() {
|
||||
stopInterval("af");
|
||||
},
|
||||
"intervalID": 0,
|
||||
"intervalDelay": 60000,
|
||||
},
|
||||
"threebet": {
|
||||
"header": jQuery("span").filter(function() { return (jQuery(this).text() === '3Bet') })[0],
|
||||
"text": jQuery("span").filter(function() { return (jQuery(this).text() === '3Bet') }).parent()[0].nextElementSibling.children[0],
|
||||
"overall": jQuery("#3betOverall")[0],
|
||||
"refresh": function() {
|
||||
// loader3Bet();
|
||||
initLoader("threebet", ["overall"]);
|
||||
apirequest("/extension/v1/3bet", { "betrounds": ["holecards", "flop", "turn", "river"] }, set3Bet);
|
||||
},
|
||||
"startInterval": function() {
|
||||
startInterval("threebet");
|
||||
},
|
||||
"stopInterval": function() {
|
||||
stopInterval("threebet");
|
||||
},
|
||||
"intervalID": 0,
|
||||
"intervalDelay": 60000,
|
||||
},
|
||||
"blinds": {
|
||||
"header": jQuery("span").filter(function() { return (jQuery(this).text() === 'Cash Game Blinds Spent') })[0],
|
||||
"text": jQuery("span").filter(function() { return (jQuery(this).text() === 'Cash Game Blinds Spent') }).parent()[0].nextElementSibling.children[0],
|
||||
"big_blind_play": jQuery("#bigBlindSpentPlay")[0],
|
||||
"small_blind_play": jQuery("#smallBlindSpentPlay")[0],
|
||||
"total_blind_play": jQuery("#totalBlindSpentPlay")[0],
|
||||
"big_blind_real": jQuery("#bigBlindSpentReal")[0],
|
||||
"small_blind_real": jQuery("#smallBlindSpentReal")[0],
|
||||
"total_blind_real": jQuery("#totalBlindSpentReal")[0],
|
||||
"refresh": function() {
|
||||
initLoader("blinds", ["big_blind_play", "small_blind_play", "total_blind_play", "big_blind_real", "small_blind_real", "total_blind_real"]);
|
||||
apirequest("/extension/v1/blinds", {}, setBlinds);
|
||||
},
|
||||
"startInterval": function() {
|
||||
startInterval("blinds");
|
||||
},
|
||||
"stopInterval": function() {
|
||||
stopInterval("blinds");
|
||||
},
|
||||
"intervalID": 0,
|
||||
"intervalDelay": 60000,
|
||||
},
|
||||
"tournamentwinnings": {
|
||||
"header": jQuery("span").filter(function() { return (jQuery(this).text() === 'Tournament Winnings') })[0],
|
||||
"text": jQuery("span").filter(function() { return (jQuery(this).text() === 'Tournament Winnings') }).parent()[0].nextElementSibling.children[0],
|
||||
"winnings_realmoney": jQuery("#tournamentWinningsRealMoney")[0],
|
||||
"winnings_playmoney": jQuery("#tournamentWinningsPlayMoney")[0],
|
||||
"refresh": function() {
|
||||
initLoader("tournamentwinnings", ["winnings_playmoney", "winnings_realmoney"]);
|
||||
apirequest("/extension/v1/tournamentwinnings", {}, setTournamentWinnings);
|
||||
},
|
||||
"startInterval": function() {
|
||||
startInterval("tournamentwinnings");
|
||||
},
|
||||
"stopInterval": function() {
|
||||
stopInterval("tournamentwinnings");
|
||||
},
|
||||
"intervalID": 0,
|
||||
"intervalDelay": 60000,
|
||||
},
|
||||
"bountywinnings": {
|
||||
"header": jQuery("span").filter(function() { return (jQuery(this).text() === 'Bounty Winnings') })[0],
|
||||
"text": jQuery("span").filter(function() { return (jQuery(this).text() === 'Bounty Winnings') }).parent()[0].nextElementSibling.children[0],
|
||||
"winnings_realmoney": jQuery("#bountyWinningsRealMoney")[0],
|
||||
"winnings_playmoney": jQuery("#bountyWinningsPlayMoney")[0],
|
||||
"refresh": function() {
|
||||
initLoader("bountywinnings", ["winnings_playmoney", "winnings_realmoney"]);
|
||||
apirequest("/extension/v1/bountywinnings", {}, setBountyWinnings);
|
||||
},
|
||||
"startInterval": function() {
|
||||
startInterval("bountywinnings");
|
||||
},
|
||||
"stopInterval": function() {
|
||||
stopInterval("bountywinnings");
|
||||
},
|
||||
"intervalID": 0,
|
||||
"intervalDelay": 60000,
|
||||
},
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
// Center
|
||||
elements.modals.streamerInfo.container.addClass("center");
|
||||
sidebarClick();
|
||||
eventListeners();
|
||||
|
||||
// Testing / Production
|
||||
if (!production) {
|
||||
let auth = {
|
||||
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MDU3MDUxNzEsIm9wYXF1ZV91c2VyX2lkIjoiVTE2MzUwMDkwIiwidXNlcl9pZCI6IjE2MzUwMDkwIiwiY2hhbm5lbF9pZCI6IjE2MzUwMDkwIiwicm9sZSI6ImJyb2FkY2FzdGVyIiwiaXNfdW5saW5rZWQiOmZhbHNlLCJwdWJzdWJfcGVybXMiOnsibGlzdGVuIjpbImJyb2FkY2FzdCIsIndoaXNwZXItVTE2MzUwMDkwIiwiZ2xvYmFsIl0sInNlbmQiOlsiYnJvYWRjYXN0Iiwid2hpc3Blci0qIl19fQ.AOmTlG4RoZhfm7YixnrgcTw_lhsOHCd-UwfM4QCBUGU",
|
||||
"channelId": 16350090,
|
||||
};
|
||||
sessionStorage.setItem('auth', JSON.stringify(auth));
|
||||
var obj = JSON.parse(sessionStorage.auth);
|
||||
console.log(obj);
|
||||
}
|
||||
else {
|
||||
window.Twitch.ext.onAuthorized(function(auth) {
|
||||
console.log('The JWT that will be passed to the EBS is', auth.token);
|
||||
console.log('The channel ID is', auth.channelId);
|
||||
console.log('The client ID is', auth.clientId);
|
||||
console.log('The userId ID is', auth.userId);
|
||||
sessionStorage.setItem('auth', JSON.stringify(auth));
|
||||
var obj = JSON.parse(sessionStorage.auth);
|
||||
console.log(obj);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// function loaderAF() {
|
||||
// let elem = elements.modals.streamerInfo.values.af;
|
||||
// ["flop", "turn", "river", "overall"].forEach(function(entry) {
|
||||
// let elem = elements.modals.streamerInfo.values.af[entry];
|
||||
// elem.textContent = '';
|
||||
// elem.nextSibling.nextSibling.textContent = '';
|
||||
// jQuery(elem).addClass("ajax");
|
||||
// jQuery(elem.nextSibling.nextSibling).addClass("ajax");
|
||||
// });
|
||||
// }
|
||||
|
||||
function initLoader(name, nodes) {
|
||||
let elem = elements.modals.streamerInfo.values[name];
|
||||
nodes.forEach(function(entry) {
|
||||
let elem = elements.modals.streamerInfo.values[name][entry];
|
||||
elem.textContent = '';
|
||||
|
||||
|
||||
// if (typeof(elem.nextSibling.nextSibling.textContent) != 'undefined' && elem.nextSibling.nextSibling.textContent != null)
|
||||
// elem.nextSibling.nextSibling.textContent = '';
|
||||
|
||||
if (elem.hasOwnProperty("nextSibling.nextSibling.textContent"))
|
||||
elem.nextSibling.nextSibling.textContent = '';
|
||||
|
||||
|
||||
jQuery(elem).addClass("ajax");
|
||||
jQuery(elem.nextSibling.nextSibling).addClass("ajax");
|
||||
});
|
||||
}
|
||||
|
||||
function removeLoader(name, nodes) {
|
||||
let elem = elements.modals.streamerInfo.values[name];
|
||||
nodes.forEach(function(entry) {
|
||||
let elem = elements.modals.streamerInfo.values[name][entry];
|
||||
|
||||
if (elem.hasOwnProperty("nextSibling.nextSibling.textContent"))
|
||||
jQuery(elem.nextSibling.nextSibling).removeClass("ajax");
|
||||
|
||||
jQuery(elem).removeClass("ajax");
|
||||
});
|
||||
}
|
||||
|
||||
function startInterval(name) {
|
||||
console.log("Interval " + name + " starting...");
|
||||
if (!elements.modals.streamerInfo.values[name].intervalID) {
|
||||
elements.modals.streamerInfo.values[name].intervalID = setInterval(async() => {
|
||||
elements.modals.streamerInfo.values[name].refresh();
|
||||
}, elements.modals.streamerInfo.values[name].intervalDelay);
|
||||
}
|
||||
}
|
||||
|
||||
function stopInterval(name) {
|
||||
if (elements.modals.streamerInfo.values[name].intervalID) {
|
||||
clearTimeout(elements.modals.streamerInfo.values[name].intervalID);
|
||||
elements.modals.streamerInfo.values[name].intervalID = 0;
|
||||
}
|
||||
console.log("Interval " + name + " stopped.");
|
||||
}
|
||||
|
||||
function setBountyWinnings(data) {
|
||||
console.log(data);
|
||||
let elem = elements.modals.streamerInfo.values.bountywinnings;
|
||||
elem.header.textContent = "Bounty Winnings " + data.winnings_realmoney + " | " + data.winnings_playmoney; // header
|
||||
elem.winnings_playmoney.textContent = data.winnings_playmoney;
|
||||
elem.winnings_realmoney.textContent = data.winnings_realmoney;
|
||||
removeLoader("bountywinnings", ["winnings_playmoney", "winnings_realmoney"]);
|
||||
}
|
||||
|
||||
function setTournamentWinnings(data) {
|
||||
console.log(data);
|
||||
let elem = elements.modals.streamerInfo.values.tournamentwinnings;
|
||||
elem.header.textContent = "Tournament Winnings " + data.winnings_realmoney + " | " + data.winnings_playmoney; // header
|
||||
elem.winnings_playmoney.textContent = data.winnings_playmoney;
|
||||
elem.winnings_realmoney.textContent = data.winnings_realmoney;
|
||||
removeLoader("tournamentwinnings", ["winnings_playmoney", "winnings_realmoney"]);
|
||||
}
|
||||
|
||||
function setBlinds(data) {
|
||||
console.log(data);
|
||||
let elem = elements.modals.streamerInfo.values.blinds;
|
||||
|
||||
elem.header.textContent = "Cash Game Blinds Spent " + data.total_real + " | " + data.total_play; // header
|
||||
elem.big_blind_play.textContent = data.big_blind_play;
|
||||
elem.small_blind_play.textContent = data.small_blind_play;
|
||||
elem.total_blind_play.textContent = data.total_play;
|
||||
elem.big_blind_real.textContent = data.big_blind_real;
|
||||
elem.small_blind_real.textContent = data.small_blind_real;
|
||||
elem.total_blind_real.textContent = data.total_real;
|
||||
|
||||
removeLoader("blinds", ["big_blind_play", "small_blind_play", "total_blind_play", "big_blind_real", "small_blind_real", "total_blind_real"]);
|
||||
// ["big_blind", "small_blind", "total"].forEach(function(entry) {
|
||||
// jQuery(elem.entry).removeClass("ajax");
|
||||
// });
|
||||
|
||||
// jQuery(elem.nextSibling.nextSibling).removeClass("ajax");
|
||||
}
|
||||
|
||||
function set3Bet(data) {
|
||||
console.log(data);
|
||||
let elem = elements.modals.streamerInfo.values.threebet.overall;
|
||||
|
||||
elem.textContent = data.threebet;
|
||||
elem.nextSibling.nextSibling.textContent = "Based on " + data.unique_handids + " records"
|
||||
elements.modals.streamerInfo.values.threebet.header.textContent = "3Bet " + data.threebet;
|
||||
jQuery(elem).removeClass("ajax");
|
||||
jQuery(elem.nextSibling.nextSibling).removeClass("ajax");
|
||||
}
|
||||
|
||||
function setAF(data, args) {
|
||||
console.log(data);
|
||||
let elem = elements.modals.streamerInfo.values.af[args];
|
||||
elem.textContent = data.af;
|
||||
elem.nextSibling.nextSibling.textContent = "Based on " + data.unique_handids + " records"
|
||||
|
||||
if (args == "overall")
|
||||
elements.modals.streamerInfo.values.af.header.textContent = "Aggression Factor (AF) " + data.af;
|
||||
|
||||
jQuery(elem).removeClass("ajax");
|
||||
jQuery(elem.nextSibling.nextSibling).removeClass("ajax");
|
||||
}
|
||||
|
||||
function eventListeners() {
|
||||
elements.buttons.sample.obj.bind('click', function() {
|
||||
// console.log("clicked");
|
||||
// apirequest("/extension/v1/3bet", { "betrounds": ["holecards", "flop", "turn", "river"] }, set3Bet);
|
||||
apirequest("/extension/v1/tournamentwinnings", {}, setTournamentWinnings);
|
||||
// apirequest("/extension/v1/af", { "betrounds": ["flop", "turn", "river"] }, setAF, "overall");
|
||||
// elements.modals.streamerInfo.values.af.refresh();
|
||||
});
|
||||
}
|
||||
|
||||
function apirequest(route, data, callback, args) {
|
||||
let auth = JSON.parse(sessionStorage.auth);
|
||||
|
||||
// Add authentication
|
||||
data["token"] = auth.token;
|
||||
data["channelID"] = auth.channelId;
|
||||
// console.log(data);
|
||||
|
||||
let url = wpjson + route;
|
||||
jQuery.ajax({
|
||||
method: 'POST',
|
||||
url: url,
|
||||
data: data,
|
||||
dataType: 'json',
|
||||
success: function(receivedData) {
|
||||
callback(receivedData, args);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
function sidebarSlideInOverlay() {
|
||||
elements.sidebarToggles.slideIn.obj.click();
|
||||
// elements.sidebarToggles.slideInOverlay.obj.hide();
|
||||
}
|
||||
|
||||
function sidebarSlideIn() {
|
||||
// elements.sidebarToggles["slideIn"].obj.hide();
|
||||
}
|
||||
|
||||
function active_modal() {
|
||||
// Check if a modal is active
|
||||
let enabled;
|
||||
for (const [key, node] of Object.entries(elements["modals"])) {
|
||||
enabled = node.enabled;
|
||||
}
|
||||
console.log("enabled: " + enabled);
|
||||
|
||||
return enabled;
|
||||
}
|
||||
|
||||
function sidebarSlideOut() {
|
||||
// if (!active_modal()) {
|
||||
// elements.sidebarToggles["slideIn"].obj.delay(450).show(0);
|
||||
// }
|
||||
// else {
|
||||
// elements.sidebarToggles.slideInOverlay.obj.delay(450).show(0);
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
function openModalStreamerInfo() {
|
||||
elements.modals.streamerInfo.enabled = 1; // caution: never set back to 0, use?
|
||||
|
||||
for (const [key, node] of Object.entries(elements["modals"])) {
|
||||
for (let [key, value] of Object.entries(node.values)) {
|
||||
value.refresh();
|
||||
value.startInterval();
|
||||
}
|
||||
}
|
||||
// elements.modals.streamerInfo.values.af.refresh();
|
||||
// elements.modals.streamerInfo.values.af.startInterval();
|
||||
}
|
||||
|
||||
function modalStreamerInfo() {
|
||||
console.log("clicked");
|
||||
}
|
||||
|
||||
function emptyCallback() {
|
||||
console.log("empty callback");
|
||||
return;
|
||||
}
|
||||
|
||||
function sidebarClick() {
|
||||
for (const [key, node] of Object.entries(elements["sidebarLinks"])) {
|
||||
node.obj.addClass(node.extraClass);
|
||||
node.obj.click(function() {
|
||||
node.callback(node);
|
||||
});
|
||||
}
|
||||
for (const [key, node] of Object.entries(elements["sidebarToggles"])) {
|
||||
node.obj.click(function() {
|
||||
node.callback();
|
||||
});
|
||||
}
|
||||
|
||||
for (const [key, node] of Object.entries(elements["modals"])) {
|
||||
node.close.click(function() {
|
||||
node.enabled = 0;
|
||||
|
||||
for (let [key, value] of Object.entries(node.values)) {
|
||||
value.stopInterval();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function defer(method) {
|
||||
if (window.jQuery) {
|
||||
method();
|
||||
}
|
||||
else {
|
||||
setTimeout(function() { defer(method) }, 50);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user