streamelements tip support
This commit is contained in:
+13
@@ -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>
|
||||
|
||||
@@ -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
@@ -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);
|
||||
}
|
||||
Reference in New Issue
Block a user