Commit Graph

381 Commits

Author SHA1 Message Date
spiral
dcc15dc847
Move mediaproxy URL rewriting to ProxyService
This shows full size avatars in API / cards.

Also, rewrite URLs currently stored with media.discordapp.net "back" to
cdn.discordapp.com before sending them to users.
2021-08-01 12:51:54 -04:00
spiral
2bb8c084c9
add missing ) in debug string 2021-08-01 12:32:40 -04:00
spiral
a8727f474b
Allow any linked account to edit/delete messages sent by the same system
Closes #375.
2021-07-27 11:39:37 -04:00
spiral
620fb5be36
Add Vortex log cleanup 2021-07-24 12:02:06 -04:00
Starshine System
74140b5994
Message info embed improvements (#374)
- Fetch the user if there's no member object, so users who left the server don't show up as deleted
- Order roles by position (so potential staff roles show up first and aren't cut off)
2021-07-19 01:02:27 -04:00
Ske
1f2b9f998d Preliminary support for APIv9 and threads 2021-07-15 12:41:19 +02:00
spiral
e620e30c10
Fix channel checks missing GuildNews
The log channel / logclean checks are left as-is; hopefully nobody is
using an announcements channel for their logs?
2021-07-08 09:17:35 -04:00
spiral
c727a71161
Add "flat" front history view (percentages add up to 100%) 2021-06-21 11:30:38 -04:00
spiral
bc32943824
fix timespan when removing no-fronters 2021-06-21 10:52:06 -04:00
Ske
ae82bb4168 Updates to Elastic logging 2021-06-10 14:21:05 +02:00
Ske
ae9ed0f4ee Store stard status in the database 2021-06-10 12:52:47 +02:00
Ske
41f1c58a9f Merge branch 'new-shard-handler' 2021-06-08 10:20:59 +02:00
Ske
118f2d49a6 WIP new shard implementation 2021-06-08 10:19:54 +02:00
Ske
4bd2d06b0b Add basic interactivity framework 2021-05-30 16:45:45 +02:00
Ske
d7c0592947 Add preliminary support for buttons 2021-05-26 22:27:52 +02:00
spiral
1f0c75d677
Add logging message edits 2021-05-07 17:35:09 +01:00
Spectralitree
b1c7fbd2df
Add color to frontpercent embed (#307)
* Add color to frontpercent embed

* don't pass color as a separate argument

Co-authored-by: Astrid <mail+github@astr.cc>
2021-05-07 10:40:57 +02:00
Ske
3d624b39e4 Add message editing command
Signed-off-by: Ske <voltasalt@gmail.com>
2021-05-03 12:33:30 +02:00
Ske
aa2a234f8d Fix permission error on message edit handler
Signed-off-by: Ske <voltasalt@gmail.com>
2021-05-03 10:29:22 +02:00
spiral
dfa25b77c7
Add flag to remove 'no fronter' item on frontpercent card 2021-04-22 01:18:41 +01:00
Ske
a2d2036851 Fix nullability for embeds
Signed-off-by: Ske <voltasalt@gmail.com>
2021-04-13 04:11:53 +02:00
Spectralitree
7010becd32 Add group front percentages (fixing Git history)
Signed-off-by: Ske <voltasalt@gmail.com>
2021-04-06 12:58:50 +02:00
Spectralitree
c764f922ec Add color field to embeds 2021-03-28 19:22:45 +02:00
Spectralitree
8da5c94b1c even more branch fixing 2021-03-28 12:22:19 +02:00
Spectralitree
1e876ce283 more branch fixing 2021-03-28 12:20:01 +02:00
Spectralitree
3603d52e9e Add group and system colors 2021-03-28 12:02:41 +02:00
Spectralitree
1b791fd7f9 Merge branch 'main' of https://github.com/Spectralitree/PluralKit into main 2021-03-27 23:41:24 +01:00
spiral
66e483be6f
Fix NullReferenceError when HasValue is true but Value is null 2021-03-25 18:02:44 +00:00
spiral
0acadee803
don't cache the full message 2021-03-22 07:17:10 +00:00
spiral
a7189fab8c
Fix handling replies in edited messages 2021-03-22 07:07:33 +00:00
Ske
4ee0c13d62 Fix error on @ everyone 2021-03-18 11:34:35 +01:00
Spectralitree
9d80b7b141 Add group front percentages
Also add a title to the system frontpercent embed, and tweak the footer
2021-02-09 23:36:43 +01:00
Ske
557ec4234e Fix fetching messages we can't access 2021-01-31 17:56:33 +01:00
Ske
80c572f594 Fix various bugs and regressions 2021-01-31 16:02:34 +01:00
Ske
b48a77df8d Convert periodic stat collector 2021-01-31 14:59:45 +01:00
Ske
d56e878c28 Converted shard and logclean service 2021-01-30 01:07:43 +01:00
Ske
da9d84a197 Get rid of more D#+ references 2021-01-15 11:29:43 +01:00
Ske
9079f1c59c Port the DM stuff 2020-12-25 13:58:45 +01:00
Ske
f6fb8204bb Add embed builder, some more ported classes 2020-12-23 02:19:02 +01:00
Ske
05334f0d25 Converted enough to send the system card 2020-12-22 16:55:13 +01:00
Ske
a6fbd869be Initial commit, basic proxying working 2020-12-22 13:15:26 +01:00
Ske
df243d4220 Add info embed to proxied replies 2020-12-20 11:38:26 +01:00
Astrid
07cd753247
Merge pull request #255 from dev-kittens/feat/group-random
Add random command for groups
2020-12-08 12:20:45 +01:00
spiral
51278532d1
Add support for GiselleBot log cleanup 2020-11-24 00:02:36 -05:00
spiral
45b87bd132
Move group card embed to EmbedService 2020-11-22 11:57:54 -05:00
Ske
e24b5e3529 Add logging/metrics for error *messages* 2020-11-16 10:07:57 +01:00
Ske
c0c4871f0b Fix cache error using log channel 2020-11-15 15:07:20 +01:00
Ske
27c9e54f17 Delete proxied message if the trigger message gets deleted by other means 2020-11-15 14:34:49 +01:00
Ske
634173e205 Update to D#+ 4.0.0-rc1 2020-11-15 13:53:31 +01:00
Astrid
d844f41059
Merge pull request #244 from dev-kittens/patch-2
[accessibility] add newline between linked accounts in system card
2020-11-15 13:13:23 +01:00
Ske
ce25a56d7a Support multiple 'Clyde's in a webhook name 2020-11-15 13:12:30 +01:00
Ske
537783dd96 Fix permission check for log channels 2020-11-08 18:52:50 +01:00
spiral
ac679271f2
add newline between linked accounts in system card 2020-11-08 02:00:06 +01:00
Ske
108dbb9cc6 Actually set the proper command message retention >.> 2020-10-23 12:20:53 +02:00
Ske
b6dbc82abe Clean up imports 2020-10-23 12:20:44 +02:00
Ske
81cd5496d5 Refactor command message deletion 2020-10-23 12:18:28 +02:00
Ske
1e8470e77f Potential quick fix for... something 2020-09-25 23:28:06 +02:00
Ske
4f6c98db48 (Add the actual service file, shh) 2020-09-20 22:36:04 +02:00
kittens
42b70cde9a
Add -all flag on system and group cards (#216)
* Show group count on stats card

* Add -all flag on system and group cards
Shows full count, including private members.

* fix stuff broken by merging conflicts
2020-09-13 00:10:37 +02:00
Ske
7b59040da2 Truncate roles list if it gets too long 2020-09-12 19:30:03 +02:00
Ske
47bdc34142 Optimize DB access for LogClean 2020-09-09 22:20:52 +02:00
Ske
a1da3e1386 Sort groups on the member card alphabetically 2020-08-30 17:03:28 +02:00
Ske
c7612df37e Major database refactor (again) 2020-08-29 13:46:27 +02:00
Ske
9955dc29f9 Add Elastic-bound logging of (almost) all database update events 2020-08-27 21:28:36 +02:00
Ske
203dbc65a1 Replace most "code-escaped" literals with properly-escaping helpers 2020-08-25 22:44:52 +02:00
Ske
10d6968734 Add metrics for group count 2020-08-25 18:26:52 +02:00
Ske
8688f4d0bf Merge branch 'main' into feature/groups 2020-08-21 18:31:49 +02:00
Ske
1bb5d203df Various additional tweaks/additions to groups 2020-08-20 21:43:17 +02:00
Ske
9e251352c7 Various fixes and improvements 2020-08-16 12:10:54 +02:00
Ske
bed43379cf Add additional (debug) logging to (proxy) logger 2020-08-12 21:52:42 +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
Ske
5e28e0aba1 Add group privacy command/structures 2020-07-28 19:17:01 +02:00
Ske
f47d366c8d Show member groups on member card 2020-07-28 19:17:01 +02:00
acw0
88c28c18c7 Fix pk;msg erroring between shards 2020-07-22 04:07:35 -04:00
Ske
5d3e159f54 Properly block pinging normally unmentionable roles 2020-07-22 01:06:25 +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
Ske
59bbbab621 Handle cases where the channel webhook limit is already hit 2020-07-05 13:38:18 +02:00
BeeFox-sys
55ea314b42
Fix: Escape Backticks (#192) 2020-07-05 12:55:21 +02:00
Ske
c87e67245d Create GetXXX utils wrapping try blocks 2020-07-02 18:29:04 +02:00
Ske
467ce78522 Retire more IDataStore methods 2020-06-29 14:54:11 +02:00
Ske
472e556ef0 Pass proper allowed_mentions when sending webhook messages 2020-06-28 20:26:14 +02:00
Ske
3207fcff1b Fix guild ID row name in query 2020-06-26 15:07:51 +02:00
Ske
bb75519f6b Properly handle unauthorized log channel access 2020-06-25 09:14:05 +02: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
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
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
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
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
ca882dba73 Add more performance metrics 2020-06-14 22:19:12 +02:00
Ske
c780781184 Remove unused imports 2020-06-13 23:12:44 +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
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
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
acw0
5714c18668 Fix emoji variation selector issue 2020-06-05 18:34:24 -04:00
Ske
ae74dce2ce Make sure we only attach shard listeners once 2020-05-31 03:19:42 +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
b9a89a1037 Fix handling lack of DM permissions when react-querying 2020-05-12 21:31:59 +02:00
Ske
60018bf69d Don't send ping message if bot doesn't have permissions 2020-05-12 21:26:37 +02:00
Ske
a3517f8663 Refactor order of shard initialization 2020-05-12 21:26:37 +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
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
e298f6f652 Add support for SafetyAtLast bot 2020-05-02 20:42:42 +02:00
Ske
720755844f Rename BotHasPermission to a more descriptive name 2020-05-02 15:29:36 +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
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
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
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
9fa36b78ff Fix the garish default D#+ colors 2020-04-29 00:25:01 +02:00
Ske
35e30f481b Fix error in stats collection task 2020-04-29 00:04:53 +02:00
Fennel
ebaded4bbd Fix Proxied Messages Ignored 2020-04-28 22:30:11 +02:00
Ske
5386f24b69 Fix permissions check when proxying 2020-04-22 09:27:55 +02:00
Ske
23cf06df4c Port some things, still does not compile 2020-04-17 23:10:01 +02:00
Ske
02e2c9314b Update webhook rate limit code 2020-04-16 22:30:13 +02:00
Ske
05595329b5 Collect metrics about webhook rate limit cache size 2020-04-16 18:20:53 +02:00
Ske
93bf7c6543 Add periodic garbage collection of webhook rate limit cache 2020-04-16 18:18:08 +02:00
Ske
fa70df8f98 Add proper webhook rate limit support 2020-03-27 00:01:42 +01:00
Ske
20789411f6 Cancel early when rate limited 2020-03-08 11:06:08 +01:00
Ske
f8d0fb2f4b Properly ignore invalid server-side data when executing webhooks 2020-03-08 10:55:47 +01:00
Ske
35b0659d05 Don't ping by reaction if sender doesn't have permissions 2020-03-04 18:39:51 +01:00
Ske
e49f2850c6 Add support for Vanessa log cleaning 2020-03-04 18:32:14 +01:00
Ske
ee3ac44664 Properly handle 5xx errors from webhook calls 2020-02-26 19:47:30 +01:00