Syndication Library
Classes | |
class | AbstractParser |
class | Category |
class | DataRetriever |
class | DocumentSource |
class | DocumentVisitor |
class | ElementWrapper |
class | Enclosure |
class | Feed |
class | FileRetriever |
class | Image |
class | Item |
class | Loader |
class | Mapper |
class | OutputRetriever |
class | ParserCollection |
class | Person |
class | SpecificDocument |
class | SpecificItem |
class | SpecificItemVisitor |
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) |
static time_t | toTimeT (KDateTime &kdt) |
QString | xhtmlNamespace () |
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 54 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:
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 59 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
Documentation copyright © 1996-2013 The KDE developers.
Generated on Sat Jul 13 2013 01:26:15 by doxygen 1.8.3.1 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.