acw0
5bc31cbf3e
Fix error message
2020-08-05 19:56:40 -04:00
Ske
7ab5e66d7b
Show new color in the member color change embed
2020-08-05 20:20:27 +02:00
acw0
df7fdce144
Add sorting member list randomly
2020-08-04 19:28:29 -04:00
acw0
f6d2f4b620
Add -all flag in random command
2020-08-04 18:43:17 -04:00
ent3r
687eaaa928
Fix formatting
...
Removed bold on a colon
2020-08-03 19:00:27 +02:00
acw0
d9c644ec0e
Change "channel not found" error messages to be more ambiguous; also, put them in Errors instead of inline
2020-08-03 19:00:17 +02:00
acw0
2f8f819e22
Add "n" as an alias to "new" for creating a system
2020-07-29 11:30:46 +02:00
acw0
3c5aec1df8
Show bot status as "Idle" when restarting
2020-07-29 11:30:46 +02:00
Ske
fb236726aa
Consolidate conditional
2020-07-28 19:52:57 +02:00
Ske
62cdb8a9b8
Check for avatar whitespace instead of null.
...
This may be relevant for #206 , although unsure if this is actually a fix.
2020-07-28 19:35:34 +02:00
acw0
47fcfeca0f
Consolidate conditionals
2020-07-28 19:30:03 +02:00
acw0
1138c1a2a9
Clean up getting guild/member
2020-07-28 19:30:03 +02:00
acw0
bf07294f5f
Change error to be more ambiguous
2020-07-28 19:30:03 +02:00
acw0
687dd23234
Fix missing ID error
2020-07-28 19:30:03 +02:00
acw0
c20c4dab42
use Shard.GetGuild instead of Rest.GetGuild
2020-07-28 19:30:03 +02:00
Ske
f504e16543
Restructure group created info
2020-07-28 19:17:01 +02:00
Ske
5e28e0aba1
Add group privacy command/structures
2020-07-28 19:17:01 +02:00
Ske
47d5ad0004
Enforce group count limit on creation
2020-07-28 19:17:01 +02:00
Ske
f47d366c8d
Show member groups on member card
2020-07-28 19:17:01 +02:00
Ske
ec9ee5c794
Show member count on group card
2020-07-28 19:17:01 +02:00
Ske
0d04be6540
Fix error showing group card with no description
2020-07-28 19:17:01 +02:00
Ske
18cb6785e9
Extract member list parsing to a separate method
2020-07-28 19:17:01 +02:00
Ske
8a28d836c7
Add group member list command
2020-07-28 19:17:00 +02:00
Ske
0f4c40b344
Add group add/remove commands
2020-07-28 19:17:00 +02:00
Ske
6c5cb8cea7
Add group name/description/list commands
2020-07-28 19:17:00 +02:00
Ske
253ae43c7f
Add super basic group model/command
2020-07-28 19:17:00 +02:00
Astrid
a0d4ab5809
Merge pull request #202 from acw0/bugfix/dsharpcache
...
Fix pk;msg errors across shards
2020-07-22 16:33:27 +02:00
kittens
e24c5d095b
Check if we got the same member before asking for confirmation ( #201 )
2020-07-22 16:27:53 +02:00
kittens
467d058565
Remove "remove" keyword from MatchClear ( #199 )
2020-07-22 16:26:43 +02:00
acw0
88c28c18c7
Fix pk;msg erroring between shards
2020-07-22 04:07:35 -04:00
acw0
56e4f1c00c
Create methods to find guilds and channels in cache
2020-07-22 04:07:18 -04:00
Ske
5d3e159f54
Properly block pinging normally unmentionable roles
2020-07-22 01:06:25 +02:00
kittens
fd0e46f40d
Add -yes flag to CheckYesNo ( #198 )
2020-07-21 02:10:26 +02:00
Ske
6054080dc7
Upgrade Sentry SDK version (2.0.0-beta7 -> 2.1.4)
2020-07-18 13:08:54 +02:00
Ske
d749876796
Workaround for permission errors when removing reactions
2020-07-18 13:07:16 +02:00
Ske
99d6942ff4
Truncate the echoed command in the not found error
2020-07-18 13:07:16 +02:00
Ske
66f7a664c8
Add special check for pronouns being an empty string
...
I'm unsure when this happens in practice, but thought I'd guard against it just in case (since it's caused a couple errors already).
2020-07-18 13:07:16 +02:00
kittens
80e6d5b18e
Fix URL handling when the filename contains multiple known extensions ( #196 )
2020-07-18 12:51:31 +02:00
Ske
e7f95c9ba6
Potential fix for concurrent list modification error
2020-07-14 22:24:13 +02:00
Ske
17826246f2
Fix fuzzy log cleaning matching all messages. Closes #195 .
...
I got the bitshift the wrong way 'round.
2020-07-10 16:47:30 +02:00
Ske
ba48f22ad2
Break proxied links if the sender doesn't have embed permission
2020-07-10 16:35:52 +02:00
Ske
a2930acbad
Add more aliases to autoproxy off
2020-07-09 15:11:04 +02:00
Ske
9f523b3c5f
Refactor system/member privacy commands
2020-07-08 00:47:16 +02:00
Ske
1449234a84
Migrate more commands to "MatchClear"
2020-07-08 00:00:23 +02:00
Ske
17fbdf553c
Allow de-embedding image links with <>
2020-07-07 23:52:54 +02:00
Ske
8d01b580e2
Refactor system/member avatar code
2020-07-07 23:41:51 +02:00
Ske
467b95b1b1
Refactor and simplify member list code
2020-07-07 20:57:22 +02:00
Ske
299f6b2edf
Extract member list argument parsing to utility method
2020-07-07 19:51:19 +02:00
Ske
36ed356d2b
(...and make sure it's the correct message)
2020-07-07 14:50:58 +02:00
Ske
b1ede87df2
(Re-)add confirmation when changing avatar by URL
2020-07-07 14:47:34 +02:00
Ske
59bbbab621
Handle cases where the channel webhook limit is already hit
2020-07-05 13:38:18 +02:00
Ske
bb7ee130a6
Fix error when proxying all-whitespace message
2020-07-05 13:26:49 +02:00
Ske
da7befa1b7
Fix token DM error
2020-07-05 13:23:23 +02:00
Ske
f03bab303c
Explicitly error if the URI schema is wrong
2020-07-05 13:19:43 +02:00
Ske
666b21a08f
Add category headers to blacklist channels
2020-07-05 13:16:21 +02:00
Ske
da9bfbb46d
Redo blacklist list fetching/rendering
2020-07-05 13:08:18 +02:00
Ske
01d25ca391
Fix compiler warning in ShowBlacklisted
2020-07-05 13:01:38 +02:00
BeeFox-sys
55ea314b42
Fix: Escape Backticks ( #192 )
2020-07-05 12:55:21 +02:00
ariel w
224b653ee0
Add command to show current proxy blacklist ( #189 )
2020-07-05 12:54:27 +02:00
Ske
42b9b4f08e
Restrict proxy conflict checking to the same system
2020-07-03 12:00:59 +02:00
Ske
98d4ee8664
Add -sd as alias for -search-description
2020-07-03 11:03:20 +02:00
Ske
c88ccea0b2
Remove June avatar (it's July now)
2020-07-02 19:11:46 +02:00
Ske
c87e67245d
Create GetXXX utils wrapping try blocks
2020-07-02 18:29:04 +02:00
Ske
7fef8c1dde
Split up Context class into more extension methods
2020-07-01 18:27:26 +02:00
Ske
53036da6a5
Move checks in Context to extension methods
2020-07-01 18:18:38 +02:00
Ske
0598c53f62
Migrate guild objects to the patch system
2020-06-29 15:20:28 +02:00
Ske
467ce78522
Retire more IDataStore methods
2020-06-29 14:54:11 +02:00
Ske
9c1efc7886
Move system updates to the same patch system as members
2020-06-29 14:39:19 +02:00
Ske
c5697b33e2
Finally retire the PKMember setters!
2020-06-29 14:15:30 +02:00
Ske
281b669391
Refactor member updates to use a patch object
2020-06-29 13:57:48 +02:00
Ske
472e556ef0
Pass proper allowed_mentions when sending webhook messages
2020-06-28 20:26:14 +02:00
Ske
9420cb56f8
Show sorted field on the long list by default
2020-06-28 18:14:59 +02:00
Ske
3207fcff1b
Fix guild ID row name in query
2020-06-26 15:07:51 +02:00
Ske
e4d51b5198
Explicitly check for bot/WH users before running command handler
2020-06-26 01:49:51 +02:00
Ske
4f6a4c000d
Fix setting server name/avatar with no row in the member_guild table
2020-06-25 22:23:15 +02:00
Ske
bb75519f6b
Properly handle unauthorized log channel access
2020-06-25 09:14:05 +02:00
Ske
50b5a8fbee
Fix changing autoproxy settings with no system_guild row
2020-06-24 17:50:12 +02:00
Ske
0ee22813fa
Don't trim inner string when matching proxy tags
2020-06-24 17:19:01 +02:00
Ske
a83e9306bb
Reimplement autoproxy escape character
2020-06-24 16:48:55 +02:00
Ske
3e297178c7
Hopefully fix user cache error in ReactionAdd
2020-06-24 16:47:34 +02:00
Ske
447b986706
Add dispname -> displayname alias
2020-06-23 09:59:39 +02:00
Fiona
5ba0dd0273
allow for matching by member display name
2020-06-22 21:06:25 +10:00
Ske
d3cf382e3b
Migrate to date/time format extension methods
2020-06-21 16:05:04 +02:00
Ske
dcffbef805
Migrate to more privacy helper extensions
2020-06-21 15:51:08 +02:00
Ske
84d5adf907
Fix build errors from DSP update
2020-06-21 15:34:32 +02:00
Ske
34f4ff4e1b
Upgrade DSharpPlus version to 4.0.0-nightly-00707
...
This fixes passing an empty mention array to SendMessageAsync, making our workaround obsolete
2020-06-21 15:11:18 +02:00
Ske
378c49cb20
Remove 60+ (whew) SanitizeMentions() calls
2020-06-20 17:36:03 +02:00
Ske
2c35649ef0
Use AllowedMentions to disable mentions everywhere by default
2020-06-20 17:33:10 +02:00
Ske
ff7b728762
Merge branch 'feature/granular-privacy'
2020-06-20 16:25:08 +02:00
Ske
368320abf4
Add warning when setting avatar privacy with no server avatar
2020-06-20 16:10:36 +02:00
Ske
c428d95479
Fix auth checking when looking up member avatar
2020-06-20 16:10:22 +02:00
Ske
ae4e8f97d0
Add member avatar privacy
2020-06-20 16:00:50 +02:00
acw0
11848bc19f
Add support for Auttaja webhook message logs
2020-06-19 13:00:04 -04:00
Ske
8df42f7d92
Ignore bot reactions
2020-06-18 17:49:43 +02:00
Astrid
68eeb858ec
Merge pull request #184 from acw0/feature/gearbot
...
Add GearBot to log cleanup
2020-06-18 17:43:24 +02:00
Ske
5075565d2f
Default to UTC given no system in member lists
2020-06-18 17:41:14 +02:00
Ske
7e8e1f1b8c
Don't try paginating with empty results
2020-06-18 17:40:51 +02:00
Ske
27c8100cac
Get rid of switch exhaustiveness compiler warning
2020-06-18 17:34:03 +02:00
Ske
dd9cc3ef0c
Respect description privacy when searching members
2020-06-18 17:33:37 +02:00
Ske
56eae82b0a
Move most references to PKMember.Name to go through helper extepsions for privacy
2020-06-18 17:08:36 +02:00
acw0
8559f1f532
Add GearBot to log cleanup
2020-06-17 20:46:03 -04:00
Ske
761270f0c3
Clean up member privacy command
2020-06-17 23:06:49 +02:00
Ske
e92700f339
Comment out color privacy stuff for now (revisit later?)
2020-06-17 21:51:40 +02:00
BeeFox-sys
721a4502bb
Feature/granular member privacy ( #174 )
...
* Some reasons this needs to exist for it to run on my machine? I don't think it would hurt to have it in other machines so
* Add options to member model
* Add Privacy to member embed
* Added member privacy display list
* Update database settings
* apparetnly this is nolonger needed?
* Fix sql call
* Fix more sql errors
* Added in settings control
* Add all subject to system privacy
* Basic API Privacy
* Name privacy in logs
* update todo
* remove CheckReadMemberPermission
* Added name privacy to log embed
* update todo
* Update todo
* Update api to handle privacy
* update todo
* Update systemlist full to respect privacy (as well as system list)
* include colour as option for member privacy subject
* move todo file (why was it there?)
* Update TODO.md
* Update TODO.md
* Update TODO.md
* Deleted to create pr
* Update command usage and add to the command tree
* Make api respect created privacy
* Add editing privacy through the api
* Fix pronoun privacy field in api
* Fix info leak of display name in api
* deprecate privacy field in api
* Deprecate privacy diffrently
* Update API
* Update documentation
* Update documentation
* Remove comment in yml
* Update userguide
* Update migration (fix typo in 5.sql too)
* Sanatize names
* some full stops
* Fix after merge
* update migration
* update schema version
* update edit command
* update privacy filter
* fix a dumb mistake
* clarify on what name privacy does
* make it easier on someone else
* Update docs
* Comment out unused code
* Add aliases for `member privacy all public` and `member privacy all private`
2020-06-17 21:31:39 +02:00
Ske
627f544ee8
Migrate API to ASP.NET Core Auth services + refactor
2020-06-16 01:15:59 +02:00
Ske
7fde54050a
Avoid a blank overflow page when showing paginated cards ( closes #171 )
2020-06-15 13:00:28 +02:00
Ske
5280e48b09
Properly check ShowProxyTags when printing proxy tags
2020-06-15 12:55:02 +02:00
Ske
088bc15e5e
Upgrade Autofac dependency
2020-06-15 00:52:20 +02:00
Ske
ca882dba73
Add more performance metrics
2020-06-14 22:19:12 +02:00
Ske
b9cbd241de
Migrate to type-safe model ID structs
2020-06-14 21:37:04 +02:00
Ske
e5ac5edc35
Refactor and categorize tests
2020-06-14 20:22:29 +02:00
Ske
0f041c2e3c
Add unit test project and some early tests
2020-06-14 18:56:53 +02:00
Ske
2d43c17f9e
Add pk;member list
as alias for pk;system list
2020-06-14 18:56:35 +02:00
Ske
c780781184
Remove unused imports
2020-06-13 23:12:44 +02:00
Ske
2702c45b4f
General bits of cleanup
2020-06-13 22:20:24 +02:00
Ske
4b69ef806a
Properly support KeepProxy after refactor
2020-06-13 22:16:04 +02:00
Ske
6d06474d26
Refactor sort/filter code once again
...
Now we handle sorting on the bot side, but still filter in the database
2020-06-13 21:49:31 +02:00
Ske
0bb8d2b917
Add own member checks back to the avatar mutators
2020-06-13 20:23:06 +02:00
Ske
f1b28b7fb6
Move schema migration stuff to Database
2020-06-13 19:54:16 +02:00
Ske
c927967c3b
Migrate GetSystemById
2020-06-13 19:42:04 +02:00
Ske
90ac186183
Extract Database to interface
2020-06-13 19:36:43 +02:00
Ske
1c2ebdc658
Fix proxy blacklist command
2020-06-13 19:19:13 +02:00
Ske
c875c8af9f
Various small fixes, setting guild config now works
2020-06-13 19:15:50 +02:00
Ske
2038f023a0
Move count stat collecting to raw SQL
2020-06-13 19:15:29 +02:00
Ske
e176ccbab5
Several more database-y refactors
...
- DbConnectionFactory renamed to "Database", will now be the primary entry point for DB stuff
- Created IPKConnection interface mostly containing async extensions to IDbConnection, use this going forward
- Reworked the Connection/Command wrappers (that have performance/logging extensions)
- Probably more stuff that I forgot???
2020-06-13 18:31:20 +02:00
Ske
a915ddb41c
Extract system/member guild settings and refactor DB access
...
(also refactor MemberAvatar now that I'm here)
2020-06-13 16:03:57 +02:00
Ske
ed511a6236
Refactor server config models/commands
2020-06-13 13:58:27 +02:00
Ske
729930a562
Move system tag/icon from ProxyMember to MessageContent
2020-06-12 23:30:10 +02:00
Ske
3d62a0d33c
Split message/proxy data up in MessageContext and ProxyMember
2020-06-12 23:13:21 +02:00
Ske
ba441a15cc
Too many refactors in one:
...
- Allowed adding ephemeral(ish) views and functions
- Moved message_count to a concrete database field
- Moved most proxy logic to a stored procedure
- Moved database files around and refactored schema manager
2020-06-12 20:29:50 +02:00
Ske
49acc4d9e2
Refactor proxy handling code
...
- Move reaction handlers to the ReactionAdded event instead of
ProxyService
- Split tag matching off into ProxyTagParser
- Split autoproxy matching off into Autoproxier
- General cleanup and simplification
2020-06-11 23:22:53 +02:00
Astrid
4a4d980349
Merge pull request #177 from acw0/bugfix/tag-markdown
...
Properly show tags containing markdown in system embed
2020-06-11 21:35:28 +02:00
Ske
67e55736f0
Still remove the reaction even if pings are disabled
2020-06-11 21:33:44 +02:00
Ske
ccb6ba5d30
Minor renames and rewordings
2020-06-11 21:32:04 +02:00
Lillian Berry
59af6f02e8
Add disabling reaction pings
2020-06-11 21:19:40 +02:00
Astrid
216dfffe58
Merge pull request #181 from acw0/fix-emojis
...
Fix emoji variation selector issue
2020-06-11 21:13:07 +02:00
ariel w
82886fe9e2
Move discord links to new domain ( #180 )
2020-06-11 21:12:43 +02:00
Ske
3d69a00716
Fixed exceptions when fetching webhook list "sticking" in the cache
...
This happened because we cache Task instances, not the values, and a failed task is still a *valid* task that can repeatedly be awaited. This lead to the Task being saved even if it failed, and the same exception constantly being re-thrown.
This fix invalidates the cache if it finds a failed Task, and lets it retry fetching as normal (hopefully successfully this time).
2020-06-11 16:13:18 +02:00
Ske
e7191def02
Split long short-list results up into embed fields
2020-06-07 19:52:05 +02:00
Ske
c537dc7de3
Fix quotes in collate clause
2020-06-07 19:49:43 +02:00
Ske
1db46accce
Potentially fix sort order with emojis
2020-06-07 19:31:41 +02:00
Ske
e347928c02
Merge branch 'feature/sort-filter'
2020-06-07 16:36:42 +02:00
Ske
1ac5f9518e
Mostly finished, needs to be double-checked/documented
2020-06-07 01:30:19 +02:00
acw0
5714c18668
Fix emoji variation selector issue
2020-06-05 18:34:24 -04:00
Ske
e8068cc1a9
Add avatar credit for June
2020-06-04 16:24:30 +02:00
Ske
7c85dc360b
Barebones, untested sort/filtering
2020-06-04 13:21:47 +02:00
Ske
d5c6e2baac
Don't post an error after clearing avatar
2020-06-02 02:02:07 +02:00
Ske
ae74dce2ce
Make sure we only attach shard listeners once
2020-05-31 03:19:42 +02:00
Ske
fbbbb51998
Upgrade DSharpPlus version
2020-05-23 01:59:27 +02:00
Ske
d657e9813d
Properly handle executing missing webhooks
2020-05-23 01:51:02 +02:00
acw0
f55c638f41
Properly show tags containing markdown in system embed
2020-05-15 07:32:28 -04:00
Ske
792acad50a
Don't try to parse webhook error if error isn't JSON
2020-05-12 22:19:49 +02:00
Ske
dee229b08c
Ignore weird Nginx errors from Discord
2020-05-12 22:19:33 +02:00
Ske
b9a89a1037
Fix handling lack of DM permissions when react-querying
2020-05-12 21:31:59 +02:00
Ske
8ea02dae81
Add more error reporting for Discord errors
2020-05-12 21:26:37 +02:00
Ske
60018bf69d
Don't send ping message if bot doesn't have permissions
2020-05-12 21:26:37 +02:00
Ske
65bac86ac1
Only update status if we've received a Ready
2020-05-12 21:26:37 +02:00
Ske
a3517f8663
Refactor order of shard initialization
2020-05-12 21:26:37 +02:00
Fennel
8467f4f681
Add workaround for DSP internal member cache error
2020-05-10 18:44:59 -04:00
Ske
9a761ed7e4
Add display name to long member list
2020-05-08 02:03:31 +02:00
Ske
fd65846867
Extract the explanation from the help message into a separate command
2020-05-08 02:01:57 +02:00
Ske
cb8234b272
Restructure message info embed queries
...
This fixes several long-standing issues wrt. handling of senders that are no longer on the server and deleted accounts, as well as an error handling issue caused by the DSharpPlus migration.
2020-05-08 00:57:17 +02:00
Ske
53582997f0
Ignore CloudFlare error response parsing errors
2020-05-07 23:59:05 +02:00
Ske
e9a271ef60
Skip leading spaces when command parsing
2020-05-07 23:43:17 +02:00
Ske
668d249872
Add support for more smart quote types
2020-05-07 23:43:07 +02:00
Ske
356fb76cb2
Drop consecutive duplicate messages from the gateway
2020-05-06 23:48:45 +02:00
Ske
cde495cd3a
Add another delay to double-super-ensure the log buffers are flushed
2020-05-06 23:43:37 +02:00
Ske
892601110f
Temporary workaround for https://github.com/DSharpPlus/DSharpPlus/issues/565
2020-05-05 19:10:33 +02:00
Ske
c1d17c2944
Fix member avatar in log channel message
2020-05-05 19:05:52 +02:00
Ske
ffa6faddd2
Clean up some log levels in CpuStatService
2020-05-05 18:12:45 +02:00
Ske
0b41b4f6b8
Add graceful shutdown on SIGKILL/SIGINT
2020-05-05 18:12:34 +02:00
Ske
a052c8331c
Properly pass exceptions to Sentry
2020-05-05 16:42:14 +02:00
Ske
f803b9a392
Add a character limit to avatar URLs (256 for now)
2020-05-05 16:04:17 +02:00
Ske
2579683da9
Refactor interactive event handlers
2020-05-05 16:03:46 +02:00
Ske
e298f6f652
Add support for SafetyAtLast bot
2020-05-02 20:42:42 +02:00
Ske
ee9c87a29f
Refactor permission utils to properly account for lack of channel access
2020-05-02 16:25:17 +02:00
Ske
f97ceac1fb
Refactor Sentry scope enrichment
2020-05-02 16:00:43 +02:00
Ske
f927450352
Report bot permissions to Sentry
2020-05-02 15:45:45 +02:00
Ske
3fd89c1a45
Refactor TryParseMention function to use regexes
2020-05-02 15:43:07 +02:00
Ske
cad5b71f14
Fix system lookup errors where user ID doesn't exist
2020-05-02 15:33:05 +02:00
Ske
720755844f
Rename BotHasPermission to a more descriptive name
2020-05-02 15:29:36 +02:00
Ske
ca57d10f7c
Change formatting of shard number in status
2020-05-02 14:25:28 +02:00
Astrid
c551533313
Merge pull request #167 from acw0/master
...
Add current shard ID in status message
2020-05-02 14:22:03 +02:00
Ske
999ea5f0b5
Refactor and simplify the main bot classes
2020-05-02 01:52:52 +02:00
Ske
7488ca459b
Hopefully fix shard info tracking (again)
2020-05-01 20:27:51 +02:00
acw0
08077f6426
Add current shard ID in status message
2020-05-01 14:17:30 -04:00
Ske
91b60367f0
Hopefully fix error in LogClean module
2020-05-01 19:41:15 +02:00
Ske
e7b28261b2
"Properly" handle CloudFlare errors in webhook execution
2020-05-01 19:21:02 +02:00
Ske
b927d0c2b7
Remove a few unnecessary extensions
2020-05-01 17:38:16 +02:00
Ske
48833639e2
Update shard status tracker for new library
2020-05-01 17:30:12 +02:00
Ske
d0f1aeb548
Fix member lookup in SanitizeEveryoneMaybe
2020-05-01 17:03:43 +02:00
Ske
e133bd657d
Remove log channels if they don't exist
2020-05-01 16:36:21 +02:00
Ske
7e43b75f97
Fix errors on eg. incoming link embed update events
2020-05-01 15:41:37 +02:00
Ske
e4ebd2a5fe
Merge branch 'refactor/dsharpplus'
...
It's heeeeeeeere~
2020-05-01 15:21:55 +02:00
Ske
546cb7f97a
Remove webhook rate limit cache
...
The move to DSharpPlus makes it unnecessary, as D#+ can actually do webhook invocations on its own.
2020-05-01 00:00:33 +02:00
Ske
042327d4aa
Add online user counting back (ish)
2020-04-30 23:55:12 +02:00
Ske
697a24c4fa
Remove unused assignment
2020-04-29 02:35:46 +02:00
Ske
12aef1f61d
Refactor periodic event loop
2020-04-29 01:14:49 +02:00
Ske
9fa36b78ff
Fix the garish default D#+ colors
2020-04-29 00:25:01 +02:00
Ske
86b6a90b1c
Add proper credit to MentionUtils
2020-04-29 00:06:40 +02:00