aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeLines
...
| | | | | * | | Address typehint issues and IDE complaintsGravatar mbaruh2023-03-26-5/+5
| | | | | | | |
| | | | | * | | List input fixesGravatar mbaruh2023-03-26-2/+4
| | | | | | | |
| | | | | * | | Rename additional_field to additional_settingsGravatar mbaruh2023-03-26-6/+8
| | | | | | | |
| | | | | * | | Add support for snekbox IO in the new filtering systemGravatar mbaruh2023-03-23-116/+134
| | | | | | | |
| | | | | * | | Fix filtering testsGravatar mbaruh2023-03-23-6/+6
| | | | | | | |
| | | | | * | | Merge branch 'main' into new-filtersGravatar mbaruh2023-03-21-2607/+3219
| | | | | |\ \ \
| | | | | * | | | More type hint parameterizingGravatar mbaruh2023-03-04-2/+2
| | | | | | | | |
| | | | | * | | | Remove empty READMEGravatar mbaruh2023-03-04-0/+0
| | | | | | | | |
| | | | | * | | | Merge branch 'main' into new-filtersGravatar mbaruh2023-02-28-2815/+2417
| | | | | |\ \ \ \
| | | | | * | | | | Fix antispam alertingGravatar mbaruh2023-02-28-13/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Only upload deletion logs when there's actually deletion. - Don't upload deletion logs when an antispam event begins (could happen when another filter demanded an alert to be sent), but instead delay it until the antispam alert. Otherwise the antispam alert would cause an error because it would try to upload duplicate messages. - Correctly include any messages and channels added to the antispam event after the initial deletion.
| | | | | * | | | | Copy message from other infraction if result doesn't have one.Gravatar mbaruh2023-02-28-5/+19
| | | | | | | | | |
| | | | | * | | | | Don't allow adding filter lists with no implementationGravatar mbaruh2023-02-28-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Filter lists with no implemenation are not loaded, therefore if one is added with no implementation there is then no way to interact with it. Instead of accounting for that case it makes more sense to require an implemenation first.
| | | | | * | | | | Re-add webhook and discord token check in other cogsGravatar mbaruh2023-02-28-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Co-authored-by: wookie184 <[email protected]>
| | | | | * | | | | Correct type hintGravatar mbaruh2023-02-28-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Co-authored-by: wookie184 <[email protected]>
| | | | | * | | | | Deprecated `warn` -> `warning`Gravatar mbaruh2023-02-28-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Co-authored-by: wookie184 <[email protected]>
| | | | | * | | | | Fix Infraction checkGravatar mbaruh2023-02-28-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Co-authored-by: decorator-factory <[email protected]>
| | | | | * | | | | Use literals as defaults where possibleGravatar mbaruh2023-02-28-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Co-authored-by: wookie184 <[email protected]>
| | | | | * | | | | Properly parameterize type hints in filter contextGravatar mbaruh2023-02-28-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Co-authored-by: decorator-factory <[email protected]>
| | | | | * | | | | `__or__` -> `union` + `Self` type-hint in action settingsGravatar mbaruh2023-02-28-24/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Keeps the type hint accurate in the subclasses, and avoids having type guards for each implementation. Co-authored-by: decorator-factory <[email protected]> Co-authored-by: Ionite <[email protected]>
| | | | | * | | | | Explicitly handle embed being too longGravatar mbaruh2023-02-27-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Co-authored-by: Ionite <[email protected]>
| | | | | * | | | | Use public typing API for `starting_value`Gravatar mbaruh2023-02-27-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Co-authored-by: Ionite <[email protected]>
| | | | | * | | | | Simplify `Settings.copy`Gravatar mbaruh2023-02-27-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Co-authored-by: Ionite <[email protected]>
| | | | | * | | | | Create a guide for developing the filtering extGravatar mbaruh2023-01-28-0/+63
| | | | | | | | | |
| | | | | * | | | | Handle response message being a listGravatar mbaruh2023-01-28-5/+9
| | | | | | | | | |
| | | | | * | | | | Include filterlist information when patching filtersGravatar mbaruh2023-01-27-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The information is necessary for the serializer validaiton.
| | | | | * | | | | Fix display of sequence setting with non-string elementsGravatar mbaruh2023-01-27-1/+1
| | | | | | | | | |
| | | | | * | | | | Post descriptive embed on unexpected errorGravatar mbaruh2023-01-27-0/+2
| | | | | | | | | |
| | | | | * | | | | Bring back old system testsGravatar mbaruh2023-01-22-11/+484
| | | | | | | | | |
| | | | | * | | | | Improve loggingGravatar mbaruh2023-01-21-2/+13
| | | | | | | | | |
| | | | | * | | | | Change CODEOWNERSGravatar mbaruh2023-01-20-5/+1
| | | | | | | | | |
| | | | | * | | | | Bring back stats counting for triggered filtersGravatar mbaruh2023-01-20-2/+13
| | | | | | | | | |
| | | | | * | | | | Render list elements without quotesGravatar mbaruh2023-01-20-6/+11
| | | | | | | | | |
| | | | | * | | | | Show infraction name in passive form in alertGravatar mbaruh2023-01-20-1/+12
| | | | | | | | | |
| | | | | * | | | | fix: Correctly handle author being a UserGravatar mbaruh2022-11-28-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If an offending message is sent in DMs, infractions that require the user being on the server didn't work, and there was an error while trying to display the user embed from that object, since the user is on the server (and therefore should have a nick attribute).
| | | | | * | | | | fix: Remove hash prefix from filter IDsGravatar mbaruh2022-11-28-4/+4
| | | | | | | | | |
| | | | | * | | | | fix setting nameGravatar mbaruh2022-11-28-1/+1
| | | | | | | | | |
| | | | | * | | | | fix: Use existing filters webhook if foundGravatar mbaruh2022-11-27-6/+16
| | | | | | | | | |
| | | | | * | | | | fix: Handle uncached messages in filter editingGravatar mbaruh2022-11-27-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This also increases the cache size to increase the chances of ignoring filters. Since it's newest first and the antispam uses take_while, it doesn't slow down the antispam.
| | | | | * | | | | fix: Validate filter list before initiating filter addGravatar mbaruh2022-11-27-2/+7
| | | | | | | | | |
| | | | | * | | | | Add alert viewGravatar mbaruh2022-11-27-18/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The view provides info about the offending user. This change required changing the cog to generate a fresh webhook on startup so that it's authenticated to the bot. Only webhooks authenticated to the bot can send message components. In the future, this view might be used for more advanced usages such as having a button to pardon the user.
| | | | | * | | | | Phishing filter add commandGravatar mbaruh2022-11-26-2/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A shortcut command to autoban a compromised account if it posts a given content.
| | | | | * | | | | Bring back snekbox result filteringGravatar mbaruh2022-11-26-2/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the new system, some custom actions might be applied if any filters are triggered, for example message deletion or infraction. Those actions will be applied in the context of the command invocation.
| | | | | * | | | | Add offending message deletion schedulingGravatar mbaruh2022-11-25-5/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is mostly a copy-paste from the old system. If there are any actions taken against the message, but deleting is not one of them - schedule the message for deletion after 7 days.
| | | | | * | | | | Add nickname filterGravatar mbaruh2022-11-25-60/+176
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The nickname filter works in much the same way as the one in the old system, with the following changes: - The lock is per user, rather than a global lock. - The alert cooldown is one hour, instead of three days which seemed too much. The delete_messages setting was changed to the more generic remove_context. If it's a nickname event, the context will be removed by applying a superstar infraction to the user. In order to allow filtering nicknames in voice state events, the filter context can now have None in the channel field. Additionally: - Fixes a bug when ignoring filters in message edits. - Makes the invites list keep track of message edits. - The FakeContext class is moved to utils since it's now also needed by remove_context.
| | | | | * | | | | Add message edit filteringGravatar mbaruh2022-11-05-28/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This edit handler takes into account filters already triggered for the message and ignores them (as long as it's a denied type) To that end the message cache can now hold metadata to accompany each message in the cache.
| | | | | * | | | | Handle threads in channel_scopeGravatar mbaruh2022-11-05-0/+2
| | | | | | | | | |
| | | | | * | | | | Bring back auto-infraction reportingGravatar mbaruh2022-11-05-5/+122
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - When a filter is set to infract, it will send a message in #filter-log (See PR #1893) - Once a week the cog will send a message of all auto-infractions sent in the last 7 days, with a way to trigger it manually (See PR #2267)
| | | | | * | | | | Edit description on filter add/edit, bug fixesGravatar mbaruh2022-11-04-29/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `process_content` was changed to `process_input` to also edit the description when necessary. Fixes unhandled filter_type being None on filter add/edit. Moves the missing filter type warning to a more appropriate location to not trigger during filter add/edit.
| | | | | * | | | | Filter match now shows all triggers instead of messagesGravatar mbaruh2022-11-04-41/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The purpose of this command is to be able to find any relevant filters. It was not possible to find whitelist filters in the previous method, as there are no alerts for whitelist triggers. Instead, each filterlist now additionally returns what filters were triggered while processing the context. Additionally, a `no_user` argument was added to `filter match` to allow checking for triggers on one's own messages (otherwise there's almost no filtering on a mod's messages).
| | | | | * | | | | Stop using None as a valid setting valueGravatar mbaruh2022-11-04-36/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A None value signifies that there's no override, and it shouldn't be used for anything else. Doing so is confusing and bug-prone.