first commit

This commit is contained in:
Zachary Guénot
2023-05-08 04:47:30 +02:00
commit be73cd765d
5 changed files with 144 additions and 0 deletions

57
app.js Normal file
View 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')