streamelements tip support

This commit is contained in:
josephsmendoza
2023-08-25 12:36:12 -07:00
parent fd41eead59
commit fa4ce9608a
3 changed files with 44 additions and 2 deletions
+13
View File
@@ -55,6 +55,19 @@
<input type="text" name="charity-time" pattern="[\d.\d:]+" placeholder="HH:MM:SS" value="1" required>
</label>
<br>
<br>
<label>
StreamElements JWT Token:
<input type="text" name="streamelements-token">
</label>
<br>
<label>
<input type="checkbox" name="tip-time-enabled">
Time Per Tip Cent:
<input type="text" name="tip-time" pattern="[\d.\d:]+" placeholder="HH:MM:SS" value="1">
</label>
<br>
<br>
<button type="submit">Save</button>
<button type="reset">Defaults</button>
<a id="timer-link" href="index.html" target="_blank">Browser Source</a>
+5
View File
@@ -16,6 +16,11 @@
<p id="timeText">00:00:00</p>
</div>
</div>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.2.0/socket.io.js"
integrity="sha256-yr4fRk/GU1ehYJPAs8P4JlTgu0Hdsp4ZKrx8bDEDC3I="
crossorigin="anonymous">
</script>
<script src="js/script.js"></script>
</body>
</html>
+26 -2
View File
@@ -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);
}