No release in over a year
Spam signal module for Decidim.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Runtime

>= 0.26, < 0.28
>= 0.26, < 0.28
>= 0.26, < 0.28
~> 1.8
 Project Readme

Decidim - Octree Participatory democracy on a robust and open source solution


Anti-spam For Decidim

This module integrates a new administration tab to manage and configure a Decidim anti-spam.

Avoid Spammy Comment Creation
This module will prevent spam or commercial content before a comment is even saved.

Mass-reporting
This module can automatically report users and send reports to a single email (and not all the admins).

Detect Bad User Profiles
With this module, you will be able to detect URLs of strange domains and commercial content in the profile description (about section). This allows stopping spammers earlier.

To know more about features and configurations, visit the decidim-anti-spam documentation website.


The philosophy of this module is to adapt rules to each situation, and it has been greatly influenced by the Pol.is moderation good practices guide.

Documentation

You can consult our documentation on the decidim-anti-spam documentation website.

Contributions

This module is maintained by Octree. We plan work and releases on our self-hosted GitLab.

New ideas
New ideas are welcome on our feedback page. We manage co-financing and release planning there. For technical aspects (contributions, code, issues), take a look at our GitLab.

Development and checks (Docker)

Toolchain versions match the spam_signal Compose image (octree/decidim-dev), not your laptop. Do not run rubocop, erblint, rspec, prettier, or rake test_app on the host unless you maintain a separate, documented setup.

From the repository root:

docker compose up -d
docker compose exec spam_signal bash -lc 'cd /home/module && bundle install'
docker compose exec spam_signal bash -lc 'cd /home/module && bundle exec rubocop .'
docker compose exec spam_signal bash -lc 'cd /home/module && bundle exec erblint --lint-all --enable-all-linters'
docker compose exec spam_signal bash -lc 'cd /home/module && yarn install --frozen-lockfile && yarn format:check'

Generate the dummy app once (set DISABLED_DOCKER_COMPOSE=true so the Rake task does not restart Compose), then create the test database and run specs (unset DATABASE_URL so the dummy app’s config/database.yml is used):

docker compose exec spam_signal bash -lc 'cd /home/module && export DISABLED_DOCKER_COMPOSE=true && bundle exec rake test_app'
docker compose exec spam_signal bash -lc 'cd /home/module/spec/decidim_dummy_app && unset DATABASE_URL && export DISABLE_SPRING=1 && RAILS_ENV=test bundle exec rails db:create db:migrate'
docker compose exec spam_signal bash -lc 'cd /home/module && unset DATABASE_URL && export RAILS_ENV=test && bundle exec rspec spec/models spec/lib spec/commands spec/i18n_spec.rb'

License

This engine is distributed under the GNU AFFERO GENERAL PUBLIC LICENSE.



With the support of

City of Lausanne and State of Geneva