From fa4ce9608a3b35d05d95bc752ab1d485692e75e9 Mon Sep 17 00:00:00 2001 From: josephsmendoza Date: Fri, 25 Aug 2023 12:36:12 -0700 Subject: [PATCH] streamelements tip support --- config.html | 13 +++++++++++++ index.html | 5 +++++ js/script.js | 28 ++++++++++++++++++++++++++-- 3 files changed, 44 insertions(+), 2 deletions(-) diff --git a/config.html b/config.html index 3a33821..96b571a 100644 --- a/config.html +++ b/config.html @@ -55,6 +55,19 @@
+
+ +
+ +
+
Browser Source diff --git a/index.html b/index.html index f895255..16dc2da 100644 --- a/index.html +++ b/index.html @@ -16,6 +16,11 @@

00:00:00

+ \ No newline at end of file diff --git a/js/script.js b/js/script.js index 4730cbc..fa0a670 100644 --- a/js/script.js +++ b/js/script.js @@ -1,7 +1,7 @@ const client_id='ib2n7v7mur7ab2mcxv7rjju2ctsyoi' const message_ids=[] const timer=document.querySelector('#timeText') -let tba,tokens,pubsub,ping_tid,pong_tid,eventsub,sse,time_started,time_passed,time_total,config,localforage +let tba,tokens,pubsub,ping_tid,pong_tid,eventsub,sse,time_started,time_passed,time_total,config,localforage,streamelements /** @type WebSocket */ let irc @@ -22,11 +22,14 @@ window.onload=async function(){ tba=await import('https://tba.sugoidogo.com/tba.mjs') tokens=await tba.get_tokens(client_id) // load user config - load_config() + await load_config() // init event sources init_irc() init_pubsub() init_eventsub() + if('streamelements-token' in config){ + init_streamelements() + } } function handle_event(event_name,event_amount=1){ @@ -365,4 +368,25 @@ async function init_irc(){ } } } +} + +function init_streamelements(){ + streamelements=io('https://realtime.streamelements.com',{transports: ['websocket']}) + streamelements.on('disconnect',init_streamelements) + streamelements.on('connect',()=>streamelements.emit('authenticate', {method: 'apikey', token: config['streamelements-token']})) + streamelements.on('authenticated', console.debug); + streamelements.on('unauthorized', console.error); + + function onEvent(event){ + console.debug(event) + if(event['name'] !== "tip-latest"){ + return false + } + handle_event('tip',event['data']['amount']*100) + } + + streamelements.on('event:test', onEvent); + streamelements.on('event', onEvent); + streamelements.on('event:update', onEvent); + streamelements.on('event:reset', onEvent); } \ No newline at end of file