This commit is contained in:
2023-08-03 13:43:57 +02:00
parent 393918139a
commit 6991d5838f
3 changed files with 354 additions and 190 deletions
+71
View File
@@ -0,0 +1,71 @@
const fetch = require('node-fetch');
// const WebSocket = require('websocket').w3cwebsocket;
const { WebSocket } = require('ws');
const btoken = "ptlc_pEQPmQu6zQrLi06w4exB5rEPi5hF2BNPd81wDr8HxQ4"
const server = "35c24f19"
async function main(){
let response = await fetch(
`https://wi.goodanimemes.com/api/client/servers/${server}/websocket`, {
"method": "GET",
"headers": {
"Accept": "application/json",
"Content-Type": "application/json",
"Authorization": `Bearer ${btoken}`,
}
})
// console.log(response);
response = await response.json()
// console.log(response);
let token = response.data.token
let socketurl = response.data.socket
const ws = new WebSocket(socketurl, { origin: 'https://wi.goodanimemes.com' });
ws.on(`open`, () => {
ws.send(JSON.stringify({ event: "auth", args: [token] }));
});
ws.on(`error`, (err) => {
console.log(err);
});
ws.on(`message`, data => {
data = JSON.parse(Buffer.from(data))
// console.log(data);
switch (data.event) {
case "auth success":
console.log("Authenticated");
break;
case "console output":
console.log(data.args);
// if(data.args.toString().includes("[Server thread/INFO]"))
// // console.log(data.args);
// if(data.args.toString().matches(//g))
break;
case "token expiring":
console.log("Token Expiring ... Requesting new token and authenticating");
fetch(
`https://wi.goodanimemes.com/api/client/servers/${server}/websocket`, {
"method": "GET",
"headers": {
"Accept": "application/json",
"Content-Type": "application/json",
"Authorization": `Bearer ${btoken}`,
}
}).then(async res => {
res = await res.json()
ws.send(JSON.stringify({ event: "auth", args: [res.data.token] }));
console.log("New token received and authenticated");
})
break;
default:
break;
}
});
}
main()