Module V1.Feed

Feed subscription metadata.

Feed subscription with type and URL.

A feed represents a subscription to a content source (Atom, RSS, JSONFeed, or Manual discovery via Claude).

type t
type feed_type =
  1. | Atom
    (*

    Atom feed format

    *)
  2. | Rss
    (*

    RSS feed format

    *)
  3. | Json
    (*

    JSON Feed format

    *)
  4. | Manual
    (*

    Manual feed discovery via Claude

    *)

Feed type identifier.

val make : feed_type:feed_type -> url:string -> ?name:string -> ?hint:string -> unit -> t

make ~feed_type ~url ?name ?hint () creates a new feed.

  • parameter feed_type

    The type of feed (Atom, RSS, JSON, or Manual)

  • parameter url

    The feed URL (for Manual feeds, the page to scrape)

  • parameter name

    Optional human-readable name/label for the feed

  • parameter hint

    Optional hint text to guide Manual feed discovery

val feed_type : t -> feed_type

feed_type t returns the feed type.

val url : t -> string

url t returns the feed URL.

val name : t -> string option

name t returns the feed name if set.

val hint : t -> string option

hint t returns the discovery hint if set (used for Manual feeds).

val set_name : t -> string -> t

set_name t name returns a new feed with the name updated.

val feed_type_to_string : feed_type -> string

feed_type_to_string ft converts a feed type to a string.

val feed_type_of_string : string -> feed_type option

feed_type_of_string s parses a feed type from a string. Returns None if the string is not recognized.

val json_t : t Jsont.t

json_t is the jsont encoder/decoder for feeds.

val pp : Format.formatter -> t -> unit

pp ppf t pretty prints a feed.