Merge branch 'master' into fix/smol-fixes

This commit is contained in:
Leppunen 2021-03-24 08:55:47 +00:00
commit daed19cd5e
2 changed files with 52 additions and 28 deletions

View file

@ -2,6 +2,7 @@
"Username": "",
"Password": "",
"PNSLToken": "",
"IgnorePNSL": false,
"Users": [],
"Prefix": "!!",
"MaxConnections": 30,

View file

@ -19,6 +19,8 @@ const pnslClient = createGotClient({
},
});
const urlClient = createGotClient();
const fetchList = async (list) => {
const listID = uuidRegex.exec(list)?.[0];
if (!listID) {
@ -44,6 +46,19 @@ const fetchList = async (list) => {
return {listMeta, listData};
};
const fetchUrlList = async (list) => {
const {body: listMetaBody, statusCode} = await urlClient(list);
if (statusCode === 404) {
throw new Error('List was not found.');
}
if (statusCode !== 200) {
throw new Error('Unexpected error occured!');
}
return listMetaBody;
};
const runList = async (listData, listID, channel) => {
const banArr = listData.split('\n');
@ -108,13 +123,14 @@ const say = (channel, message) => {
getConnection().say(channel, message);
};
const pnslWebSocket = new WS('wss://bot.tetyys.com/api/wss', [], {headers: {Authorization: `Bearer ${Config.PNSLToken}`}});
if (!Config.IgnorePNSL){
const pnslWebSocket = new WS('wss://bot.tetyys.com/api/wss', [], {headers: {Authorization: `Bearer ${Config.PNSLToken}`}});
pnslWebSocket.on('open', () => {
pnslWebSocket.on('open', () => {
console.log(`${chalk.green('[P&SL]')} || Connected to P&SL Websocket server`);
});
});
pnslWebSocket.on('message', async (data) => {
pnslWebSocket.on('message', async (data) => {
const {o: type, p: payload} = JSON.parse(data);
switch (type) {
case 0: {
@ -134,7 +150,8 @@ pnslWebSocket.on('message', async (data) => {
default:
break;
}
});
});
}
(async () => {
await Promise.all([...Array(Config.MaxConnections)].map(async (_, i) => {
@ -195,8 +212,14 @@ pnslWebSocket.on('message', async (data) => {
const mods = await getConnection().getMods(channel);
if (!mods.includes(Config.Username)) return say(Config.Username, `I am not a moderator in channel ${channel}!`);
}
if (!Config.IgnorePNSL) {
const data = await fetchList(listID);
await runList(data.listData, listID, channel || channelName);
}
else {
const data = await fetchUrlList(listID);
await runList(data, listID, channel || channelName);
}
say(Config.Username, `List ${listID} executed successfully on channel ${channel || channelName}`);
} catch (error) {
console.error(error);