Common Lisp Package: RSS

README:

FUNCTION

Public

PARSE-RSS-STREAM (STR &KEY ERR STRICT?)

Parse RSS data from STR, which can be either a stream or a string. If ERR, then throw an error when something goes wrong, otherwise just return NIL. If STRICT?, check more carefully for whether the document fails to follow the RSS 2.0 specification (which incorporates 0.9x)

Undocumented

PARSE-RSS-FILE (FILE)

RSS-SITE (URI)

SHOW-SITES (&OPTIONAL (SITES *SITES*))

Private

ENSURE-STRING-SLOTS-FILLED (OBJECT REQUIRED-SLOTS STRICT?)

For each slot in REQUIRED-SLOTS, if it is unbound in OBJECT, set it to the empty string if STRICT? is NIL, or throw an error if true.

SETF-UNIQUE-SLOT (OBJECT NAME VALUE)

Set the slot with the given NAME in OBJECT to VALUE, throwing an error if it was already set.

SETF-UNIQUE-STRING (OBJECT NAME NODE)

Set the slot with the given NAME in OBJECT to the string contents of NODE, throwing an error if it was already set, or if they aren't a string. Used for elements like <title> and <link>, which shouldn't crop up twice.

SYMBOL-TO-NAME (SYM)

Convert symbols in the form SOME-SYM to RSS-style camelCase (a lopsided camel, it seems).

Undocumented

DISPLAY-SITE (SITE &KEY (STREAM *STANDARD-OUTPUT*))

IS-RSS-VERSION-SUPPORTED (VERSION-STRING)

PARSE-CHANNEL-CHILD (NODE OBJECT STRICT?)

PARSE-IMAGE (NODE STRICT?)

PARSE-IMAGE-CHILD (NODE OBJECT STRICT?)

PARSE-ITEM (NODE STRICT?)

PARSE-ITEM-CHILD (NODE OBJECT STRICT?)

PARSE-TYPE (CLASS CHILD-PARSER NODE STRICT? REQUIRED-STRING-SLOTS)

MACRO

Private

DEF-CHILD-PARSER (NAME (&REST UNIQUE-STRINGS) &REST COMPLICATED-FORMS)

Define a parser that sets UNIQUE-STRINGS in the obvious way. COMPLICATED-FORMS should be lists (KEY &body BODY) where KEY is a string and BODY is performed with ITEM set to the item we're modifying and NODE set to the XML node we just got.

STRING=-CASE (KEYFORM (&REST CASES) &OPTIONAL &BODY OTHERWISE)

A version of CASE that tests using string=.

GENERIC-FUNCTION

Private

Undocumented

MSG (CONDITION)

VERSION (CONDITION)

SLOT-ACCESSOR

Public

Undocumented

DESCRIPTION (OBJECT)

HEIGHT (OBJECT)

IMAGE (OBJECT)

ITEMS (OBJECT)

SETFITEMS (NEW-VALUE OBJECT)

LANGUAGE (OBJECT)

LAST-BUILD-DATE (OBJECT)

PUB-DATE (OBJECT)

TITLE (OBJECT)

URL (OBJECT)

WIDTH (OBJECT)

VARIABLE

Private

Undocumented

*SITES*

CLASS

Public

Undocumented

RSS-CHANNEL

RSS-IMAGE

RSS-ITEM

CONDITION

Private

RSS-PARSE-ERROR

Thrown when PARSE-RSS-STREAM encounters invalid RSS data.

RSS-VERSION-UNSUPPORTED

Thrown when PARSE-RSS-STREAM encounters RSS of a version it doesn't recognise.