Skip to content
This repository has been archived by the owner on Jan 4, 2023. It is now read-only.

Spamfilters: configurable "bad messages" and mass highlight prevention #359

Closed
Ryan-Goldstein opened this issue Nov 7, 2016 · 2 comments
Labels
type: feature feature requests & PRs of new features type: new plugin for features that belong as a new plugin
Milestone

Comments

@Ryan-Goldstein
Copy link

Ryan-Goldstein commented Nov 7, 2016

There is no apparent way to preventatively block spam in relayed channels, short of delinking the channel.

As an example, on a PyLink with networks A, B, and C, network A has a spamfilter set to block "spamspamspam" from being sent (via https://www.unrealircd.org/docs/Spamfilter) to a channel that it owns. A user on network C joins the channel and sends "spamspamspam", and it's transmitted and shown to all users in that channel on all networks, even circumventing the spamfilter (with both shun and block actions) on network A.

Would it be possible for PyLink to either parse and enforce the spamfilters on the linked networks respectively (e.g. by blocking matching messages from being sent to channels/users on the network on which they were set), or maybe add a 'badwords' or similar setting to PyLink to allow the network staff to specify words/phrases that should not be transmitted from a relay network to channels and/or users on the local network, such as: https://www.unrealircd.org/docs/Badword_block

Thanks!

edit 2018-04-07 by @glolol: see #359 (comment) for a proposed fix

@jameswritescode
Copy link
Contributor

It'd be pretty slick if PyLink could both support the spamfilter for the IRCd as well as it's own spamfilter system.

@Ryan-Goldstein Ryan-Goldstein added type: feature feature requests & PRs of new features protocol: inspircd protocols: unreal involves: protocol spec involves changing the protocol spec plugin: relay involves the relay plugin and removed type: feature feature requests & PRs of new features involves: protocol spec involves changing the protocol spec protocol: inspircd protocols: unreal labels Nov 7, 2016
@jlu5 jlu5 added type: feature feature requests & PRs of new features protocol: inspircd plugin: relay involves the relay plugin protocols: unreal involves: protocol spec involves changing the protocol spec and removed type: feature feature requests & PRs of new features involves: protocol spec involves changing the protocol spec protocol: inspircd protocols: unreal plugin: relay involves the relay plugin labels Nov 8, 2016
@jlu5 jlu5 added this to the v2.1 (previously 1.3) milestone Aug 24, 2017
@jlu5 jlu5 added type: new plugin for features that belong as a new plugin and removed plugin: relay involves the relay plugin labels Apr 5, 2018
@jlu5
Copy link
Collaborator

jlu5 commented Apr 5, 2018

Here's how I'll do this for 2.0:

  • Introduce an antispam plugin capable of monitoring preconfigured channels. Channel persistence is still sort of a sore point due to Better abstraction to deal with persistent service bot channels #265, so that needs to be resolved first.
  • Implement block / kill on mass highlight
  • Implement blocking of messages matching arbitrary preconfigured globs (maybe extend to regex in the future if I can find a high-performance way to do it)

This implementation will be completely independent of IRCd-side spamfilters, which don't exist on all IRCds and don't behave consistently on the ones that do support it. [this level of integration will be a wontfix]

Also, this can be its own plugin completely since #547 is complete in 2.0!

@jlu5 jlu5 modified the milestones: v2.1, v2.0 Apr 5, 2018
@jlu5 jlu5 changed the title Blocking spam Spamfilters: configurable "bad messages" and mass highlight prevention Apr 5, 2018
jlu5 added a commit that referenced this issue Jun 9, 2018
Also refactor the _punish code to account for events without a channel attached.

Closes #359.
@jlu5 jlu5 closed this as completed Jun 9, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
type: feature feature requests & PRs of new features type: new plugin for features that belong as a new plugin
Projects
None yet
Development

No branches or pull requests

3 participants