Commit Graph

303 Commits

Author SHA1 Message Date
TheEssem e8834c072a Properly handle closing an image server connection, switch some "on" instances to "once" 2021-05-06 16:40:05 -05:00
TheEssem 8e7764fc57 Add extra giphy media URL 2021-05-06 16:12:44 -05:00
TheEssem e5d9388952 Added command counts to Prometheus metrics 2021-05-03 08:49:55 -05:00
TheEssem 56113a1cf8 Fixed some DM command issues, made reload and restart use IPC 2021-04-30 12:31:53 -05:00
TheEssem 19922858f2 Fixed some issues regarding eris-sharder and newer eris versions 2021-04-29 16:56:32 -05:00
TheEssem 6cecd4b9d6 Make all native image functions synchronous 2021-04-24 17:54:47 -05:00
TheEssem ebfab817d7 Added support for multiple processing emojis, fixed issue with local image processing 2021-04-23 15:03:48 -05:00
TheEssem b5253cf8e3 Potential giphy fix 2021-04-21 17:37:05 -05:00
TheEssem 2a22c73654 Made image detection start with replies 2021-04-19 22:06:40 -05:00
TheEssem 7db1aa880c Added argument support to slow/speed, made video detection also detect images 2021-04-19 20:15:32 -05:00
TheEssem e00671f0d5 Added argument to freeze for setting the end frame, speed is now aware of variable framerates 2021-04-19 11:04:24 -05:00
TheEssem c67499af9d Added initial support for detecting videos, prevent music messages from showing on soundboard commands, fixed(?) permission checking 2021-04-19 09:31:39 -05:00
TheEssem 7cc8ac7b6b Reduced prefix/disabled channel cache to 512, made API delete images if they haven't been requested after 5 minutes 2021-04-14 18:02:03 -05:00
TheEssem cc82d32840 Fixed slow, changed clean to handle all env variables, changed database handling 2021-04-14 16:37:40 -05:00
Essem 40223ec8b5
Class commands, improved sharding, and many other changes (#88)
* Load commands recursively

* Sort commands

* Missed a couple of spots

* missed even more spots apparently

* Ported commands in "fun" category to new class-based format, added babel eslint plugin

* Ported general commands, removed old/unneeded stuff, replaced moment with day, many more fixes I lost track of

* Missed a spot

* Removed unnecessary abort-controller package, add deprecation warning for mongo database

* Added imagereload, clarified premature end message

* Fixed docker-compose path issue, added total bot uptime to stats, more fixes for various parts

* Converted image commands into classes, fixed reload, ignore another WS event, cleaned up command handler and image runner

* Converted music/soundboard commands to class format

* Cleanup unnecessary logs

* awful tag command class port

* I literally somehow just learned that you can leave out the constructor in classes

* Pass client directly to commands/events, cleaned up command handler

* Migrated bot to eris-sharder, fixed some error handling stuff

* Remove unused modules

* Fixed type returning

* Switched back to Eris stable

* Some fixes and cleanup

* might wanna correct this

* Implement image command ratelimiting

* Added Bot token prefix, added imagestats, added running endpoint to API
2021-04-12 11:16:12 -05:00
TheEssem 48fb0c98c8 Fixed postgres not properly getting command count on newly registered commands 2021-03-31 22:16:23 -05:00
TheEssem 4fb379474b Port pagination fix from class-commands, replaced a playing message 2021-03-30 17:00:07 -05:00
TheEssem 162bc7c093 I literally can not fix pagination 2021-03-19 15:10:15 -05:00
TheEssem 07e1fa8dc2 Allow user/reply mentions 2021-03-18 21:24:37 -05:00
TheEssem 9f300f763a Switch to postgres in docker compose 2021-03-18 11:19:08 -05:00
TheEssem 5d2e2b5274 Upgraded retrotext and DBL posting packages, fixed mention prefixes and DM commands 2021-03-18 09:29:03 -05:00
TheEssem 03ddf5c88c Fixed mention prefix 2021-03-16 15:45:10 -05:00
TheEssem b0313bc041 wow thanks eris for not blocking these by default 2021-03-16 10:33:16 -05:00
TheEssem 4c83c55344 supposedly async promises are bad lmao 2021-03-15 22:29:48 -05:00
TheEssem 03aa3b3a2b Removed Twitter bot 2021-03-08 10:37:43 -06:00
TheEssem 7cf9bcca4e write stable audio queue code challenge (instantly failed) 2021-03-05 22:13:58 -06:00
TheEssem 4419d73d97 soundplayer crash prevention 2021-03-05 15:32:37 -06:00
TheEssem f6bec828d7 Fixed database thing 2021-03-05 15:20:15 -06:00
TheEssem f0c685d8c4 Make soundreload more useful 2021-03-05 15:13:54 -06:00
TheEssem 2499fb2a3b Don't rely on lavacord eris helper package, another pagination fix attempt, make cowsay use a different lib 2021-03-05 12:06:22 -06:00
TheEssem 4d5ef3c24f Added edit date to help page, fixed image command quote 2021-03-04 22:33:03 -06:00
TheEssem e7ffa23411 Some assorted fixes 2021-02-07 11:08:55 -06:00
adroitwhiz 7167956a76
Stop using ffprobe to read GIF frame delay (#57)
* Stop using ffprobe to read GIF delay

* Default image delay to 0
2021-01-26 20:30:04 -06:00
TheEssem 62346cbae4 Rework image API again, replaced many calls to replace with replaceAll 2021-01-18 14:11:28 -06:00
TheEssem b2b8fd643a Add proper support for gfycat gifs, attempt to handle image errors "better", added some new activity messages 2021-01-17 20:40:52 -06:00
TheEssem 116ed94ca3 Attempt to fix a crash with pagination reaction removal 2021-01-16 23:46:07 -06:00
adroitwhiz 3de4858b5a
Clean up image API code paths (#49)
* Document image.js a bit

* Close image.js sockets in all code paths

I'm not sure whether sockets get GC'd when the function returns

* Remove getFormat

It was only called from one place, and the object property names were
quite confusing

* Clean up image.js conditional a bit

I had to write out an entire truth table for this and work it all out
Thinking hard

* Move actual ImageMagick calling into separate file

This gets rid of the weird, brain-melting ouroboros of code that
recurses across threads and processes.

* Reduce amount of getType wrangling

This amounted to an awful lot of dead conditionals after the image
commands were all modified to pass in image types anyway. This has also
led to two different implementations diverging, which causes bugs like
GIF commands applied to non-GIFs erroring instead of providing a
user-friendly message.

* Unify image-runner return type, clarify image type

This allows us to remove the fromAPI parameter from image-runner, and
helps greatly clarify the behavior around image types.

* Deduplicate GIF code, fix "not a GIF" handling

The special "nogif" value is now stored as the image type instead of its
value, as the value must always be a Buffer now--no loosely-typed
shenanigans.
2021-01-09 19:50:29 -06:00
TheEssem c2bd68263b Made image API node chooser sort by job amount instead of CPU usage, added soundreload 2021-01-08 12:08:10 -06:00
TheEssem 55da0db479 The image API no longer uses a unique thread for each job (due to image processing using its own thread anyway), added dummy DB driver 2021-01-06 16:10:31 -06:00
TheEssem 9f2bd1fecb Make the bot itself get the image file type again 2021-01-04 20:53:34 -06:00
TheEssem 87e2e56ef0 Fixed help page generator still attempting to register moderation commands 2021-01-04 14:35:24 -06:00
TheEssem 2a3f84f628 Properly request only the first 1024 bytes when getting image type 2021-01-04 11:10:57 -06:00
TheEssem dd114e27b5 Added more activity messages, updated packages, allow any public Lavalink instance to be used via the "local" parameter, added clearer error message for API timeouts 2021-01-04 10:29:18 -06:00
TheEssem 3730691ba2 Final fixes 2020-12-29 20:33:51 -06:00
TheEssem 8a2d4e6669 Fixed image API request closing prematurely, disabled music commands in production, various fixes regarding direct messages, fixed reply image checking, and removed yoda 2020-12-26 12:17:10 -06:00
TheEssem 7a254a5139 Added load-based api node selection 2020-12-25 20:27:45 -06:00
Tzlil 9ada79d1e5
add parseCommand so it shows me on the esmbot github (#34) 2020-12-25 18:14:10 -06:00
TheEssem 9b4861ae4a Fixed database stop crash, made playing status use the current bot username 2020-12-18 18:57:41 -06:00
TheEssem 5fa5f21289 Moved database driver-specific code to their own files 2020-12-18 18:50:25 -06:00
TheEssem d47c7cacbb Changed DB config settings 2020-12-18 16:05:43 -06:00
TheEssem 3594c4d353 Added proper config options for PostgreSQL 2020-12-18 15:42:34 -06:00
TheEssem 873b3f59bc More caching stuff, changed info command a bit 2020-12-18 14:46:59 -06:00
TheEssem ef945adf09 Added support for using both MongoDB and PostgreSQL, changed image api timeouts, removed all moderation commands 2020-12-17 20:32:19 -06:00
TheEssem 69d8100f23 Actually made screenshot owner-only, made image API interaction more secure 2020-12-14 12:39:18 -06:00
TheEssem 78ae47dbbb Handle API errors more gracefully, fixed sharpen, restrict screenshot to the bot owner 2020-12-14 10:58:31 -06:00
TheEssem a1c24ea30d Allow sound player to start even if some nodes are down, docker maintenance 2020-12-11 16:46:05 -06:00
TheEssem 0566dca06d Some tweaks to music player commands, added loop, renamed existing loop command to unfreeze 2020-12-11 13:52:02 -06:00
TheEssem 59dec7f857 Made image functions run on a worker thread when the API is disabled 2020-11-26 11:48:19 -06:00
TheEssem 94b0bc19a4 Added reply support to image detection, added stealth plugin to screenshot, made credits static, more fixes 2020-11-26 09:31:24 -06:00
TheEssem ca6cffa67c Some security fixes 2020-11-20 15:16:52 -06:00
TheEssem ad149156ad Switched to an image API implementation by Terradice 2020-11-17 08:52:12 -06:00
TheEssem 6761e39d70 A little bit of cleanup 2020-11-09 22:09:57 -06:00
Samuel Hernandez 66cf9dc518
utils/image.js: fix getType on local files 2020-11-07 20:50:32 -05:00
TheEssem 0600cf230f Caption now supports more unicode characters, more api work, fixed multiple bugs 2020-11-05 15:40:18 -06:00
TheEssem a03d3a5e79 Fixed GIF commands for real (lol) 2020-10-19 20:24:53 -05:00
TheEssem 5e34e45ac4 Fixed GIF-only commands 2020-10-19 18:48:43 -05:00
TheEssem cf5c649384 Heavy work on the image detection code, fixed mention prefixes not being properly registered 2020-10-18 16:53:35 -05:00
TheEssem ac4e1f5dd8 Simplified and fixed image API, updated packages 2020-10-06 14:48:22 -05:00
TheEssem f1404a8393 Fixed compatibility with Eris 0.13, get patron list dynamically 2020-10-06 10:18:33 -05:00
TheEssem 6e8473d784 Only delete messages if they exist, removes errors in console 2020-09-23 14:12:39 -05:00
TheEssem 7047081f98 Fixed some music player stuff 2020-09-22 15:33:07 -05:00
TheEssem 925eb387dd Fixed issue with skip vote counts, added headless chrome IP to config, other fixes 2020-09-18 19:54:52 -05:00
TheEssem 4caec5aefa Fixed characters not being properly encoded, fixed images not being properly appended, more fixes 2020-09-09 21:36:20 -05:00
TheEssem 91b8735203 Attempt to fix clean replacing empty text 2020-09-05 16:33:21 -05:00
TheEssem 1c686016bb Allow changing default prefix in config 2020-09-03 17:48:28 -05:00
TheEssem e0d7ea7a57 Added ability to disable tags for a server, added way to remove warnings 2020-09-03 14:26:39 -05:00
TheEssem a6137436d2 The bot can now actually interact with the API, fixed issues relating to leaving voice channels 2020-09-01 21:52:12 -05:00
TheEssem c471bd8af8 Preliminary DM support, update URLs to point to new repo link 2020-09-01 17:10:19 -05:00
TheEssem f415b3bb09 Changed image function syntax, improved dice, switched to fs.promises, might have also done other stuff but idk 2020-08-27 21:34:12 -05:00
TheEssem 95846d32d4 Fixed some issues with the sound player, search images in original message first, add max limit to dice 2020-08-16 11:48:37 -05:00
TheEssem ba664fd19a Reject feedback messages if they contain links, increased image request timeout, some other fixes 2020-08-13 08:47:41 -05:00
TheEssem b8527067d9 Fixed issue with lengthen, added new activity messages 2020-08-06 14:21:48 -05:00
TheEssem 6eee7c6058 Moved back to MongoDB, added some extra flags to flag 2020-07-26 19:52:13 -05:00
TheEssem 9555406229 Final Magick++ ports, removed gm module 2020-07-23 15:49:34 -05:00
TheEssem 78dbeabd39 Ported even more commands to Magick++ 2020-07-22 13:12:38 -05:00
TheEssem 710dfdcf84 Prevent using images larger than 25MB, automatically cancel request after 15 seconds 2020-07-16 19:53:44 -05:00
TheEssem 617cf01090 Allow server admins to delete tags, don't run ready functions more than needed 2020-07-16 09:28:09 -05:00
TheEssem 2a67b76169 Migrated database to PostgreSQL, updated packages 2020-07-10 12:07:24 -05:00
TheEssem 0760136ded Attempt workaround for Twitter errors crashing the bot, fixed lavalink memory leak 2020-07-07 14:28:16 -05:00
TheEssem 8e5c0aa2ac More music/sound work 2020-07-06 16:39:56 -05:00
TheEssem 59c2c230fb Added initial music commands and category, moved lavalink node config to separate file 2020-07-06 15:19:30 -05:00
TheEssem 7dbf6fdf2a Automatically disable voice commands if Lavalink is missing 2020-06-27 16:34:31 -05:00
TheEssem 0cc80da8b6 Huge sound player overhaul using Lavalink, added boom, removed prunejuice, boat, and bus, re-encoded audio files with ffmpeg 2020-06-27 12:18:26 -05:00
TheEssem 56faea8d59 Adjusted flag sizing some more, removed fortnite, added some database connection args 2020-06-26 09:36:03 -05:00
TheEssem 119fd36a6c Docker image maintenance, added new activity line 2020-05-25 15:36:53 -05:00
TheEssem c65a8115aa Added count, added some new playing lines, fixed security issue with hackban 2020-04-26 16:55:33 -05:00
TheEssem e9f4109f43 Switched source for avatar command, added alias to motivate 2020-04-24 23:21:05 -05:00
TheEssem 88dd0c6172 Use lean() method on read-only database calls 2020-04-24 15:25:27 -05:00
TheEssem af8bce1d3e Made image use DuckDuckGo instead of Google Custom Search 2020-04-23 20:54:57 -05:00
TheEssem 18330d3db9 Remove image URL from arguments of image commands 2020-04-23 17:38:01 -05:00
TheEssem f6425dc294 Refactored image/embed handling to prepare for something, don't use fuzz with sonic 2020-04-12 14:51:48 -05:00
TheEssem 628a002205 Added channel, allow using a mention on hackban and snowflake 2020-04-09 21:40:52 -05:00
TheEssem 430df53a5e Reverted change to sharding 2020-04-03 09:25:36 -05:00
TheEssem 7c7dc779c8 Added option to .env to specify number of shards 2020-03-31 10:01:33 -05:00
TheEssem 2823fb2fd3 Removed unnecessary logs, fixed voice commands not working, made eval send a file if the output is too long 2020-03-22 07:56:50 -05:00
TheEssem 6dfba281ef Fixed gifvs not having proper delay 2020-03-15 12:54:51 -05:00
TheEssem 446ba109c7 Optimize checks in messageCreate event 2020-03-14 18:22:09 -05:00
TheEssem 93a7b3fa0d Replace twit with my own module, node-tweet 2020-03-14 18:03:45 -05:00
TheEssem 58f305dbbc Added some extra settings to speed up the client 2020-03-12 08:25:20 -05:00
TheEssem 02df085580 Converted multiple functions to ES6 syntax, moved from collections to maps for storing commands 2020-03-10 17:24:57 -05:00
TheEssem 903130dce1 Added warn 2020-02-27 09:49:32 -06:00
Essem 230502c274
Fixed issue with ImageMagick not properly outputting JPGs 2020-02-26 11:29:13 -06:00
TheEssem e28f45cfec Made image detection get the proxy URL, added ad-hoc large file message 2020-02-25 15:07:36 -06:00
TheEssem 5455b2682c Removed duplicate type parameter, made image commands use a promisified version of the default toBuffer method 2020-02-25 14:45:47 -06:00
TheEssem 1e259ab312 Removed node version check, promisified many gm calls 2020-02-20 18:26:49 -06:00
TheEssem 1c9d40041b Added a small hack to make sonic work again 2020-02-20 15:08:48 -06:00
TheEssem 328d36d1ea Added -layers optimize to every image command 2020-02-20 08:22:05 -06:00
TheEssem a7746cc865 Changed some requires 2020-02-19 16:46:50 -06:00
TheEssem e2a32a8c89 One of the commits from a few days ago was a mistake 2020-02-19 08:25:45 -06:00
TheEssem 777b86e480 Added support for "gifv"s, fixed embed issue with image 2020-02-18 14:44:39 -06:00
TheEssem fb59135388 Removed old meme script 2020-02-18 07:28:16 -06:00
TheEssem 5e394d101d Added screenshot, fixed coalesce issue with gamexplain 2020-02-17 16:21:24 -06:00
TheEssem c745bd3ae2 Added donate, made blur and sharpen use ImageMagick 2020-02-10 19:49:35 -06:00
TheEssem 97f2f38d47 Added pagination and proper HTML entity decoding to youtube 2020-02-06 09:00:10 -06:00
TheEssem f2bf5297a8 Completely rewrote meme, removed old help page 2020-01-27 15:27:33 -06:00
TheEssem 4df084a427 Updated file-type 2020-01-19 09:40:40 -06:00
TheEssem 4fb8eb4989 Added support for GIFs in image commands, added caption 2020-01-07 19:17:04 -06:00
TheEssem 8d03ddadb3 Fixed Discord API errors with purge and pagination 2020-01-06 20:22:55 -06:00
TheEssem 6446cfd9bd Tweaked a few things, temporarily disabled yoda due to some issues 2019-12-29 10:56:32 -06:00
TheEssem 565e71571d Changed file permissions for meme.sh 2019-12-20 12:54:41 -06:00
TheEssem eb6aae1227 Replaced pug-based help page generator with markdown generator 2019-12-20 11:39:30 -06:00
TheEssem 3a02efef70 Updated links to point to new GitHub repo name 2019-12-16 15:32:47 -06:00
TheEssem 903f5eebf0 Removed XP system, fixed a few more bugs 2019-12-16 12:13:38 -06:00
TheEssem 08ec2ca9ea Removed unnecessary comments, replaced instances of console.error with a throw 2019-12-10 09:53:43 -06:00
TheEssem 346312f006 Removed unnecessary try/catch block from pagination, fixed font coloring with sonic 2019-12-10 08:24:13 -06:00
TheEssem c1f2eadf88 Added name input to avatar, added alias for help, other changes 2019-12-09 15:33:06 -06:00
TheEssem ba4ded7b72 Added version to stats and workaround for #1 2019-12-06 20:04:17 -06:00
TheEssem 38fa8c4629 Fix sanitization with homebrew, changed links to point to the new help link 2019-12-06 08:55:30 -06:00
TheEssem 3836ecb69b Added tag commands descriptions 2019-12-05 18:15:28 -06:00
TheEssem c357d3bc46 Added toggle/options for help page generator 2019-12-05 11:40:09 -06:00
TheEssem b6a2dd275a Added homebrew and emote, added command params to help and a help webpage generator, updated packages/readme 2019-12-05 10:58:46 -06:00
TheEssem 3d225f6547 Added new help command and command metadata, various changes 2019-12-02 14:47:22 -06:00
TheEssem c9f0ff3827 Revert gmbuffer.js, improved tags a bit more, some more pagination work 2019-11-30 09:48:05 -06:00
TheEssem 16927d8667 Don't load commands if env variable doesn't exist, removed catfact/dogfact, many other changes 2019-11-29 20:00:14 -06:00
TheEssem 0920c459d5 Improved twitter bot a bit more, replaced all indexOf checks, fixed xp message bug 2019-11-23 17:23:28 -06:00
TheEssem e1347fcf52 Added proper license, removed unused stuff, more twitter bot work 2019-11-17 19:57:12 -06:00
TheEssem f7756f1b52 Added basic twitter bot and spin, updated readme, other various changes 2019-11-15 10:59:50 -06:00
TheEssem d661b58271 Added leak and exec, moved from a config.json file to a .env file, other changes 2019-11-12 18:09:06 -06:00
TheEssem ef071a39d4 Removed extra image request for image commands, various other tweaks 2019-11-11 14:54:19 -06:00
TheEssem 171253c52c Added snowflake and experimental xp system, made logger easier to use 2019-11-05 09:52:46 -06:00
TheEssem 606c1ea1dc Moved from Enmap/SQLite to MongoDB 2019-10-28 15:21:06 -05:00
TheEssem d78bb8dff7 Added more commands, added an auto-delete mechanism for a 12-year-old's spam, various fixes 2019-10-24 13:54:23 -05:00
TheEssem c33a86eb4c Initial commit 2019-09-13 15:02:41 -05:00