From 8da69b2ac707ddcbb02349f547cf7141edcce44d Mon Sep 17 00:00:00 2001 From: nuttylmao Date: Thu, 27 Mar 2025 08:02:14 +1100 Subject: [PATCH] Added support for Ko-fi donations --- horizontal-chat/icons/platforms/kofi.png | Bin 0 -> 33300 bytes horizontal-chat/script.js | 89 ++++++++++++ horizontal-chat/settings/settings.json | 8 ++ horizontal-chat/style.css | 4 + multichat-overlay/icons/platforms/kofi.png | Bin 0 -> 33300 bytes multichat-overlay/script.js | 156 ++++++++++++++++++++- multichat-overlay/settings/settings.json | 8 ++ multichat-overlay/style.css | 4 + 8 files changed, 262 insertions(+), 7 deletions(-) create mode 100644 horizontal-chat/icons/platforms/kofi.png create mode 100644 multichat-overlay/icons/platforms/kofi.png diff --git a/horizontal-chat/icons/platforms/kofi.png b/horizontal-chat/icons/platforms/kofi.png new file mode 100644 index 0000000000000000000000000000000000000000..8812cacdcbcc8ff6cb9c19f500b3661a2e41be9a GIT binary patch literal 33300 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 literal 0 HcmV?d00001 diff --git a/horizontal-chat/script.js b/horizontal-chat/script.js index 2821690..953362e 100644 --- a/horizontal-chat/script.js +++ b/horizontal-chat/script.js @@ -47,6 +47,7 @@ const showYouTubeMemberships = GetBooleanParam("showYouTubeMemberships", true); const showStreamlabsDonations = GetBooleanParam("showStreamlabsDonations", true) const showStreamElementsTips = GetBooleanParam("showStreamElementsTips", true); const showPatreonMemberships = GetBooleanParam("showPatreonMemberships", true); +const showKofiDonations = GetBooleanParam("showKofiDonations", true); // Set fonts for the widget document.body.style.fontFamily = font; @@ -190,6 +191,26 @@ client.on('Patreon.PledgeCreated', (response) => { PatreonPledgeCreated(response.data); }) +client.on('Kofi.Donation', (response) => { + console.debug(response.data); + KofiDonation(response.data); +}) + +client.on('Kofi.Subscription', (response) => { + console.debug(response.data); + KofiSubscription(response.data); +}) + +client.on('Kofi.Resubscription', (response) => { + console.debug(response.data); + KofiResubscription(response.data); +}) + +client.on('Kofi.ShopOrder', (response) => { + console.debug(response.data); + KofiShopOrder(response.data); +}) + ///////////////////// @@ -685,6 +706,74 @@ function PatreonPledgeCreated(data) { ShowAlert(message, 'patreon'); } +function KofiDonation(data) { + if (!showKofiDonations) + return; + + const user = data.from; + const amount = data.amount; + const currency = data.currency; + const kofiIcon = ``; + + let message = ""; + if (currency == "USD") + message = `${kofiIcon} ${user} donated $${amount}`; + else + message = `${kofiIcon} ${user} donated ${currency} ${amount}`; + + ShowAlert(message, 'kofi'); +} + +function KofiSubscription(data) { + if (!showKofiDonations) + return; + + const user = data.from; + const amount = data.amount; + const currency = data.currency; + const kofiIcon = ``; + + let message = ""; + if (currency == "USD") + message = `${kofiIcon} ${user} subscribed ($${amount})`; + else + message = `${kofiIcon} ${user} subscribed (${currency} ${amount})`; + + ShowAlert(message, 'kofi'); +} + +function KofiResubscription(data) { + if (!showKofiDonations) + return; + + const user = data.from; + const tier = data.tier; + const kofiIcon = ``; + + let message = `${kofiIcon} ${user} subscribed (${tier})`; + + ShowAlert(message, 'kofi'); +} + +function KofiShopOrder(data) { + if (!showKofiDonations) + return; + + const user = data.from; + const amount = data.amount; + const currency = data.currency; + const itemTotal = data.items.length; + const kofiIcon = ``; + + let message = ""; + if (currency == "USD") + message = `${kofiIcon} ${user} ordered ${itemTotal} item(s) on Ko-fi ($${amount})`; + else + message = `${kofiIcon} ${user} ordered ${itemTotal} item(s) on Ko-fi (${currency} ${amount})`; + + ShowAlert(message, 'kofi'); +} + ////////////////////// diff --git a/horizontal-chat/settings/settings.json b/horizontal-chat/settings/settings.json index a109855..e2daf94 100644 --- a/horizontal-chat/settings/settings.json +++ b/horizontal-chat/settings/settings.json @@ -215,6 +215,14 @@ "defaultValue": true, "group": "Which donation messages do you want to see?" }, + { + "id": "showKofiDonations", + "label": "Ko-fi Donations", + "description": "", + "type": "checkbox", + "defaultValue": true, + "group": "Which donation messages do you want to see?" + }, { "id": "address", "label": "Address", diff --git a/horizontal-chat/style.css b/horizontal-chat/style.css index 1ca9a86..5e3df9c 100644 --- a/horizontal-chat/style.css +++ b/horizontal-chat/style.css @@ -245,6 +245,10 @@ li { background: linear-gradient(#c76633, #fd5e0a) !important; } +.kofi { + background: linear-gradient(#54c7ee, #08c2ff) !important; +} + /****************/ /** ANIMATIONS **/ /****************/ diff --git a/multichat-overlay/icons/platforms/kofi.png b/multichat-overlay/icons/platforms/kofi.png new file mode 100644 index 0000000000000000000000000000000000000000..8812cacdcbcc8ff6cb9c19f500b3661a2e41be9a GIT binary patch literal 33300 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 literal 0 HcmV?d00001 diff --git a/multichat-overlay/script.js b/multichat-overlay/script.js index f1cdc31..33910b1 100644 --- a/multichat-overlay/script.js +++ b/multichat-overlay/script.js @@ -46,6 +46,7 @@ const showYouTubeMemberships = GetBooleanParam("showYouTubeMemberships", true); const showStreamlabsDonations = GetBooleanParam("showStreamlabsDonations", true) const showStreamElementsTips = GetBooleanParam("showStreamElementsTips", true); const showPatreonMemberships = GetBooleanParam("showPatreonMemberships", true); +const showKofiDonations = GetBooleanParam("showKofiDonations", true); // Set fonts for the widget document.body.style.fontFamily = font; @@ -204,6 +205,26 @@ client.on('Patreon.PledgeCreated', (response) => { PatreonPledgeCreated(response.data); }) +client.on('Kofi.Donation', (response) => { + console.debug(response.data); + KofiDonation(response.data); +}) + +client.on('Kofi.Subscription', (response) => { + console.debug(response.data); + KofiSubscription(response.data); +}) + +client.on('Kofi.Resubscription', (response) => { + console.debug(response.data); + KofiResubscription(response.data); +}) + +client.on('Kofi.ShopOrder', (response) => { + console.debug(response.data); + KofiShopOrder(response.data); +}) + /////////////////////// @@ -1103,8 +1124,8 @@ async function StreamElementsTip(data) { AddMessageItem(instance, data.id); } -function PatreonPledgeCreated(data) { - if (!showPatreonMemberships) +function KofiDonation(data) { + if (!showKofiDonations) return; // Get a reference to the template @@ -1122,14 +1143,135 @@ function PatreonPledgeCreated(data) { const contentDiv = instance.querySelector("#content"); // Set the card background colors - cardDiv.classList.add('patreon'); + cardDiv.classList.add('kofi'); // Set the text - const user = data.attributes.full_name; - const amount = (data.attributes.will_pay_amount_cents/100).toFixed(2); - const patreonIcon = ``; + const user = data.from; + const amount = data.amount; + const currency = data.currency; + const message = data.message; + const kofiIcon = ``; - titleDiv.innerHTML = `${patreonIcon} ${user} joined Patreon ($${amount})`; + if (currency == "USD") + titleDiv.innerHTML = `${kofiIcon} ${user} donated $${amount}`; + else + titleDiv.innerHTML = `${kofiIcon} ${user} donated ${currency} ${amount}`; + + if (message != null) + contentDiv.innerHTML = `${message}`; + + AddMessageItem(instance, data.id); +} + +function KofiSubscription(data) { + if (!showKofiDonations) + 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('kofi'); + + // Set the text + const user = data.from; + const amount = data.amount; + const currency = data.currency; + const message = data.message; + const kofiIcon = ``; + + if (currency == "USD") + titleDiv.innerHTML = `${kofiIcon} ${user} subscribed ($${amount})`; + else + titleDiv.innerHTML = `${kofiIcon} ${user} subscribed (${currency} ${amount})`; + + if (message != null) + contentDiv.innerHTML = `${message}`; + + AddMessageItem(instance, data.id); +} + +function KofiResubscription(data) { + if (!showKofiDonations) + 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('kofi'); + + // Set the text + const user = data.from; + const tier = data.tier; + const message = data.message; + const kofiIcon = ``; + + titleDiv.innerHTML = `${kofiIcon} ${user} subscribed (${tier})`; + if (message != null) + contentDiv.innerHTML = `${message}`; + + AddMessageItem(instance, data.id); +} + +function KofiShopOrder(data) { + if (!showKofiDonations) + 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('kofi'); + + // Set the text + const user = data.from; + const amount = data.amount; + const currency = data.currency; + const message = data.message; + const itemTotal = data.items.length; + const kofiIcon = ``; + + if (currency == "USD") + titleDiv.innerHTML = `${kofiIcon} ${user} ordered ${itemTotal} item(s) on Ko-fi ($${amount})`; + else + titleDiv.innerHTML = `${kofiIcon} ${user} ordered ${itemTotal} item(s) on Ko-fi (${currency} ${amount})`; + + if (message != null) + contentDiv.innerHTML = `${message}`; AddMessageItem(instance, data.id); } diff --git a/multichat-overlay/settings/settings.json b/multichat-overlay/settings/settings.json index 5b9acc1..c53c3d1 100644 --- a/multichat-overlay/settings/settings.json +++ b/multichat-overlay/settings/settings.json @@ -277,6 +277,14 @@ "defaultValue": true, "group": "Which donation messages do you want to see?" }, + { + "id": "showKofiDonations", + "label": "Ko-fi Donations", + "description": "", + "type": "checkbox", + "defaultValue": true, + "group": "Which donation messages do you want to see?" + }, { "id": "address", "label": "Address", diff --git a/multichat-overlay/style.css b/multichat-overlay/style.css index 6abd7d8..f1cb362 100644 --- a/multichat-overlay/style.css +++ b/multichat-overlay/style.css @@ -211,6 +211,10 @@ li { background: linear-gradient(#c76633, #fd5e0a) !important; } +.kofi { + background: linear-gradient(#54c7ee, #08c2ff) !important; +} + /****************/ /** ANIMATIONS **/ /****************/