Project

weneedfeed

0.02
No release in over a year
Generate feeds from URL and selectors.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

Weneedfeed

Generate feeds from URL and selectors.

Installation

Add this line to your application's Gemfile:

gem 'weneedfeed'

And then execute:

bundle install

Or install it yourself as:

gem install weneedfeed

Schema

Weneedfeed requires weneedfeed.yml that describes URLs and selectors.

Example

title: Example RSS feeds

pages:
  - id: example1
    title: Example 1
    description: Example feed with CSS Selector
    url: http://example.com/1
    item_selector: li
    item_description_selector: p:nth-child(3)
    item_image_selector: img
    item_link_selector: a
    item_time_selector: time
    item_title_selector: p:nth-child(2)
  - id: example2
    title: Example 2
    description: Example feed with XPath
    url: http://example.com/2
    item_selector: //li
    item_image_selector: .//img
    item_description_selector: .//p[3]
    item_link_selector: .//a
    item_time_selector: .//time
    item_title_selector: .//p[2]

title

  • optional (default: "Weneedfeed")
  • Used for feeds title on top page and OPML outline.

pages.id

Feed ID.

  • required
  • Used for feed URL and <link> element in <channel> element.

pages.title

Feed title.

  • required
  • Used for RSS <title> element in <channel> element.

pages.description

Feed description.

  • optional
  • Used for RSS <description> element in <channel> element.

pages.url

HTML source URL.

  • required
  • Used to fetch HTML page for building feed.

pages.item_selector

CSS or XPath selector to search each item.

  • required
  • Equivalent unit to RSS <item> element.

pages.item_link_selector

CSS or XPath selector to find <a> element in each item.

  • required
  • Used for <link> in <item>.

pages.item_title_selector

CSS or XPath selector to find element with title information in each item.

  • required
  • Used for <title> in <item>.

pages.item_description_selector

CSS or XPath selector to find element with description information in each item.

  • optional
  • Used for <description> in <item>.

pages.item_image_selector

CSS or XPath selector to find <img>element in each item.

  • optional
  • Used for <enclosure> in <item>.

pages.item_time_selector

CSS or XPath selector to find element with datetime information in each item.

  • optional
  • Used for <pubDate> in <item>. Its datetime attribute or its inner HTML is used to calculate datetime.

Usage

Build

Run weneedfeed build to build static files.

Usage:
  weneedfeed build --base-url=BASE_URL

Options:
  --base-url=BASE_URL          # Base URL where to locate built files. (e.g. `"https://user.github.io/repo"`)
  [--schema-path=SCHEMA_PATH]  # Path to weneedfeed YAML schema file.
                               # Default: weneedfeed.yml

Build static files.

Server

Run weneedfeed server to run HTTP server.

Usage:
  weneedfeed server

Options:
  [--schema-path=SCHEMA_PATH]  # Path to weneedfeed YAML schema file.
                               # Default: weneedfeed.yml
  [--port=PORT]                # TCP port to bind to.
                               # Default: 8080

Run HTTP server.

GitHub Actions Integration

Use weneedfeed-action for invoking weneedfeed on GitHub Actions.

Examples