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.
go get -u github.com/pcpratheesh/go-censorword
for previous version
go get -u github.com/pcpratheesh/go-censorword@v1.1.0
import ( "github.com/pcpratheesh/go-censorword" )
The go-censorword package uses a censorWord here 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.
CustomCensorList([]string{})
// 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) }
- 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)
detector := NewDetector( gocensorword.WithCensorReplaceChar("*"), ) resultString, err := detector.CensorWord(inputString) if err != nil { panic(err) }
In the future, we should implement the following points
- Support for other language profanities
- All words having repeated characters more than twice
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.
The Profanity Filter package is licensed under the MIT License. See the LICENSE file for more information.