RSS

Author: Arvid Norberg, arvid@rasterbar.com
Version: 1.0.0

feed_item

Declared in "libtorrent/rss.hpp"

represents one item from an RSS feed. Specifically a feed of torrents.

struct feed_item
{
   feed_item ();
   ~feed_item ();

   std::string url;
   std::string uuid;
   std::string title;
   std::string description;
   std::string comment;
   std::string category;
   size_type size;
   torrent_handle handle;
   sha1_hash info_hash;
};
url uuid title description comment category
these are self explanatory and may be empty if the feed does not specify those fields.
size
the total size of the content the torrent refers to, or -1 if no size was specified by the feed.
handle
the handle to the torrent, if the session is already downloading this torrent.
info_hash
the info-hash of the torrent, or cleared (i.e. all zeroes) if the feed does not specify the info-hash.

feed_settings

Declared in "libtorrent/rss.hpp"

the feed_settings object is all the information and configuration for a specific feed. All of these settings can be changed by the user after adding the feed

struct feed_settings
{
   feed_settings ();

   std::string url;
   bool auto_download;
   bool auto_map_handles;
   int default_ttl;
   add_torrent_params add_args;
};
auto_download
By default auto_download is true, which means all torrents in the feed will be downloaded. Set this to false in order to manually add torrents to the session. You may react to the rss_alert when a feed has been updated to poll it for the new items in the feed when adding torrents manually. When torrents are added automatically, an add_torrent_alert is posted which includes the torrent handle as well as the error code if it failed to be added. You may also call session::get_torrents() to get the handles to the new torrents.
auto_map_handles
auto_map_handles defaults to true and determines whether or not to set the handle field in the feed_item, returned as the feed status. If auto-download is enabled, this setting is ignored. If auto-download is not set, setting this to false will save one pass through all the feed items trying to find corresponding torrents in the session.
default_ttl
The default_ttl is the default interval for refreshing a feed. This may be overridden by the feed itself (by specifying the <ttl> tag) and defaults to 30 minutes. The field specifies the number of minutes between refreshes.
add_args
If torrents are added automatically, you may want to set the add_args to appropriate values for download directory etc. This object is used as a template for adding torrents from feeds, but some torrent specific fields will be overridden by the individual torrent being added. For more information on the add_torrent_params, see async_add_torrent() and add_torrent().

feed_status

Declared in "libtorrent/rss.hpp"

holds information about the status of an RSS feed. Retrieved by calling get_feed_status() on feed_handle.

struct feed_status
{
   feed_status ();

   std::string url;
   std::string title;
   std::string description;
   time_t last_update;
   int next_update;
   bool updating;
   std::vector<feed_item> items;
   error_code error;
   int ttl;
};
url
the URL of the feed.
title
the name of the feed (as specified by the feed itself). This may be empty if we have not recevied a response from the RSS server yet, or if the feed does not specify a title.
description
the feed description (as specified by the feed itself). This may be empty if we have not received a response from the RSS server yet, or if the feed does not specify a description.
last_update
the posix time of the last successful response from the feed.
next_update
the number of seconds, from now, when the feed will be updated again.
updating
true if the feed is currently being updated (i.e. waiting for DNS resolution, connecting to the server or waiting for the response to the HTTP request, or receiving the response).
items
a vector of all items that we have received from the feed. See feed_item for more information.
error
set to the appropriate error code if the feed encountered an error. See error_code for more info.
ttl
the current refresh time (in minutes). It's either the configured default ttl, or the ttl specified by the feed.

feed_handle

Declared in "libtorrent/rss.hpp"

The feed_handle refers to a specific RSS feed that is watched by the session.

struct feed_handle
{
   feed_handle ();
   void update_feed ();
   feed_status get_feed_status () const;
   void set_settings (feed_settings const& s);
   feed_settings settings () const;
};

update_feed()

void update_feed ();

Forces an update/refresh of the feed. Regular updates of the feed is managed by libtorrent, be careful to not call this too frequently since it may overload the RSS server.

get_feed_status()

feed_status get_feed_status () const;

Queries the RSS feed for information, including all the items in the feed. see feed_status.

settings() set_settings()

void set_settings (feed_settings const& s);
feed_settings settings () const;

Sets and gets settings for this feed. For more information on the available settings, see add_feed().

add_feed_item()

Declared in "libtorrent/rss.hpp"

torrent_handle add_feed_item (session& s, feed_item const& fi
   , add_torrent_params const& p);
torrent_handle add_feed_item (session& s, feed_item const& fi
   , add_torrent_params const& p, error_code& ec);

given a feed_item f, add the torrent it refers to to session s.

new_feed()

Declared in "libtorrent/rss.hpp"

boost::shared_ptr<feed> new_feed (aux::session_impl& ses, feed_settings const& sett);