Added support for YouTube Subscriber events

This commit is contained in:
nutty
2026-09-14 12:50:59 +10:00
parent e17ee3d74a
commit 1a35418602
6 changed files with 116 additions and 0 deletions
+18
View File
@@ -62,6 +62,7 @@ const showKickGifts = GetBooleanParam("showKickGifts", true);
const showYouTubeMessages = GetBooleanParam("showYouTubeMessages", true); const showYouTubeMessages = GetBooleanParam("showYouTubeMessages", true);
const showYouTubeSuperChats = GetBooleanParam("showYouTubeSuperChats", true); const showYouTubeSuperChats = GetBooleanParam("showYouTubeSuperChats", true);
const showYouTubeSuperStickers = GetBooleanParam("showYouTubeSuperStickers", true); const showYouTubeSuperStickers = GetBooleanParam("showYouTubeSuperStickers", true);
const showYouTubeSubscribers = GetBooleanParam("showYouTubeSubscribers", false);
const showYouTubeMemberships = GetBooleanParam("showYouTubeMemberships", true); const showYouTubeMemberships = GetBooleanParam("showYouTubeMemberships", true);
const enableTikTokSupport = GetBooleanParam("enableTikTokSupport", false); const enableTikTokSupport = GetBooleanParam("enableTikTokSupport", false);
@@ -235,6 +236,11 @@ client.on('YouTube.SuperSticker', (response) => {
YouTubeSuperSticker(response.data); YouTubeSuperSticker(response.data);
}) })
client.on('YouTube.NewSubscriber', (response) => {
console.debug(response.data);
YouTubeNewSubscriber(response.data);
})
client.on('YouTube.NewSponsor', (response) => { client.on('YouTube.NewSponsor', (response) => {
console.debug(response.data); console.debug(response.data);
YouTubeNewSponsor(response.data); YouTubeNewSponsor(response.data);
@@ -1043,6 +1049,18 @@ function YouTubeSuperSticker(data) {
ShowAlert(message, 'youtube'); ShowAlert(message, 'youtube');
} }
function YouTubeNewSubscriber(data) {
if (!showYouTubeSubscribers)
return;
// Set the text
let username = data.user.name;
const message = `${username} subscribed`;
ShowAlert(message, 'youtube');
}
function YouTubeNewSponsor(data) { function YouTubeNewSponsor(data) {
if (!showYouTubeMemberships) if (!showYouTubeMemberships)
return; return;
+8
View File
@@ -250,6 +250,14 @@
"defaultValue": true, "defaultValue": true,
"group": "Which YouTube messages do you want to see?" "group": "Which YouTube messages do you want to see?"
}, },
{
"id": "showYouTubeSubscribers",
"label": "New Subscribers",
"description": "",
"type": "checkbox",
"defaultValue": false,
"group": "Which YouTube messages do you want to see?"
},
{ {
"id": "showYouTubeMemberships", "id": "showYouTubeMemberships",
"label": "Memberships", "label": "Memberships",
+35
View File
@@ -68,6 +68,7 @@ const showKickGifts = GetBooleanParam("showKickGifts", true);
const showYouTubeMessages = GetBooleanParam("showYouTubeMessages", true); const showYouTubeMessages = GetBooleanParam("showYouTubeMessages", true);
const showYouTubeSuperChats = GetBooleanParam("showYouTubeSuperChats", true); const showYouTubeSuperChats = GetBooleanParam("showYouTubeSuperChats", true);
const showYouTubeSuperStickers = GetBooleanParam("showYouTubeSuperStickers", true); const showYouTubeSuperStickers = GetBooleanParam("showYouTubeSuperStickers", true);
const showYouTubeSubscribers = GetBooleanParam("showYouTubeSubscribers", false);
const showYouTubeMemberships = GetBooleanParam("showYouTubeMemberships", true); const showYouTubeMemberships = GetBooleanParam("showYouTubeMemberships", true);
const enableTikTokSupport = GetBooleanParam("enableTikTokSupport", false); const enableTikTokSupport = GetBooleanParam("enableTikTokSupport", false);
@@ -271,6 +272,11 @@ client.on('YouTube.SuperSticker', (response) => {
YouTubeSuperSticker(response.data); YouTubeSuperSticker(response.data);
}) })
client.on('YouTube.NewSubscriber', (response) => {
console.debug(response.data);
YouTubeNewSubscriber(response.data);
})
client.on('YouTube.NewSponsor', (response) => { client.on('YouTube.NewSponsor', (response) => {
console.debug(response.data); console.debug(response.data);
YouTubeNewSponsor(response.data); YouTubeNewSponsor(response.data);
@@ -1662,6 +1668,35 @@ function YouTubeSuperSticker(data) {
AddMessageItem(instance); AddMessageItem(instance);
} }
function YouTubeNewSubscriber(data) {
if (!showYouTubeSubscribers)
return;
// Get a reference to the template
const template = document.getElementById('cardTemplate');
// Create a new instance of the template
const instance = template.content.cloneNode(true);
// Get divs
const cardDiv = instance.querySelector("#card");
const headerDiv = instance.querySelector("#header");
const avatarDiv = instance.querySelector("#avatar");
const iconDiv = instance.querySelector("#icon");
const titleDiv = instance.querySelector("#title");
const contentDiv = instance.querySelector("#content");
// Set the card background colors
cardDiv.classList.add('youtube');
// Set the text
let username = data.user.name;
titleDiv.innerText = `${username} subscribed`;
AddMessageItem(instance, JSON.stringify(data));
}
function YouTubeNewSponsor(data) { function YouTubeNewSponsor(data) {
if (!showYouTubeMemberships) if (!showYouTubeMemberships)
return; return;
+8
View File
@@ -379,6 +379,14 @@
"defaultValue": true, "defaultValue": true,
"group": "Which YouTube messages do you want to see?" "group": "Which YouTube messages do you want to see?"
}, },
{
"id": "showYouTubeSubscribers",
"label": "New Subscribers",
"description": "",
"type": "checkbox",
"defaultValue": false,
"group": "Which YouTube messages do you want to see?"
},
{ {
"id": "showYouTubeMemberships", "id": "showYouTubeMemberships",
"label": "Memberships", "label": "Memberships",
+30
View File
@@ -89,6 +89,8 @@ const showYouTubeSuperChats = GetBooleanParam("showYouTubeSuperChats", true);
const youtubeSuperChatAction = urlParams.get("youtubeSuperChatAction") || ""; const youtubeSuperChatAction = urlParams.get("youtubeSuperChatAction") || "";
const showYouTubeSuperStickers = GetBooleanParam("showYouTubeSuperStickers", true); const showYouTubeSuperStickers = GetBooleanParam("showYouTubeSuperStickers", true);
const youtubeSuperStickerAction = urlParams.get("youtubeSuperStickerAction") || ""; const youtubeSuperStickerAction = urlParams.get("youtubeSuperStickerAction") || "";
const showYouTubeSubscribers = GetBooleanParam("showYouTubeSubscribers", false);
const youtubeSubscriberAction = urlParams.get("youtubeSubscriberAction") || "";
const showYouTubeMemberships = GetBooleanParam("showYouTubeMemberships", true); const showYouTubeMemberships = GetBooleanParam("showYouTubeMemberships", true);
const youtubeMembershipAction = urlParams.get("youtubeMembershipAction") || ""; const youtubeMembershipAction = urlParams.get("youtubeMembershipAction") || "";
@@ -247,6 +249,11 @@ client.on('YouTube.SuperSticker', (response) => {
YouTubeSuperSticker(response.data); YouTubeSuperSticker(response.data);
}) })
client.on('YouTube.NewSubscriber', (response) => {
console.debug(response.data);
YouTubeNewSubscriber(response.data);
})
client.on('YouTube.NewSponsor', (response) => { client.on('YouTube.NewSponsor', (response) => {
console.debug(response.data); console.debug(response.data);
YouTubeNewSponsor(response.data); YouTubeNewSponsor(response.data);
@@ -827,6 +834,29 @@ function YouTubeSuperSticker(data) {
); );
} }
function YouTubeNewSubscriber(data) {
if (!showYouTubeSubscribers)
return;
// Set the text
const username = data.user.name;
// Render avatars
const avatarURL = data.user.profileImageUrl;
UpdateAlertBox(
'youtube',
avatarURL,
`${username}`,
`subscribed`,
``,
username,
``,
youtubeSubscriberAction,
data
);
}
function YouTubeNewSponsor(data) { function YouTubeNewSponsor(data) {
if (!showYouTubeMemberships) if (!showYouTubeMemberships)
return; return;
+17
View File
@@ -380,6 +380,23 @@
"showIf": "showYouTubeSuperStickers", "showIf": "showYouTubeSuperStickers",
"group": "Which YouTube alerts do you want to see?" "group": "Which YouTube alerts do you want to see?"
}, },
{
"id": "showYouTubeSubscribers",
"label": "New Subscribers",
"description": "",
"type": "checkbox",
"defaultValue": false,
"group": "Which YouTube alerts do you want to see?"
},
{
"id": "youtubeSubscriberAction",
"label": "",
"description": "Also run this Streamer.bot Action",
"type": "sb-actions",
"defaultValue": "",
"showIf": "showYouTubeSubscribers",
"group": "Which YouTube alerts do you want to see?"
},
{ {
"id": "showYouTubeMemberships", "id": "showYouTubeMemberships",
"label": "Memberships", "label": "Memberships",