gocensorword

package module
v1.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 30, 2023 License: MIT Imports: 11 Imported by: 1

README

Create Release

go-censorword

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

    go get -u github.com/pcpratheesh/go-censorword

for previous version

    go get -u github.com/pcpratheesh/go-censorword@v1.1.0

Usage

import (
	"github.com/pcpratheesh/go-censorword"
)

In working

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{}) 

How to use

// 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)
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

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.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	Transformer transform.Transformer
)

Functions

This section is empty.

Types

type CensorWordDetection

type CensorWordDetection struct {
	CensorList                []string
	CensorReplaceChar         string
	KeepPrefixChar            bool
	KeepSuffixChar            bool
	SanitizeSpecialCharacters bool
	TextNormalization         bool
	ReplaceCheckPattern       string
}

func NewDetector

func NewDetector(options ...Options) *CensorWordDetection

this will create a new CensorWordDetection object

func (*CensorWordDetection) CensorWord

func (censor *CensorWordDetection) CensorWord(word string) (string, error)

Censor Word

func (*CensorWordDetection) SanitizeCharacter

func (censor *CensorWordDetection) SanitizeCharacter(str string) string

remove special characters from string

type Options

type Options func(*CensorWordDetection)

func WithCensorReplaceChar

func WithCensorReplaceChar(char string) Options

WithCensorReplaceChar

func WithCustomCensorList

func WithCustomCensorList(list []string) Options

WithCustomCensorList change the default censor list can provide own censor words list

func WithKeepPrefixChar

func WithKeepPrefixChar() Options

WithKeepPrefixChar

func WithKeepSuffixChar

func WithKeepSuffixChar() Options

WithKeepPrefixChar

func WithReplaceCheckPattern

func WithReplaceCheckPattern(pattern string) Options

WithReplaceCheckPattern

func WithSanitizeSpecialCharacters

func WithSanitizeSpecialCharacters(status bool) Options

WithSanitizeSpecialCharacters

func WithTextNormalization

func WithTextNormalization(status bool) Options

WithTextNormalization

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL