mercury/bot.js

74 lines
2.2 KiB
JavaScript
Raw Normal View History

2023-10-02 02:11:23 +00:00
var irc = require("irc");
var config = require('config');
var fs = require("fs");
var readline = require('readline');
const { Worker } = require('worker_threads');
//var randomWords = require('better-random-words');
2023-10-02 02:11:24 +00:00
var connconfig = {
2023-10-02 02:11:23 +00:00
server: config.get('irc.server'),
port: config.get('irc.port'),
2023-10-02 02:11:24 +00:00
SSL: config.get('irc.ssl'),
2023-10-02 02:11:23 +00:00
channels: config.get('irc.channels'),
botName: config.get('irc.nickname'),
userName: config.get('irc.username'),
realName: config.get('irc.realname')
};
2023-10-02 02:11:24 +00:00
var bot = new irc.Client(config.get('irc.server'), config.get('irc.nickname'), {
channels: config.get('irc.channels'),
secure: config.get('irc.ssl'),
port: config.get('irc.port'),
autoRejoin: config.get('irc.autorejoin'),
userName: config.get('irc.username'),
realName: config.get('irc.realname'),
floodProtection: config.get('irc.floodprotection'),
floodProtectionDelay: config.get('irc.floodprotectiondelay')
2023-10-02 02:11:23 +00:00
});
const timer = ms => new Promise(res => setTimeout(res, ms))
async function help(chan, sub) {
if (sub === undefined) {
var sub = "default"
}
if (sub === "default") {
bot.say(chan, 'Mercury - https://git.supernets.org/hogwart7/mercury')
2023-10-02 02:11:24 +00:00
bot.say(chan, 'm!l5 [FEED] - Return the last 5 entries in any RSS feed.')
2023-10-02 02:11:24 +00:00
bot.say(chan, "m!set [OPTION] [VALUE] - run r!help set for details")
2023-10-02 02:11:23 +00:00
}
}
2023-10-02 02:11:24 +00:00
async function feed(chan, provfeed, n) {
if (provfeed === undefined) {
bot.say(chan, "No feed has been provided.")
2023-10-02 02:11:23 +00:00
}
2023-10-02 02:11:24 +00:00
if (n === undefined) {
var n = 5;
2023-10-02 02:11:23 +00:00
}
2023-10-02 02:11:24 +00:00
const worker = new Worker('./commands/feed.js', {
workerData: {
provfeed,
n
}
});
worker.once('message', (string) => {
console.log('Received output from last5 worker, posting.');
bot.say(chan, string);
});
2023-10-02 02:11:23 +00:00
}
bot.addListener('message', function(nick, to, text, from) {
var args = text.split(' ');
2023-10-02 02:11:24 +00:00
if (args[0] === 'm!help') {
2023-10-02 02:11:23 +00:00
help(to, args[1]);
2023-10-02 02:11:24 +00:00
} else if (args[0] === 'm!feed') {
feed(to, args[1], args[2]);
2023-10-02 02:11:23 +00:00
}
});
bot.addListener('error', function(message) {
console.log('error: ', message);
});
2023-10-02 02:11:24 +00:00
console.log('Starting Mercury');