## Quotes

Stores and displays quotes.

### Description

This is the original reason that DBot was created, stores and displays quotes.

### Configuration

#### rmLimit: 10
Amount of quotes which can be removed before admin approval is required.

### Commands

#### ~q [category]
Display a random quote from a given category.

#### ~qadd [category] = [quote]
Add a new quote to the database.

#### ~qstats
Show a list of the biggest quote categories.

#### ~qsearch [category] = [needle]
Search a category for quotes including the given text.

#### ~rmlast [category]
Remove the last quote added to a given category.

#### ~rmstatus
Show how many quotes are currently in the removal cache, and whether they will
be randomly removed.

#### ~rm [category] = [quote]
Remove a given quote from the given category.

#### ~qcount [category]
Show the number of quotes stored in the given category, or if called without a
category it will show the total number of quotes in the database.

#### ~rq
Show a random quote from the database.

#### ~link [category]
Show a link to the page on the web interface which shows this category's quotes.

### Admin-only Commands

#### ~rmconfirm
Confirm that the quotes currently in the removal cache are okay to be removed,
and permanently delete them.

#### ~rmdeny
Re-instate the quotes that are currently in the removal cache back into the main
quote database.

### API

#### getQuote(event, category)
Returns a random quote from the given category.

### Removal Spam Protection

When quotes are removed using either the ~rm or ~rmlast commands, the quotes are
removed from the main database, but are stored in a removal cache which is cleared 
out ten minutes from the last time a quote was removed from the database. If the 
number of quotes removed from the database reaches a certain limit (as per rmLimit 
in config, default 10) then the counter is removed and the cache will not be deleted 
automatically. In such a case, a DBot admin needs to either run the ~rmconfim command
to have the removal cache cleared, or ~rmdeny to re-instate all of the quotes in
the removal cache back into the main quote database. This is to stop mass
removal from the database without limiting the user interface.