Merge branch 'master' into fix/smol-fixes
This commit is contained in:
commit
daed19cd5e
2 changed files with 52 additions and 28 deletions
|
@ -2,9 +2,10 @@
|
||||||
"Username": "",
|
"Username": "",
|
||||||
"Password": "",
|
"Password": "",
|
||||||
"PNSLToken": "",
|
"PNSLToken": "",
|
||||||
|
"IgnorePNSL": false,
|
||||||
"Users": [],
|
"Users": [],
|
||||||
"Prefix": "!!",
|
"Prefix": "!!",
|
||||||
"MaxConnections": 30,
|
"MaxConnections": 30,
|
||||||
"MaxChunkSize": 2000,
|
"MaxChunkSize": 2000,
|
||||||
"DelayPerChunk": 30e3
|
"DelayPerChunk": 30e3
|
||||||
}
|
}
|
||||||
|
|
77
index.js
77
index.js
|
@ -19,6 +19,8 @@ const pnslClient = createGotClient({
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const urlClient = createGotClient();
|
||||||
|
|
||||||
const fetchList = async (list) => {
|
const fetchList = async (list) => {
|
||||||
const listID = uuidRegex.exec(list)?.[0];
|
const listID = uuidRegex.exec(list)?.[0];
|
||||||
if (!listID) {
|
if (!listID) {
|
||||||
|
@ -44,6 +46,19 @@ const fetchList = async (list) => {
|
||||||
return {listMeta, listData};
|
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 runList = async (listData, listID, channel) => {
|
||||||
const banArr = listData.split('\n');
|
const banArr = listData.split('\n');
|
||||||
|
|
||||||
|
@ -108,33 +123,35 @@ const say = (channel, message) => {
|
||||||
getConnection().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`);
|
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);
|
const {o: type, p: payload} = JSON.parse(data);
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case 0: {
|
case 0: {
|
||||||
const {listMeta} = await fetchList(payload.LatestBotList);
|
const {listMeta} = await fetchList(payload.LatestBotList);
|
||||||
console.log(`${chalk.green('[P&SL]')} || Latest Botlist: ${payload.LatestBotList} [${listMeta.name}] (${listMeta.count})`);
|
console.log(`${chalk.green('[P&SL]')} || Latest Botlist: ${payload.LatestBotList} [${listMeta.name}] (${listMeta.count})`);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 1: {
|
case 1: {
|
||||||
console.log(`${chalk.green('[P&SL]')} || New Botlist: ${payload.Guid} [${payload.Name}] (${payload.Count}) (${payload.Tags.join(' ')})`);
|
console.log(`${chalk.green('[P&SL]')} || New Botlist: ${payload.Guid} [${payload.Name}] (${payload.Count}) (${payload.Tags.join(' ')})`);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 2: {
|
case 2: {
|
||||||
console.log(`${chalk.green('[P&SL]')} || New False Positive: ${payload.UserTwitchId} [${payload.BotListGuid}]`);
|
console.log(`${chalk.green('[P&SL]')} || New False Positive: ${payload.UserTwitchId} [${payload.BotListGuid}]`);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
(async () => {
|
(async () => {
|
||||||
await Promise.all([...Array(Config.MaxConnections)].map(async (_, i) => {
|
await Promise.all([...Array(Config.MaxConnections)].map(async (_, i) => {
|
||||||
|
@ -195,8 +212,14 @@ pnslWebSocket.on('message', async (data) => {
|
||||||
const mods = await getConnection().getMods(channel);
|
const mods = await getConnection().getMods(channel);
|
||||||
if (!mods.includes(Config.Username)) return say(Config.Username, `I am not a moderator in channel ${channel}!`);
|
if (!mods.includes(Config.Username)) return say(Config.Username, `I am not a moderator in channel ${channel}!`);
|
||||||
}
|
}
|
||||||
const data = await fetchList(listID);
|
if (!Config.IgnorePNSL) {
|
||||||
await runList(data.listData, listID, channel || channelName);
|
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}`);
|
say(Config.Username, `List ${listID} executed successfully on channel ${channel || channelName}`);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
|
@ -220,4 +243,4 @@ process
|
||||||
.on('uncaughtException', (err) => {
|
.on('uncaughtException', (err) => {
|
||||||
console.error(`${chalk.red('[UncaughtException]')} || ${err.message}`);
|
console.error(`${chalk.red('[UncaughtException]')} || ${err.message}`);
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue