Skip to content

Commit

Permalink
Added emitters and hooks, fixed postRequest()
Browse files Browse the repository at this point in the history
- Added emitters and hooks to be able to have async calls so every
process is some what multithreaded/parallized.
- Fixed postRequest() and remvoed postRequestMore() as they are doing
the same thing but with a small difference between them.
  • Loading branch information
ma7dev committed Dec 17, 2021
1 parent 37e6a6c commit 4302228
Show file tree
Hide file tree
Showing 23 changed files with 193 additions and 105 deletions.
11 changes: 11 additions & 0 deletions src/DiscordBot.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ const fs = require('fs'),
discord = require("discord.js"),
{ Collection, Intents } = require('discord.js');

function getDate() {
return Math.floor(Date.now()/ 1000);
}
class DiscordBot {
constructor() {
this.guild = null;
Expand Down Expand Up @@ -68,6 +71,14 @@ class DiscordBot {
channel.send(message);

}
sendDM(discordId, message) {
const user = this.client.users.cache.get(discordId);
user.send(message);
}
log(message) {
console.log(message);
// this.logChannel.send(`<t:${getDate()}:f> ${message}`);
}
}

module.exports = { DiscordBot };
26 changes: 6 additions & 20 deletions src/api/server.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,11 @@ const axios = require('axios');
const URL = `http://localhost:${process.env.PORT}`;

module.exports = {
postRequest(client, channel, url, args) {
axios
.post(`${URL}${url}`, args)
.then((res) => {
client.say(channel, res.data);
})
.catch((error) => {
console.error(error);
});
postRequest(url, args, cb) {
console.log('postRequest')
axios.post(`${URL}${url}`, args)
.then(async res => {
cb(await res.data);
}).catch(err => console.log(err))
},
postRequestMore(client, channel, url, args, msg) {
axios
.post(`${URL}${url}`, args)
.then((res) => {
client.say(channel, msg[1]);
})
.catch((error) => {
console.error(error);
});
client.say(channel, msg[0]);
}
}
18 changes: 6 additions & 12 deletions src/discord/commands/ar.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,11 @@ module.exports = {
message,
};
await interaction.deferReply();
postRequest(
client,
interaction,
target_url,
target_args,
function (data) {
return interaction.editReply({
content: data,
ephemeral: true,
});
}
);
postRequest(target_url, target_args, (data) => {
return interaction.editReply({
content: data,
ephemeral: true,
});
});
},
};
25 changes: 11 additions & 14 deletions src/discord/commands/arcane.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
const { SlashCommandBuilder } = require("@discordjs/builders");

const { makeid } = require("../utils");
const { postRequestMore } = require("../../api/server");
const { postRequest } = require("../../api/server");

module.exports = {
data: new SlashCommandBuilder()
Expand Down Expand Up @@ -47,18 +47,15 @@ module.exports = {
`Check: ${process.env.BASE_URL}${target_url}/${filename}`,
];
await interaction.deferReply();
postRequestMore(
client,
interaction,
target_url,
target_args,
target_msg,
function (data) {
return interaction.editReply({
content: data,
ephemeral: true,
});
}
);
await interaction.editReply({
content: target_msg[0],
ephemeral: true,
});
postRequest(target_url, target_args, (data) => {
return interaction.editReply({
content: target_msg[1],
ephemeral: true,
});
});
},
};
18 changes: 6 additions & 12 deletions src/discord/commands/en.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,11 @@ module.exports = {
message,
};
await interaction.deferReply();
postRequest(
client,
interaction,
target_url,
target_args,
function (data) {
return interaction.editReply({
content: data,
ephemeral: true,
});
}
);
postRequest(target_url, target_args, (data) => {
return interaction.editReply({
content: data,
ephemeral: true,
});
});
},
};
18 changes: 6 additions & 12 deletions src/discord/commands/wolf.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,11 @@ module.exports = {
message,
};
await interaction.deferReply();
postRequest(
client,
interaction,
target_url,
target_args,
function (data) {
return interaction.editReply({
content: data,
ephemeral: true,
});
}
);
postRequest(target_url, target_args, (data) => {
return interaction.editReply({
content: data,
ephemeral: true,
});
});
},
};
10 changes: 10 additions & 0 deletions src/hooks/server.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
require('dotenv').config({path:'../../.env'});

module.exports = {
getServerHook(emitter, twitchBot, discordBot) {
emitter.on('server:logging', (message) => {
discordBot.log(message);
})

}
};
82 changes: 82 additions & 0 deletions src/hooks/twitch.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
require('dotenv').config({path:'../../.env'});

module.exports = {
getTwitchHook(emitter, twitchBot, discordBot) {
emitter.on('stream.online',(data) => {
const event = data.event;
emitter.emit('server:logging', `**ONLINE**: ${event.broadcaster_user_login}`);
})
emitter.on('stream.offline',(data) => {
const event = data.event
emitter.emit('server:logging', `**OFFLINE**: ${event.broadcaster_user_login}`);
})
emitter.on('channel.raid',(data) => {
const event = data.event;
emitter.emit('server:logging', `**RAIDING**: ${event.from_broadcaster_user_login} raided ${event.to_broadcaster_user_login} ${event.viewers} viewers`);
})
emitter.on('channel.follow',(data) => {
// "event": {
// "user_id": "1234",
// "user_login": "cool_user",
// "user_name": "Cool_User",
// "broadcaster_user_id": "1337",
// "broadcaster_user_login": "cooler_user",
// "broadcaster_user_name": "Cooler_User",
// "followed_at": "2020-07-15T18:16:11.17106713Z"
// }
})
emitter.on('channel.subscribe',(data) => {
// channel:read:subscriptions
// "event": {
// "user_id": "1234",
// "user_login": "cool_user",
// "user_name": "Cool_User",
// "broadcaster_user_id": "1337",
// "broadcaster_user_login": "cooler_user",
// "broadcaster_user_name": "Cooler_User",
// "tier": "1000",
// "is_gift": false
// }
});
emitter.on("channel.subscription.gift", (data) => {
// channel:read:subscriptions
// "event": {
// "user_id": "1234",
// "user_login": "cool_user",
// "user_name": "Cool_User",
// "broadcaster_user_id": "1337",
// "broadcaster_user_login": "cooler_user",
// "broadcaster_user_name": "Cooler_User",
// "total": 2,
// "tier": "1000",
// "cumulative_total": 284, //null if anonymous or not shared by the user
// "is_anonymous": false
// }
})
emitter.on("channel.subscription.message", (data) => {
// channel:read:subscriptions
// "event": {
// "user_id": "1234",
// "user_login": "cool_user",
// "user_name": "Cool_User",
// "broadcaster_user_id": "1337",
// "broadcaster_user_login": "cooler_user",
// "broadcaster_user_name": "Cooler_User",
// "tier": "1000",
// "message": {
// "text": "Love the stream! FevziGG",
// "emotes": [
// {
// "begin": 23,
// "end": 30,
// "id": "302976485"
// }
// ]
// },
// "cumulative_months": 15,
// "streak_months": 1, // null if not shared
// "duration_months": 6
// }
})
}
};
20 changes: 17 additions & 3 deletions src/index.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
require('dotenv').config({path:'../.env'});

process.env.BASE_URL = 'http://localhost:5000'
channels = ['sudomaze', '1dzo']
process.env.BASE_URL = 'https://7c6e-96-44-8-65.ngrok.io'
channels = ['sudomaze', 'stuck_overflow']

const express = require('express'),
fs = require('fs'),
{ EventEmitter } = require("events");

const {TwitchBot} = require('./TwitchBot'),
{DiscordBot} = require('./DiscordBot');
{DiscordBot} = require('./DiscordBot'),
{getTwitchHook} = require('./hooks/twitch'),
{getServerHook} = require('./hooks/server');

const app = express(),
port = process.env.PORT || 4000;
Expand Down Expand Up @@ -46,5 +48,17 @@ app.listen(port, async () => {
}
}
console.log('ready!')
await delay(1000);
// server api webhooks
getServerHook(emitter, twitchBot, discordBot);
// twitch api webhooks
getTwitchHook(emitter, twitchBot, discordBot);
// testing webhooks
// emitter.emit('stream.online', ({
// event: {
// broadcaster_user_login: 'sudomaze'
// }
// }))
// emitter.emit('streamer:warning', ({discordId: '263980320926334976', message: 'test'}))

});
7 changes: 5 additions & 2 deletions src/twitch/commands/anime.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
require("dotenv").config({ path: "../../../.env" });

const { makeid } = require("../utils");
const { postRequestMore } = require("../../api/server");
const { postRequest } = require("../../api/server");

module.exports = {
name: "anime",
Expand All @@ -27,6 +27,9 @@ module.exports = {
`Processing: ${filename} - style=anime`,
`Check: ${process.env.BASE_URL}${target_url}/${filename}`,
];
postRequestMore(client, channel, target_url, target_args, target_msg);
await client.say(channel, target_msg[0]).catch(err => console.log(err))
postRequest(target_url, target_args, (data) => {
return client.say(channel, target_msg[1]).catch(err => console.log(err));
});
},
};
4 changes: 3 additions & 1 deletion src/twitch/commands/ar.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ module.exports = {
target_args = {
message,
};
postRequest(client, channel, target_url, target_args);
postRequest(target_url, target_args, (data) => {
return client.say(channel,data).catch(err => console.log(err));
});
},
};
7 changes: 5 additions & 2 deletions src/twitch/commands/arcane.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
require("dotenv").config({ path: "../../../.env" });

const { makeid } = require("../utils");
const { postRequestMore } = require("../../api/server");
const { postRequest } = require("../../api/server");

module.exports = {
name: "arcane",
Expand All @@ -27,6 +27,9 @@ module.exports = {
`Processing: ${filename} - style=arcane`,
`Check: ${process.env.BASE_URL}${target_url}/${filename}`,
];
postRequestMore(client, channel, target_url, target_args, target_msg);
await client.say(channel, target_msg[0]).catch(err => console.log(err))
postRequest(target_url, target_args, (data) => {
return client.say(channel, target_msg[1]).catch(err => console.log(err));
});
},
};
7 changes: 5 additions & 2 deletions src/twitch/commands/art.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
require("dotenv").config({ path: "../../../.env" });

const { makeid, getRandomInt } = require("../utils");
const { postRequestMore } = require("../../api/server");
const { postRequest } = require("../../api/server");

module.exports = {
name: "art",
Expand Down Expand Up @@ -34,6 +34,9 @@ module.exports = {
`Processing: ${filename} - style=${style_selected}`,
`Check: ${process.env.BASE_URL}${target_url}/${filename}`,
];
postRequestMore(client, channel, target_url, target_args, target_msg);
await client.say(channel, target_msg[0]).catch(err => console.log(err))
postRequest(target_url, target_args, (data) => {
return client.say(channel, target_msg[1]).catch(err => console.log(err));
});
},
};
4 changes: 3 additions & 1 deletion src/twitch/commands/chat.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ module.exports = {
target_args = {
message,
};
postRequest(client, channel, target_url, target_args);
postRequest(target_url, target_args, (data) => {
return client.say(channel,data).catch(err => console.log(err));
});
},
};
3 changes: 1 addition & 2 deletions src/twitch/commands/code.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@ module.exports = {
name: "code",
description: "Ping!",
async execute(client, channel, context, msg, args) {
client.say(
channel,
client.say(channel,
`https://github.com/sudogroup/onlysudo`
).catch(err => console.log(err));
},
Expand Down
Loading

0 comments on commit 4302228

Please sign in to comment.