blaspsoft / blasp
Blasp is a powerful and customisable profanity filter package for Laravel applications
Installs: 6 230
Dependents: 1
Suggesters: 0
Security: 0
Stars: 199
Watchers: 2
Forks: 11
Open Issues: 6
Requires
- php: ^7.4|^8.0
- illuminate/support: ^8.0|^9.0|^10.0|^11.0
Requires (Dev)
- orchestra/testbench: ^6.47
- phpunit/phpunit: ^9.0
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"
License
Blasp is open-sourced software licensed under the MIT license.