The feeder Reference Manual

This is the feeder Reference Manual, version 1.0.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 16:23:48 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 feeder

RSS, Atom and general feed parsing and generating

Maintainer

Yukari Hafner <>

Author

Yukari Hafner <>

Home Page

https://shinmera.github.io/feeder/

Source Control

(GIT https://github.com/shinmera/feeder.git)

Bug Tracker

https://github.com/shinmera/feeder/issues

License

zlib

Version

1.0.0

Dependencies
  • plump (system).
  • local-time (system).
  • documentation-utils (system).
Source

feeder.asd.

Child Components

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


3.1 Lisp


3.1.1 feeder/feeder.asd

Source

feeder.asd.

Parent Component

feeder (system).

ASDF Systems

feeder.


3.1.2 feeder/package.lisp

Source

feeder.asd.

Parent Component

feeder (system).

Packages

org.shirakumo.feeder.


3.1.3 feeder/toolkit.lisp

Dependency

package.lisp (file).

Source

feeder.asd.

Parent Component

feeder (system).

Public Interface
Internals

3.1.4 feeder/protocol.lisp

Dependency

toolkit.lisp (file).

Source

feeder.asd.

Parent Component

feeder (system).

Public Interface

3.1.5 feeder/rss.lisp

Dependency

protocol.lisp (file).

Source

feeder.asd.

Parent Component

feeder (system).

Public Interface

3.1.6 feeder/atom.lisp

Dependency

rss.lisp (file).

Source

feeder.asd.

Parent Component

feeder (system).

Public Interface
Internals

parse-atom-content (function).


3.1.7 feeder/documentation.lisp

Dependency

atom.lisp (file).

Source

feeder.asd.

Parent Component

feeder (system).


4 Packages

Packages are listed by definition order.


4.1 org.shirakumo.feeder

Source

package.lisp.

Use List

common-lisp.

Public Interface
Internals

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


5.1 Public Interface


5.1.1 Macros

Macro: make-element (parent tag-name &body attributes)

Construct a new XML element.

ATTRIBUTES should be a plist of alternating keys and values. A key may either be a string or a symbol. If a symbol, it is treated as the attribute name in lowercase. The attribute is only set if the value is non-NIL.

If the key is a symbol with the name "-", the value is used as the text content of the element.

For example, constructing an element like

<foo bar="baz">bam</foo>

would be

(make-element parent "foo"
:bar "baz"
- "bam")

See PLUMP:MAKE-ELEMENT
See PLUMP:ATTRIBUTE
See PLUMP:MAKE-TEXT-NODE

Package

org.shirakumo.feeder.

Source

toolkit.lisp.

Macro: with-children ((name root) &body clauses)

Scans through the immediate children of ROOT and executes bodies as matching.

The format should be as follows:

CLAUSES ::= (TAG . form*)*
TAG — A string designator

The forms of a clause are executed with NAME bound to a PLUMP:ELEMENT whose tag-name matches that specified in the clause. Tag names are matched case-insensitively.

See PLUMP:CHILDREN
See PLUMP:TAG-NAME
See PLUMP:ELEMENT

Package

org.shirakumo.feeder.

Source

toolkit.lisp.


5.1.2 Ordinary functions

Function: text (entity)

Returns the trimmed text contents of the given node.

This is like PLUMP:TEXT, but with ASCII whitespace trimmed off the front and end of the text.

See PLUMP:TEXT

Package

org.shirakumo.feeder.

Source

toolkit.lisp.


5.1.3 Generic functions

Generic Reader: authors (object)

Accessor to the list of persons that authored the item.

See PERSON
See AUTHORED-ITEM

Package

org.shirakumo.feeder.

Methods
Reader Method: authors ((authored-item authored-item))

automatically generated reader method

Source

protocol.lisp.

Target Slot

authors.

Generic Writer: (setf authors) (object)
Package

org.shirakumo.feeder.

Methods
Writer Method: (setf authors) ((authored-item authored-item))

automatically generated writer method

Source

protocol.lisp.

Target Slot

authors.

Generic Reader: cache-time (object)

Accessor to the amount of time the feed can be cached.

This value should be an integer representing the cache time in minutes.

See FEED

Package

org.shirakumo.feeder.

Methods
Reader Method: cache-time ((feed feed))

automatically generated reader method

Source

protocol.lisp.

Target Slot

cache-time.

Generic Writer: (setf cache-time) (object)
Package

org.shirakumo.feeder.

Methods
Writer Method: (setf cache-time) ((feed feed))

automatically generated writer method

Source

protocol.lisp.

Target Slot

cache-time.

Generic Reader: categories (object)

Accessor to the list of categories that the item relates to.

Each category should be a simple string.

See AUTHORED-ITEM

Package

org.shirakumo.feeder.

Methods
Reader Method: categories ((authored-item authored-item))

automatically generated reader method

Source

protocol.lisp.

Target Slot

categories.

Generic Writer: (setf categories) (object)
Package

org.shirakumo.feeder.

Methods
Writer Method: (setf categories) ((authored-item authored-item))

automatically generated writer method

Source

protocol.lisp.

Target Slot

categories.

Generic Reader: comment-section (object)

Accessor to the link for a comment section for this item.

Should be a LINK or URL.

See LINK (type)
See ENTRY

Package

org.shirakumo.feeder.

Methods
Reader Method: comment-section ((entry entry))

automatically generated reader method

Source

protocol.lisp.

Target Slot

comment-section.

Generic Writer: (setf comment-section) (object)
Package

org.shirakumo.feeder.

Methods
Writer Method: (setf comment-section) ((entry entry))

automatically generated writer method

Source

protocol.lisp.

Target Slot

comment-section.

Generic Reader: content (object)

Accessor to the content of the item.

For FEEDs, the content should be a list of ENTRYs.
For ENTRYs this may be a plaintext string or a PLUMP:NODE.

See FEED
See ENTRY
See PLUMP:NODE
See AUTHORED-ITEM

Package

org.shirakumo.feeder.

Methods
Reader Method: content ((authored-item authored-item))

automatically generated reader method

Source

protocol.lisp.

Target Slot

content.

Generic Writer: (setf content) (object)
Package

org.shirakumo.feeder.

Methods
Writer Method: (setf content) ((authored-item authored-item))

automatically generated writer method

Source

protocol.lisp.

Target Slot

content.

Generic Reader: content-type (object)

Accessor to the content mime-type at the end of the link.

See LINK (type)

Package

org.shirakumo.feeder.

Methods
Reader Method: content-type ((condition unknown-atom-content-type))
Source

atom.lisp.

Target Slot

content-type.

Reader Method: content-type ((link link))

automatically generated reader method

Source

protocol.lisp.

Target Slot

content-type.

Generic Writer: (setf content-type) (object)
Package

org.shirakumo.feeder.

Methods
Writer Method: (setf content-type) ((link link))

automatically generated writer method

Source

protocol.lisp.

Target Slot

content-type.

Generic Reader: contributors (object)

Accessor to the list of persons that contributed to the item.

See PERSON
See AUTHORED-ITEM

Package

org.shirakumo.feeder.

Methods
Reader Method: contributors ((authored-item authored-item))

automatically generated reader method

Source

protocol.lisp.

Target Slot

contributors.

Generic Writer: (setf contributors) (object)
Package

org.shirakumo.feeder.

Methods
Writer Method: (setf contributors) ((authored-item authored-item))

automatically generated writer method

Source

protocol.lisp.

Target Slot

contributors.

Generic Reader: email (object)

Accessor to the email address of the person.

No address validation is performed.

See PERSON

Package

org.shirakumo.feeder.

Methods
Reader Method: email ((person person))

automatically generated reader method

Source

protocol.lisp.

Target Slot

email.

Generic Writer: (setf email) (object)
Package

org.shirakumo.feeder.

Methods
Writer Method: (setf email) ((person person))

automatically generated writer method

Source

protocol.lisp.

Target Slot

email.

Generic Reader: generator (object)

Accessor to the generator that created this feed.

See GENERATOR (type)
See FEED

Package

org.shirakumo.feeder.

Methods
Reader Method: generator ((feed feed))

automatically generated reader method

Source

protocol.lisp.

Target Slot

generator.

Generic Writer: (setf generator) (object)
Package

org.shirakumo.feeder.

Methods
Writer Method: (setf generator) ((feed feed))

automatically generated writer method

Source

protocol.lisp.

Target Slot

generator.

Generic Reader: id (object)

Accessor to the unique ID of the item.

This should either be a value that can be PRINCed to obtain a string representation of the unique identifier, or a LINK.

See LINK (type)
See AUTHORED-ITEM

Package

org.shirakumo.feeder.

Methods
Reader Method: id ((authored-item authored-item))

automatically generated reader method

Source

protocol.lisp.

Target Slot

id.

Generic Writer: (setf id) (object)
Package

org.shirakumo.feeder.

Methods
Writer Method: (setf id) ((authored-item authored-item))

automatically generated writer method

Source

protocol.lisp.

Target Slot

id.

Generic Function: instance-for-type (type format)

Returns an appropriate instance for the requested type under the specified format.

By default this constructs an empty (all slots set to NIL) instance
using the given type as a class name.

See FORMAT

Package

org.shirakumo.feeder.

Source

protocol.lisp.

Methods
Method: instance-for-type (type (format format))
Generic Reader: language (object)

Accessor to the language of the item

This should be a two or three letter code name of the language in which the item’s content is written, though no validation to this effect is performed.

See LINK (type)
See AUTHORED-ITEM

Package

org.shirakumo.feeder.

Methods
Reader Method: language ((authored-item authored-item))

automatically generated reader method

Source

protocol.lisp.

Target Slot

language.

Reader Method: language ((link link))

automatically generated reader method

Source

protocol.lisp.

Target Slot

language.

Generic Writer: (setf language) (object)
Package

org.shirakumo.feeder.

Methods
Writer Method: (setf language) ((authored-item authored-item))

automatically generated writer method

Source

protocol.lisp.

Target Slot

language.

Writer Method: (setf language) ((link link))

automatically generated writer method

Source

protocol.lisp.

Target Slot

language.

Accessor to the link of the item.

See LINK (type)
See REMOTE-ITEM

Package

org.shirakumo.feeder.

Methods

automatically generated reader method

Source

protocol.lisp.

Target Slot

link.

Package

org.shirakumo.feeder.

Methods

automatically generated writer method

Source

protocol.lisp.

Target Slot

link.

Accessor to the logo for the feed

This should be a LINK

See FEED

Package

org.shirakumo.feeder.

Methods
Reader Method: logo ((feed feed))

automatically generated reader method

Source

protocol.lisp.

Target Slot

logo.

Generic Writer: (setf logo) (object)
Package

org.shirakumo.feeder.

Methods
Writer Method: (setf logo) ((feed feed))

automatically generated writer method

Source

protocol.lisp.

Target Slot

logo.

Generic Reader: name (object)

Accessor to the name of the item.

See PERSON
See GENERATOR (type)

Package

org.shirakumo.feeder.

Methods
Reader Method: name ((generator generator))

automatically generated reader method

Source

protocol.lisp.

Target Slot

name.

Reader Method: name ((person person))

automatically generated reader method

Source

protocol.lisp.

Target Slot

name.

Generic Writer: (setf name) (object)
Package

org.shirakumo.feeder.

Methods
Writer Method: (setf name) ((generator generator))

automatically generated writer method

Source

protocol.lisp.

Target Slot

name.

Writer Method: (setf name) ((person person))

automatically generated writer method

Source

protocol.lisp.

Target Slot

name.

Generic Function: parse-feed (source format)

Parses the given source into standardised feed objects according to the specified format.

If FORMAT is T, the format is determined automatically depending on
the source’s contents.

Returns a list of FEED instances.

This function should construct the appropriate base object and then
call PARSE-TO.

See FEED
See FORMAT

Package

org.shirakumo.feeder.

Source

protocol.lisp.

Methods
Method: parse-feed ((source root) (format atom))
Source

atom.lisp.

Method: parse-feed ((source root) (format rss))
Source

rss.lisp.

Method: parse-feed (source (format (eql t)))
Method: parse-feed (source (format xml-format))
Method: parse-feed (source (format symbol))
Generic Function: parse-to (target thing format)

Fills the target with content from thing according to format.

This is used internally in the parsing process.

See FORMAT

Package

org.shirakumo.feeder.

Source

protocol.lisp.

Methods
Method: parse-to ((feed feed) (node element) (format atom))
Source

atom.lisp.

Method: parse-to ((entry entry) (node element) (format atom))
Source

atom.lisp.

Method: parse-to ((item authored-item) (node element) (format atom))
Source

atom.lisp.

Method: parse-to ((generator generator) (node element) (format atom))
Source

atom.lisp.

Method: parse-to ((person person) (node element) (format atom))
Source

atom.lisp.

Method: parse-to ((link link) (node element) (format atom))
Source

atom.lisp.

Method: parse-to ((date (eql org.shirakumo.feeder::date)) (node element) (format atom))
Source

atom.lisp.

Method: parse-to ((feed feed) (node element) (format rss))
Source

rss.lisp.

Method: parse-to ((entry entry) (node element) (format rss))
Source

rss.lisp.

Method: parse-to ((item authored-item) (node element) (format rss))
Source

rss.lisp.

Method: parse-to ((generator generator) (node element) (format rss))
Source

rss.lisp.

Method: parse-to ((person person) (node element) (format rss))
Source

rss.lisp.

Method: parse-to ((link link) (node element) (format rss))
Source

rss.lisp.

Method: parse-to ((html (eql org.shirakumo.feeder::html)) (node element) (format rss))
Source

rss.lisp.

Method: parse-to ((date (eql org.shirakumo.feeder::date)) (node element) (format rss))
Source

rss.lisp.

Method: parse-to ((name symbol) thing format)
Generic Reader: published-on (object)

Accessor to the date on which this item was first published.

The date should be a LOCAL-TIME:TIMESTAMP

See LOCAL-TIME:TIMESTAMP
See AUTHORED-ITEM

Package

org.shirakumo.feeder.

Methods
Reader Method: published-on ((authored-item authored-item))

automatically generated reader method

Source

protocol.lisp.

Target Slot

published-on.

Generic Writer: (setf published-on) (object)
Package

org.shirakumo.feeder.

Methods
Writer Method: (setf published-on) ((authored-item authored-item))

automatically generated writer method

Source

protocol.lisp.

Target Slot

published-on.

Generic Reader: relation (object)

Accessor to the relation of the link.

The following values are typically recognised:

- "alternate"
- "related"
- "self"
- "enclosure"
- "via"

See RFC4287 for more information.

See LINK (type)

Package

org.shirakumo.feeder.

Methods
Reader Method: relation ((link link))

automatically generated reader method

Source

protocol.lisp.

Target Slot

relation.

Generic Writer: (setf relation) (object)
Package

org.shirakumo.feeder.

Methods
Writer Method: (setf relation) ((link link))

automatically generated writer method

Source

protocol.lisp.

Target Slot

relation.

Generic Reader: rights (object)

Accessor to copyright information relating to the item.

This may be a plaintext string or a PLUMP:NODE

See AUTHORED-ITEM

Package

org.shirakumo.feeder.

Methods
Reader Method: rights ((authored-item authored-item))

automatically generated reader method

Source

protocol.lisp.

Target Slot

rights.

Generic Writer: (setf rights) (object)
Package

org.shirakumo.feeder.

Methods
Writer Method: (setf rights) ((authored-item authored-item))

automatically generated writer method

Source

protocol.lisp.

Target Slot

rights.

Generic Function: serialize-feed (feed format)

Turns the given feed into the specified format.

Returns the encoded feed.

For XML-FORMATs this will be a PLUMP:NODE

This function should construct the appropriate base object and then call SERIALIZE-TO.

See PLUMP:NODE
See XML-FORMAT
See FORMAT

Package

org.shirakumo.feeder.

Source

protocol.lisp.

Methods
Method: serialize-feed ((feed feed) (format xml-format))
Method: serialize-feed (feed (format symbol))
Generic Function: serialize-to (target thing format)

Fills the target with content from thing according to format.

This is used internally in the serialisation process.

See FORMAT

Package

org.shirakumo.feeder.

Source

protocol.lisp.

Methods
Method: serialize-to ((target nesting-node) (feed feed) (format atom))
Source

atom.lisp.

Method: serialize-to ((target nesting-node) (entry entry) (format atom))
Source

atom.lisp.

Method: serialize-to ((target nesting-node) (item authored-item) (format atom))
Source

atom.lisp.

Method: serialize-to ((target nesting-node) (node node) (format atom))
Source

atom.lisp.

Method: serialize-to ((target nesting-node) (string string) (format atom))
Source

atom.lisp.

Method: serialize-to ((target nesting-node) (link link) (format atom))
Source

atom.lisp.

Method: serialize-to ((target nesting-node) (generator generator) (format atom))
Source

atom.lisp.

Method: serialize-to ((target nesting-node) (person person) (format atom))
Source

atom.lisp.

Method: serialize-to ((target nesting-node) (date timestamp) (format atom))
Source

atom.lisp.

Method: serialize-to ((target nesting-node) (feed feed) (format rss))
Source

rss.lisp.

Method: serialize-to ((target nesting-node) (entry entry) (format rss))
Source

rss.lisp.

Method: serialize-to ((target nesting-node) (item authored-item) (format rss))
Source

rss.lisp.

Method: serialize-to ((target element) (person person) (format rss))
Source

rss.lisp.

Method: serialize-to ((target nesting-node) (date timestamp) (format rss))
Source

rss.lisp.

Generic Reader: source (object)

Accessor to the source of this item.

This is used if the entry is aggregated from elsewhere.

Should be a LINK.

see LINK (type)
See ENTRY

Package

org.shirakumo.feeder.

Methods
Reader Method: source ((entry entry))

automatically generated reader method

Source

protocol.lisp.

Target Slot

source.

Generic Writer: (setf source) (object)
Package

org.shirakumo.feeder.

Methods
Writer Method: (setf source) ((entry entry))

automatically generated writer method

Source

protocol.lisp.

Target Slot

source.

Generic Function: source-has-format-p (source format)

Returns T if the given source is encoded in the given format

See FORMAT

Package

org.shirakumo.feeder.

Source

protocol.lisp.

Methods
Method: source-has-format-p ((source root) (format atom))
Source

atom.lisp.

Method: source-has-format-p ((source root) (format rss))
Source

rss.lisp.

Method: source-has-format-p (source (format xml-format))
Method: source-has-format-p (source (format symbol))
Generic Reader: summary (object)

Accessor to the summary describing the item in short.

This may be a plaintext string or a PLUMP:NODE

In absence of a CONTENT value, it may also represent the full content.

See AUTHORED-ITEM

Package

org.shirakumo.feeder.

Methods
Reader Method: summary ((authored-item authored-item))

automatically generated reader method

Source

protocol.lisp.

Target Slot

summary.

Generic Writer: (setf summary) (object)
Package

org.shirakumo.feeder.

Methods
Writer Method: (setf summary) ((authored-item authored-item))

automatically generated writer method

Source

protocol.lisp.

Target Slot

summary.

Generic Reader: title (object)

Accessor to the title of the item

This may be a plaintext string or a PLUMP:NODE

See LINK (type)
See AUTHORED-ITEM
See PLUMP:NODE

Package

org.shirakumo.feeder.

Methods
Reader Method: title ((authored-item authored-item))

automatically generated reader method

Source

protocol.lisp.

Target Slot

title.

Reader Method: title ((link link))

automatically generated reader method

Source

protocol.lisp.

Target Slot

title.

Generic Writer: (setf title) (object)
Package

org.shirakumo.feeder.

Methods
Writer Method: (setf title) ((authored-item authored-item))

automatically generated writer method

Source

protocol.lisp.

Target Slot

title.

Writer Method: (setf title) ((link link))

automatically generated writer method

Source

protocol.lisp.

Target Slot

title.

Generic Reader: updated-on (object)

Accessor to the date on which this item was last updated.

The date should be a LOCAL-TIME:TIMESTAMP

See LOCAL-TIME:TIMESTAMP
See AUTHORED-ITEM

Package

org.shirakumo.feeder.

Methods
Reader Method: updated-on ((authored-item authored-item))

automatically generated reader method

Source

protocol.lisp.

Target Slot

updated-on.

Generic Writer: (setf updated-on) (object)
Package

org.shirakumo.feeder.

Methods
Writer Method: (setf updated-on) ((authored-item authored-item))

automatically generated writer method

Source

protocol.lisp.

Target Slot

updated-on.

Generic Function: url (item)

Accessor to the URL of a link or remote item.

The URL should be encoded as a string, and no URL validation is performed.

See LINK (type)
See REMOTE-ITEM

Package

org.shirakumo.feeder.

Methods
Method: url ((item authored-item))
Source

protocol.lisp.

Reader Method: url ((link link))

automatically generated reader method

Source

protocol.lisp.

Target Slot

url.

Method: url ((string string))
Source

protocol.lisp.

Method: url ((item remote-item))
Source

protocol.lisp.

Generic Writer: (setf url) (object)
Package

org.shirakumo.feeder.

Methods
Writer Method: (setf url) ((link link))

automatically generated writer method

Source

protocol.lisp.

Target Slot

url.

Generic Reader: version (object)

Accessor to the generator version.

See GENERATOR (type)

Package

org.shirakumo.feeder.

Methods
Reader Method: version ((generator generator))

automatically generated reader method

Source

protocol.lisp.

Target Slot

version.

Generic Writer: (setf version) (object)
Package

org.shirakumo.feeder.

Methods
Writer Method: (setf version) ((generator generator))

automatically generated writer method

Source

protocol.lisp.

Target Slot

version.

Generic Reader: webmaster (object)

Accessor to the webmaster responsible for this feed.

This should be a PERSON

See FEED

Package

org.shirakumo.feeder.

Methods
Reader Method: webmaster ((feed feed))

automatically generated reader method

Source

protocol.lisp.

Target Slot

webmaster.

Generic Writer: (setf webmaster) (object)
Package

org.shirakumo.feeder.

Methods
Writer Method: (setf webmaster) ((feed feed))

automatically generated writer method

Source

protocol.lisp.

Target Slot

webmaster.


5.1.4 Standalone methods

Method: print-object ((item authored-item) stream)
Source

protocol.lisp.

Method: print-object ((person person) stream)
Source

protocol.lisp.

Method: print-object ((link link) stream)
Source

protocol.lisp.

Method: print-object ((generator generator) stream)
Source

protocol.lisp.


5.1.5 Conditions

Condition: argument-missing

Error signalled when a required argument is missing.

This usually happens when you try to create an instance of an object but omitted an argument that is required to create a valid feed.

When this condition is signalled, the following restarts are available

- USE-VALUE
Requires an argument that is then used for the missing argument. - CONTINUE
Set the slot to NIL anyway.

See FEED-CONDITION

Package

org.shirakumo.feeder.

Source

toolkit.lisp.

Direct superclasses
Direct slots
Slot: argument
Initargs

:argument

Condition: feed-condition

Base condition for all feed related conditions.

See ARGUMENT-MISSING
See NIL-VALUE
See UNKNOWN-FORMAT
See UNKNOWN-ATOM-CONTENT-TYPE

Package

org.shirakumo.feeder.

Source

toolkit.lisp.

Direct superclasses

condition.

Direct subclasses
Condition: nil-value

Error signalled when a form returns NIL that should not be NIL.

This usually happens during feed serialisation when a slot is empty that is required to generate a valid feed.

When this condition is signalled, the following restarts are available

- USE-VALUE
Requires an argument that is then returned in place of the NIL.

See FEED-CONDITION

Package

org.shirakumo.feeder.

Source

toolkit.lisp.

Direct superclasses
Direct slots
Slot: form
Initargs

:form

Condition: unknown-atom-content-type

Error signalled on an unknown content type.

When this condition is signalled, the following restarts are available

- USE-TYPE
Requires an argument that specifies the alternate content-type to use.
- USE-VALUE
Requires an argument that specifies the content to use in its place.
- TREAT-AS-PLAINTEXT
Treats the content as plaintext and returns it.
- CONTINUE
Ignores the content and returns NIL

See FEED-CONDITION
See ATOM

Package

org.shirakumo.feeder.

Source

atom.lisp.

Direct superclasses
Direct methods

content-type.

Direct slots
Slot: content-type
Initargs

:content-type

Readers

content-type.

Writers

This slot is read-only.

Condition: unknown-format

Error signalled when the given feed source has an unknown format.

When this condition is signalled, the following restarts are available

- USE-VALUE
Requires an argument that designates the format to use.

See FEED-CONDITION
See PARSE-FEED

Package

org.shirakumo.feeder.

Source

toolkit.lisp.

Direct superclasses
Direct slots
Slot: source
Initargs

:source


5.1.6 Classes

Class: atom

Atom Feed Format

As defined in RFC4287 https://tools.ietf.org/html/rfc4287 .

As opposed to RSS, Atom is rather strict, and as such parsing of the feed data does not attempt to guess either. However, just as with RSS, parsing a feed should not signal an error.

See XML-FORMAT

Package

org.shirakumo.feeder.

Source

atom.lisp.

Direct superclasses

xml-format.

Direct methods
Class: authored-item

Representation of a basic feed item.

This is used as the base class for FEEDs and ENTRYs in a feed.

See REMOTE-ITEM
See ID
See CATEGORIES
See AUTHORS
See CONTRIBUTORS
See PUBLISHED-ON
See UPDATED-ON
See RIGHTS
See LANGUAGE
See LINK
See TITLE
See SUMMARY
See CONTENT

Package

org.shirakumo.feeder.

Source

protocol.lisp.

Direct superclasses

remote-item.

Direct subclasses
Direct methods
Direct slots
Slot: id
Initform

(org.shirakumo.feeder::arg! :id)

Initargs

:id

Readers

id.

Writers

(setf id).

Slot: categories
Initargs

:categories

Readers

categories.

Writers

(setf categories).

Slot: authors
Initargs

:authors

Readers

authors.

Writers

(setf authors).

Slot: contributors
Initargs

:contributors

Readers

contributors.

Writers

(setf contributors).

Slot: published-on
Initargs

:published-on

Readers

published-on.

Writers

(setf published-on).

Slot: updated-on
Initform

(local-time:now)

Initargs

:updated-on

Readers

updated-on.

Writers

(setf updated-on).

Slot: rights
Initargs

:rights

Readers

rights.

Writers

(setf rights).

Slot: language
Initargs

:language

Readers

language.

Writers

(setf language).

Initform

(org.shirakumo.feeder::arg! :link)

Slot: title
Initform

(org.shirakumo.feeder::arg! :title)

Initargs

:title

Readers

title.

Writers

(setf title).

Slot: summary
Initform

(org.shirakumo.feeder::arg! :summary)

Initargs

:summary

Readers

summary.

Writers

(setf summary).

Slot: content
Initargs

:content

Readers

content.

Writers

(setf content).

Class: entry

Representation of a feed item.

See AUTHORED-ITEM
See COMMENT-SECTION
See SOURCE

Package

org.shirakumo.feeder.

Source

protocol.lisp.

Direct superclasses

authored-item.

Direct methods
Direct slots
Slot: comment-section
Initargs

:comment-section

Readers

comment-section.

Writers

(setf comment-section).

Slot: source
Initargs

:source

Readers

source.

Writers

(setf source).

Class: feed

Representation of a syndication feed.

See AUTHORED-ITEM
See CACHE-TIME
See GENERATOR
See LOGO
See WEBMASTER

Package

org.shirakumo.feeder.

Source

protocol.lisp.

Direct superclasses

authored-item.

Direct methods
Direct slots
Slot: cache-time
Initargs

:cache-time

Readers

cache-time.

Writers

(setf cache-time).

Slot: generator
Initargs

:generator

Readers

generator.

Writers

(setf generator).

Slot: logo
Initargs

:logo

Readers

logo.

Writers

(setf logo).

Slot: webmaster
Initargs

:webmaster

Readers

webmaster.

Writers

(setf webmaster).

Class: format

Base class for an external format for a feed.

See SOURCE-HAS-FORMAT-P
See PARSE-FEED
See SERIALIZE-FEED
See PARSE-TO
See SERIALIZE-TO

Package

org.shirakumo.feeder.

Source

protocol.lisp.

Direct subclasses

xml-format.

Direct methods

instance-for-type.

Class: generator

Representation of a feed generator.

See REMOTE-ITEM
See NAME
See VERSION

Package

org.shirakumo.feeder.

Source

protocol.lisp.

Direct superclasses

remote-item.

Direct methods
Direct slots
Slot: name
Initform

(org.shirakumo.feeder::arg! :name)

Initargs

:name

Readers

name.

Writers

(setf name).

Slot: version
Initargs

:version

Readers

version.

Writers

(setf version).

Representation of a link to an external resource.

See URL
See RELATION
See CONTENT-TYPE
See LANGUAGE
See TITLE

Package

org.shirakumo.feeder.

Source

protocol.lisp.

Direct methods
Direct slots
Slot: url
Initform

(org.shirakumo.feeder::arg! :url)

Initargs

:url

Readers

url.

Writers

(setf url).

Slot: relation
Initargs

:relation

Readers

relation.

Writers

(setf relation).

Slot: content-type
Initargs

:content-type

Readers

content-type.

Writers

(setf content-type).

Slot: language
Initargs

:language

Readers

language.

Writers

(setf language).

Slot: title
Initargs

:title

Readers

title.

Writers

(setf title).

Class: person

Representation of a person.

See REMOTE-ITEM
See NAME
See EMAIL

Package

org.shirakumo.feeder.

Source

protocol.lisp.

Direct superclasses

remote-item.

Direct methods
Direct slots
Slot: name
Initform

(org.shirakumo.feeder::arg! :name)

Initargs

:name

Readers

name.

Writers

(setf name).

Slot: email
Initform

(org.shirakumo.feeder::arg! :email)

Initargs

:email

Readers

email.

Writers

(setf email).

Class: remote-item

An item representing a remote resource of some kind.

See LINK
See URL

Package

org.shirakumo.feeder.

Source

protocol.lisp.

Direct subclasses
Direct methods
Direct slots
Initargs

:link

Readers

link.

Writers

(setf link).

Class: rss

RSS 2.0 Feed Format

As defined in https://validator.w3.org/feed/docs/rss2.html with select extensions such as content:encoded.

RSS is a very "web" format, which is to say that the files claiming to be RSS that can be found out there all do not adhere to any strict specifications, or anything at all for that matter. This makes parsing and dealing with RSS a pain in the ass.

This parser performs a best-effort at parsing the content you hand it, and attempts to standardise and culminate certain features together as appropriate. It should not error when parsing a feed, but may miss or misinterpret certain values present in the raw feed data. For instance, of duplicated tags that should only exist once, only the last tag is actually preserved in the generated objects.

Serialising to RSS will follow the description as closely as possible without touching undefined parts.

See XML-FORMAT

Package

org.shirakumo.feeder.

Source

rss.lisp.

Direct superclasses

xml-format.

Direct methods
Class: xml-format

Base class for formats based on XML.

See FORMAT

Package

org.shirakumo.feeder.

Source

protocol.lisp.

Direct superclasses

format.

Direct subclasses
Direct methods

5.2 Internals


5.2.1 Macros

Macro: ! (form)
Package

org.shirakumo.feeder.

Source

toolkit.lisp.

Macro: set-attributes (element &body attributes)
Package

org.shirakumo.feeder.

Source

toolkit.lisp.

Macro: with-child ((name root tag-name) &body body)
Package

org.shirakumo.feeder.

Source

toolkit.lisp.


5.2.2 Ordinary functions

Function: arg! (argument)
Package

org.shirakumo.feeder.

Source

toolkit.lisp.

Function: ensure-attribute-name (thing)
Package

org.shirakumo.feeder.

Source

toolkit.lisp.

Function: ensure-string (content)
Package

org.shirakumo.feeder.

Source

toolkit.lisp.

Function: format-time (time format)
Package

org.shirakumo.feeder.

Source

toolkit.lisp.

Function: month-digit (month)
Package

org.shirakumo.feeder.

Source

toolkit.lisp.

Function: parse-atom-content (node &optional type)
Package

org.shirakumo.feeder.

Source

atom.lisp.

Function: parse-rfc3339-alike (text)
Package

org.shirakumo.feeder.

Source

toolkit.lisp.

Function: parse-rfc822-alike (text)
Package

org.shirakumo.feeder.

Source

toolkit.lisp.

Function: prefix-p (prefix string)
Package

org.shirakumo.feeder.

Source

toolkit.lisp.

Function: rfc3339-tz-offset (text)
Package

org.shirakumo.feeder.

Source

toolkit.lisp.

Function: rfc822-tz-offset (tz)
Package

org.shirakumo.feeder.

Source

toolkit.lisp.

Function: split (splitter string)
Package

org.shirakumo.feeder.

Source

toolkit.lisp.

Function: trim (string)
Package

org.shirakumo.feeder.

Source

toolkit.lisp.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   !   (  
A   C   E   F   G   I   L   M   N   P   R   S   T   U   V   W  
Index Entry  Section

!
!: Private macros

(
(setf authors): Public generic functions
(setf authors): Public generic functions
(setf cache-time): Public generic functions
(setf cache-time): Public generic functions
(setf categories): Public generic functions
(setf categories): Public generic functions
(setf comment-section): Public generic functions
(setf comment-section): Public generic functions
(setf content): Public generic functions
(setf content): Public generic functions
(setf content-type): Public generic functions
(setf content-type): Public generic functions
(setf contributors): Public generic functions
(setf contributors): Public generic functions
(setf email): Public generic functions
(setf email): Public generic functions
(setf generator): Public generic functions
(setf generator): Public generic functions
(setf id): Public generic functions
(setf id): Public generic functions
(setf language): Public generic functions
(setf language): Public generic functions
(setf language): Public generic functions
(setf link): Public generic functions
(setf link): Public generic functions
(setf logo): Public generic functions
(setf logo): Public generic functions
(setf name): Public generic functions
(setf name): Public generic functions
(setf name): Public generic functions
(setf published-on): Public generic functions
(setf published-on): Public generic functions
(setf relation): Public generic functions
(setf relation): Public generic functions
(setf rights): Public generic functions
(setf rights): Public generic functions
(setf source): Public generic functions
(setf source): Public generic functions
(setf summary): Public generic functions
(setf summary): Public generic functions
(setf title): Public generic functions
(setf title): Public generic functions
(setf title): Public generic functions
(setf updated-on): Public generic functions
(setf updated-on): Public generic functions
(setf url): Public generic functions
(setf url): Public generic functions
(setf version): Public generic functions
(setf version): Public generic functions
(setf webmaster): Public generic functions
(setf webmaster): Public generic functions

A
arg!: Private ordinary functions
authors: Public generic functions
authors: Public generic functions

C
cache-time: Public generic functions
cache-time: Public generic functions
categories: Public generic functions
categories: Public generic functions
comment-section: Public generic functions
comment-section: Public generic functions
content: Public generic functions
content: Public generic functions
content-type: Public generic functions
content-type: Public generic functions
content-type: Public generic functions
contributors: Public generic functions
contributors: Public generic functions

E
email: Public generic functions
email: Public generic functions
ensure-attribute-name: Private ordinary functions
ensure-string: Private ordinary functions

F
format-time: Private ordinary functions
Function, arg!: Private ordinary functions
Function, ensure-attribute-name: Private ordinary functions
Function, ensure-string: Private ordinary functions
Function, format-time: Private ordinary functions
Function, month-digit: Private ordinary functions
Function, parse-atom-content: Private ordinary functions
Function, parse-rfc3339-alike: Private ordinary functions
Function, parse-rfc822-alike: Private ordinary functions
Function, prefix-p: Private ordinary functions
Function, rfc3339-tz-offset: Private ordinary functions
Function, rfc822-tz-offset: Private ordinary functions
Function, split: Private ordinary functions
Function, text: Public ordinary functions
Function, trim: Private ordinary functions

G
generator: Public generic functions
generator: Public generic functions
Generic Function, (setf authors): Public generic functions
Generic Function, (setf cache-time): Public generic functions
Generic Function, (setf categories): Public generic functions
Generic Function, (setf comment-section): Public generic functions
Generic Function, (setf content): Public generic functions
Generic Function, (setf content-type): Public generic functions
Generic Function, (setf contributors): Public generic functions
Generic Function, (setf email): Public generic functions
Generic Function, (setf generator): Public generic functions
Generic Function, (setf id): Public generic functions
Generic Function, (setf language): Public generic functions
Generic Function, (setf link): Public generic functions
Generic Function, (setf logo): Public generic functions
Generic Function, (setf name): Public generic functions
Generic Function, (setf published-on): Public generic functions
Generic Function, (setf relation): Public generic functions
Generic Function, (setf rights): Public generic functions
Generic Function, (setf source): Public generic functions
Generic Function, (setf summary): Public generic functions
Generic Function, (setf title): Public generic functions
Generic Function, (setf updated-on): Public generic functions
Generic Function, (setf url): Public generic functions
Generic Function, (setf version): Public generic functions
Generic Function, (setf webmaster): Public generic functions
Generic Function, authors: Public generic functions
Generic Function, cache-time: Public generic functions
Generic Function, categories: Public generic functions
Generic Function, comment-section: Public generic functions
Generic Function, content: Public generic functions
Generic Function, content-type: Public generic functions
Generic Function, contributors: Public generic functions
Generic Function, email: Public generic functions
Generic Function, generator: Public generic functions
Generic Function, id: Public generic functions
Generic Function, instance-for-type: Public generic functions
Generic Function, language: Public generic functions
Generic Function, link: Public generic functions
Generic Function, logo: Public generic functions
Generic Function, name: Public generic functions
Generic Function, parse-feed: Public generic functions
Generic Function, parse-to: Public generic functions
Generic Function, published-on: Public generic functions
Generic Function, relation: Public generic functions
Generic Function, rights: Public generic functions
Generic Function, serialize-feed: Public generic functions
Generic Function, serialize-to: Public generic functions
Generic Function, source: Public generic functions
Generic Function, source-has-format-p: Public generic functions
Generic Function, summary: Public generic functions
Generic Function, title: Public generic functions
Generic Function, updated-on: Public generic functions
Generic Function, url: Public generic functions
Generic Function, version: Public generic functions
Generic Function, webmaster: Public generic functions

I
id: Public generic functions
id: Public generic functions
instance-for-type: Public generic functions
instance-for-type: Public generic functions

L
language: Public generic functions
language: Public generic functions
language: Public generic functions
link: Public generic functions
link: Public generic functions
logo: Public generic functions
logo: Public generic functions

M
Macro, !: Private macros
Macro, make-element: Public macros
Macro, set-attributes: Private macros
Macro, with-child: Private macros
Macro, with-children: Public macros
make-element: Public macros
Method, (setf authors): Public generic functions
Method, (setf cache-time): Public generic functions
Method, (setf categories): Public generic functions
Method, (setf comment-section): Public generic functions
Method, (setf content): Public generic functions
Method, (setf content-type): Public generic functions
Method, (setf contributors): Public generic functions
Method, (setf email): Public generic functions
Method, (setf generator): Public generic functions
Method, (setf id): Public generic functions
Method, (setf language): Public generic functions
Method, (setf language): Public generic functions
Method, (setf link): Public generic functions
Method, (setf logo): Public generic functions
Method, (setf name): Public generic functions
Method, (setf name): Public generic functions
Method, (setf published-on): Public generic functions
Method, (setf relation): Public generic functions
Method, (setf rights): Public generic functions
Method, (setf source): Public generic functions
Method, (setf summary): Public generic functions
Method, (setf title): Public generic functions
Method, (setf title): Public generic functions
Method, (setf updated-on): Public generic functions
Method, (setf url): Public generic functions
Method, (setf version): Public generic functions
Method, (setf webmaster): Public generic functions
Method, authors: Public generic functions
Method, cache-time: Public generic functions
Method, categories: Public generic functions
Method, comment-section: Public generic functions
Method, content: Public generic functions
Method, content-type: Public generic functions
Method, content-type: Public generic functions
Method, contributors: Public generic functions
Method, email: Public generic functions
Method, generator: Public generic functions
Method, id: Public generic functions
Method, instance-for-type: Public generic functions
Method, language: Public generic functions
Method, language: Public generic functions
Method, link: Public generic functions
Method, logo: Public generic functions
Method, name: Public generic functions
Method, name: Public generic functions
Method, parse-feed: Public generic functions
Method, parse-feed: Public generic functions
Method, parse-feed: Public generic functions
Method, parse-feed: Public generic functions
Method, parse-feed: Public generic functions
Method, parse-to: Public generic functions
Method, parse-to: Public generic functions
Method, parse-to: Public generic functions
Method, parse-to: Public generic functions
Method, parse-to: Public generic functions
Method, parse-to: Public generic functions
Method, parse-to: Public generic functions
Method, parse-to: Public generic functions
Method, parse-to: Public generic functions
Method, parse-to: Public generic functions
Method, parse-to: Public generic functions
Method, parse-to: Public generic functions
Method, parse-to: Public generic functions
Method, parse-to: Public generic functions
Method, parse-to: Public generic functions
Method, parse-to: Public generic functions
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, published-on: Public generic functions
Method, relation: Public generic functions
Method, rights: Public generic functions
Method, serialize-feed: Public generic functions
Method, serialize-feed: Public generic functions
Method, serialize-to: Public generic functions
Method, serialize-to: Public generic functions
Method, serialize-to: Public generic functions
Method, serialize-to: Public generic functions
Method, serialize-to: Public generic functions
Method, serialize-to: Public generic functions
Method, serialize-to: Public generic functions
Method, serialize-to: Public generic functions
Method, serialize-to: Public generic functions
Method, serialize-to: Public generic functions
Method, serialize-to: Public generic functions
Method, serialize-to: Public generic functions
Method, serialize-to: Public generic functions
Method, serialize-to: Public generic functions
Method, source: Public generic functions
Method, source-has-format-p: Public generic functions
Method, source-has-format-p: Public generic functions
Method, source-has-format-p: Public generic functions
Method, source-has-format-p: Public generic functions
Method, summary: Public generic functions
Method, title: Public generic functions
Method, title: Public generic functions
Method, updated-on: Public generic functions
Method, url: Public generic functions
Method, url: Public generic functions
Method, url: Public generic functions
Method, url: Public generic functions
Method, version: Public generic functions
Method, webmaster: Public generic functions
month-digit: Private ordinary functions

N
name: Public generic functions
name: Public generic functions
name: Public generic functions

P
parse-atom-content: Private ordinary functions
parse-feed: Public generic functions
parse-feed: Public generic functions
parse-feed: Public generic functions
parse-feed: Public generic functions
parse-feed: Public generic functions
parse-feed: Public generic functions
parse-rfc3339-alike: Private ordinary functions
parse-rfc822-alike: Private ordinary functions
parse-to: Public generic functions
parse-to: Public generic functions
parse-to: Public generic functions
parse-to: Public generic functions
parse-to: Public generic functions
parse-to: Public generic functions
parse-to: Public generic functions
parse-to: Public generic functions
parse-to: Public generic functions
parse-to: Public generic functions
parse-to: Public generic functions
parse-to: Public generic functions
parse-to: Public generic functions
parse-to: Public generic functions
parse-to: Public generic functions
parse-to: Public generic functions
parse-to: Public generic functions
prefix-p: Private ordinary functions
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
published-on: Public generic functions
published-on: Public generic functions

R
relation: Public generic functions
relation: Public generic functions
rfc3339-tz-offset: Private ordinary functions
rfc822-tz-offset: Private ordinary functions
rights: Public generic functions
rights: Public generic functions

S
serialize-feed: Public generic functions
serialize-feed: Public generic functions
serialize-feed: Public generic functions
serialize-to: Public generic functions
serialize-to: Public generic functions
serialize-to: Public generic functions
serialize-to: Public generic functions
serialize-to: Public generic functions
serialize-to: Public generic functions
serialize-to: Public generic functions
serialize-to: Public generic functions
serialize-to: Public generic functions
serialize-to: Public generic functions
serialize-to: Public generic functions
serialize-to: Public generic functions
serialize-to: Public generic functions
serialize-to: Public generic functions
serialize-to: Public generic functions
set-attributes: Private macros
source: Public generic functions
source: Public generic functions
source-has-format-p: Public generic functions
source-has-format-p: Public generic functions
source-has-format-p: Public generic functions
source-has-format-p: Public generic functions
source-has-format-p: Public generic functions
split: Private ordinary functions
summary: Public generic functions
summary: Public generic functions

T
text: Public ordinary functions
title: Public generic functions
title: Public generic functions
title: Public generic functions
trim: Private ordinary functions

U
updated-on: Public generic functions
updated-on: Public generic functions
url: Public generic functions
url: Public generic functions
url: Public generic functions
url: Public generic functions
url: Public generic functions

V
version: Public generic functions
version: Public generic functions

W
webmaster: Public generic functions
webmaster: Public generic functions
with-child: Private macros
with-children: Public macros


A.3 Variables

Jump to:   A   C   E   F   G   I   L   N   P   R   S   T   U   V   W  
Index Entry  Section

A
argument: Public conditions
authors: Public classes

C
cache-time: Public classes
categories: Public classes
comment-section: Public classes
content: Public classes
content-type: Public conditions
content-type: Public classes
contributors: Public classes

E
email: Public classes

F
form: Public conditions

G
generator: Public classes

I
id: Public classes

L
language: Public classes
language: Public classes
link: Public classes
link: Public classes
logo: Public classes

N
name: Public classes
name: Public classes

P
published-on: Public classes

R
relation: Public classes
rights: Public classes

S
Slot, argument: Public conditions
Slot, authors: Public classes
Slot, cache-time: Public classes
Slot, categories: Public classes
Slot, comment-section: Public classes
Slot, content: Public classes
Slot, content-type: Public conditions
Slot, content-type: Public classes
Slot, contributors: Public classes
Slot, email: Public classes
Slot, form: Public conditions
Slot, generator: Public classes
Slot, id: Public classes
Slot, language: Public classes
Slot, language: Public classes
Slot, link: Public classes
Slot, link: Public classes
Slot, logo: Public classes
Slot, name: Public classes
Slot, name: Public classes
Slot, published-on: Public classes
Slot, relation: Public classes
Slot, rights: Public classes
Slot, source: Public conditions
Slot, source: Public classes
Slot, summary: Public classes
Slot, title: Public classes
Slot, title: Public classes
Slot, updated-on: Public classes
Slot, url: Public classes
Slot, version: Public classes
Slot, webmaster: Public classes
source: Public conditions
source: Public classes
summary: Public classes

T
title: Public classes
title: Public classes

U
updated-on: Public classes
url: Public classes

V
version: Public classes

W
webmaster: Public classes


A.4 Data types

Jump to:   A   C   D   E   F   G   L   N   O   P   R   S   T   U   X  
Index Entry  Section

A
argument-missing: Public conditions
atom: Public classes
atom.lisp: The feeder/atom․lisp file
authored-item: Public classes

C
Class, atom: Public classes
Class, authored-item: Public classes
Class, entry: Public classes
Class, feed: Public classes
Class, format: Public classes
Class, generator: Public classes
Class, link: Public classes
Class, person: Public classes
Class, remote-item: Public classes
Class, rss: Public classes
Class, xml-format: Public classes
Condition, argument-missing: Public conditions
Condition, feed-condition: Public conditions
Condition, nil-value: Public conditions
Condition, unknown-atom-content-type: Public conditions
Condition, unknown-format: Public conditions

D
documentation.lisp: The feeder/documentation․lisp file

E
entry: Public classes

F
feed: Public classes
feed-condition: Public conditions
feeder: The feeder system
feeder.asd: The feeder/feeder․asd file
File, atom.lisp: The feeder/atom․lisp file
File, documentation.lisp: The feeder/documentation․lisp file
File, feeder.asd: The feeder/feeder․asd file
File, package.lisp: The feeder/package․lisp file
File, protocol.lisp: The feeder/protocol․lisp file
File, rss.lisp: The feeder/rss․lisp file
File, toolkit.lisp: The feeder/toolkit․lisp file
format: Public classes

G
generator: Public classes

L
link: Public classes

N
nil-value: Public conditions

O
org.shirakumo.feeder: The org․shirakumo․feeder package

P
Package, org.shirakumo.feeder: The org․shirakumo․feeder package
package.lisp: The feeder/package․lisp file
person: Public classes
protocol.lisp: The feeder/protocol․lisp file

R
remote-item: Public classes
rss: Public classes
rss.lisp: The feeder/rss․lisp file

S
System, feeder: The feeder system

T
toolkit.lisp: The feeder/toolkit․lisp file

U
unknown-atom-content-type: Public conditions
unknown-format: Public conditions

X
xml-format: Public classes