3
0
mirror of https://github.com/reality/dbot.git synced 2024-11-23 20:39:25 +01:00
dbot/modules/quotes
2017-03-25 00:43:31 +00:00
..
commands.js oops 2017-03-25 00:43:31 +00:00
config.json fix the quote/command correct order thing 2013-08-17 18:13:38 +00:00
pages.js fix the quote linky thingy on the web whatsit 2013-10-15 06:06:16 +00:00
quotes.js quote interpolation recursion 2015-08-13 14:36:22 +00:00
README.md More quotes docs updates [#351] 2013-05-17 17:57:21 +00:00
strings.json some fixes 2014-09-08 10:42:59 +00:00
usage.json loaded strings and usage from the modules themselves in reloadModules. some other smaller changes. fixed the syntax of the usage json. careful though this dbot init may delete your database. 2012-12-11 20:06:29 +00:00

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.

quotesOnJoin: false

Show quotes for users when they enter channels.

Commands: Quote Addition

~qadd [category] = [quote]

Add a new quote to the database under the given category.

Commands: Quote Retrieval

~[category]

Alias for ~q.

~q [category]

Display a random quote from a given category.

~rq

Show a random quote from the database.

Commands: Quote Removal

~rmstatus

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

~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.

~rmlast [category]

Remove the last quote added to a given category.

~rm [category] = [quote]

Remove a given quote from the given category.

Commands: Stats & Searching

~qstats

Show a list of the biggest quote categories.

~qsearch [category] = [needle]

Search a category for quotes including the given text. If category is given as _*_, then all categories will be searched for the given text.

~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.

~qrename [oldName] [newName]

Rename a quote category.

~qmerge [primary] [secondary]

Merge two quote categories into one.

Show a link to the page on the web interface which shows this categorys quotes.

API

addQuote(key, quote, user, callback)

Add the given quote to the category stored under the given key. If its a new quote category, then the owner of the category will be recorded as the given user. The callback is called with one argument, the new quote count of the given category.

getQuote (key, callback)

Get a random quote from the given category. Callback is called with one argument, either a random quote under the given key, or false if the category doesnt exist. This getQuote function does not require a server argument, and as such does not run the quote through the interpolation function (does not parse category etc).

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.