Skip to content

[Story] As a protection developer I can query a given mxid for a simple interval metric describing their level of participation in the community  #24

Description

@Gnuxie

Description

Almost all existing protections use a very crude way of determining how long a user has been participating in a community and then discriminating against newer users. The current method involves watching for new joiners in a given protected room since the startup of the bot (there's no persistence), and cannot consider the user's participation in the rest of the protected rooms. This not only leads to lots of false positives, but is also easy to evade and cannot be configured.

By deriving a simple interval rating for each user in the community we can not only reduce the number of false positives and improve the consistency of the protection, but the metric will also be easy to understand and can be configurable as a simple threshold. Changing the level is also simple for a metric that only has 5 different values.

Acceptance Criteria

  • The range of values for the metric is no more than 0-5.
  • The metric is not based on how long a user has been present in the ProtectedRoomsSet, but is instead based on participation (for example whether they have sent a message in each ordinal interval of time that maps back to the metric).
    This is to increase the chances that the user has been "seen" by a moderator and the rest of the community so they are more likely to have a feel for the user and know that they are not just a bot or brigade or something.
  • All existing protections that discriminate against new joiners should be reworked to use the metric instead of their existing adhoc systems.

Tasks

Issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    Status
    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions