# Despamilator v2.1.5 - Table of Contents

Plugin-based heuristic spam scanner for free-text web form input. Elixir port of the Ruby despamilator gem.

## Pages

- [Despamilator](readme.md)
- [Changelog](changelog.md)
- [LICENSE](license.md)

## Modules

- [Despamilator](Despamilator.md): Plugin-based spam scanner. Scores text against many small heuristic filters
and accumulates a total score. A score of 1.0+ is typically considered spam.
- [Despamilator.Allowlist](Despamilator.Allowlist.md): Allow-list of domains whose URLs should not be penalised by URL-aware filters.
- [Despamilator.Filter](Despamilator.Filter.md): Behaviour every filter must implement.
- [Despamilator.Filter.GtubsTestFilter](Despamilator.Filter.GtubsTestFilter.md)
- [Despamilator.Filter.HtmlTags](Despamilator.Filter.HtmlTags.md)
- [Despamilator.Filter.IPAddressURL](Despamilator.Filter.IPAddressURL.md)
- [Despamilator.Filter.LongWords](Despamilator.Filter.LongWords.md)
- [Despamilator.Filter.MixedCase](Despamilator.Filter.MixedCase.md)
- [Despamilator.Filter.NaughtyWords](Despamilator.Filter.NaughtyWords.md)
- [Despamilator.Filter.NoVowels](Despamilator.Filter.NoVowels.md)
- [Despamilator.Filter.NumbersAndWords](Despamilator.Filter.NumbersAndWords.md)
- [Despamilator.Filter.ObfuscatedURLs](Despamilator.Filter.ObfuscatedURLs.md)
- [Despamilator.Filter.Prices](Despamilator.Filter.Prices.md)
- [Despamilator.Filter.ScriptTag](Despamilator.Filter.ScriptTag.md)
- [Despamilator.Filter.Shouting](Despamilator.Filter.Shouting.md)
- [Despamilator.Filter.SpammyTLDs](Despamilator.Filter.SpammyTLDs.md)
- [Despamilator.Filter.SquareBrackets](Despamilator.Filter.SquareBrackets.md)
- [Despamilator.Filter.TrailingNumber](Despamilator.Filter.TrailingNumber.md)
- [Despamilator.Filter.URLs](Despamilator.Filter.URLs.md)
- [Despamilator.Filter.UnusualCharacters](Despamilator.Filter.UnusualCharacters.md)
- [Despamilator.Filter.VeryLongDomainName](Despamilator.Filter.VeryLongDomainName.md)
- [Despamilator.Filter.WeirdPunctuation](Despamilator.Filter.WeirdPunctuation.md)
- [Despamilator.Subject](Despamilator.Subject.md): The mutable-feeling accumulator for a scan. Holds the original `text`,
the running `score`, and per-filter score totals in `match_scores`.

- [Despamilator.Subject.Text](Despamilator.Subject.Text.md): String helpers used by filters. Elixir is immutable so `remove_and_count/2`
returns `{count, new_text}` instead of mutating in place like Ruby's bang form.

