eros-0.5.2.0: A text censorship library.

Copyright2014, Peter Harpending.
LicenseBSD3
MaintainerPeter Harpending <pharpend2@gmail.com>
Stabilityexperimental
Portabilityarchlinux
Safe HaskellNone
LanguageHaskell2010

Text.Eros.Phraselist

Description

If you want to make your own phraselist, you need to write a JSON file, in accordance with the schema. Once you do that, make a data type for your phraselist. Make your data type an instance of Phraselist, and you're good to go.

For example, let's say your phraselist is mylist.json, and it's all in accordance with the schema. Your code would look something like this:

data MyList = MyList

instance Phraselist MyList where
  phraselistPath MyList = getDataFileName "mylist.json"
  phraselistPath _      = undefined

Don't forget to add mylist.json to Data-Files in your .cabal file.

If you want to use one of the lists we already supply

Synopsis

Documentation

readPhraselist :: Phraselist t => t -> IO PhraseForest Source

Read a Phraselist, marshal it into a PhraseForest.

readPhraseMap :: Phraselist t => t -> IO PhraseMap Source

Load a Phraselist directly into a PhraseMap

servePhraselist :: Phraselist t => t -> IO ByteString Source

Read the phraselist from disk

class Phraselist t where Source

Instances

type PhraselistSet = Phraselist t => [t] Source

A set of Phraselists. Note that this is actually a list, and I'm calling it a "set" for purely lexical purposes.

data ErosList Source

The phraselists in res/. Each of these constructors correspond to one of the files here.

Gitlab has a terrible interface, so I won't provide links to each one of them.

erosLists :: [ErosList] Source

A list of phraselists we provide.

erosListPaths :: IO [FilePath] Source

A list of the paths to the phraselists we provide.

erosListNamePairs :: [(ErosList, Text)] Source

You can't really order the lists, so we won't use Map

data PhraseAlmostTree Source

Placeholder type used to read JSON. The JSON schema (currently, at least) is such that one needs this type to read the JSON. You can use fromPAT to convert this type into a PhraseTree

Instances

Read PhraseAlmostTree 
Show PhraseAlmostTree 
FromJSON PAT

You can read the JSON schema to see how this works.

fromPAT :: PAT -> PhraseTree Source

Convert a PAT into a PhraseTree.

fromPhraseAlmostTree :: PAT -> PhraseTree Source

I figure some people like to type a lot.