misc/greasemonkey/twitchactivityfeedwatcher.js

68 lines
2.5 KiB
JavaScript
Raw Permalink Normal View History

// ==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");