Simple Quote-Of-The-Day server.
Iri al dosiero
Jaidyn Ann 1c516ad1cf Update README 2024-01-28 11:59:15 -06:00
qotd_sets Updated quotes 2018-12-08 12:15:11 -06:00
src Fix unwind-protect error 2018-12-02 19:25:55 -06:00
COPYING.txt Use :NIH functions 2018-10-30 20:15:15 -05:00
README.txt Update README 2024-01-28 11:59:15 -06:00
qotdd.asd Abstracted server to :facilservil 2018-12-02 01:32:14 -06:00

================================================================================
QOTDD : `Quote of the Day Daemon`	A QOTD server for nerds
================================================================================

QOTDD is an implementation of RFC 865: the Quote of the Day Protocol.
It's simple, really:
	* User connects to server with raw TCP connection
	* Server sends back today's quote
	* User smiles
	* Server disconnects user

Heck, QOTDD even comes with a couple quote files for you to start with!

Tested on GNU CLISP. <3



----------------------------------------
USAGE
----------------------------------------
To start QOTDD, just fire up your Lisp interpreter, load :qotdd, and run it!

	[1]> (ql:quickload :qotdd)
	[2]> (qotdd:server :path "/usr/games/qotdd/2018"
	                   :host "127.0.0.1"
			   :port "1117")

This assumes that you can load :qotdd with Quicklisp
(https://beta.quicklisp.org/), and that you've installed the defaults QOTD
sets (in "./qotd_sets/") to "/usr/games/qotdd/".

To use Quicklisp to load QOTDD, just install it (https://beta.quicklisp.org/),
then put QOTDD in `~/quicklisp/local-projects/`.

The dependencies of QOTDD are NIH, a general-bleh library I've written-- which
can be found at `https://git.eunichx.us/nih/`-- and USOCKETS, which can be
installed from Quicklisp as `:usockets`.


File Format
--------------------
The file-format of QOTDD quote sets is *exactly* like the format BSD fortune
uses-- that is, a single text-file with several "%" seperated sections.
Well, there is *one* difference to the BSD fortune format-- that is, at some
point in each section, there should be a specified date, using this format:
":Date YYYY-MM-DD"

That listing is how QOTDD determines which quote to pick for which day.
If there is no quote for today, then QOTDD picks a random quote (so, I guess,
if you used a Fortune file, you could use QOTDD as a simple random-fortune
server!).

Here's an example:


QOTDD File Example
====================

:Date 2018-09-06
"Hi there."
	-- Literally Everyone
%
:Date 2018-09-07
"How are you?"
	-- Me
%
:Date 2018-09-08
"Eat yourself."
	-- Dad
%

====================
Example End



----------------------------------------
BORING STUFF
----------------------------------------
License is in COPYING.txt (GNU GPLv3~! <3)
Author is Jaidyn Ann <jadedctrl@posteo.at>
Sauce is at https://hak.xwx.moe/jadedctrl/qotdd