Commit graph

363 commits

Author SHA1 Message Date
6d1bc63352
Fixed image server sorting, fixed improper imstat job counts 2022-01-05 10:17:59 -06:00
e66f45ba0f
Fixed clean always resulting in <redacted> 2021-12-26 23:06:05 -06:00
952f2e5237
Fix motivate font, fixed server command check error 2021-12-23 16:09:50 -06:00
samhza
b2e6dd01fe
imageConnection: properly handle receiving R-messages with invalid tags (#205) 2021-12-19 21:58:17 -06:00
samhza
134eb654d2
allow custom port for API server (#204)
* allow custom port for API server

* add .editorconfig
2021-12-17 22:44:53 -06:00
5acd2b1113
Properly await more functions 2021-12-13 16:09:12 -06:00
c5fc1d0b0f
Properly await message deletes, update packages 2021-12-13 15:46:08 -06:00
14046a811a
Add config option to make the bot stay in voice chat 2021-12-11 23:44:49 -06:00
39ebae8cd7
Refactor image job object, fixed image commands that don't require an existing image 2021-12-09 22:31:52 -06:00
30bcb7a969
Added extra font support to some other commands, handle overflow on image api 2021-12-06 01:25:38 -06:00
38e5a1d9f2
Change image API port, added TLS support, fixed content-type header 2021-12-02 18:01:33 -06:00
871979105c
Fixed tag parameter stuff, added tag to Rinit, added format checking 2021-11-29 15:27:13 -06:00
fe321e00b4
Some fixes 2021-11-26 23:24:13 -06:00
41068ae763
Initial draft for new image API design 2021-11-26 23:05:09 -06:00
e179b923f0
Update packages 2021-11-20 00:55:25 -06:00
636857e20f
Fixed pagination issues, merged forceskip into skip 2021-11-16 14:40:17 -06:00
536b931ead
Updated packages, take advantage of new eris-fleet features, fixed issue where messages wouldn't send 2021-11-12 17:21:43 -06:00
fae75db44a
Switched to content.embeds 2021-11-09 22:09:10 -06:00
f5a0fa5f7c
Catch image load warnings, set message limit to 50, don't crash the bot if .git is missing 2021-10-23 13:58:19 -05:00
d42c67cde2
Added the ability for sticker to check for stickers previously posted in a channel 2021-10-05 16:48:26 -05:00
saucylegs
7f8eb04a2e
Make the em dash (—) also work when using options (#160)
Some devices (such as iPhones) automatically change it to `—` when you type `--`. To get it to stay as `--` you have to type something like `-f-` and then delete the f, which can be annoying. Some people probably don't realize this problem and wonder why it didn't work. Allowing both should make for a better user experience.
2021-09-21 22:05:27 -05:00
3f28bf815c
Added shard count to prometheus metrics, catch message deletes in soundplayer 2021-09-20 18:32:59 -05:00
264b59ba59
Added fartreverb, added shuffle, fixed reload error messages, fixed some possible bugs 2021-09-20 12:26:40 -05:00
b07c0e389e
Added forceskip, fixed blank title tracks some more 2021-09-19 18:06:09 -05:00
3517826f46
Set max skip vote amount based on number of users in voice chat, remove skip votes when session ends 2021-09-19 17:49:02 -05:00
963d5247f6
Added check to make sure help list isn't generated multiple times 2021-09-16 15:34:46 -05:00
3b4b302634
Make sure music search results aren't counted as playlists 2021-09-14 22:40:44 -05:00
4caad42240
Added support for youtube playlists, replaced multiple fetch requests with lavacord rest helpers 2021-09-14 19:14:44 -05:00
c59a0bf0c4
Pause music when everyone leaves the voice channel, try a slightly different approach to voice events 2021-09-13 17:24:15 -05:00
95dc02aed5
Docker tweaks 2021-09-13 13:05:22 -05:00
fec3d7303c
Add queued image jobs to server selection logic 2021-09-01 00:21:13 -05:00
b6db4a869e
Fixed issue where sound player would stop playing audio in a server until the bot is restarted 2021-08-30 23:44:22 -05:00
382f4da29e
Fixed sound player permission check 2021-08-30 16:17:20 -05:00
f0e19d6ad3
Added sticker, reimplemented reload, removed user count from stats 2021-08-23 00:37:09 -05:00
7009ff339f
Fixed help not working with page generator disabled 2021-08-19 16:49:58 -05:00
cb895900d5
Fixed sqlite, disabled reload 2021-08-19 15:31:51 -05:00
ae2ebe0337
Port to ESM modules (haha funny), removed cache request, many other changes that I forgot about 2021-08-19 09:19:14 -05:00
2fe45d842b
Fixed adding guilds in sqlite 2021-08-18 15:41:35 -05:00
560d3883ad
Made soos more smooth, added server count to prometheus, fixed unhandled soundplayer error 2021-08-16 23:04:11 -05:00
382480e1c7
Fixed issue with pagination message 2021-08-14 16:15:21 -05:00
5e8c587c41
Improved tag retrieval, blacklisted a ton of events, fixed skip issue for real 2021-08-14 08:00:16 -05:00
fd573415f1
Remove all references to reactions 2021-08-13 21:36:13 -05:00
e3fca9f4e9
Fixed pagination and typing in DMs 2021-08-13 21:34:44 -05:00
70a592fa49
Fixed dummy db 2021-08-13 14:15:42 -05:00
2fbd2e3016
Set tag content limit, fixed new pagination showing buttons on single-page messages 2021-08-13 00:09:30 -05:00
9f36a79a2b
Added command, reverted database service split 2021-08-12 22:28:09 -05:00
da709c485f
Make pagination use interactions instead of reactions, filter out base64 images in image 2021-08-12 18:45:17 -05:00
5c0cb6463a
Some more small DB optimizations 2021-08-11 16:54:43 -05:00
e8094c78ec
Move tags to separate table, part 2 2021-08-11 10:00:35 -05:00
a75ceb41f2
Move tags to separate table 2021-08-10 20:25:29 -05:00
81277f95c0
Add query timeout to postgres 2021-08-10 18:35:26 -05:00
b2c7a43baa
Convert database handler into service, fix skip issue with sound player 2021-08-10 16:34:29 -05:00
cd469667cb
yeah 2021-08-09 10:48:43 -05:00
899d4ac9da
missed a spot again 2021-08-09 10:18:00 -05:00
253bd4c71c
Postgres query optimization attempt 2021-08-09 10:12:48 -05:00
75258f3ebc
Remove the cache limit entirely 2021-08-09 08:33:16 -05:00
cb3afa0050
Increased prefix/disabled channel cache limit 2021-08-08 19:45:40 -05:00
b6f28ece76
Temprarily disable reply on pagination, made a small optimization to prefix handler 2021-08-07 15:28:39 -05:00
e44f5ba59d
Added font flag to caption 2021-08-06 22:27:50 -05:00
f7923c19cb
Added a very basic image API authentication system 2021-08-06 17:13:29 -05:00
f2ace6ee52
Fixed durations 2021-08-06 15:39:04 -05:00
dea160c73b
Make pagination only apply when there's more than a single page 2021-08-06 12:12:59 -05:00
c0974e2d49
Fixed clean 2021-08-05 13:03:44 -05:00
49ae7578fe
Removed MongoDB support 2021-08-04 13:31:29 -05:00
77ca0fd344
Improved error handling 2021-07-31 13:36:00 -05:00
7f0f2fb789
Replaced raw date text with Discord formatted dates, added flag info to help, added note to cat 2021-07-23 11:13:43 -05:00
samhza
833ac924d5
fix prometheus metric names (#142)
> A metric name should have a (single-word) application prefix relevant to the
> domain the metric belongs to.
https://prometheus.io/docs/practices/naming/
2021-07-14 18:42:19 -05:00
d03967212e
Added more command flags, start documenting command flags, removed args argument from params function 2021-07-14 17:23:50 -05:00
8059fd1b77
Fixed misplaced closing bracket in command parser 2021-07-12 21:56:53 -05:00
e640cc8f77
Ignore underscore argument 2021-07-11 15:40:31 -05:00
bc2826ccbb
Removed quote detection from normal arguments 2021-07-08 21:03:19 -05:00
0483e68016
Sound playback is pain 2021-07-06 09:23:27 -05:00
75801687a4
Re-add Prometheus metrics 2021-07-06 09:22:51 -05:00
11a77df700
maybe this fixes the audio message deleting? 2021-07-06 08:25:12 -05:00
97050f0cf1
Attempt to move image processing to an eris-fleet service 2021-07-05 19:20:21 -05:00
299663adf8
Port to eris-fleet 2021-07-04 23:15:27 -05:00
a52b05d8b7
Fix some command parser issues 2021-07-02 10:52:44 -05:00
ecc6d98aec
Added sqlite database support, connect new argument parser to message handler 2021-07-01 23:42:12 -05:00
714e4a451c
Fixed databasenot properly caching disabled channels 2021-07-01 08:01:00 -05:00
b24e99d8e8
Fixed paginator not removing reactions on end 2021-06-30 11:56:45 -05:00
ae8b121d03
Added server/user count to stats, fixed message not showing on tenor/large image errors 2021-06-29 14:10:22 -05:00
41c8be04cf Added gif, detect if any image servers are disconnected 2021-06-28 17:59:05 -05:00
0fbc165154
Delete unfinished jobs on connection close 2021-06-27 17:06:52 -05:00
137120b4b7
Make connect into an async function 2021-06-26 20:58:22 -05:00
4cdd59dfcd
Made youtube use searx for results, fall back to dummy db when none is specified, added cluster to stats, more QOL changes 2021-06-26 15:56:02 -05:00
da8c676320
Changed image size limit 2021-06-19 15:11:34 -05:00
4d3e1655e0
A little bit more image work 2021-06-18 19:10:13 -05:00
a0a32c31b9
Switched image API from raw TCP to websockets, removed selective image reading code 2021-06-18 00:10:11 -05:00
c2e13c26b6
More command parser stuff 2021-06-14 22:19:10 -05:00
52d91b752d
Added snapchat, prevent image queue packet from being sent twice 2021-06-14 22:03:48 -05:00
8b07524e6b
Command parser changes 2021-06-05 19:55:40 -05:00
bd221d5909
Make command error logs more verbose, image server connection/job error handling changes 2021-06-01 20:27:28 -05:00
32a470aec3
Change "close" connection event to "end" 2021-05-23 17:22:31 -05:00
96f8ec6353
Make soundreload apply to all clusters 2021-05-22 10:10:42 -05:00
7aa684eae6
Export jobs, removed unused opcode 2021-05-17 22:37:40 -05:00
753bf84f78
Updated flags, fix true/false being censored in cleaned output 2021-05-17 19:09:30 -05:00
cb6e1b5f36
Try another method for handling broken connections 2021-05-17 19:08:06 -05:00
c92b9a7b25
Lint command parser 2021-05-17 16:49:21 -05:00
b748e54437
Delete jobs when disconnecting from image servers 2021-05-17 15:39:22 -05:00
82ab3f672f
Trying to reduce cannot call write errors 2021-05-17 14:23:29 -05:00
21f4a5a51a
Added options to pagination edit calls 2021-05-17 10:17:43 -05:00
21a98e216d
Acccount for cases where Content-Range doesn't exist 2021-05-14 22:02:50 -05:00
787eb347f6
Changed Tenor API url, account for ratelimits, switch Member#permission to Member#permissions 2021-05-14 09:31:12 -05:00
79bc36759c
Added support for DEBUG environment variable with image runner, make freeze use a similar method to speed 2021-05-13 17:11:13 -05:00
61758fa3bb
Pass an image buffer into the native functions instead of a URL 2021-05-11 14:25:02 -05:00
d5c7b38b57
None of these were needed in the first place 2021-05-11 12:11:54 -05:00
c4b57ac617 Re-add a form of size limit 2021-05-11 11:22:27 -05:00
364d8bf006 Made command outputs post as replies, fixed status changing on cluster restart, extra stuff 2021-05-11 11:12:01 -05:00
2b810c7c86 Re-add image job timeout, split dockerfiles, removed api from docker-compose, more fixes 2021-05-10 22:59:19 -05:00
198b6dbcac Fixed potential issue where all jobs could be deleted 2021-05-06 16:58:35 -05:00
e8834c072a Properly handle closing an image server connection, switch some "on" instances to "once" 2021-05-06 16:40:05 -05:00
8e7764fc57 Add extra giphy media URL 2021-05-06 16:12:44 -05:00
e5d9388952 Added command counts to Prometheus metrics 2021-05-03 08:49:55 -05:00
56113a1cf8 Fixed some DM command issues, made reload and restart use IPC 2021-04-30 12:31:53 -05:00
19922858f2 Fixed some issues regarding eris-sharder and newer eris versions 2021-04-29 16:56:32 -05:00
6cecd4b9d6 Make all native image functions synchronous 2021-04-24 17:54:47 -05:00
ebfab817d7 Added support for multiple processing emojis, fixed issue with local image processing 2021-04-23 15:03:48 -05:00
b5253cf8e3 Potential giphy fix 2021-04-21 17:37:05 -05:00
2a22c73654 Made image detection start with replies 2021-04-19 22:06:40 -05:00
7db1aa880c Added argument support to slow/speed, made video detection also detect images 2021-04-19 20:15:32 -05:00
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
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
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
cc82d32840 Fixed slow, changed clean to handle all env variables, changed database handling 2021-04-14 16:37:40 -05:00
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
48fb0c98c8 Fixed postgres not properly getting command count on newly registered commands 2021-03-31 22:16:23 -05:00
4fb379474b Port pagination fix from class-commands, replaced a playing message 2021-03-30 17:00:07 -05:00
162bc7c093 I literally can not fix pagination 2021-03-19 15:10:15 -05:00
07e1fa8dc2 Allow user/reply mentions 2021-03-18 21:24:37 -05:00
9f300f763a Switch to postgres in docker compose 2021-03-18 11:19:08 -05:00
5d2e2b5274 Upgraded retrotext and DBL posting packages, fixed mention prefixes and DM commands 2021-03-18 09:29:03 -05:00
03ddf5c88c Fixed mention prefix 2021-03-16 15:45:10 -05:00
b0313bc041 wow thanks eris for not blocking these by default 2021-03-16 10:33:16 -05:00
4c83c55344 supposedly async promises are bad lmao 2021-03-15 22:29:48 -05:00
03aa3b3a2b Removed Twitter bot 2021-03-08 10:37:43 -06:00
7cf9bcca4e write stable audio queue code challenge (instantly failed) 2021-03-05 22:13:58 -06:00
4419d73d97 soundplayer crash prevention 2021-03-05 15:32:37 -06:00
f6bec828d7 Fixed database thing 2021-03-05 15:20:15 -06:00
f0c685d8c4 Make soundreload more useful 2021-03-05 15:13:54 -06:00
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
4d5ef3c24f Added edit date to help page, fixed image command quote 2021-03-04 22:33:03 -06:00
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
62346cbae4 Rework image API again, replaced many calls to replace with replaceAll 2021-01-18 14:11:28 -06:00
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
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
c2bd68263b Made image API node chooser sort by job amount instead of CPU usage, added soundreload 2021-01-08 12:08:10 -06:00
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
9f2bd1fecb Make the bot itself get the image file type again 2021-01-04 20:53:34 -06:00