blaspsoft / blasp
Blasp is a powerful and customisable profanity filter package for Laravel applications
Installs: 21 303
Dependents: 1
Suggesters: 0
Security: 0
Stars: 224
Watchers: 2
Forks: 17
Open Issues: 4
Requires
- php: ^8.2
- illuminate/support: ^8.0|^9.0|^10.0|^11.0|^12.0
Requires (Dev)
- orchestra/testbench: ^10.0
- phpunit/phpunit: ^11.0
This package is auto-updated.
Last update: 2025-02-27 21:59:51 UTC
README
Blasp - Profanity Filter for Laravel
Blasp is a profanity filter package for Laravel that helps detect and mask profane words in a given sentence. It offers a robust set of features for handling variations of offensive language, including substitutions, obscured characters, and doubled letters.
Installation
You can install the package via Composer:
composer require blaspsoft/blasp
Usage
Basic Usage
To use the profanity filter, simply call the Blasp::check()
method with the sentence you want to check for profanity.
use Blaspsoft\Blasp\Facades\Blasp; $sentence = 'This is a fucking shit sentence'; $check = Blasp::check($sentence);
The returned object will contain the following properties:
- sourceString: The original string you passed.
- cleanString: The string with profanities masked (e.g., replaced with
*
). - hasProfanity: A boolean indicating whether the string contains profanity.
- profanitiesCount: The number of profanities found.
- uniqueProfanitiesFound: An array of unique profanities found in the string.
Example
$sentence = 'This is a fucking shit sentence'; $blasp = Blasp::check($sentence); $blasp->getSourceString(); // "This is a fucking shit sentence" $blasp->getCleanString(); // "This is a ******* **** sentence" $blasp->hasProfanity(); // true $blasp->getProfanitiesCount(); // 2 $blasp->getUniqueProfanitiesFound(); // ['fucking', 'shit']
Profanity Detection Types
Blasp can detect different types of profanities based on variations such as:
- Straight match: Direct matches of profane words.
- Substitution: Substituted characters (e.g.,
pro0fán1ty
). - Obscured: Profanities with separators (e.g.,
p-r-o-f-a-n-i-t-y
). - Doubled: Repeated letters (e.g.,
pprrooffaanniittyy
). - Combination: Combinations of the above (e.g.,
pp-rof@n|tty
).
Laravel Validation Rule
Blasp also provides a custom Laravel validation rule called blasp_check
, which you can use to validate form input for profanity.
Example
$request->merge(['sentence' => 'This is f u c k 1 n g awesome!']); $validated = $request->validate([ 'sentence' => ['blasp_check'], ]);
Configuration
Blasp uses a configuration file (config/blasp.php
) to manage the list of profanities, separators, and substitutions. You can publish the configuration file using the following Artisan command:
php artisan vendor:publish --tag="blasp-config"
Custom Configuration
You can specify custom profanity and false positive lists using the configure()
method:
use Blaspsoft\Blasp\Facades\Blasp; $blasp = Blasp::configure( profanities: $your_custom_profanities, falsePositives: $your_custom_false_positives )->check($text);
This is particularly useful when you need different profanity rules for specific contexts, such as username validation.
Cache Management
Blasp uses Laravel's cache system to improve performance. The package automatically caches profanity expressions and their variations. To clear the cache, you can use the provided Artisan command:
php artisan blasp:clear
This command will clear all cached Blasp expressions and configurations.
License
Blasp is open-sourced software licensed under the MIT license.