You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ktorrent/plugins/rssfeed/rss/document.h

237 lines
6.4 KiB

/*
* document.h
*
* Copyright (c) 2001, 2002, 2003 Frerich Raabe <raabe@kde.org>
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. For licensing and distribution details, check the
* accompanying file 'COPYING'.
*/
#ifndef LIBRSS_DOCUMENT_H
#define LIBRSS_DOCUMENT_H
#include "article.h"
#include "global.h"
class TQDateTime;
class TQDomDocument;
namespace RSS
{
class Image;
class TextInput;
/**
* Represents a RSS document and provides all the features and properties
* as stored in it. You usually don't need to instantiate this one yourself
* but rather use Loader::loadFrom() to produce a Document object.
* @see Loader::loadForm()
*/
class Document
{
public:
/**
* Default constructor.
*/
Document();
/**
* Copy constructor.
* @param other The Document object to copy.
*/
Document(const Document &other);
/**
* Constructs a Document from a piece of XML markup.
*/
Document(const TQDomDocument &doc);
/**
* Assignment operator.
* @param other The Document object to clone.
* @return A reference to the cloned Document object.
*/
Document &operator=(const Document &other);
/**
* Destructor.
*/
~Document();
/**
* @return If document is valid
*/
bool isValid() const;
/**
* @return The version of this document (one of the values of the
* enum RSS::Version). This value can be used to determine which
* features this RSS document provides.
* @see verbVersion()
*/
Version version() const;
/**
* Convenience method. Differs from version() only in how the result
* is returned.
* @return A TQString representing the verbose version of the
* document.
* @see version()
*/
TQString verbVersion() const;
/**
* RSS 0.90 and upwards
* @return The title of the RSS document, or TQString() if no
* title was available. This is often the name of the news source
* from which the RSS document was retrieved.
*/
TQString title() const;
/**
* RSS 0.90 and upwards
* @return The description of the RSS document, or TQString()
* if no description was available. This is usually a short slogan
* or description of the news source from which the RSS document
* was retrieved.
*/
TQString description() const;
/**
* RSS 0.90 and upwards
* @return A link pointing to some website, or an empty KURL if no
* link was available. This URL mostly points to the homepage of
* the news site from which the RSS document was retrieved.
* Note that the RSS 0.91 Specification dictates that URLs not
* starting with "http://" or "ftp://" are considered invalid.
*/
const KURL &link() const;
/**
* RSS 0.90 and upwards
* @return An Image object as stored in the RSS document, or a
* null pointer if there was no image available.
* @see Image
*/
Image *image();
/**
* A version of the method above, with stricter const-ness.
*/
const Image *image() const;
/**
* RSS 0.90 and upwards
* @return A TextInput object as stored in the RSS document, or a
* null pointer if there was no text input available.
* @see TextInput
*/
TextInput *textInput();
/**
* A version of the method above, with stricter const-ness.
*/
const TextInput *textInput() const;
/**
* RSS 0.90 and upwards
* @return A list of Article objects as stored in the RSS document,
* or a null pointer if there were no articles available. Every RSS
* DTD requires that there is at least one article defined, so a
* null pointer indicates an invalid RSS file!
* @see Article
*/
const Article::List &articles() const;
/**
* RSS 0.91 and upwards
* @return The language used in the RSS document (for the article
* headlines etc.). This was originally introduced to assist with
* determining the correct page encoding but acts as a solely
* optional information in this library since you don't have to care
* about the encoding as Unicode is used in the whole library.
* @see RSS::Language
*/
Language language() const;
/**
* RSS 0.91 and upwards
* @return A copyright of the information contained in the RSS
* document, or TQString() if no copyright is available.
*/
TQString copyright() const;
/**
* RSS 0.91 and upwards
* @return The date when the RSS document was published.
*/
const TQDateTime &pubDate() const;
/**
* RSS 0.91 and upwards.
* @return The last time the channel was modified.
*/
const TQDateTime &lastBuildDate() const;
/**
* RSS 0.91 and upwards
* @return A <a href="http://www.w3.org/PICS/#Specs">PICS</a>
* rating for this page.
*/
TQString rating() const;
/**
* RSS 0.91 and upwards
* @return This tag should contain either a URL that references a
* description of the channel, or a pointer to the documentation
* for the format used in the RSS file.
*/
const KURL &docs() const;
/**
* RSS 0.91 and upwards
* @return The email address of the managing editor of the site,
* the person to contact for editorial inquiries. The suggested
* format for email addresses in RSS documents is
* bull@mancuso.com (Bull Mancuso).
* @see webMaster()
*/
TQString managingEditor() const;
/**
* RSS 0.91 and upwards
* @return The email address of the webmaster for the site, the
* person to contact if there are technical problems with the
* channel, or TQString() if this information isn't available.
* @see managingEditor()
*/
TQString webMaster() const;
/**
* RSS 0.91 and upwards
* @return A list of hours indicating the hours in the day, GMT,
* when the channel is unlikely to be updated. If this item is
* omitted, the channel is assumed to be updated hourly. Each
* hour should be an integer value between 0 and 23.
* @see skipDays()
*/
const HourList &skipHours() const;
/**
* RSS 0.91 and upwards
* @return A list of <day>s of the week, in English, indicating
* the days of the week when the RSS document will not be updated.
* @see skipHours(), DayList, Day
*/
const DayList &skipDays() const;
int ttl() const;
private:
struct Private;
Private *d;
};
}
#endif // LIBRSS_DOCUMENT_H