diff --git a/greasemonkey/twitchactivityfeedwatcher.js b/greasemonkey/twitchactivityfeedwatcher.js new file mode 100644 index 0000000..82c7182 --- /dev/null +++ b/greasemonkey/twitchactivityfeedwatcher.js @@ -0,0 +1,68 @@ +// ==UserScript== +// @name twitch activity feed watcher +// @version 1 +// @grant none +// @license MIT +// @description how about instead of event sub I just open the fuckin window +// @include https://dashboard.twitch.tv/popout/u/silvermeddlists/stream-manager/activity-feed +// @namespace silvermeddlists.com +// ==/UserScript== + +var observer = new MutationObserver(function(mutations) { + mutations.forEach(function(mutation) { + console.log(mutation); + if ( mutation.type == 'childList' ) { + if (mutation.addedNodes.length >= 1) { + console.log("added nodes"); + for(let i = 0; i < mutation.addedNodes.length; i++){ + let added = mutation.addedNodes[i]; + let iconNode = added.querySelector(".activity-base-list-item__icon"); + + let type = "unknown"; + let searchText = "activity-feed-v2-event--"; + iconNode.classList.forEach(cl => { + if(cl.startsWith(searchText)){ + type = cl.substr(searchText.length); + console.log("type is " + type); + } + }); + + let reward = added.querySelector(".activity-base-list-item__title").textContent; + let user = added.querySelector(".activity-base-list-item__subtitle button").textContent; + let text = "type: " + type + "\ndata: " + reward + " • " + user; + let textIncluded = added.querySelector(".activity-base-list-item__subtitle").nextSibling.textContent; + if(textIncluded.length > 0){ + text += " • " + textIncluded; + } + text = text.substr(0, text.length); + + let formData = {}; + formData["content"] = text; + console.log("sending: ", formData); + + var xhttp = new XMLHttpRequest(); + xhttp.open("POST", [REDACTED], true); + xhttp.setRequestHeader("Content-Type", "application/json"); + xhttp.onreadystatechange = function() { + console.log("ready state changed", this); + } + let result = xhttp.send(JSON.stringify(formData)); + console.log("sent, survived.", result); + } + } + } + }); +}); + +var observerConfig = { + subtree: true, + attributes: false, + childList: true, + characterData: true +}; + +setTimeout(() => { + observer.observe(document.querySelector(".simplebar-content"), observerConfig); + console.log("I should be watchign"); +}, 2000); +console.log("hi, hanging a sec so twitch can add"); \ No newline at end of file