echobox/README.md

19 lines
1.3 KiB
Markdown
Raw Normal View History

2017-02-22 23:27:43 -06:00
# Echobox
Echobox is a database of quotes. You put in a quote, it will return back a quote. The echobox is backed by a sqlite database.
Echobox was inspired by [fivequestionmarks's](http://infinitypedia.org/wiki/Fivequestionmarks/commands) `!echobox` command; accordingly, it is mainly intended for use in a tenquestionmarks module. However, this Echobox may not behave the same way the original does.
In particular, `echo(&str)` may return back the input quote (not sure if fivequestionmarks does this or not).
## Usage
### Command Line
`cargo run "<quote>"`
#### Notes
* The entire quote is one argument, so it needs to be quoted if there are spaces.
* Echobox uses the file `echobox.db` in the current working directory. There is currently not a way to change this.
### Library
The `Echobox` type provides two constructors, `Echobox::with_file(&str)` and `Echobox::with_connection(sqlite::Connection)`. Both of these will create the database, including the single table, if it does not exist. The `Echobox` provides three methods, `echo(&str)` which inserts the input quote into the database and then returns a single random `Quote` from the database, `put(&str)` which inserts a quote, and `get(i64)` which returns a `Vec<Quote>` containing the requested number of random quotes.
The `Quote` struct represents a single quote from the echobox, and has `id` and `content`.