feed-extractor icon indicating copy to clipboard operation
feed-extractor copied to clipboard

Add support for OPML feeds

Open theycallhermax opened this issue 1 year ago • 1 comments

An OPML feed is a way for how to integrate many feeds into one, sort of like merging many feeds into one.

Possible implementation

A OPML feed can be imported the same way as a normal feed...

const feed = await extract("https://example.com/feeds.opml");

...and can almost be read the same too...

interface OPMLData {
    title: String;
    feeds: OPMLFeed[];
    entries: OPMLEntry[];
}

interface OPMLFeed {
    title: String;
    link: String;
}

interface OPMLEntry {
    id: String;
    feed: String;
    title: String;
    link: String;
    description: String;
    published: ISO Datetime String;
}

A mock OPML feed can be made by passing an array of feed URLs to the extract function...

const feed = await extract([
    "https://example.com/feed.rss",
    "https://foobar.com/feed.atom"
]);

Things that would be done post-implementation

  • The extractFromOpml API would need to be introduced.
  • The existing APIs (extractFromJson and extractFromXml) would need to be updated to support the mock OPML generation support.

theycallhermax avatar Jun 14 '24 22:06 theycallhermax