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
- iCalendar format (RFC 5545)
- RSS (tested in Feedly)
The list of available feeds will continually be added in functions/src/feeds/
while you can view everything from functions/src/index.ts
.
There are hosted versions of each of the existing feeds.
- Open up your RSS reader of choice
- Select new feed
- Point to one of the URLs below
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
- Angular NYC
- Arthouse Hotel
- Barclays Center
- The Bell House
- BRIC
- Brooklyn Steel
- NYC Parks
- NYC City Winery
- Carnegie Hall
- Caveat
- Columbia
- Coney Island
- The Django
- Downtown Brooklyn
- Elsewhere
- Flutter New York
- Forest Hills Stadium
- Google Developer Group - Hoboken
- Google Developer Group - NYC
- Google Developer Group - Cloud - NYC
- Hudson Yards
- Irving Plaza
- KGB Bar
- King's Theatre
- Lincoln Center
- Little Island
- Live Code NYC
- LPR
- MarketWatch
- Madison Square Garden
- Music Hall of Williamsburg
- Nerd Nite NYC
- New Liberals NYC
- NYC Philharmonic
- NYC Public Theater
- Pokémon League (Near NYC)
- Summer on the Hudson
- Summer Stage
- Town Hall
- Triad Theater
- Victory Den
- NYC Voice Assistant Meetup
- Webster Hall
- 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.
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.
Future work includes adding automated or manual monitoring of changes to the webpages.