/standard-feeds

Transformations on the web to obtain standard data types

Primary LanguageTypeScript

Standard Feeds for the Web

The web is far more than just pages built in HTML. The idea of a "Web 3.0", also known as the Semantic Web doesn't just produce visual markup but also machine readable information on the specific topic. This adds to the web's richness and makes the content more useful.

In lieu of wider adoption, this tool provides a series of webhook-based transformations for common public knowledge into more standardized formats based on the particular context.

To be specific, this provides transformations to

The list of available feeds will continually be added in functions/src/feeds/ while you can view everything from functions/src/index.ts.

How to Use

There are hosted versions of each of the existing feeds.

RSS

  • Open up your RSS reader of choice
  • Select new feed
  • Point to one of the URLs below

Adding RSS feed

RSS Feeds

Calendars

The way that the calendar function works is by supporting a list of calendar names as a query parameter. You can add multiple modules into a single feed if you want.

If you want to view the content in a web browser rather than downloading the calendar, append &debug=true to the end of the URL.

  • Open up your calendar app of choice
  • Add a new calendar by URL
  • Point to one of the URLs below

Adding Calendar

Calendars

Setup

  • Download the repostiory from GitHub
  • cd functions
  • npm install
  • npm run build
  • npm run deploy

If you run npm run demo it will run the logic in functions/src/demo.ts, which can be useful for testing out a specific feed prior to deployment.

iCalendar feeds depend on functions/src/feesd/ical.ts. RSS feeds depend on functions/src/feeds/rss.ts.

Each separate feed exists as an independent module. All modules are imported into functions/src/index.ts and exported using Firebase Functions.

Whenever a function is called, the page is grabbed at that moment. There is no caching layer. At scale, there should be.

Library

You can install the underlying types to use the standard objects in your own applications:

npm install --save @fleker/standard-feeds

See lib/README.md for more information on the APIs and their usage.

Testing

Future work includes adding automated or manual monitoring of changes to the webpages.