Commit graph

214 commits

Author SHA1 Message Date
Noi
3c73be3ee7 Automatically identify and remove dead shards
- Manager loop updated to act on dead shards and initialize new ones
- Initialization of new shards is now staggered in case of many shards
- Now using intents
- Adding a delay and a second connection check when downloading guild
  members. This has greatly improved stability over the previously
  attempted method.
- No longer sends guild counts to external sites until fully connected
2020-10-29 00:44:48 -07:00
Noi
a631f55a37 Change exception type thrown by semaphore 2020-10-25 13:44:35 -07:00
Noi
b6551eec2e Modify shard reporting to be compact, informative 2020-10-24 22:43:20 -07:00
Noi
651de4e78a Configure all the awaits 2020-10-10 00:28:11 -07:00
Noi
9ef164bac1 Update DataRetention service
Renamed from StaleDataCleaner.
Modified to run only once concurrently, to not put extra load on the
database connection pool.
2020-10-09 23:57:30 -07:00
Noi
7ce04997f9 Modify background task settings
Solves an issue in which the bot lags on all input when the bot has
been fully initialized.
2020-10-08 21:56:44 -07:00
Noi
6ee0ad939e Improve comments, remove redundant code 2020-10-08 21:46:36 -07:00
Noi
6efc436717 Exception-proofing external statistics 2020-10-05 22:26:29 -07:00
Noi
0eb63c26f5 Clarify client options, add gateway intents 2020-10-05 16:51:42 -07:00
Noi
e1a4dab746 More thorough exception handling on dispose 2020-10-05 16:10:02 -07:00
Noi
2da4f3e0e3 Add missing filter, fix verbose logging not appearing 2020-10-05 16:09:14 -07:00
Noi
fc9d611ba6 Add individual SQL options 2020-10-05 16:07:34 -07:00
Noi
2f0fe8641a Implement own sharding system
The BirthdayBot class has been split up into ShardInstance and
ShardManager. Several other things have been reorganized so that shards
may act independently.

The overall goal of these changes made is to limit failures to sections
that can easily be discarded and replaced.
2020-10-04 21:40:38 -07:00
Noi
21d5c5b082 Add status update message 2020-09-25 17:25:08 -07:00
Noi
b711fec302 Update TZ information help text 2020-08-25 00:23:51 -07:00
Noi
a8624ce3ec Add name escaping for '@' 2020-08-25 00:16:29 -07:00
Noi
c77163cab3 Merge branch 'noguildcache' 2020-08-05 19:49:57 -07:00
Noi
f1e7bd8c67 Removed disconnected server count
Made redundant by per-shard status on every birthday update
2020-07-27 22:40:09 -07:00
Noi
a9e87d8021 Update intervals, increase version number 2020-07-27 22:39:01 -07:00
Noi
657181ec3e Less async birthday updates; download users on connect
From testing, it appears DownloadUsersAsync hangs forever and has other
consequences if its corresponding server is not fully connected, or is
struggling to connect. This is despite all attempts to mitigate it and
detect any disconnections shortly before attempting it.
Additionally, birthday updates are now run asynchronously per shard, but
synchronously per guild in an attempt to keep rare instances of rate
limiting under control.
2020-07-27 22:30:15 -07:00
Noi
a87426a5f6 Remove unnecessary lines 2020-07-27 22:29:35 -07:00
Noi
8f84b09b21 Reduce amount of automatic processing
These changes make the bot skip over needlessly collecting information
for guilds in which it is unnecessary, in most cases guilds that have
invited the bot but have not yet invoked any bot command.
2020-07-22 19:43:45 -07:00
Noi
73fae41ac9 Automatically add pool config to database 2020-07-22 19:42:11 -07:00
Noi
937538c0e2 Update package 2020-07-22 19:41:36 -07:00
Noi
e8ae5bb9da Increase initial processing delay 2020-07-22 17:07:30 -07:00
Noi
ffbffdd9b4 Remove async multiple updates 2020-07-22 17:06:35 -07:00
Noi
3d3db6d5e1 Update remaining handlers to not use guild cache 2020-07-22 16:58:38 -07:00
Noi
b6c201d5a5 Fix user last_seen not updating properly
Also now displays basic statistics on how many records are updated in
each pass whenever StaleDataCleaner does its work.
2020-07-19 20:54:18 -07:00
Noi
23dd15d741 Update to use GuildConfiguration; small other tweaks 2020-07-19 19:07:23 -07:00
Noi
6d7db85310 Remove unneeded property 2020-07-19 19:01:34 -07:00
Noi
581df48855 Add IsBotModerator method
Very similar to a previously existing method that was mistakenly removed.
2020-07-18 00:31:01 -07:00
Noi
608ab37aec Update background services to remove guild cache references
Possibly optimized StaleDataCleaner as well by making certain database
updates asynchronous
2020-07-18 00:01:14 -07:00
Noi
488685bc79 Rewrite GuildUserConfiguration
Corresponding to GuildConfiguration, no longer assumes it is cached.
2020-07-16 13:29:50 -07:00
Noi
7ac15e21a1 Remove guild cache from BirthdayBot
Guild information no longer loaded on join, but instead on command
invocation. This information is to be passed on directly to the command
handler.
2020-07-16 12:23:40 -07:00
Noi
f71552c46d Change Database to be a static class 2020-07-16 11:55:26 -07:00
Noi
0f05e3f0a8 Rewrite GuildConfiguration
No longer assumes it's permanently cached. When used, now requires that
any updates have its update method explicitly called.
2020-07-16 11:50:55 -07:00
Noi
aedc0f2ba7 Rename files 2020-07-16 11:50:12 -07:00
Noi
e3a86dd6dc Increase time span coverage for recent/upcoming
Also adds a simple way to prevent the resulting message
from growing too large
2020-07-16 09:21:46 -07:00
Noi
0bd9b79e50 Replace OperationStatus with test command 2020-07-14 11:59:14 -07:00
Noi
fbbc675ab0 Improved error messages under manager commands 2020-06-03 19:20:18 -07:00
Noi
1137777092 Improved user-facing error messages
Also moved bb.when handler to a different class
2020-06-03 18:58:03 -07:00
Noi
fdb8e2bbb9 Add helper class to simplify documentation sharing 2020-06-03 18:56:45 -07:00
Noi
f839890b73 Fix StaleDataCleaner not working 2020-06-03 00:17:54 -07:00
Noi
99786a7b70 Suppress unneeded log messages 2020-06-02 23:11:34 -07:00
Noi
6f4222497e Fix bb.when output
(I don't get how this fixed it)
2020-05-22 17:01:14 -07:00
Noi
7500590113 Update libraries 2020-05-22 00:36:11 -07:00
Noi
48481e0379 Add reminders for error reporting improvements 2020-05-22 00:27:31 -07:00
Noi
a91e22ca71 Fix exception on every non-command incoming message 2020-05-22 00:26:55 -07:00
Noi
9278ef0a48 Disable output of debug information in Release build 2020-05-22 00:26:21 -07:00
Noi
75924cc096 Revert GuildStatistics to previous behavior
Sending in reports per shard is currently unnecessary.
Added GuildCache number display for further information. It may be worth
considering removing -that- in the future and load all database
information as needed.
2020-05-22 00:21:40 -07:00