Skip to content

Commit

Permalink
hyperchat support for youtube added; basic
Browse files Browse the repository at this point in the history
  • Loading branch information
steveseguin committed Feb 20, 2025
1 parent 5e5b6d3 commit 5457a73
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 1 deletion.
2 changes: 1 addition & 1 deletion manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "Social Stream Ninja",
"description": "Powerful tooling to engage live chat on Youtube, Twitch, Zoom, and more.",
"manifest_version": 3,
"version": "3.12.16",
"version": "3.12.17",
"homepage_url": "http://socialstream.ninja/",
"icons": {
"128": "icons/icon-128.png"
Expand Down
46 changes: 46 additions & 0 deletions sources/youtube.js
Original file line number Diff line number Diff line change
Expand Up @@ -992,6 +992,7 @@

console.log("Social stream inserted");
var marked = false;

const checkTimer = setInterval(function () {
const ele = document.querySelector("yt-live-chat-app #items.yt-live-chat-item-list-renderer");
if (ele && !ele.skip) {
Expand All @@ -1009,6 +1010,30 @@
onElementInserted(ele, function (ele2) {
setTimeout(() => processMessage(ele2, false), captureDelay);
});
} else if (!ele && document.querySelector("iframe#hyperchat") && !document.querySelector("iframe#hyperchat").marked) {
try {
var ele22 = document.querySelector("iframe#hyperchat").contentWindow.document.body.querySelector(".content");
if (ele22 && ele22.childNodes.length){
var onMutationsObserved2 = function (mutations) {
mutations.forEach(function (mutation) {
if (mutation.addedNodes.length) {
for (var i = 0, len = mutation.addedNodes.length; i < len; i++) {
try {
processHyperChat(mutation.addedNodes[i]);
} catch (e) {
console.log(e);
}
}
}
});
};
var config2 = {childList: true, subtree: false};
var MutationObserver2 = window.MutationObserver || window.WebKitMutationObserver;
var observer2 = new MutationObserver2(onMutationsObserved2);
observer2.observe(ele22, config2);
document.querySelector("iframe#hyperchat").marked = true;
}
} catch(e){console.log(e);}
} else if (!ele){
const message = document.querySelector("yt-live-chat-app yt-formatted-string.yt-live-chat-message-renderer");
if (message && !document.getElementById("videoIdInput")) {
Expand Down Expand Up @@ -1043,6 +1068,7 @@
});
}
}

// style-scope yt-live-chat-message-renderer

if (settings.autoLiveYoutube && document.querySelector("#trigger") && !marked){
Expand Down Expand Up @@ -1119,6 +1145,26 @@
}


function processHyperChat(ele) {
try {
var data = {};
data.chatname = getAllContentNodes(ele.querySelector(".text-owner-light, .text-owner-dark"));
data.chatmessage = getAllContentNodes(ele.querySelector("span.cursor-auto.align-middle"));
data.type = "youtube";
chrome.runtime.sendMessage(
chrome.runtime.id,
{
message: data
},
(e)=> {
//console.log(e);
e.id ? (ele.dataset.mid = e.id) : "";
}
);
} catch (e) {}
}


function checkViewers(){
if (videoId && isExtensionOn && (settings.showviewercount || settings.hypemode)){
fetch('https://api.socialstream.ninja/youtube/viewers?video='+videoId)
Expand Down

0 comments on commit 5457a73

Please sign in to comment.