Commit Graph

133 Commits

Author SHA1 Message Date
Ske e9cc8ed424 Add logger bot cleanup support 2020-02-15 14:17:25 +01:00
Ske dc10a8411a Disable autoproxy retriggering on edit 2020-02-12 17:44:24 +01:00
Ske 6d5004bf54 Large refactor and project restructuring 2020-02-12 15:16:19 +01:00
Ske b68e221fc6 Track current shard in Sentry reports 2020-02-12 14:37:11 +01:00
Ske 1386e6743b Proxy edited messages if the message is the last one in the channel, and the edit introduces proxy tags where there were none previously 2020-02-12 14:21:48 +01:00
Ske 82dfe43d5a Rework caching
This does a *lot* of things. Essentially, it replaces the existing
individual proxy- and autoproxy caches on the bot end with a
global cache (in Core) that handles all the caching at once, and
automatically invalidates the cache once something changes in the
datastore.

This allows us to do proxying and autoproxying with *zero database
queries* (best-case).
2020-02-01 14:40:57 +01:00
Ske 1ea0526ef8 Migrate DI container to Autofac 2020-01-26 01:27:45 +01:00
Ske 83cfb3eb46 Add autoproxy functionality 2020-01-24 20:28:48 +01:00
Ske 57bc576de6 Add autoproxy management commands 2020-01-23 21:20:22 +01:00
Ske 98613c4287 Add system and member privacy support 2020-01-11 16:51:13 +01:00
Grey Himmel da83f72582 Update Bot.cs
- Add note telling users to describe what happened when reporting errors
2020-01-08 20:40:32 +01:00
Ske 4a30e56298 Add basic database schema migration system 2019-12-26 21:43:05 +01:00
Ske 1c184825e3 Use fork of D.NET to potentially resolve issues 2019-12-23 18:36:56 +01:00
Ske 5448f734d4 Try logging *literally everything* 2019-12-23 14:44:20 +01:00
Ske 5ff32ea6b4 Re-enable proxy attachments 2019-12-23 13:55:43 +01:00
Ske 3fdfaeab01 Disable message attachments as a temporary fix 2019-12-23 01:53:01 +01:00
Ske 265184f4f6 Couple tweaks to potentially improve performance 2019-12-23 01:49:21 +01:00
Ske bbbbb5a046 Fix error on empty message 2019-12-23 01:49:00 +01:00
Ske 4a8dd7e8e3 Oops 2019-12-23 00:31:31 +01:00
Ske 05282fd167 Reuse a singleton HttpClient for proxying 2019-12-23 00:29:04 +01:00
Ske c70556f5f9 Increase minimum thread pool size 2019-12-23 00:28:19 +01:00
Ske b6597c79d6 Add temporary ThreadPool trace logging 2019-12-22 23:27:11 +01:00
Ske b81eda47aa Expand pk;stats functionality 2019-12-22 12:50:47 +01:00
Ske 93a52ff95a Add exception logging for dropped connections 2019-12-22 12:08:52 +01:00
Ske 6a55555e48 Attempt a few memory/connection optimizations 2019-12-22 01:08:14 +01:00
Ske 378cba09e5 Add channel blacklists for logging and proxying
Necessary database migrations for this commit:
    alter table servers add column log_blacklist bigint[] not null default array[]::bigint[];
    alter table servers add column blacklist bigint[] not null default array[]::bigint[];
2019-11-03 19:15:50 +01:00
Ske 8d003da091 Remove chunk of commented-out outdated code 2019-11-03 13:37:48 +01:00
Ske 0f48c6879b Attempt to fix slow/timeout-y bot startup
I've noticed the bot's CPU spiking for a few minutes as it's
just connecting, and a lot of shard connections are timing out.

I suspect it might be the overload of messages as the shards
connect and Discord sends it the entire backlog at once. So,
as an interim solution, I'm making it simply discard every
message before the socket is fully connected. Hopefully this
should help reduce the pressure.
2019-10-31 17:21:12 +01:00
Ske 545e8df6a7 Reduce the log level of various common events 2019-10-27 23:44:27 +01:00
Ske fbb5dbbf5d Don't embed support server link in error message 2019-10-27 23:01:38 +01:00
Ske 7f55fca625 Make prefix matching case-insensitive 2019-10-27 15:08:33 +01:00
Ske aed38f37f7 Allow starting bot before all shards are up 2019-10-27 13:01:33 +01:00
Ske 6a73b3bdd6 Refactor data stores, merging the Store classes 2019-10-26 19:45:44 +02:00
Ske 53ae0e3d70 Improve error handling and reporting after command rewrite 2019-10-22 19:31:40 +02:00
Ske 1988b29fbc Refactor command system 2019-10-05 07:41:00 +02:00
Ske 86d0b24758 Include event ID in Sentry dump 2019-09-02 20:37:24 +02:00
Ske 74e0508065 Increase webhook name limit to 80 2019-08-14 07:16:48 +02:00
Ske 5f79aaf960 Fix API service injection 2019-08-12 06:54:28 +02:00
Ske a48940476c Eagerly discard messages before shard init 2019-08-12 06:10:55 +02:00
Ske 7945603cdb Include invite link in error message 2019-08-12 06:03:20 +02:00
Ske d3f821a266 Send a request ID on error 2019-08-12 05:56:05 +02:00
Ske 145ecb91ad Refactor proxy service 2019-08-12 05:47:55 +02:00
Ske fda98bc25f Lower message cache size 2019-08-12 05:03:18 +02:00
Ske c68ce1bdd3 Log gateway latency to console 2019-08-12 04:05:22 +02:00
Ske aa04d2055e Avoid deleting messages from the store if they're not webhooks 2019-08-12 03:51:54 +02:00
Ske 423d23faf7 Cache account lookup in memory when proxying 2019-08-12 03:48:08 +02:00
Ske 99ec3cd355 Instrument and log database queries 2019-08-12 02:05:30 +02:00
Ske ea476d4051 Yield event handlers to task queue before handling 2019-08-12 01:15:55 +02:00
Ske a689d61788 Collect webhook response time and shard latency 2019-08-12 00:57:23 +02:00
Ske b593c32950 Add more extensive debug-level logging
- Logging of event IDs
- Logging of command invocations (at DEBUG)
2019-08-12 00:07:29 +02:00