Page
Library
Module
Module type
Parameter
Class
Class type
Source
RssSourceThe RSS library to read and write RSS 2.0 files.
Reference: RSS 2.0 specification.
type image = {image_url : Uri.t;The URL of a GIF, JPEG or PNG image that represents the channel.
*)image_title : string;Description of the image, it's used in the ALT attribute of the HTML <img> tag when the channel is rendered in HTML.
*)image_link : Uri.t;The URL of the site, when the channel is rendered, the image is a link to the site. (Note, in practice the image_title and image_link should have the same value as the channel's ch_title and ch_link.)
image_height : int option;Height of the image, in pixels.
*)image_width : int option;Width of the image, in pixels.
*)image_desc : string option;Text to be included in the "title" attribute of the link formed around the image in the HTML rendering.
*)}type text_input = {ti_title : string;The label of the Submit button in the text input area.
*)ti_desc : string;Explains the text input area.
*)ti_name : string;The name of the text object in the text input area.
*)ti_link : Uri.t;The URL of the CGI script that processes text input requests.
*)}type cloud = {cloud_domain : string;cloud_port : int;cloud_path : string;cloud_register_procedure : string;cloud_protocol : string;}See specification
type 'a item_t = {item_title : string option;Optional title
*)item_link : Uri.t option;Optional link
*)item_desc : string option;Optional description
*)item_pubdate : Ptime.t option;Date of publication
*)item_categories : category list;item_comments : Uri.t option;Url of comments about this item
*)item_enclosure : enclosure option;item_guid : guid option;A globally unique identifier for the item.
*)item_source : source option;item_data : 'a option;Additional data, since RSS can be extended with namespace-prefixed nodes.
*)}An item may represent a "story". Its description is a synopsis of the story (or sometimes the full story), and the link points to the full story.
A namespace is a pair (name, url).
type ('a, 'b) channel_t = {ch_title : string;Mandatory. The name of the channel, for example the title of your web site.
*)ch_link : Uri.t;Mandatory. The URL to the HTML website corresponding to the channel.
*)ch_desc : string;Mandatory. A sentence describing the channel.
*)ch_language : string option;ch_copyright : string option;Copyright notice.
*)ch_managing_editor : string option;Managing editor of the news.
*)ch_webmaster : string option;The address of the webmasterof the site.
*)ch_pubdate : Ptime.t option;Publication date of the channel.
*)ch_last_build_date : Ptime.t option;When the channel content changed for the last time.
*)ch_categories : category list;ch_generator : string option;The tool used to generate this channel.
*)ch_cloud : cloud option;Allows processes to register with a cloud to be notified of updates to the channel.
*)ch_docs : Uri.t option;An url to a RSS format reference.
*)ch_ttl : int option;Time to live, in minutes. It indicates how long a channel can be cached before refreshing from the source.
*)ch_image : image option;ch_rating : string option;The PICS rating for the channel.
*)ch_text_input : text_input option;ch_skip_hours : int list option;A hint for aggregators telling them which hours they can skip.
*)ch_skip_days : int list option;A hint for aggregators telling them which days they can skip.
*)ch_items : 'b item_t list;ch_data : 'a option;Additional data, since RSS can be extended with namespace-prefixed nodes.
*)ch_namespaces : namespace list;}val item :
?title:string ->
?link:Uri.t ->
?desc:string ->
?pubdate:Ptime.t ->
?author:string ->
?cats:category list ->
?comments:Uri.t ->
?encl:enclosure ->
?guid:guid ->
?source:source ->
?data:'a ->
unit ->
'a item_titem() creates a new item with all fields set to None. Use the optional parameters to set fields.
val channel :
title:string ->
link:Uri.t ->
desc:string ->
?language:string ->
?copyright:string ->
?managing_editor:string ->
?webmaster:string ->
?pubdate:Ptime.t ->
?last_build_date:Ptime.t ->
?cats:category list ->
?generator:string ->
?cloud:cloud ->
?docs:Uri.t ->
?ttl:int ->
?image:image ->
?rating:string ->
?text_input:text_input ->
?skip_hours:int list ->
?skip_days:int list ->
?data:'a ->
?namespaces:namespace list ->
'b item_t list ->
('a, 'b) channel_tchannel items creates a new channel containing items. Other fields are set to None unless the corresponding optional parameter is used.
keep_n_items n ch returns a copy of the channel, keeping only n items maximum.
merge_channels c1 c2 merges the given channels in a new channel, sorting items using sort_items_by_date. Channel information are copied from the first channel c1.
This represents XML trees. Such XML trees are given to functions provided to read additional data from RSS channels and items.
Read an XML tree from a source.
Use this exception to indicate an error is functions given to make_opts used to read additional data from prefixed XML nodes.
Options used when reading source.
val make_opts :
?read_channel_data:(xmltree list -> 'a option) ->
?read_item_data:(xmltree list -> 'b option) ->
unit ->
('a, 'b) optschannel_[t_]of_X returns the parsed channel and a list of encountered errors. Note that only namespaces declared in the root not of the XML tree are added to ch_namespaces field.
Read a channel from XML trees. These trees correspond to nodes under the "channel" XML node of a reguler RSS document.
val print_channel :
?channel_data_printer:'a data_printer ->
?item_data_printer:'b data_printer ->
?indent:int ->
?encoding:string ->
Format.formatter ->
('a, 'b) channel_t ->
unitval print_file :
?channel_data_printer:'a data_printer ->
?item_data_printer:'b data_printer ->
?indent:int ->
?encoding:string ->
string ->
('a, 'b) channel_t ->
unit