This is a personal replacement for Google reader. It's simple and suits my workflow.
sudo npm install -g megafilter
# copy subscriptions.xml and starred.json from your google reader takeout to here
node app -s subscriptions.xml --import-greader-starred starred.json
open http://localhost:8080
The idea is that you run this on your own server. You can specify a PORT via
the environment variable or --port
. Setcap can be used to run from port 80 without sudo
There will be a subscriptions manager soon. For the mean time, always start the
server with -s subscriptions.xml
. Note that you only need to import once!
You can specify --password <password>
to require auth. A --username
can be
set, but this defaults to the executing user.
GET /next
Get the next article. Returnsarticle
andpending
count.
GET /current
Get the current article (good for first load) returnsarticle
andpending
count.
DELETE /queue/:id
Discard an article from the queue.
PUT /publish/:id
Publish an article by ID from the queue.
GET /published
Given acount
as parameter, return published articles. 0 Means all articles, unspecified means 30.
GET /pending
Gives the current number of articles pending
DELETE /published/:id
Delete an article from the published collection
POST /enqueue
Remotely adds an article to the queue.
The same as the node-feedparser format.
title
description
(frequently, the full article content)summary
(frequently, an excerpt of the article content)link
origlink
(when FeedBurner or Pheedo puts a special tracking url in thelink
property,origlink
contains the original link)date
(most recent update)pubdate
(original published date)author
guid
(a unique identifier for the article)comments
(a link to the article's comments section)image
(an Object containingurl
andtitle
properties)categories
(an Array of Strings)source
(an Object containingurl
andtitle
properties pointing to the original source for an article; see the RSS Spec for an explanation of this element)enclosures
(an Array of Objects, each representing a podcast or other enclosure and having aurl
property and possiblytype
andlength
properties)meta
(an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen toarticle
emissions)
Megafilter would not have been possible without the following awesome projects:
- node feedparser: Used to understand RSS feeds
- jQuery hotkeys: Used for the keyboard shorcuts
- Font Awesome: used for the UI graphics
- jQuery
- node restify: Used for the RESTful JSON API, and UI serving