Upload files to 'greasemonkey'
moved from silver-meddlists - but that repo had to go; had a secret (webhook) in plaintext. Which is dead atm anyway.
This commit is contained in:
parent
e4387165c3
commit
948eada3ae
68
greasemonkey/twitchactivityfeedwatcher.js
Normal file
68
greasemonkey/twitchactivityfeedwatcher.js
Normal file
@ -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");
|
Loading…
Reference in New Issue
Block a user