Bringing fascinus in to the modern era

This commit is contained in:
hgw 2023-10-02 02:14:37 +00:00
parent 2951c04b06
commit 143d726dc0
5 changed files with 82 additions and 24 deletions

1
.gitignore vendored
View File

@ -130,3 +130,4 @@ dist
.pnp.* .pnp.*
.env .env
config/config.json

View File

@ -14,8 +14,8 @@ cold hard bot for cold hard chats
## Deployment ## Deployment
1. Install Docker (required) and Docker Compose (optional, but strongly recommended) 1. Install Docker (required) and Docker Compose (optional, but strongly recommended, following instructions assume its usage)
2. Modify the info in the config block in `bot.js` to your taste. 2. Copy `config/example.config.json` to `config/config.json` and modify the contents to your preference.
3. Run `docker compose up` to begin. Append `-d` to start in the background and `--build` if you make any changes to any files 3. Run `docker compose up` to begin. Append `-d` to start in the background and `--build` if you make any changes to any files
## Support ## Support
@ -40,7 +40,7 @@ If you need assistance with installation or usage, join #5000 on `irc.supernets.
ISC License ISC License
Copyright (c) 2023 hogwart7 Copyright (c) 2023 hgw7
Permission to use, copy, modify, and/or distribute this software for any Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above purpose with or without fee is hereby granted, provided that the above

75
bot.js
View File

@ -1,3 +1,4 @@
var config = require('./config/config.json')
var irc = require("irc"); var irc = require("irc");
var fs = require("fs"); var fs = require("fs");
var readline = require('readline'); var readline = require('readline');
@ -6,27 +7,20 @@ var randomext = require('./lib/randomnum');
const { Worker } = require('worker_threads'); const { Worker } = require('worker_threads');
//var randomWords = require('better-random-words'); //var randomWords = require('better-random-words');
var config = { //edit your shit here var bot = new irc.Client(config.irc.server, config.irc.nickname, {
server: "irc.supernets.org", channels: config.irc.channels,
port: 6697, secure: config.irc.ssl,
SSL: true, port: config.irc.port,
channels: ['#dev', '#superbowl', '#scroll', '#fascinus'], autoRejoin: config.irc.autorejoin,
botName: "fascinus", userName: config.irc.username,
userName: "fascinus", realName: config.irc.realname,
realName: "Sneed" floodProtection: config.floodprotect.flood_protection,
}; floodProtectionDelay: config.floodprotect.flood_protection_delay
var bot = new irc.Client(config.server, config.botName, {
channels: config.channels,
secure: config.SSL,
port: config.port,
autoRejoin: true,
userName: config.userName,
realName: config.realName,
floodProtection: false,
floodProtectionDelay: 0
}); });
const msgTimeout = new Set();
const msgTimeoutMsg = new Set();
const timer = ms => new Promise(res => setTimeout(res, ms)) const timer = ms => new Promise(res => setTimeout(res, ms))
const generateRandomString = (amt) => { const generateRandomString = (amt) => {
@ -202,6 +196,49 @@ bot.addListener('message', function(nick, to, text, from) {
} }
}); });
bot.addListener('message', function(nick, to, text, from) {
if (text.startsWith(config.irc.prefix)) {
if (msgTimeout.has(to)) {
if (msgTimeoutMsg.has("yes")) {
return;
} else {
bot.say(to, errorMsg+" You are sending commands too quickly")
msgTimeoutMsg.add("yes");
setTimeout(() => {
msgTimeoutMsg.delete("yes");
}, config.floodprotect.command_listen_timeout)
}
} else {
var args = text.split(' ');
var command = args[0].toLowerCase()
if (args[0] === '$help') {
help(to);
} else if (command === config.irc.prefix+'flood') {
flood(to, args)
} else if (command === config.irc.prefix+'sneed') {
sneed(to);
} else if (command === config.irc.prefix+'ctcpflood') {
ctcp(args[1], args[2], args[3]);
} else if (command === config.irc.prefix+'rspam') {
rspam(to, args[1])
} else if (command === config.irc.prefix+'uspam') {
uspam(to, args[1]);
} else if (command === config.irc.prefix+'art') {
art(to, args[1]);
} else if (command === config.irc.prefix+'fart') {
art(to, args[1]);
} else if (command === config.irc.prefix+'godwords') {
godwords(to, args[1]);
}
msgTimeout.add(to);
setTimeout(() => {
msgTimeout.delete(to);
}, config.floodprotect.command_listen_timeout)
}
}
})
bot.addListener('error', function(message) { bot.addListener('error', function(message) {
console.log('error: ', message); console.log('error: ', message);
}); });

View File

@ -0,0 +1,20 @@
{
"irc": {
"server": "irc.supernets.org",
"port": 6697,
"ssl": "true",
"channels": [
"#5000"
],
"nickname": "fascinus",
"username": "fascinus",
"realname": "git.supernets.org/hgw/fascinus",
"autorejoin": "true",
"prefix": "$"
},
"floodprotect": {
"flood_protection": "false",
"flood_protection_delay": "0",
"command_listen_timeout": "2500"
}
}

View File

@ -261,7 +261,7 @@ var wordList = [
"vacuole", "vacuome", "vacuous", "vacuums", "vadose", "vaguest", "vaivode", "valance", "valence", "valency", "valerin", "valeric", "valeted", "valgoid", "valines", "valises", "valkyrs", "valonia", "valours", "valse", "valuers", "valuing", "valvate", "vamosed", "vamoses", "vampers", "vamping", "vampish", "vanadic", "vanadyl", "vandal", "vandals", "vandyke", "vanessa", "vanillas", "vanille", "vanillo", "vanitas", "vanning", "vanpool", "vantages", "vapidly", "vapored", "vapours", "vapulae", "varactor", "variant", "variate", "varices", "varioli", "variola", "various", "varlets", "varnish", "varsity", "varying", "vascula", "vasculum", "vastier", "vastity", "vatfuls", "vaudois", "vaulted", "vaulter", "vaulting", "vaunted", "vaulter", "vealier", "vectors", "vedalias", "vedette", "vegan", "vegans", "vegetal", "vegete", "vegetes", "vehicle", "veiling", "veinier", "veining", "veinlet", "veinule", "velaric", "velaria", "veliger", "vellums", "velours", "velured", "velures", "velvet", "velvets", "venally", "vendees", "venders", "vending", "vendors", "veneers", "venial", "venines", "venires", "venomed", "venomer", "venoming", "ventage", "ventail", "venters", "venting", "ventral", "venture", "ventures", "venue", "venues", "verdant", "verdict", "vergers", "verging", "verglas", "veridic", "verisms", "verists", "verites", "vermeil", "vermian", "vermuth", "vernier", "vernity", "versals", "versant", "versers", "versify", "versine", "versing", "version", "verstes", "vertigo", "vervets", "vesical", "vesicle", "vesper", "vespers", "vespire", "vestal", "vestals", "vestees", "vesting", "vestral", "vestry", "vetoers", "vexedly", "vexilla", "vexings", "viaduct", "viatica", "vibrant", "vibrate", "vicarly", "viceroy", "vicious", "victims", "victors", "victual", "videlicet", "videx", "videxes", "vieques", "viewers", "vacuole", "vacuome", "vacuous", "vacuums", "vadose", "vaguest", "vaivode", "valance", "valence", "valency", "valerin", "valeric", "valeted", "valgoid", "valines", "valises", "valkyrs", "valonia", "valours", "valse", "valuers", "valuing", "valvate", "vamosed", "vamoses", "vampers", "vamping", "vampish", "vanadic", "vanadyl", "vandal", "vandals", "vandyke", "vanessa", "vanillas", "vanille", "vanillo", "vanitas", "vanning", "vanpool", "vantages", "vapidly", "vapored", "vapours", "vapulae", "varactor", "variant", "variate", "varices", "varioli", "variola", "various", "varlets", "varnish", "varsity", "varying", "vascula", "vasculum", "vastier", "vastity", "vatfuls", "vaudois", "vaulted", "vaulter", "vaulting", "vaunted", "vaulter", "vealier", "vectors", "vedalias", "vedette", "vegan", "vegans", "vegetal", "vegete", "vegetes", "vehicle", "veiling", "veinier", "veining", "veinlet", "veinule", "velaric", "velaria", "veliger", "vellums", "velours", "velured", "velures", "velvet", "velvets", "venally", "vendees", "venders", "vending", "vendors", "veneers", "venial", "venines", "venires", "venomed", "venomer", "venoming", "ventage", "ventail", "venters", "venting", "ventral", "venture", "ventures", "venue", "venues", "verdant", "verdict", "vergers", "verging", "verglas", "veridic", "verisms", "verists", "verites", "vermeil", "vermian", "vermuth", "vernier", "vernity", "versals", "versant", "versers", "versify", "versine", "versing", "version", "verstes", "vertigo", "vervets", "vesical", "vesicle", "vesper", "vespers", "vespire", "vestal", "vestals", "vestees", "vesting", "vestral", "vestry", "vetoers", "vexedly", "vexilla", "vexings", "viaduct", "viatica", "vibrant", "vibrate", "vicarly", "viceroy", "vicious", "victims", "victors", "victual", "videlicet", "videx", "videxes", "vieques", "viewers",
"wabbers", "wabbles", "wabblers", "waddled", "waddler", "waddles", "wadiats", "wadmaal", "wadmals", "wadmels", "wadmoll", "wadmols", "wadsets", "waeness", "waftage", "wafture", "waggers", "wagging", "wagling", "wahines", "wailing", "wainage", "wainful", "waining", "wainscot", "waisted", "waister", "waiting", "waiving", "wakened", "wakener", "wakikis", "wallets", "wallies", "wallops", "wallows", "walnuts", "wamble", "wambled", "wambles", "wambly", "wamefou", "wameful", "wampums", "wandero", "wandle", "wangled", "wangler", "wangles", "wanigan", "wanking", "wannest", "wannish", "wanting", "wapitis", "wapiti", "warble", "warbled", "warbler", "warbles", "wardens", "warders", "warding", "warehou", "wareing", "warfare", "warhead", "warison", "warless", "warlike", "warling", "warlock", "warlord", "warmed", "warmers", "warmest", "warming", "warmish", "warmth", "warmths", "warners", "warning", "warpage", "warper", "warping", "warrant", "warrant", "warrant", "warranted", "warranted", "warranted", "warrens", "warring", "warrior", "warstle", "warthog", "wartier", "wartime", "wasabit", "wasatch", "washday", "washers", "washier", "washing", "washrag", "washtub", "wasps", "wasting", "wastrel", "wastril", "watchdog", "watcher", "watchfu", "watching", "waterlo", "watery", "wattage", "watters", "wattest", "wattles", "wauchle", "waucht", "waught", "wauling", "wauping", "wauring", "wausau", "wavelet", "waveoff", "wavered", "waverer", "wavering", "waxbill", "waxiest", "waxlike", "waxwing", "waxwork", "waxworm", "waybill", "wayfare", "waygate", "waylaid", "waylayer", "wayless", "wayside", "waywode", "weakens", "weakest", "weakish", "wealful", "wealthy", "weaners", "weanling", "weapone", "wearers", "wabbers", "wabbles", "wabblers", "waddled", "waddler", "waddles", "wadiats", "wadmaal", "wadmals", "wadmels", "wadmoll", "wadmols", "wadsets", "waeness", "waftage", "wafture", "waggers", "wagging", "wagling", "wahines", "wailing", "wainage", "wainful", "waining", "wainscot", "waisted", "waister", "waiting", "waiving", "wakened", "wakener", "wakikis", "wallets", "wallies", "wallops", "wallows", "walnuts", "wamble", "wambled", "wambles", "wambly", "wamefou", "wameful", "wampums", "wandero", "wandle", "wangled", "wangler", "wangles", "wanigan", "wanking", "wannest", "wannish", "wanting", "wapitis", "wapiti", "warble", "warbled", "warbler", "warbles", "wardens", "warders", "warding", "warehou", "wareing", "warfare", "warhead", "warison", "warless", "warlike", "warling", "warlock", "warlord", "warmed", "warmers", "warmest", "warming", "warmish", "warmth", "warmths", "warners", "warning", "warpage", "warper", "warping", "warrant", "warrant", "warrant", "warranted", "warranted", "warranted", "warrens", "warring", "warrior", "warstle", "warthog", "wartier", "wartime", "wasabit", "wasatch", "washday", "washers", "washier", "washing", "washrag", "washtub", "wasps", "wasting", "wastrel", "wastril", "watchdog", "watcher", "watchfu", "watching", "waterlo", "watery", "wattage", "watters", "wattest", "wattles", "wauchle", "waucht", "waught", "wauling", "wauping", "wauring", "wausau", "wavelet", "waveoff", "wavered", "waverer", "wavering", "waxbill", "waxiest", "waxlike", "waxwing", "waxwork", "waxworm", "waybill", "wayfare", "waygate", "waylaid", "waylayer", "wayless", "wayside", "waywode", "weakens", "weakest", "weakish", "wealful", "wealthy", "weaners", "weanling", "weapone", "wearers",
"xanthic", "xanthin", "xanthoma", "xanthone", "xanthein", "xanthene", "xanthenes", "xanthine", "xanthines", "xanthins", "xanthoma", "xanthomas", "xanthones", "xebecs", "xenials", "xenogamy", "xenogeny", "xenolith", "xenomai", "xenon", "xenons", "xenopus", "xenure", "xenures", "xerarch", "xeroses", "xerosis", "xiphias", "xiphiid", "xiphiids", "xiphoids", "xylenes", "xylidin", "xylidins", "xylitol", "xylitols", "xylocarp", "xyloid", "xyloids", "xyloma", "xylomata", "xylose", "xyloses", "xylyl", "xylyls", "xystoi", "xystos", "xysts", "yabbers", "yacking", "yaffing", "yagers", "yagging", "yakitori", "yakking", "yakimes", "yakking", "yaksha", "yakshas", "yakutat", "yamalka", "yammer", "yammered", "yammerer", "yammering", "yammers", "yanking", "yanquis", "yantra", "yantras", "yapocks", "yapok", "yapons", "yapping", "yarayan", "yardage", "yardang", "yarding", "yardman", "yardmen", "yardwand", "yarely", "yarest", "yarners", "yarning", "yarrow", "yarrows", "yatagan", "yatagan", "yataghan", "yataghans", "yatagans", "yatter", "yattered", "yattering", "yatters", "yauds", "yauping", "yaupon", "yaupons", "yautia", "yautias", "yawings", "yawled", "yawling", "yawners", "yawning", "yawpers", "yawping", "yawpings", "yeaning", "yearnful", "yearning", "yeasting", "yeelins", "yelling", "yellowed", "yellowest", "yellowing", "yellowish", "yellowy", "yelping", "yenned", "yenning", "yeoman", "yeomanly", "yeomanry", "yeomen", "yessing", "yestreen", "yetlins", "yeuking", "yielden", "yielding", "yielding", "yirring", "yobbish", "yocking", "yodeled", "yodeler", "yodeling", "xanthic", "xanthin", "xanthoma", "xanthone", "xanthein", "xanthene", "xanthenes", "xanthine", "xanthines", "xanthins", "xanthoma", "xanthomas", "xanthones", "xebecs", "xenials", "xenogamy", "xenogeny", "xenolith", "xenomai", "xenon", "xenons", "xenopus", "xenure", "xenures", "xerarch", "xeroses", "xerosis", "xiphias", "xiphiid", "xiphiids", "xiphoids", "xylenes", "xylidin", "xylidins", "xylitol", "xylitols", "xylocarp", "xyloid", "xyloids", "xyloma", "xylomata", "xylose", "xyloses", "xylyl", "xylyls", "xystoi", "xystos", "xysts", "yabbers", "yacking", "yaffing", "yagers", "yagging", "yakitori", "yakking", "yakimes", "yakking", "yaksha", "yakshas", "yakutat", "yamalka", "yammer", "yammered", "yammerer", "yammering", "yammers", "yanking", "yanquis", "yantra", "yantras", "yapocks", "yapok", "yapons", "yapping", "yarayan", "yardage", "yardang", "yarding", "yardman", "yardmen", "yardwand", "yarely", "yarest", "yarners", "yarning", "yarrow", "yarrows", "yatagan", "yatagan", "yataghan", "yataghans", "yatagans", "yatter", "yattered", "yattering", "yatters", "yauds", "yauping", "yaupon", "yaupons", "yautia", "yautias", "yawings", "yawled", "yawling", "yawners", "yawning", "yawpers", "yawping", "yawpings", "yeaning", "yearnful", "yearning", "yeasting", "yeelins", "yelling", "yellowed", "yellowest", "yellowing", "yellowish", "yellowy", "yelping", "yenned", "yenning", "yeoman", "yeomanly", "yeomanry", "yeomen", "yessing", "yestreen", "yetlins", "yeuking", "yielden", "yielding", "yielding", "yirring", "yobbish", "yocking", "yodeled", "yodeler", "yodeling",
"03orb", "06xipu", "06croacre", "09maub", "raping" "03orb", "06xipu", "06croacre", "09maub", "raping"
]; ];
function words(options) { function words(options) {