Syndication Namespace Reference
TODO. More...
Classes | |
class | AbstractParser |
Interface for all parsers. More... | |
class | Category |
A category for categorizing items or whole feeds. More... | |
class | DataRetriever |
Abstract baseclass for all data retriever classes. More... | |
class | DocumentSource |
Represents the source of a syndication document, as read from the downloaded file. More... | |
class | DocumentVisitor |
Visitor interface, following the Visitor design pattern. More... | |
class | ElementWrapper |
A wrapper for XML elements. More... | |
class | Enclosure |
An enclosure describes a (media) file available on the net. More... | |
class | Feed |
This class represents a feed document ("Channel" in RSS, "Feed" in Atom). More... | |
class | FileRetriever |
Implements a file retriever, to be used with Loader::loadFrom(). More... | |
class | Image |
This class represents an image file on the web. More... | |
class | Item |
An item from a news feed. More... | |
class | Loader |
This class is the preferred way of loading feed sources. More... | |
class | Mapper |
A mapper maps an SpecificDocument to something else. More... | |
class | OutputRetriever |
Implements a data retriever which executes a program and stores returned by the program on stdout. More... | |
class | ParserCollection |
A collection of format-specific parser implementations. More... | |
class | Person |
Person objects hold information about a person, such as the author of the content syndicated in the feed. More... | |
class | SpecificDocument |
Document interface for format-specific feed documents as parsed from a document source (see DocumentSource). More... | |
class | SpecificItem |
Interface for all format-specific item-like classes, such as RSS2/RDF items, and Atom entries. More... | |
class | SpecificItemVisitor |
Visitor interface, following the Visitor design pattern. More... | |
Typedefs | |
typedef boost::shared_ptr < Category > | CategoryPtr |
Enumerations | |
enum | DateFormat { ISODate, RFCDate } |
enum | ErrorCode { Success = 0, Aborted = 1, Timeout = 2, UnknownHost = 3, FileNotFound = 4, OtherRetrieverError = 5, InvalidXml = 6, XmlNotAccepted = 7, InvalidFormat = 8 } |
Functions | |
unsigned int | calcHash (const QString &str) |
unsigned int | calcHash (const QByteArray &array) |
QString | calcMD5Sum (const QString &str) |
QString | commentApiNamespace () |
QString | contentNameSpace () |
QString | convertNewlines (const QString &str) |
QString | dateTimeToString (time_t date) |
QString | dublinCoreNamespace () |
QString | escapeSpecialCharacters (const QString &str) |
QString | htmlToPlainText (const QString &html) |
bool | isHtml (const QString &str) |
QString | itunesNamespace () |
QString | normalize (const QString &str) |
QString | normalize (const QString &str, bool isCDATA, bool containsMarkup) |
FeedPtr | parse (const DocumentSource &src, const QString &formatHint=QString()) |
time_t | parseDate (const QString &str, DateFormat hint=RFCDate) |
time_t | parseISODate (const QString &str) |
ParserCollection< Feed > * | parserCollection () |
time_t | parseRFCDate (const QString &str) |
PersonPtr | personFromString (const QString &str) |
QString | plainTextToHtml (const QString &plainText) |
QString | resolveEntities (const QString &str) |
QString | slashNamespace () |
bool | stringContainsMarkup (const QString &str) |
QString | xhtmlNamespace () |
builddir build BUILD kdepimlibs syndication constants cpp QString | xmlNamespace () |
Variables | |
KMD5 | md5Machine |
static ParserCollectionImpl < Syndication::Feed > * | parserColl = 0 |
Detailed Description
TODO.
Enumeration Type Documentation
error code indicating fetching or parsing errors
- Enumerator:
Success No error occurred, feed was fetched and parsed successfully.
Aborted file downloading/parsing was aborted by the user
Timeout file download timed out
UnknownHost The hostname couldn't get resolved to an IP address.
FileNotFound the host was contacted successfully, but reported a 404 error
OtherRetrieverError retriever error not covered by the error codes above.
This is returned if a custom DataRetriever was used. See the retriever-specific status byte for more information on the occurred error.
InvalidXml The XML is invalid.
This is returned if no parser accepts the source and the DOM document can't be parsed. It is not returned if the source is not valid XML but a (non-XML) parser accepts it.
XmlNotAccepted The source is valid XML, but no parser accepted it.
InvalidFormat the source was accepted by a parser, but the actual parsing failed.
As our parser implementations currently do not validate the source ("parse what you can get"), this code will be rarely seen.
Function Documentation
unsigned int Syndication::calcHash | ( | const QString & | str | ) |
unsigned int Syndication::calcHash | ( | const QByteArray & | array | ) |
QString Syndication::calcMD5Sum | ( | const QString & | str | ) |
QString Syndication::commentApiNamespace | ( | ) |
wellformedweb.org's RSS namespace for comment functionality "http://wellformedweb.org/CommentAPI/"
Definition at line 55 of file constants.cpp.
QString Syndication::convertNewlines | ( | const QString & | str | ) |
QString Syndication::dateTimeToString | ( | time_t | date | ) |
QString Syndication::escapeSpecialCharacters | ( | const QString & | str | ) |
QString Syndication::htmlToPlainText | ( | const QString & | html | ) |
bool Syndication::isHtml | ( | const QString & | str | ) |
QString Syndication::normalize | ( | const QString & | str | ) |
Ensures HTML formatting for a string.
guesses via isHtml() if str
contains HTML or plain text, and returns plainTextToHtml(str) if it thinks it is plain text, or the unmodified str
otherwise.
- Parameters:
-
str a string with unknown content
- Returns:
- string as HTML (as long as the heuristics work)
QString Syndication::normalize | ( | const QString & | str, |
bool | isCDATA, | ||
bool | containsMarkup | ||
) |
normalizes a string based on feed-wide properties of tag content.
It is based on the assumption that all items in a feed encode their title/description content in the same way (CDATA or not, plain text vs. HTML). isCDATA and containsMarkup are determined once by the feed, and then passed to this method.
The returned string contains HTML, with special characters <, >, &, ", and ' escaped, and all other entities resolved. Whitespace is collapsed, relevant whitespace is replaced by respective HTML tags (<br/>).
- Parameters:
-
str a string isCDATA whether the feed uses CDATA for the tag str
was read fromcontainsMarkup whether the feed uses HTML markup in the tag str
was read from.
- Returns:
- string as HTML (as long as the heuristics work)
FeedPtr Syndication::parse | ( | const DocumentSource & | src, |
const QString & | formatHint = QString() |
||
) |
parses a document from a source and returns a new Feed object wrapping the feed content.
Shortcut for parserCollection()->parse(). See ParserCollection::parse() for more details.
- Parameters:
-
src the document source to parse formatHint an optional hint which format to test first
Definition at line 69 of file global.cpp.
time_t Syndication::parseDate | ( | const QString & | str, |
DateFormat | hint = RFCDate |
||
) |
parses a date string in ISO (see parseISODate()) or RFC 822 (see parseRFCDate()) format.
It tries both parsers and returns the first valid parsing result found (or 0 otherwise). To speed up parsing, you can give a hint which format you expect. The method will try the corresponding parser first then.
- Parameters:
-
str a date string hint the expected format
- Returns:
- parsed date in seconds since epoch, 0 if no date could be parsed from the string.
time_t Syndication::parseISODate | ( | const QString & | str | ) |
parses a date string in ISO 8601 extended format.
(date: "2003-12-13",datetime: "2003-12-13T18:30:02.25", datetime with timezone: "2003-12-13T18:30:02.25+01:00")
- Parameters:
-
str a string in ISO 8601 format
- Returns:
- parsed date in seconds since epoch, 0 if no date could be parsed from the string.
ParserCollection< Feed > * Syndication::parserCollection | ( | ) |
The default ParserCollection instance parsing a DocumentSource into a Feed object.
Use this to parse a local file or a otherwise manually created DocumentSource object.
To retrieve a feed from the web, use Loader instead.
Example code:
... QFile someFile(somePath); ... DocumentSource src(someFile.readAll()); someFile.close(); FeedPtr feed = parserCollection()->parse(src); if (feed) { QString title = feed->title(); QList<ItemPtr> items = feed->items(); ... }
Definition at line 55 of file global.cpp.
time_t Syndication::parseRFCDate | ( | const QString & | str | ) |
PersonPtr Syndication::personFromString | ( | const QString & | str | ) |
Parses a person object from a string by identifying name and email address in the string.
Currently detected variants are: "foo@bar.com", "Foo", "Foo <foo@bar.com>", "foo@bar.com (Foo)".
- Parameters:
-
str the string to parse the person from.
- Returns:
- a Person object containing the parsed information.
QString Syndication::plainTextToHtml | ( | const QString & | plainText | ) |
QString Syndication::resolveEntities | ( | const QString & | str | ) |
QString Syndication::slashNamespace | ( | ) |
"slash" namespace http://purl.org/rss/1.0/modules/slash/
Definition at line 60 of file constants.cpp.
bool Syndication::stringContainsMarkup | ( | const QString & | str | ) |
guesses whether a string contains (HTML) markup or not.
This implements not an exact check for valid HTML markup, but a simple (and relatively fast) heuristic.
- Parameters:
-
str the string that might or might not contain markup
- Returns:
true
if the heuristic thinks it contains markup,false
if thinks it is markup-free plain text