You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Adrian Malacoda ede641995a change text -> content to match the row names 3 years ago
src change text -> content to match the row names 3 years ago
Cargo.toml wrong cargo file 3 years ago Initial commit 3 years ago


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 !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).


Command Line

cargo run "<quote>"


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


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.