-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
implemented options params with object initialization
- Loading branch information
1 parent
7d11ca0
commit bd9a87f
Showing
3 changed files
with
137 additions
and
50 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,39 +1,67 @@ | ||
[![Create Release](https://github.com/pcpratheesh/go-censorword/actions/workflows/release.yml/badge.svg)](https://github.com/pcpratheesh/go-censorword/actions/workflows/release.yml) | ||
|
||
# go-censorword | ||
|
||
go-censorword is a lightweight library for detecting profanities in Go string. | ||
|
||
go-censorword is a lightweight and easy-to-use tool that allows you to detect and filter out profanity words from your text-based content. Whether you're building a social media platform, a chat app, or just want to keep your comments section clean, this package can help. | ||
|
||
## Installation | ||
``` | ||
```sh | ||
go get -u github.com/pcpratheesh/go-censorword | ||
``` | ||
|
||
for previous version | ||
|
||
```sh | ||
go get -u github.com/pcpratheesh/[email protected] | ||
``` | ||
|
||
## Usage | ||
```go | ||
import ( | ||
"github.com/pcpratheesh/go-censorword" | ||
) | ||
``` | ||
|
||
|
||
## In working | ||
go-censorword package uses a censorWord [here](censor/censor.go) list to check the profanities. | ||
Als we have provided an option to override this list of contents by using | ||
The go-censorword package uses a censorWord [here](censor/censor.go) list to check profanities, but also provides an option for you to override this list with your own contents. You can create a list of bad words that are not included in the original blacklist by using the **customCensorList** method. | ||
|
||
```go | ||
CustomCensorList() | ||
CustomCensorList([]string{}) | ||
``` | ||
You can provide your own list to search and replace the profanities | ||
|
||
## Example | ||
## How to use | ||
```go | ||
var detector = gocensorword.NewDetector().SetCensorReplaceChar("*") | ||
detector.CustomCensorList([]string{ | ||
"bad", "word","one", | ||
}) | ||
// this would initialize the detector object. | ||
var detector = gocensorword.NewDetector( | ||
gocensorword.WithCensorReplaceChar("*"), | ||
|
||
// override the existing list of bad words with your own | ||
gocensorword.WithCustomCensorList([]string{ | ||
"bad", "word","one", | ||
}), | ||
) | ||
|
||
// censor the word | ||
actualString := "with having some bad words" | ||
filterString, err := detector.CensorWord(actualString) | ||
if err != nil { | ||
panic(err) | ||
} | ||
|
||
``` | ||
|
||
## Option Methods | ||
- *WithCensorReplaceChar(string)* : This method can be used to replace the filtered word characters with asterisks (*), dashes (-) or custom characters, like the pound sign (#) or at sign (@). | ||
- *WithCustomCensorList([]string)* : The list of your own profanity words | ||
- *WithSanitizeSpecialCharacters(bool)*: To sanitize the special characters in the word | ||
- *WithKeepPrefixChar(bool)*: If you want to Kept the prefix Character (eg : F****) | ||
- *WithKeepSuffixChar(bool)*: If you want to Kept the suffix Character (eg : ****K) | ||
|
||
## Example | ||
```go | ||
detector := NewDetector().SetCensorReplaceChar("*") | ||
detector := NewDetector( | ||
gocensorword.WithCensorReplaceChar("*"), | ||
) | ||
|
||
resultString, err := detector.CensorWord(inputString) | ||
|
||
|
@@ -45,5 +73,12 @@ if err != nil { | |
|
||
In the future, we should implement the following points | ||
- Support for other language profanities | ||
- All words having repeated characters more than twice (eg : fuck -> fuuuuuck) | ||
- Should remove word match conditions (eg :-> fucker, fucking..etc) | ||
- All words having repeated characters more than twice | ||
|
||
|
||
## Contributing | ||
Contributions to the Profanity Filter package are welcome and encouraged! If you find a bug or have a feature request, please open an issue on GitHub. If you'd like to contribute code, please fork the repository, make your changes, and submit a pull request. | ||
|
||
|
||
## License | ||
The Profanity Filter package is licensed under the MIT License. See the LICENSE file for more information. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters