first commit
This commit is contained in:
57
app.js
Normal file
57
app.js
Normal file
@@ -0,0 +1,57 @@
|
||||
// PACKAGES
|
||||
const tmi = require('tmi.js')
|
||||
const WebSocketClient = require('websocket').client
|
||||
const axios = require('axios')
|
||||
require('dotenv').config()
|
||||
|
||||
// UTILS
|
||||
const getAccessToken = require('./utils/getAccessToken')
|
||||
const subscribeToEvent = require('./utils/subscribeToEvent')
|
||||
|
||||
// CHATBOT
|
||||
const chatBotC = new tmi.Client({
|
||||
options: { debug: true },
|
||||
identity: {
|
||||
username: process.env.TWITCH_USERNAME,
|
||||
password: `oauth:${process.env.TWITCH_TOKEN}`
|
||||
},
|
||||
channels: [ process.env.TWITCH_CHANNEL ]
|
||||
})
|
||||
|
||||
chatBotC.on('message', async (channel, tags, message, self) => {
|
||||
if (self) return
|
||||
if (message.toLowerCase() === '!hello') {
|
||||
console.log('Command "hello" was triggered in channel: ' + channel)
|
||||
chatBotC.say(channel, `@${tags.username}, heya!`)
|
||||
}
|
||||
})
|
||||
|
||||
//chatBotC.connect()
|
||||
|
||||
// EVENTSUB
|
||||
const eventSubC = new WebSocketClient()
|
||||
|
||||
eventSubC.on('connect', async connection => {
|
||||
console.log('WebSocket eventSub Connected')
|
||||
connection.sendUTF('CAP REQ :twitch.tv/membership twitch.tv/tags twitch.tv/commands')
|
||||
connection.sendUTF(`PASS oauth:${process.env.TWITCH_APP_SECRET}`)
|
||||
connection.sendUTF('NICK bot_Laytho')
|
||||
connection.sendUTF('JOIN #liveAngels')
|
||||
|
||||
connection.on('message', async message => {
|
||||
if (message.type === 'utf8') {
|
||||
console.log("Received: '" + message.utf8Data + "'")
|
||||
try {
|
||||
let data = JSON.parse(message.utf8Data)
|
||||
console.log(data)
|
||||
if (data.metadata.message_type === 'session_welcome') {
|
||||
let access_token = await getAccessToken(process.env.TWITCH_APP_ID, process.env.TWITCH_APP_SECRET)
|
||||
await subscribeToEvent(access_token, data.payload.session.id, process.env.TWITCH_APP_ID)
|
||||
}
|
||||
} catch (e) { console.log(e) }
|
||||
} })
|
||||
.on('error', error => { console.log("Connection Error: " + error.toString()) })
|
||||
.on('close', () => { console.log('echo-protocol Connection Closed') })
|
||||
}).on('connectFailed', error => { console.log('Connect Error: ' + error.toString()) })
|
||||
|
||||
eventSubC.connect('wss://eventsub.wss.twitch.tv/ws')
|
||||
Reference in New Issue
Block a user