{"_id":"megafilter","_rev":"66-b4a34ca1acfe3b8b7bcb04f000fbc988","name":"megafilter","description":"a personal google reader replacement","dist-tags":{"latest":"0.7.1-0"},"versions":{"0.1.1":{"name":"megafilter","homepage":"http://callanbryant.co.uk/megafilter/","keywords":["google reader","rss","aggregator"],"version":"0.1.1","author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"scripts":{"start":"node app"},"dependencies":{"restify":"2.3.5","feedparser":"0.12.0","xml2js":"0.2.6","optimist":"0.3.7"},"devDependencies":{"uglify-js":"*"},"bugs":{"url":"https://github.com/naggie/megafilter/issues"},"license":"Apache","repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"},"bin":{"megafilter":"./app.js","megafilter-import":"./import.js"},"preferGlobal":true,"readme":"![screenshot](screenshot.png)\n\n\nThis is a personal replacement for Google reader. It's simple and suits my workflow.\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\nRemember to do a recursive clone, there are submodules. If you don't the icons won't work.\n\n\tgit clone --recursive https://github.com/naggie/megafilter.git\n\tcd megafilter/\n\t# copy subscriptions.xml from your google reader takeout to here\n\tnpm install\n\tnode app\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. [Setcap can be used][1] to run from port 80 without sudo\n\nThere will be a subscriptions manager soon.\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\nIf you want to import starred items, **before the server is started,** run:\n\n\tnode import --google-starred starred.json\n\nusing the file from the takeout.\n\n\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 30.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the node-feedparser format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n","readmeFilename":"README.md","_id":"megafilter@0.1.1","description":"![screenshot](screenshot.png)","dist":{"shasum":"42860f28e54fd68faf8e45983c280d27e05a0f1c","tarball":"https://registry.npmjs.org/megafilter/-/megafilter-0.1.1.tgz","integrity":"sha512-vj0wC8fg4bbe+q+jaFp7MfFOc8o1UZtxXWq5VihIdKKXhEFX0PbP6ekDmhHQ2KDUICHVAm/uJuzgC/AYKnlKbQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCznfL5XUaBbWKmRBFSMAYJuDDp1Y2zrS/iSvou56dLXgIhAPW1krHxpogYEyuWCTvFXxDnpyZ1vbE2agM5o3c10SVE"}]},"_from":".","_npmVersion":"1.2.15","_npmUser":{"name":"naggie","email":"callan.bryant@gmail.com"},"maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.2":{"name":"megafilter","homepage":"http://callanbryant.co.uk/megafilter/","keywords":["google reader","rss","aggregator"],"version":"0.1.2","author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"scripts":{"start":"node app"},"dependencies":{"restify":"2.3.5","feedparser":"0.12.0","xml2js":"0.2.6","optimist":"0.3.7"},"devDependencies":{"uglify-js":"*"},"bugs":{"url":"https://github.com/naggie/megafilter/issues"},"license":"Apache","repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"},"bin":{"megafilter":"./app.js","megafilter-import":"./import.js"},"preferGlobal":true,"readme":"![screenshot](screenshot.png)\n\n\nThis is a personal replacement for Google reader. It's simple and suits my workflow.\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\nRemember to do a recursive clone, there are submodules. If you don't the icons won't work.\n\n\tgit clone --recursive https://github.com/naggie/megafilter.git\n\tcd megafilter/\n\t# copy subscriptions.xml from your google reader takeout to here\n\tnpm install\n\tnode app\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. [Setcap can be used][1] to run from port 80 without sudo\n\nThere will be a subscriptions manager soon.\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\nIf you want to import starred items, **before the server is started,** run:\n\n\tnode import --google-starred starred.json\n\nusing the file from the takeout.\n\n\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 30.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the node-feedparser format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n","readmeFilename":"README.md","_id":"megafilter@0.1.2","description":"![screenshot](screenshot.png)","dist":{"shasum":"0709fde5bca5743dea728378ab3cb1caccc99200","tarball":"https://registry.npmjs.org/megafilter/-/megafilter-0.1.2.tgz","integrity":"sha512-aHl3C5J0HYgt9YfkoilqLV/LKL/tqPDae47+AL63bddh5Wnt/YUkdItoCbUAJwQ2b3uxu1EBG+Mmem7VoseC9Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFHQnivpOjEiuV6MKlSfLuWeCcBiam1I3cnTSt/sTbFQAiACe6OpQGJOPGQiC+8Zl9zqbyk4WoGz7XcgscdCz+sjOw=="}]},"_from":".","_npmVersion":"1.2.15","_npmUser":{"name":"naggie","email":"callan.bryant@gmail.com"},"maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.3":{"name":"megafilter","homepage":"http://callanbryant.co.uk/megafilter/","keywords":["google reader","rss","aggregator"],"version":"0.1.3","author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"scripts":{"start":"node app"},"dependencies":{"restify":"2.3.5","feedparser":"0.12.0","xml2js":"0.2.6","optimist":"0.3.7"},"devDependencies":{"uglify-js":"*"},"bugs":{"url":"https://github.com/naggie/megafilter/issues"},"license":"Apache","repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"},"bin":{"megafilter":"./app.js","megafilter-import":"./import.js"},"preferGlobal":true,"readme":"![screenshot](http://callanbryant.co.uk/images/megafilter.png)\n\n\nThis is a personal replacement for Google reader. It's simple and suits my workflow.\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\nRemember to do a recursive clone, there are submodules. If you don't the icons won't work.\n\n\tgit clone --recursive https://github.com/naggie/megafilter.git\n\tcd megafilter/\n\t# copy subscriptions.xml from your google reader takeout to here\n\tnpm install\n\tnode app\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. [Setcap can be used][1] to run from port 80 without sudo\n\nThere will be a subscriptions manager soon.\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\nIf you want to import starred items, **before the server is started,** run:\n\n\tnode import --google-starred starred.json\n\nusing the file from the takeout.\n\n\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 30.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the node-feedparser format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n","readmeFilename":"README.md","_id":"megafilter@0.1.3","description":"![screenshot](http://callanbryant.co.uk/images/megafilter.png)","dist":{"shasum":"5439f9fe0bba300d79747d29d923a56e54b15d76","tarball":"https://registry.npmjs.org/megafilter/-/megafilter-0.1.3.tgz","integrity":"sha512-9RoNfx4cFamp/1EeWvSAHbPVKoIgbPIhRClXnfnvPBTw+tE+BW3r0erunKI3nBe/hZHU7u0l6JRW0LVsXMlQAw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE9UhPS9QOK8B1DHroEV+iMkjZYNNQGmojKCqOf8YwIOAiEAg0CRM52UAHPmZKGNCzoyj1fxOVr3hl+e8CJXMEiuZ24="}]},"_from":".","_npmVersion":"1.2.15","_npmUser":{"name":"naggie","email":"callan.bryant@gmail.com"},"maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.4":{"name":"megafilter","homepage":"http://callanbryant.co.uk/megafilter/","keywords":["google reader","rss","aggregator"],"version":"0.1.4","author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"scripts":{"start":"node app"},"dependencies":{"restify":"2.3.5","feedparser":"0.12.0","xml2js":"0.2.6","optimist":"0.3.7"},"devDependencies":{"uglify-js":"*"},"bugs":{"url":"https://github.com/naggie/megafilter/issues"},"license":"Apache","repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"},"bin":{"megafilter":"./app.js","megafilter-import":"./import.js"},"preferGlobal":true,"readme":"![screenshot](http://callanbryant.co.uk/images/megafilter.png)\n\n\nThis is a personal replacement for Google reader. It's simple and suits my workflow.\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\n\tsudo npm install -g megafilter\n\t# copy subscriptions.xml from your google reader takeout to here\n\tnode app -s sumscriptions.xml\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. [Setcap can be used][1] to run from port 80 without sudo\n\nThere will be a subscriptions manager soon.\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\nIf you want to import starred items, **before the server is started,** run:\n\n\tmegafilter-import --google-starred starred.json\n\nusing the file from the takeout.\n\n\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 30.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the node-feedparser format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n","readmeFilename":"README.md","_id":"megafilter@0.1.4","description":"![screenshot](http://callanbryant.co.uk/images/megafilter.png)","dist":{"shasum":"ae867a3e218a76d0a91fc3323a0b7485068ab6f1","tarball":"https://registry.npmjs.org/megafilter/-/megafilter-0.1.4.tgz","integrity":"sha512-rh7QiJ3YqGlNLUcGmoNnx2nOwkwq0561G0ifl+6LtUF8KoXiceruGVnKDj9kOsguTOFakEB53CLw2RrAB+c2Tw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCC5hgha7z3E+R4DE9Wf1oU57sknREgUcS9zflYdcDFngIgGx5e8+IDIag0SxbUSW+pEINHG2iG1v6Ez4BgaWSOLM8="}]},"_from":".","_npmVersion":"1.2.15","_npmUser":{"name":"naggie","email":"callan.bryant@gmail.com"},"maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.5":{"name":"megafilter","homepage":"http://callanbryant.co.uk/megafilter/","keywords":["google reader","rss","aggregator"],"version":"0.1.5","author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"scripts":{"start":"node app"},"dependencies":{"restify":"2.3.5","feedparser":"0.12.0","xml2js":"0.2.6","optimist":"0.3.7"},"devDependencies":{"uglify-js":"*"},"bugs":{"url":"https://github.com/naggie/megafilter/issues"},"license":"Apache","repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"},"bin":{"megafilter":"./app.js","megafilter-import":"./import.js"},"preferGlobal":true,"readme":"![screenshot](http://callanbryant.co.uk/images/megafilter.png)\n\n\nThis is a personal replacement for Google reader. It's simple and suits my workflow.\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\n\tsudo npm install -g megafilter\n\t# copy subscriptions.xml from your google reader takeout to here\n\tnode app -s sumscriptions.xml\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. [Setcap can be used][1] to run from port 80 without sudo\n\nThere will be a subscriptions manager soon.\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\nIf you want to import starred items, **before the server is started,** run:\n\n\tmegafilter-import --google-starred starred.json\n\nusing the file from the takeout.\n\n\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 30.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the node-feedparser format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n","readmeFilename":"README.md","_id":"megafilter@0.1.5","description":"![screenshot](http://callanbryant.co.uk/images/megafilter.png)","dist":{"shasum":"76437ca3df14643d89f2fa440c0bac0380d573fc","tarball":"https://registry.npmjs.org/megafilter/-/megafilter-0.1.5.tgz","integrity":"sha512-J1v6PVT66xXHZEzQ2gMIvoCoZ5bJBLIgycgOCiDoL763MpuZWWzGuFNHdJojP74MSGsnbNahhKunkH31fsKFQQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAQUVgKv3P/3sLwIO8evYapk+dP5l6SamaYzsswpAAPNAiEAhMkT3guTAlNSmxQo9pTdDez/MvjXUxrprXA/3Y4a0DU="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"naggie","email":"callan.bryant@gmail.com"},"maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.6":{"name":"megafilter","homepage":"http://callanbryant.co.uk/megafilter/","keywords":["google reader","rss","aggregator"],"version":"0.1.6","author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"scripts":{"start":"node app"},"dependencies":{"restify":"2.3.5","feedparser":"0.12.0","xml2js":"0.2.6","optimist":"0.3.7"},"devDependencies":{"uglify-js":"*"},"bugs":{"url":"https://github.com/naggie/megafilter/issues"},"license":"Apache","repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"},"bin":{"megafilter":"./app.js","megafilter-import":"./import.js"},"preferGlobal":true,"readme":"![screenshot](http://callanbryant.co.uk/images/megafilter.png)\n\n\nThis is a personal replacement for Google reader. It's simple and suits my workflow.\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\n\tsudo npm install -g megafilter\n\t# copy subscriptions.xml from your google reader takeout to here\n\tnode app -s sumscriptions.xml\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. [Setcap can be used][1] to run from port 80 without sudo\n\nThere will be a subscriptions manager soon.\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\nIf you want to import starred items, **before the server is started,** run:\n\n\tmegafilter-import --google-starred starred.json\n\nusing the file from the takeout.\n\n\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 30.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the node-feedparser format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n","readmeFilename":"README.md","_id":"megafilter@0.1.6","description":"![screenshot](http://callanbryant.co.uk/images/megafilter.png)","dist":{"shasum":"916e9d80f99f9f578e1039c1a24c68ba81969904","tarball":"https://registry.npmjs.org/megafilter/-/megafilter-0.1.6.tgz","integrity":"sha512-sDV0C+1DLM/4txWtCV59elevyao/o1+3b0l8lzKwXCqOCGRo61d+hZwvupiw5CQA8rSgjnjk+SYjvMPz4tolIA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGx4ALw7I37sFStoMjccIEITG9nUqkHDJlhOUCHRLEkrAiEA5saknchTxWpx+EFT0PDwgKtc6xZBcsnxre+VH+Iw4bA="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"naggie","email":"callan.bryant@gmail.com"},"maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.7":{"name":"megafilter","homepage":"http://callanbryant.co.uk/megafilter/","description":"a personal google reader replacement","keywords":["google reader","rss","aggregator"],"version":"0.1.7","author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"scripts":{"start":"node app"},"dependencies":{"restify":"2.3.5","feedparser":"0.12.0","xml2js":"0.2.6","optimist":"0.3.7"},"devDependencies":{"uglify-js":"*"},"bugs":{"url":"https://github.com/naggie/megafilter/issues"},"license":"Apache","repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"},"bin":{"megafilter":"./app.js"},"preferGlobal":true,"readme":"![screenshot](http://callanbryant.co.uk/images/megafilter.png)\n\n\nThis is a personal replacement for Google reader. It's simple and suits my workflow.\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\n\tsudo npm install -g megafilter\n\t# copy subscriptions.xml and starred.json from your google reader takeout to here\n\tnode app -s subscriptions.xml --import-greader-starred starred.json\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. [Setcap can be used][1] to run from port 80 without sudo\n\nThere will be a subscriptions manager soon. For the mean time, always start the\nserver with `-s subscriptions.xml`. Note that you only need to import once!\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 30.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the node-feedparser format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n","readmeFilename":"README.md","_id":"megafilter@0.1.7","dist":{"shasum":"bb3f6714a14541dc4eb8a3394b671e6c1ee860b8","tarball":"https://registry.npmjs.org/megafilter/-/megafilter-0.1.7.tgz","integrity":"sha512-zm/rUtvm1UrWXv5M2iAbmJ333+2KvPOd/lhxNayG7CKoizBic652N9n3m2EG2rzmDuEcBsMxR6DGCGyenFzZvw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCyhGFk68sm4YvMrQC9WsjS7v9L+Am8PPc3o4mlt0yzsgIhANpPeyq6CC8/LF7j+iCVyEynk2FJk3F3ahqQiOomsQ0Z"}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"naggie","email":"callan.bryant@gmail.com"},"maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.8":{"name":"megafilter","homepage":"http://callanbryant.co.uk/megafilter/","description":"a personal google reader replacement","keywords":["google reader","rss","aggregator"],"version":"0.1.8","author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"scripts":{"start":"node app"},"dependencies":{"restify":"2.3.5","feedparser":"0.12.0","xml2js":"0.2.6","optimist":"0.3.7"},"devDependencies":{"uglify-js":"*"},"bugs":{"url":"https://github.com/naggie/megafilter/issues"},"license":"Apache","repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"},"bin":{"megafilter":"./app.js"},"preferGlobal":true,"readme":"![screenshot](http://callanbryant.co.uk/images/megafilter.png)\n\n\nThis is a personal replacement for Google reader. It's simple and suits my workflow.\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\n\tsudo npm install -g megafilter\n\t# copy subscriptions.xml and starred.json from your google reader takeout to here\n\tnode app -s subscriptions.xml --import-greader-starred starred.json\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. [Setcap can be used][1] to run from port 80 without sudo\n\nThere will be a subscriptions manager soon. For the mean time, always start the\nserver with `-s subscriptions.xml`. Note that you only need to import once!\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 30.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the node-feedparser format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n","readmeFilename":"README.md","_id":"megafilter@0.1.8","dist":{"shasum":"25ed5d9eec2b333b6c2c0a69b269e10071e4d462","tarball":"https://registry.npmjs.org/megafilter/-/megafilter-0.1.8.tgz","integrity":"sha512-WfSWJgr3n+6VExD0zqVvDjEAOsDLD3857to2gzgZqblPyzE5TJpdjMNT0tv7Ili4Vbtf4N+YLUTlEiy4Li1O1A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEjv9uj3Zj4m5aM3UBp5sQLYnzIEsj7DjduREzMWZz2iAiAuS5WghHr7ik5KNLRuMU8hysx12ZFAqsgw6E/+p0GpHg=="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"naggie","email":"callan.bryant@gmail.com"},"maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.2.0":{"name":"megafilter","homepage":"http://callanbryant.co.uk/megafilter/","description":"a personal google reader replacement","keywords":["google reader","rss","aggregator"],"version":"0.2.0","author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"scripts":{"start":"node app"},"dependencies":{"restify":"2.3.5","feedparser":"0.12.0","xml2js":"0.2.6","optimist":"0.3.7"},"devDependencies":{"uglify-js":"*"},"bugs":{"url":"https://github.com/naggie/megafilter/issues"},"license":"Apache","repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"},"bin":{"megafilter":"./app.js"},"preferGlobal":true,"readme":"![screenshot](http://callanbryant.co.uk/images/megafilter.png)\n\n\nThis is a personal replacement for Google reader. It's simple and suits my workflow.\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\n\tsudo npm install -g megafilter\n\t# copy subscriptions.xml and starred.json from your google reader takeout to here\n\tnode app -s subscriptions.xml --import-greader-starred starred.json\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. [Setcap can be used][1] to run from port\n80 without sudo\n\nThere will be a subscriptions manager soon. For the mean time, always start the\nserver with `-s subscriptions.xml`. Note that you only need to import once!\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\n\nBy default megafilter will save the published items to\n`~/megafilter-published.json`. You can change this directory with `--store-dir`\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 30.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the node-feedparser format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n","readmeFilename":"README.md","_id":"megafilter@0.2.0","dist":{"shasum":"6ba55317e082f95e59828a31f7fa02d4dfecefc5","tarball":"https://registry.npmjs.org/megafilter/-/megafilter-0.2.0.tgz","integrity":"sha512-5FwPf7Vlj6EyT3oHHRAp6QlPn/e4HItbRaEcBiYtx0fyrc4TiKYiwKJF29bHusIPS8gj41oMQN0BZzVLYmlpcQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBA/bdLGUgdE7kLHHDAe/iqgxktJxo/h8i8XRjjdWSERAiAMnVbeC9k0nmw3gPnSHkrbB0C6p5dWahBwyGO9V71TGQ=="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"naggie","email":"callan.bryant@gmail.com"},"maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.3.0":{"name":"megafilter","homepage":"http://callanbryant.co.uk/megafilter/","description":"a personal google reader replacement","keywords":["google reader","rss","aggregator"],"version":"0.3.0","author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"scripts":{"start":"node app"},"dependencies":{"restify":"2.3.5","feedparser":"0.12.0","xml2js":"0.2.6","optimist":"0.3.7"},"devDependencies":{"uglify-js":"*"},"bugs":{"url":"https://github.com/naggie/megafilter/issues"},"license":"Apache","repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"},"bin":{"megafilter":"./app.js"},"preferGlobal":true,"readme":"![screenshot](http://callanbryant.co.uk/images/megafilter.png)\n\n\nThis is a personal replacement for Google reader. It's simple and suits my workflow.\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\n\tsudo npm install -g megafilter\n\t# copy subscriptions.xml and starred.json from your google reader takeout to here\n\tnode app -s subscriptions.xml --import-greader-starred starred.json\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. [Setcap can be used][1] to run from port\n80 without sudo\n\nThere will be a subscriptions manager soon. For the mean time, always start the\nserver with `-s subscriptions.xml`. Note that you only need to import once!\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\n\nBy default megafilter will save the published items to\n`~/megafilter-published.json`. You can change this directory with `--store-dir`\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 30.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the node-feedparser format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n","readmeFilename":"README.md","_id":"megafilter@0.3.0","dist":{"shasum":"f2a6860dff76513c17fae40b2c4bd986498dc555","tarball":"https://registry.npmjs.org/megafilter/-/megafilter-0.3.0.tgz","integrity":"sha512-yOhpKZcnceaSbM6oLKru9vrSBNaYVLct9BKRFQpNf19psvtTmVQvMEr6N4LWtmvJi3Ph9HoNxe9ZVEK2a9rqCQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCP1gGYMDKo6MHzG+9NiPZ/b0klcv5DaKbcEN1BF1geagIhAJYo0JFFMpQZS+ERLbbKTBLp+h2gPtp54WcFmXdEOPzj"}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"naggie","email":"callan.bryant@gmail.com"},"maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.3.1":{"name":"megafilter","homepage":"http://callanbryant.co.uk/megafilter/","description":"a personal google reader replacement","keywords":["google reader","rss","aggregator"],"version":"0.3.1","author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"scripts":{"start":"node app"},"dependencies":{"restify":"2.3.5","feedparser":"0.12.0","xml2js":"0.2.6","optimist":"0.3.7"},"devDependencies":{"uglify-js":"*"},"bugs":{"url":"https://github.com/naggie/megafilter/issues"},"license":"Apache","repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"},"bin":{"megafilter":"./app.js"},"preferGlobal":true,"readme":"This is a personal replacement for Google reader. It's simple and suits my workflow.\n\nPlease let people know about it. I would love for this to become popular. If you have any\nquestions please contact me using callan.bryant@gmail.com.\n\n**State: Very beta but working very well!** I have migrated from Google reader to Megafilter.\n\n\n![screenshot](http://callanbryant.co.uk/images/megafilter.png)\n\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\n\tsudo npm install -g megafilter\n\t# copy subscriptions.xml and starred.json from your google reader takeout to here\n\tnode app -s subscriptions.xml --import-greader-starred starred.json\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. [Setcap can be used][1] to run from port\n80 without sudo\n\nThere will be a subscriptions manager soon. For the mean time, always start the\nserver with `-s subscriptions.xml`. Note that you only need to import once!\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\n\nBy default megafilter will save the published items to\n`~/megafilter-published.json`. You can change this directory with `--store-dir`\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 30.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the node-feedparser format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n","readmeFilename":"README.md","_id":"megafilter@0.3.1","dist":{"shasum":"0c66aa656a531f3150601f1d9064307250d512ba","tarball":"https://registry.npmjs.org/megafilter/-/megafilter-0.3.1.tgz","integrity":"sha512-fsCVkobYIMWV6M2DSw2GmogTBQ7Rq/5gwAHGXKcnt25lUux1TSTBzRXO1+S/CWLIC0/VqcFacyJIhVDcHs81qA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH3/ele/hn+0NYlVngkgysOxu4a2bRgCPHbQcx6lutHnAiEA9vXbG40UrKxmePLTcUVDo5AyWwN/utP+50Gw4CGcdvo="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"naggie","email":"callan.bryant@gmail.com"},"maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.3.2":{"name":"megafilter","homepage":"http://callanbryant.co.uk/megafilter/","description":"a personal google reader replacement","keywords":["google reader","rss","aggregator"],"version":"0.3.2","author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"scripts":{"start":"node app"},"dependencies":{"restify":"2.3.5","feedparser":"0.12.0","xml2js":"0.2.6","optimist":"0.3.7"},"devDependencies":{"uglify-js":"*"},"bugs":{"url":"https://github.com/naggie/megafilter/issues"},"license":"Apache","repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"},"bin":{"megafilter":"./app.js"},"preferGlobal":true,"readme":"This is a personal replacement for Google reader. It's simple and suits my workflow.\n\nPlease let people know about it. I would love for this to become popular. If you have any\nquestions please contact me using callan.bryant@gmail.com.\n\n**State: Very beta but working very well!** I have migrated from Google reader to Megafilter.\n\n\n![screenshot](http://callanbryant.co.uk/images/megafilter.png)\n\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\n\tsudo npm install -g megafilter\n\t# copy subscriptions.xml and starred.json from your google reader takeout to here\n\tnode app -s subscriptions.xml --import-greader-starred starred.json\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. [Setcap can be used][1] to run from port\n80 without sudo\n\nThere will be a subscriptions manager soon. For the mean time, always start the\nserver with `-s subscriptions.xml`. Note that you only need to import once!\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\n\nBy default megafilter will save the published items to\n`~/megafilter-published.json`. You can change this directory with `--store-dir`\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 30.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the node-feedparser format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n","readmeFilename":"README.md","_id":"megafilter@0.3.2","dist":{"shasum":"726c30fea095207f9348da40f070863de220067f","tarball":"https://registry.npmjs.org/megafilter/-/megafilter-0.3.2.tgz","integrity":"sha512-sP4PBRcqwZA91Mf64J330YTx8h507s8zNoGbgQfnpVrMQ+y11i0L9V+WGo7ZYZKKgViiRYeYInudzf/3+UZDaA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF47Q4bF+6Uy6GPc/GutuOjefCouWGRXPIZPTuRcSRffAiBhXaRuLDP33GQaaKuowyXc/UIx5HrWL0TBn65abbrjmg=="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"naggie","email":"callan.bryant@gmail.com"},"maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.3.3":{"name":"megafilter","homepage":"http://callanbryant.co.uk/megafilter/","description":"a personal google reader replacement","keywords":["google reader","rss","aggregator"],"version":"0.3.3","author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"scripts":{"start":"node app"},"dependencies":{"restify":"2.3.5","feedparser":"0.12.0","xml2js":"0.2.6","optimist":"0.3.7"},"devDependencies":{"uglify-js":"*"},"bugs":{"url":"https://github.com/naggie/megafilter/issues"},"license":"Apache","repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"},"bin":{"megafilter":"./app.js"},"preferGlobal":true,"engines":{"node":">=0.8"},"readme":"This is a personal replacement for Google reader. It's simple and suits my workflow.\n\nArticles are added to a circular FIFO queue, so that the latest articles always appear\nnext. Articles can be:\n\n* **Skipped** to be viewed later\n* **Published** to a JSONP 'RSS' feed\n* **Discarded** from the queue\n* **Inspected** to view the article from the original website, with comments\n\nDestructive actions can be undone.\n\nThe current article is synchronised across all devices, so you can continue reading\non yor smartphone.\n\n\n\n\nPlease let people know about it. I would love for this to become popular. If you have any\nquestions please contact me using callan.bryant@gmail.com.\n\n**State: Very beta but working very well!** I have migrated from Google reader to Megafilter.\n\n\n![screenshot](http://callanbryant.co.uk/images/megafilter.png)\n\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\n\tsudo npm install -g megafilter\n\t# copy subscriptions.xml and starred.json from your google reader takeout to here\n\tnode app -s subscriptions.xml --import-greader-starred starred.json\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. [Setcap can be used][1] to run from port\n80 without sudo\n\nThere will be a subscriptions manager soon. For the mean time, always start the\nserver with `-s subscriptions.xml`. Note that you only need to import once!\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\n\nBy default megafilter will save the published items to\n`~/megafilter-published.json`. You can change this directory with `--store-dir`\n\n\nWhen running, ~megafilter will wait for new articles. You may have to wait a\nbit! A backfill option will be added.\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 30.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the node-feedparser format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n","readmeFilename":"README.md","_id":"megafilter@0.3.3","dist":{"shasum":"8f1b649e6b1c7d96f4f93f3c74dec23e29a6fee3","tarball":"https://registry.npmjs.org/megafilter/-/megafilter-0.3.3.tgz","integrity":"sha512-dvmIzHZ9v7K0qQI9bn4eIxeTP8dTA4H8tMJ/OUjvgN5ZW4c1Zn0FFyvrwpB2eGOOJtPiNsRx/7XUDQR2zokIMw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCc3Y9X5uzjjInzzPiZd4/5utFRhvZuUMO2EI8IP6/I7AIgLwTRDbAz5FB4w4AtE9c4It8zx8DTv+bND9q7zpGI3Ew="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"naggie","email":"callan.bryant@gmail.com"},"maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.3.4":{"name":"megafilter","homepage":"http://callanbryant.co.uk/megafilter/","description":"a personal google reader replacement","keywords":["google reader","rss","aggregator"],"version":"0.3.4","author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"scripts":{"start":"node app"},"dependencies":{"restify":"2.3.5","feedparser":"0.12.0","xml2js":"0.2.6","optimist":"0.3.7"},"devDependencies":{"uglify-js":"*"},"bugs":{"url":"https://github.com/naggie/megafilter/issues"},"license":"Apache","repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"},"bin":{"megafilter":"./app.js"},"preferGlobal":true,"engines":{"node":">=0.8"},"readme":"This is a personal replacement for Google reader. It's simple and suits my workflow.\n\nArticles are added to a circular FIFO queue, so that the latest articles always appear\nnext. Articles can be:\n\n* **Skipped** to be viewed later\n* **Published** to a JSONP 'RSS' feed\n* **Discarded** from the queue\n* **Inspected** to view the article from the original website, with comments\n\nDestructive actions can be undone.\n\nThe current article is synchronised across all devices, so you can continue reading\non yor smartphone.\n\n\n**State: Very beta but working very well!** I have migrated from Google reader to Megafilter.\n\n\n![screenshot](http://callanbryant.co.uk/images/megafilter.png)\n\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\n\tsudo npm install -g megafilter\n\t# copy subscriptions.xml and starred.json from your google reader takeout to here\n\tmegafilter -s subscriptions.xml --import-greader-starred starred.json\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. Setcap can be used to run from port\n80 without sudo; this is documented at the end of this file.\n\nThere will be a subscriptions manager soon. For the mean time, always start the\nserver with `-s subscriptions.xml`. Note that you only need to import once!\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\n\n**KNOWN ISSUE: Some subscriptions.xml files have a different format. This is being fixed: https://github.com/naggie/megafilter/issues/60**\n\n\nBy default megafilter will save the published items to\n`~/megafilter-published.json`. You can change this directory with `--store-dir`\n\n\nWhen running, ~megafilter will wait for new articles. You may have to wait a\nbit! A backfill option will be added.\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 30.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the node-feedparser format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\n\nRunning without sudo on port 80\n-------------------------------\n\nIf you want to host on port 80 under ubuntu on your account, you can install `libcap2-bin` \nthen run `setcap 'cap_net_bind_service=+ep' /usr/local/bin/node` to give node access to port 80.\n\nYour path to the `node` binary may vary, you can find it with `which node`\n\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n","readmeFilename":"README.md","_id":"megafilter@0.3.4","dist":{"shasum":"fcbf1635b9dab1a2acfae438b7decaaf97249eb7","tarball":"https://registry.npmjs.org/megafilter/-/megafilter-0.3.4.tgz","integrity":"sha512-cYe84RI5L/0r/mSX6//ZGjXVa5aSbAB61v6cHzYXdf5eCu2lRA/k/htPOrpNBSXeisHLbimD71qpbwNemdux1g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDmv/YMARl6+7RJvFeQ7moP+fRb8B2grzJXtqJayl/ggAiAatnQIbyatlTpmpiakCNcSf1wqNosWkCK3IIuRpoNWJw=="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"naggie","email":"callan.bryant@gmail.com"},"maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.4.0":{"name":"megafilter","homepage":"http://callanbryant.co.uk/megafilter/","description":"a personal google reader replacement","keywords":["google reader","rss","aggregator"],"version":"0.4.0","author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"scripts":{"start":"node app"},"dependencies":{"restify":"2.3.5","feedparser":"0.12.0","xml2js":"0.2.6","optimist":"0.3.7"},"devDependencies":{"uglify-js":"*"},"bugs":{"url":"https://github.com/naggie/megafilter/issues"},"license":"Apache","repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"},"bin":{"megafilter":"./app.js"},"preferGlobal":true,"engines":{"node":">=0.8"},"readme":"This is a personal replacement for Google reader. It's simple and suits my workflow.\n\nArticles are added to a circular FIFO queue, so that the latest articles always appear\nnext. Articles can be:\n\n* **Skipped** to be viewed later\n* **Published** to a JSONP 'RSS' feed\n* **Discarded** from the queue\n* **Inspected** to view the article from the original website, with comments\n\nDestructive actions can be undone.\n\nThe current article is synchronised across all devices, so you can continue reading\non yor smartphone.\n\n\n**State: Very beta but working very well!** I have migrated from Google reader\nto Megafilter.\n\n\n![screenshot](http://callanbryant.co.uk/images/megafilter.png)\n\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\n\tsudo npm install -g megafilter\n\t# copy subscriptions.xml and starred.json from your google reader takeout to here\n\tmegafilter -s subscriptions.xml --import-greader-starred starred.json\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. Setcap can be used to run from port\n80 without sudo; this is documented at the end of this file.\n\nThere will be a subscriptions manager soon. For the mean time, always start the\nserver with `-s subscriptions.xml`. Note that you only need to import once!\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\n\nBy default megafilter will save the published items to\n`~/megafilter-published.json`. You can change this directory with `--store-dir`\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\nWhen megafilter starts, it will check each feed within the first 2 minutes\n(this is so that servers don't get hammered) and after this, each feed will be\nchecked at the average post interval. Articles that are posted after the\ninitial check are added to the queue, so it may take a while for articles to\nappear. If you are excited and/or impatient like me, then you may use the new\n`--backfill 5` option, to initially add articles that were new in the last 5\nhours. Articles will take 2 minutes to appear.\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 30.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the node-feedparser format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\n\nRunning without sudo on port 80\n-------------------------------\n\nIf you want to host on port 80 under ubuntu on your account, you can install `libcap2-bin` \nthen run `setcap 'cap_net_bind_service=+ep' /usr/local/bin/node` to give node access to port 80.\n\nYour path to the `node` binary may vary, you can find it with `which node`\n\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n","readmeFilename":"README.md","_id":"megafilter@0.4.0","dist":{"shasum":"977c13240de87aaaf632cc9d7985f8c94a73b9a6","tarball":"https://registry.npmjs.org/megafilter/-/megafilter-0.4.0.tgz","integrity":"sha512-0BEseV7sU0+fUUgabX999CNoZ/ZEN03cr7G4WGEJqJJGNhtcoF2c4/l0+6UJm2OZpbhpSL/DFPDJ0iF9JWnxcA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFSZflxiAjS4lrmGkZLbNxkP7UhLF+C6Fl297zBWY9PGAiEAt62jDjVa3dK55RRLhKkWCdVR5az+9kGSxnhZqDU8xRk="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"naggie","email":"callan.bryant@gmail.com"},"maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.4.1":{"name":"megafilter","homepage":"http://callanbryant.co.uk/megafilter/","description":"a personal google reader replacement","keywords":["google reader","rss","aggregator"],"version":"0.4.1","author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"scripts":{"start":"node app"},"dependencies":{"restify":"2.3.5","feedparser":"0.12.0","xml2js":"0.2.6","optimist":"0.3.7"},"devDependencies":{"uglify-js":"*"},"bugs":{"url":"https://github.com/naggie/megafilter/issues"},"license":"Apache","repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"},"bin":{"megafilter":"./app.js"},"preferGlobal":true,"engines":{"node":">=0.8"},"readme":"This is a personal replacement for Google reader. It's simple and suits my workflow.\n\nArticles are added to a circular FIFO queue, so that the latest articles always appear\nnext. Articles can be:\n\n* **Skipped** to be viewed later\n* **Published** to a JSONP 'RSS' feed\n* **Discarded** from the queue\n* **Inspected** to view the article from the original website, with comments\n\nDestructive actions can be undone.\n\nThe current article is synchronised across all devices, so you can continue reading\non yor smartphone.\n\n\n**State: Very beta but working very well!** I have migrated from Google reader\nto Megafilter.\n\n\n![screenshot](http://callanbryant.co.uk/images/megafilter.png)\n\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\n\tsudo npm install -g megafilter\n\t# copy subscriptions.xml and starred.json from your google reader takeout to here\n\tmegafilter -s subscriptions.xml --import-greader-starred starred.json\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. Setcap can be used to run from port\n80 without sudo; this is documented at the end of this file.\n\nThere will be a subscriptions manager soon. For the mean time, always start the\nserver with `-s subscriptions.xml`. Note that you only need to import once!\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\n\nBy default megafilter will save the published items to\n`~/megafilter-published.json`. You can change this directory with `--store-dir`\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\nWhen megafilter starts, it will check each feed within the first 2 minutes\n(this is so that servers don't get hammered) and after this, each feed will be\nchecked at the average post interval. Articles that are posted after the\ninitial check are added to the queue, so it may take a while for articles to\nappear. If you are excited and/or impatient like me, then you may use the new\n`--backfill 5` option, to initially add articles that were new in the last 5\nhours. Articles will take 2 minutes to appear.\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 30.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the node-feedparser format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\n\nRunning without sudo on port 80\n-------------------------------\n\nIf you want to host on port 80 under ubuntu on your account, you can install `libcap2-bin` \nthen run `setcap 'cap_net_bind_service=+ep' /usr/local/bin/node` to give node access to port 80.\n\nYour path to the `node` binary may vary, you can find it with `which node`\n\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n","readmeFilename":"README.md","_id":"megafilter@0.4.1","dist":{"shasum":"e41f531e65e72d3defa1cc28e2e3483cee6ca1b3","tarball":"https://registry.npmjs.org/megafilter/-/megafilter-0.4.1.tgz","integrity":"sha512-IqRf43ZNizWQxyBFSO5HJl8eGFgMsvaPbNwRBJx4kxSTCrcXcdZhNNa5Mws/hAbAie1ka7ieOHS8l332iGRoDg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCwSYHKuUIPrEKfHlfG8j6rsn26o5uYD4jwI/66ojFnBQIgGzyQdTWWvAOvpwyOPybn6AlGxgCC2Ky7figvOXqPynw="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"naggie","email":"callan.bryant@gmail.com"},"maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.4.2":{"name":"megafilter","homepage":"http://callanbryant.co.uk/megafilter/","description":"a personal google reader replacement","keywords":["google reader","rss","aggregator"],"version":"0.4.2","author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"scripts":{"start":"node app"},"dependencies":{"restify":"2.3.5","feedparser":"0.12.0","xml2js":"0.2.6","optimist":"0.3.7"},"devDependencies":{"uglify-js":"*"},"bugs":{"url":"https://github.com/naggie/megafilter/issues"},"license":"Apache","repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"},"bin":{"megafilter":"./app.js"},"preferGlobal":true,"engines":{"node":">=0.8"},"readme":"This is a personal replacement for Google reader. It's simple and suits my workflow.\n\nArticles are added to a circular FIFO queue, so that the latest articles always appear\nnext. Articles can be:\n\n* **Skipped** to be viewed later\n* **Published** to a JSONP 'RSS' feed\n* **Discarded** from the queue\n* **Inspected** to view the article from the original website, with comments\n\nDestructive actions can be undone.\n\nThe current article is synchronised across all devices, so you can continue reading\non yor smartphone.\n\n\n**State: Very beta but working very well!** I have migrated from Google reader\nto Megafilter.\n\n\n![screenshot](http://callanbryant.co.uk/images/megafilter.png)\n\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\n\tsudo npm install -g megafilter\n\t# copy subscriptions.xml and starred.json from your google reader takeout to here\n\tmegafilter -s subscriptions.xml --import-greader-starred starred.json\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. Setcap can be used to run from port\n80 without sudo; this is documented at the end of this file.\n\nThere will be a subscriptions manager soon. For the mean time, always start the\nserver with `-s subscriptions.xml`. Note that you only need to import once!\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\n\nBy default megafilter will save the published items to\n`~/megafilter-published.json`. You can change this directory with `--store-dir`\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\nWhen megafilter starts, it will check each feed within the first 2 minutes\n(this is so that servers don't get hammered) and after this, each feed will be\nchecked at the average post interval. Articles that are posted after the\ninitial check are added to the queue, so it may take a while for articles to\nappear. If you are excited and/or impatient like me, then you may use the new\n`--backfill 5` option, to initially add articles that were new in the last 5\nhours. Articles will take 2 minutes to appear.\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 50.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the [node-feedparser][3] format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\nPublished articles\n------------------\n\nCurrently, megafilter does not create a published RSS feed. If that's needed by\nsomeone I'll add it. The reason I did not put it is because RSS is not\ncross-domain, and is annoying to parse with jQuery.\n\nThe `/published` JSONP feed is simply the latest 50 published articles in the\nformat that [node-feedparser][3] produces.\n\nIf you want an example on how to integrate the published items, see [my website engine.][8]\n\nI'll probably make this available as part of megafilter.\n\n[8]: https://github.com/naggie/naggie.github.com/blob/master/js/src/engine.js\n\n\nRunning without sudo on port 80\n-------------------------------\n\nIf you want to host on port 80 under ubuntu on your account, you can install `libcap2-bin`\nthen run `setcap 'cap_net_bind_service=+ep' /usr/local/bin/node` to give node access to port 80.\n\nYour path to the `node` binary may vary, you can find it with `which node`\n\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n","readmeFilename":"README.md","_id":"megafilter@0.4.2","dist":{"shasum":"1a331b7b6bddc203165b43c8f20e5b9e44542bf4","tarball":"https://registry.npmjs.org/megafilter/-/megafilter-0.4.2.tgz","integrity":"sha512-kvybUcdR8fClckxW4sB4EKRnFN9Aaa8yY2hLGdjxKY5o4oZ0G2DByczNsq4BHBOcyrW006ZBXe2Bi0hFuwT/Zg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICjLh1r+nIQcuOoli8YNwlm+5OBbY7OKHSkBRk8pc1TUAiBsBoAoBG93X3rnx1tlFubZS+NpdXMkk7kYC1gl56b49w=="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"naggie","email":"callan.bryant@gmail.com"},"maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.4.3":{"name":"megafilter","homepage":"http://callanbryant.co.uk/megafilter/","description":"a personal google reader replacement","keywords":["google reader","rss","aggregator"],"version":"0.4.3","author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"scripts":{"start":"node app"},"dependencies":{"restify":"2.3.5","feedparser":"0.12.0","xml2js":"0.2.6","optimist":"0.3.7"},"devDependencies":{"uglify-js":"*"},"bugs":{"url":"https://github.com/naggie/megafilter/issues"},"license":"Apache","repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"},"bin":{"megafilter":"./app.js"},"preferGlobal":true,"engines":{"node":">=0.8"},"readme":"This is a personal replacement for Google reader. It's simple and suits my workflow.\n\nArticles are added to a circular FIFO queue, so that the latest articles always appear\nnext. Articles can be:\n\n* **Skipped** to be viewed later\n* **Published** to a JSONP 'RSS' feed\n* **Discarded** from the queue\n* **Inspected** to view the article from the original website, with comments\n\nDestructive actions can be undone.\n\nThe current article is synchronised across all devices, so you can continue reading\non yor smartphone.\n\n\n**State: Very beta but working very well!** I have migrated from Google reader\nto Megafilter.\n\n\n![screenshot](http://callanbryant.co.uk/images/megafilter.png)\n\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\n\tsudo npm install -g megafilter\n\t# copy subscriptions.xml and starred.json from your google reader takeout to here\n\tmegafilter -s subscriptions.xml --import-greader-starred starred.json\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. Setcap can be used to run from port\n80 without sudo; this is documented at the end of this file.\n\nThere will be a subscriptions manager soon. For the mean time, always start the\nserver with `-s subscriptions.xml`. Note that you only need to import once!\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\n\nBy default megafilter will save the published items to\n`~/megafilter-published.json`. You can change this directory with `--store-dir`\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\nWhen megafilter starts, it will check each feed within the first 2 minutes\n(this is so that servers don't get hammered) and after this, each feed will be\nchecked at the average post interval. Articles that are posted after the\ninitial check are added to the queue, so it may take a while for articles to\nappear. If you are excited and/or impatient like me, then you may use the new\n`--backfill 5` option, to initially add articles that were new in the last 5\nhours. Articles will take 2 minutes to appear.\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 50.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the [node-feedparser][3] format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\nPublished articles\n------------------\n\nCurrently, megafilter does not create a published RSS feed. If that's needed by\nsomeone I'll add it. The reason I did not put it is because RSS is not\ncross-domain, and is annoying to parse with jQuery.\n\nThe `/published` JSONP feed is simply the latest 50 published articles in the\nformat that [node-feedparser][3] produces.\n\nIf you want an example on how to integrate the published items, see [my website engine.][8]\n\nI'll probably make this available as part of megafilter.\n\n[8]: https://github.com/naggie/naggie.github.com/blob/master/js/src/engine.js\n\n\nRunning without sudo on port 80\n-------------------------------\n\nIf you want to host on port 80 under ubuntu on your account, you can install `libcap2-bin`\nthen run `setcap 'cap_net_bind_service=+ep' /usr/local/bin/node` to give node access to port 80.\n\nYour path to the `node` binary may vary, you can find it with `which node`\n\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n","readmeFilename":"README.md","_id":"megafilter@0.4.3","dist":{"shasum":"5226c7648f2c5050a31cf755bfe4ad52fa639942","tarball":"https://registry.npmjs.org/megafilter/-/megafilter-0.4.3.tgz","integrity":"sha512-J692JvueDCAcWLBxkvCOEkSYXxxEPenHP+XCdcZqvWvBAgCqbSdUY2c/nfUH4AzZ05a6WC9fUlELZkTMpVAAYg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHUnDFX4U9IgiNwXng1v+TLt6HTaa/knVUYSRZdby+H5AiAd5M3Dg64A6dkizqyMRDbVL1HI4DBZLe2k+pwujdktOg=="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"naggie","email":"callan.bryant@gmail.com"},"maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.4.4":{"name":"megafilter","homepage":"http://callanbryant.co.uk/megafilter/","description":"a personal google reader replacement","keywords":["google reader","rss","aggregator"],"version":"0.4.4","author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"scripts":{"start":"node app"},"dependencies":{"restify":"2.3.5","feedparser":"0.12.0","xml2js":"0.2.6","optimist":"0.3.7"},"devDependencies":{"uglify-js":"*"},"bugs":{"url":"https://github.com/naggie/megafilter/issues"},"license":"Apache","repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"},"bin":{"megafilter":"./app.js"},"preferGlobal":true,"engines":{"node":">=0.8"},"readme":"This is a personal replacement for Google reader. It's simple and suits my workflow.\n\nArticles are added to a circular FIFO queue, so that the latest articles always appear\nnext. Articles can be:\n\n* **Skipped** (s) to be viewed later\n* **Published** (p) to a JSONP 'RSS' feed\n* **Discarded** (d) from the queue\n* **Inspected** (i) to view the article from the original website, with comments\n\nDestructive actions can be undone (u).\n\nThe current article is synchronised across all devices, so you can continue reading\non yor smartphone.\n\n\n**State: Very beta but working very well!** I have migrated from Google reader\nto Megafilter.\n\n\n![screenshot](http://callanbryant.co.uk/images/megafilter.png)\n\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\n\tsudo npm install -g megafilter\n\t# copy subscriptions.xml and starred.json from your google reader takeout to here\n\tmegafilter -s subscriptions.xml --import-greader-starred starred.json\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. Setcap can be used to run from port\n80 without sudo; this is documented at the end of this file.\n\nThere will be a subscriptions manager soon. For the mean time, always start the\nserver with `-s subscriptions.xml`. Note that you only need to import once!\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\n\nBy default megafilter will save the published items to\n`~/megafilter-published.json`. You can change this directory with `--store-dir`\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\nWhen megafilter starts, it will check each feed within the first 2 minutes\n(this is so that servers don't get hammered) and after this, each feed will be\nchecked at the average post interval. Articles that are posted after the\ninitial check are added to the queue, so it may take a while for articles to\nappear. If you are excited and/or impatient like me, then you may use the new\n`--backfill 5` option, to initially add articles that were new in the last 5\nhours. Articles will take 2 minutes to appear.\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 50.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the [node-feedparser][3] format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\nPublished articles\n------------------\n\nCurrently, megafilter does not create a published RSS feed. If that's needed by\nsomeone I'll add it. The reason I did not put it is because RSS is not\ncross-domain, and is annoying to parse with jQuery.\n\nThe `/published` JSONP feed is simply the latest 50 published articles in the\nformat that [node-feedparser][3] produces.\n\nIf you want an example on how to integrate the published items, see [my website engine.][8]\n\nI'll probably make this available as part of megafilter.\n\n[8]: https://github.com/naggie/naggie.github.com/blob/master/js/src/engine.js\n\n\nRunning without sudo on port 80\n-------------------------------\n\nIf you want to host on port 80 under ubuntu on your account, you can install `libcap2-bin`\nthen run `setcap 'cap_net_bind_service=+ep' /usr/local/bin/node` to give node access to port 80.\n\nYour path to the `node` binary may vary, you can find it with `which node`\n\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n","readmeFilename":"README.md","_id":"megafilter@0.4.4","dist":{"shasum":"2e24334600f4b2bef188cca71548f34e17247710","tarball":"https://registry.npmjs.org/megafilter/-/megafilter-0.4.4.tgz","integrity":"sha512-UfUWG/d0RZlx7Gfjlb32/xAgs4aCBDbovNC+kbM0gk5HQr5NykN0YfbFXrY6tGTLs+CWZrV1ef9/W7ZkIVU7lA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEWXfLbkXxFyp9KzXpfowcxjtG6jHh/bC4UwZFa9a18+AiADf870+qAJHERjvDnADEvx0M0TxKkqs0LqYx+3suGy/w=="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"naggie","email":"callan.bryant@gmail.com"},"maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.4.5":{"name":"megafilter","homepage":"http://callanbryant.co.uk/megafilter/","description":"a personal google reader replacement","keywords":["google reader","rss","aggregator"],"version":"0.4.5","author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"scripts":{"start":"node app"},"dependencies":{"restify":"2.3.5","feedparser":"0.12.0","xml2js":"0.2.6","optimist":"0.3.7"},"devDependencies":{"uglify-js":"*"},"bugs":{"url":"https://github.com/naggie/megafilter/issues"},"license":"Apache","repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"},"bin":{"megafilter":"./app.js"},"preferGlobal":true,"engines":{"node":">=0.8"},"readme":"This is a personal replacement for Google reader. It's simple and suits my workflow.\n\nArticles are added to a circular FIFO queue, so that the latest articles always appear\nnext. Articles can be:\n\n* **Skipped** (s) to be viewed later\n* **Published** (p) to a JSONP 'RSS' feed\n* **Discarded** (d) from the queue\n* **Inspected** (i) to view the article from the original website, with comments\n\nDestructive actions can be undone (u).\n\nThe current article is synchronised across all devices, so you can continue reading\non yor smartphone.\n\nIt's quite a nice use for your Raspberry Pi.\n\n**State: Very beta but working very well!** I have migrated from Google reader\nto Megafilter.\n\n\n![screenshot](http://callanbryant.co.uk/images/megafilter.png)\n\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\n\tsudo npm install -g megafilter\n\t# copy subscriptions.xml and starred.json from your google reader takeout to here\n\tmegafilter -s subscriptions.xml --import-greader-starred starred.json\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. Setcap can be used to run from port\n80 without sudo; this is documented at the end of this file.\n\nThere will be a subscriptions manager soon. For the mean time, always start the\nserver with `-s subscriptions.xml`. Note that you only need to import once!\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\n\nBy default megafilter will save the published items to\n`~/megafilter-published.json`. You can change this directory with `--store-dir`\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\nWhen megafilter starts, it will check each feed within the first 2 minutes\n(this is so that servers don't get hammered) and after this, each feed will be\nchecked at the average post interval. Articles that are posted after the\ninitial check are added to the queue, so it may take a while for articles to\nappear. If you are excited and/or impatient like me, then you may use the new\n`--backfill 5` option, to initially add articles that were new in the last 5\nhours. Articles will take 2 minutes to appear.\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 50.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the [node-feedparser][3] format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\nPublished articles\n------------------\n\nCurrently, megafilter does not create a published RSS feed. If that's needed by\nsomeone I'll add it. The reason I did not put it is because RSS is not\ncross-domain, and is annoying to parse with jQuery.\n\nThe `/published` JSONP feed is simply the latest 50 published articles in the\nformat that [node-feedparser][3] produces.\n\nIf you want an example on how to integrate the published items, see [my website engine.][8]\n\nI'll probably make this available as part of megafilter.\n\n[8]: https://github.com/naggie/naggie.github.com/blob/master/js/src/engine.js\n\n\nRunning without sudo on port 80\n-------------------------------\n\nIf you want to host on port 80 under ubuntu on your account, you can install `libcap2-bin`\nthen run `setcap 'cap_net_bind_service=+ep' /usr/local/bin/node` to give node access to port 80.\n\nYour path to the `node` binary may vary, you can find it with `which node`\n\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n","readmeFilename":"README.md","_id":"megafilter@0.4.5","dist":{"shasum":"0a95a45ddfa70e08e3a5b4ffc5eb699e00eb2a2a","tarball":"https://registry.npmjs.org/megafilter/-/megafilter-0.4.5.tgz","integrity":"sha512-m9EUjg5/K9McIfvIB45mhI4tA7RjTVHZ6fAql+UtUQabiLZN5eQ5zb1lZqiaC3XqkaEgHsycqfkU2VsPSWdZBQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFHkbbfwcDCezUJmus8PfkM777DRX7dPcmPe9Pwoz18VAiAOejF5+pVGjMB4GTwE48AYaLglU3m4ANy5jrMlXHTvAg=="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"naggie","email":"callan.bryant@gmail.com"},"maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.5.0":{"name":"megafilter","homepage":"http://callanbryant.co.uk/megafilter/","description":"a personal google reader replacement","keywords":["google reader","rss","aggregator"],"version":"0.5.0","author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"scripts":{"start":"node app"},"dependencies":{"restify":"2.3.5","feedparser":"0.12.0","xml2js":"0.2.6","node-static":"0.6.9","optimist":"0.3.7"},"devDependencies":{"uglify-js":"*"},"bugs":{"url":"https://github.com/naggie/megafilter/issues"},"license":"Apache","repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"},"bin":{"megafilter":"./app.js"},"preferGlobal":true,"engines":{"node":">=0.8"},"readme":"This is a personal replacement for Google reader. It's simple and suits my workflow.\n\nArticles are added to a circular FIFO queue, so that the latest articles always appear\nnext. Articles can be:\n\n* **Skipped** (s) to be viewed later\n* **Published** (p) to a JSONP 'RSS' feed\n* **Discarded** (d) from the queue\n* **Inspected** (i) to view the article from the original website, with comments\n\nDestructive actions can be undone (u).\n\nThe current article is synchronised across all devices, so you can continue reading\non yor smartphone.\n\nIt's quite a nice use for your Raspberry Pi.\n\n**State: Very beta but working very well!** I have migrated from Google reader\nto Megafilter.\n\n\n![screenshot](http://callanbryant.co.uk/images/megafilter.png)\n\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\n\tsudo npm install -g megafilter\n\t# copy subscriptions.xml and starred.json from your google reader takeout to here\n\tmegafilter -s subscriptions.xml --import-greader-starred starred.json\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. Setcap can be used to run from port\n80 without sudo; this is documented at the end of this file.\n\nThere will be a subscriptions manager soon. For the mean time, always start the\nserver with `-s subscriptions.xml`. Note that you only need to import once!\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\n\nBy default megafilter will save the published items to\n`~/megafilter-published.json`. You can change this directory with `--store-dir`\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\nWhen megafilter starts, it will check each feed within the first 2 minutes\n(this is so that servers don't get hammered) and after this, each feed will be\nchecked at the average post interval. Articles that are posted after the\ninitial check are added to the queue, so it may take a while for articles to\nappear. If you are excited and/or impatient like me, then you may use the new\n`--backfill 5` option, to initially add articles that were new in the last 5\nhours. Articles will take 2 minutes to appear.\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 50.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the [node-feedparser][3] format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\nPublished articles\n------------------\n\nCurrently, megafilter does not create a published RSS feed. If that's needed by\nsomeone I'll add it. The reason I did not put it is because RSS is not\ncross-domain, and is annoying to parse with jQuery.\n\nThe `/published` JSONP feed is simply the latest 50 published articles in the\nformat that [node-feedparser][3] produces.\n\nIf you want an example on how to integrate the published items, see [my website engine.][8]\n\nI'll probably make this available as part of megafilter.\n\n[8]: https://github.com/naggie/naggie.github.com/blob/master/js/src/engine.js\n\n\nRunning without sudo on port 80\n-------------------------------\n\nIf you want to host on port 80 under ubuntu on your account, you can install `libcap2-bin`\nthen run `setcap 'cap_net_bind_service=+ep' /usr/local/bin/node` to give node access to port 80.\n\nYour path to the `node` binary may vary, you can find it with `which node`\n\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n","readmeFilename":"README.md","_id":"megafilter@0.5.0","dist":{"shasum":"515f8527dca68dbb56e05982d18798141a528f84","tarball":"https://registry.npmjs.org/megafilter/-/megafilter-0.5.0.tgz","integrity":"sha512-un2C/aevHjRzbuAylRRQl+vjVdlkT2sgR112w8AGFkNDZwCncYQgpBsD9wcso9aADZ/pJLmfd54aJpx+EJ6rjA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCijKGyQNCtAt+r6TuteoTfJ7xQf0xTLesJb8PCdFLl1wIhAPcS4zzNl0tfKciJrlNVqJVcYhrwxnd3uNwj0mwhb7AI"}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"naggie","email":"callan.bryant@gmail.com"},"maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.5.1":{"name":"megafilter","homepage":"http://callanbryant.co.uk/megafilter/","description":"a personal google reader replacement","keywords":["google reader","rss","aggregator"],"version":"0.5.1","author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"scripts":{"start":"node app"},"dependencies":{"restify":"2.3.5","feedparser":"0.12.0","xml2js":"0.2.6","node-static":"0.6.9","optimist":"0.3.7"},"devDependencies":{"uglify-js":"*"},"bugs":{"url":"https://github.com/naggie/megafilter/issues"},"license":"Apache","repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"},"bin":{"megafilter":"./app.js"},"preferGlobal":true,"engines":{"node":">=0.8"},"readme":"This is a personal replacement for Google reader. It's simple and suits my workflow.\n\nArticles are added to a circular FIFO queue, so that the latest articles always appear\nnext. Articles can be:\n\n* **Skipped** (s) to be viewed later\n* **Published** (p) to a JSONP 'RSS' feed\n* **Discarded** (d) from the queue\n* **Inspected** (i) to view the article from the original website, with comments\n\nDestructive actions can be undone (u).\n\nThe current article is synchronised across all devices, so you can continue reading\non yor smartphone.\n\nIt's quite a nice use for your Raspberry Pi.\n\n**State: Very beta but working very well!** I have migrated from Google reader\nto Megafilter.\n\n\n![screenshot](http://callanbryant.co.uk/images/megafilter.png)\n\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\n\tsudo npm install -g megafilter\n\t# copy subscriptions.xml and starred.json from your google reader takeout to here\n\tmegafilter -s subscriptions.xml --import-greader-starred starred.json\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. Setcap can be used to run from port\n80 without sudo; this is documented at the end of this file.\n\nThere will be a subscriptions manager soon. For the mean time, always start the\nserver with `-s subscriptions.xml`. Note that you only need to import once!\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\n\nBy default megafilter will save the published items to\n`~/megafilter-published.json`. You can change this directory with `--store-dir`\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\nWhen megafilter starts, it will check each feed within the first 2 minutes\n(this is so that servers don't get hammered) and after this, each feed will be\nchecked at the average post interval. Articles that are posted after the\ninitial check are added to the queue, so it may take a while for articles to\nappear. If you are excited and/or impatient like me, then you may use the new\n`--backfill 5` option, to initially add articles that were new in the last 5\nhours. Articles will take 2 minutes to appear.\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 50.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the [node-feedparser][3] format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\nPublished articles\n------------------\n\nCurrently, megafilter does not create a published RSS feed. If that's needed by\nsomeone I'll add it. The reason I did not put it is because RSS is not\ncross-domain, and is annoying to parse with jQuery.\n\nThe `/published` JSONP feed is simply the latest 50 published articles in the\nformat that [node-feedparser][3] produces.\n\nIf you want an example on how to integrate the published items, see [my website engine.][8]\n\nI'll probably make this available as part of megafilter.\n\n[8]: https://github.com/naggie/naggie.github.com/blob/master/js/src/engine.js\n\n\nRunning without sudo on port 80\n-------------------------------\n\nIf you want to host on port 80 under ubuntu on your account, you can install `libcap2-bin`\nthen run `setcap 'cap_net_bind_service=+ep' /usr/local/bin/node` to give node access to port 80.\n\nYour path to the `node` binary may vary, you can find it with `which node`\n\n\nTheming\n-------\nSince v0.5.1 (global) theming is supported! To use theming, add:\n\n\t--theme <name>\n\nTo the megafilter command, where `<name>` is the filename of a css file in\n`public/themes/`. Currently, the two themes available are `default` and `lime`.\nMany thanks to @dvbportal for developing the lime theme.\n\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n  * [node static][7]: Used to implement serving `/style` dynamically\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n[9]: https://github.com/naggie/megafilter/issues/63\n[10]: https://github.com/cloudhead/node-static\n","readmeFilename":"README.md","_id":"megafilter@0.5.1","dist":{"shasum":"de423758cf28998162d772faec19825ca0a4cea6","tarball":"https://registry.npmjs.org/megafilter/-/megafilter-0.5.1.tgz","integrity":"sha512-vU5zqUBa7hi3zxdC8RRyTdpwtfPMLOPDrej2R6E38sUBSojkA/kovpuV4TqlpZzCxtlAv/sAyFJh9uVm+6OdBw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDOBT6rujEJaDfv4Gf8gsfZL564ro8MIh9MEGqo+oaCjAiEAlNSDK78psdXEw6qt7+gz57lp/7sIdv4hug2CmmK5Khc="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"naggie","email":"callan.bryant@gmail.com"},"maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.5.2":{"name":"megafilter","homepage":"http://callanbryant.co.uk/megafilter/","description":"a personal google reader replacement","keywords":["google reader","rss","aggregator"],"version":"0.5.2","author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"scripts":{"start":"node app"},"dependencies":{"restify":"2.3.5","feedparser":"0.12.0","xml2js":"0.2.6","node-static":"0.6.9","optimist":"0.3.7"},"devDependencies":{"uglify-js":"*"},"bugs":{"url":"https://github.com/naggie/megafilter/issues"},"license":"Apache","repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"},"bin":{"megafilter":"./app.js"},"preferGlobal":true,"engines":{"node":">=0.8"},"readme":"This is a personal replacement for Google reader. It's simple and suits my workflow.\n\nArticles are added to a circular FIFO queue, so that the latest articles always appear\nnext. Articles can be:\n\n* **Skipped** (s) to be viewed later\n* **Published** (p) to a JSONP 'RSS' feed\n* **Discarded** (d) from the queue\n* **Inspected** (i) to view the article from the original website, with comments\n\nDestructive actions can be undone (u).\n\nThe current article is synchronised across all devices, so you can continue reading\non yor smartphone.\n\nIt's quite a nice use for your Raspberry Pi.\n\n**State: Very beta but working very well!** I have migrated from Google reader\nto Megafilter.\n\n\n![screenshot](http://callanbryant.co.uk/images/megafilter.png)\n\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\n\tsudo npm install -g megafilter\n\t# copy subscriptions.xml and starred.json from your google reader takeout to here\n\tmegafilter -s subscriptions.xml --import-greader-starred starred.json\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. Setcap can be used to run from port\n80 without sudo; this is documented at the end of this file.\n\nThere will be a subscriptions manager soon. For the mean time, always start the\nserver with `-s subscriptions.xml`. Note that you only need to import once!\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\n\nBy default megafilter will save the published items to\n`~/megafilter-published.json`. You can change this directory with `--store-dir`\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\nWhen megafilter starts, it will check each feed within the first 2 minutes\n(this is so that servers don't get hammered) and after this, each feed will be\nchecked at the average post interval. Articles that are posted after the\ninitial check are added to the queue, so it may take a while for articles to\nappear. If you are excited and/or impatient like me, then you may use the new\n`--backfill 5` option, to initially add articles that were new in the last 5\nhours. Articles will take 2 minutes to appear.\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 50.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the [node-feedparser][3] format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\nPublished articles\n------------------\n\nCurrently, megafilter does not create a published RSS feed. If that's needed by\nsomeone I'll add it. The reason I did not put it is because RSS is not\ncross-domain, and is annoying to parse with jQuery.\n\nThe `/published` JSONP feed is simply the latest 50 published articles in the\nformat that [node-feedparser][3] produces.\n\nIf you want an example on how to integrate the published items, see [my website engine.][8]\n\nI'll probably make this available as part of megafilter.\n\n[8]: https://github.com/naggie/naggie.github.com/blob/master/js/src/engine.js\n\n\nRunning without sudo on port 80\n-------------------------------\n\nIf you want to host on port 80 under ubuntu on your account, you can install `libcap2-bin`\nthen run `setcap 'cap_net_bind_service=+ep' /usr/local/bin/node` to give node access to port 80.\n\nYour path to the `node` binary may vary, you can find it with `which node`\n\n\nTheming\n-------\nSince v0.5.1 (global) theming is supported! To use theming, add:\n\n\t--theme <name>\n\nTo the megafilter command, where `<name>` is the filename of a css file in\n`public/themes/`. Currently, the two themes available are `default` and `lime`.\nMany thanks to @dvbportal for developing the lime theme.\n\n\nIf you are switching themes, you may need to do a refresh to clear the cache.\nIt is CTRL+SHIFT+R on Chrome.\n\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n  * [node static][7]: Used to implement serving `/style` dynamically\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n[9]: https://github.com/naggie/megafilter/issues/63\n[10]: https://github.com/cloudhead/node-static\n","readmeFilename":"README.md","_id":"megafilter@0.5.2","dist":{"shasum":"2f82b0f76ed78fe55b22ede052646d7487fd7a79","tarball":"https://registry.npmjs.org/megafilter/-/megafilter-0.5.2.tgz","integrity":"sha512-Dg9yf8g9ToaDaqAgf6j3/383HY9RNVHHXUOSRNfnGiymz8pYy8ZjERHogXVcYt7+lze72v2t/wS6HwtvDCQYLw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCGSo2fOoKLSkdMCGA7Ty6KiV/2Yw6jGj7+IJLrrlZwUgIhAJS8bvEWSJHGgAIVdvC9K0CflvzIrkYssKp6oYVbTE0T"}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"naggie","email":"callan.bryant@gmail.com"},"maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.5.2-2":{"name":"megafilter","homepage":"http://callanbryant.co.uk/megafilter/","description":"a personal google reader replacement","keywords":["google reader","rss","aggregator"],"version":"0.5.2-2","author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"scripts":{"start":"node app"},"dependencies":{"restify":"2.3.5","feedparser":"0.12.0","xml2js":"0.2.6","node-static":"0.6.9","optimist":"0.3.7"},"devDependencies":{"uglify-js":"*"},"bugs":{"url":"https://github.com/naggie/megafilter/issues"},"license":"Apache","repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"},"bin":{"megafilter":"./app.js"},"preferGlobal":true,"engines":{"node":">=0.8"},"readme":"This is a personal replacement for Google reader. It's simple and suits my workflow.\n\nArticles are added to a circular FIFO queue, so that the latest articles always appear\nnext. Articles can be:\n\n* **Skipped** (s) to be viewed later\n* **Published** (p) to a JSONP 'RSS' feed\n* **Discarded** (d) from the queue\n* **Inspected** (i) to view the article from the original website, with comments\n\nDestructive actions can be undone (u).\n\nThe current article is synchronised across all devices, so you can continue reading\non yor smartphone.\n\nIt's quite a nice use for your Raspberry Pi.\n\n**State: Very beta but working very well!** I have migrated from Google reader\nto Megafilter. **Patches welcome!**\n\n\n![screenshot](http://callanbryant.co.uk/images/megafilter.png)\n\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\n\tsudo npm install -g megafilter\n\t# copy subscriptions.xml and starred.json from your google reader takeout to here\n\tmegafilter -s subscriptions.xml --import-greader-starred starred.json\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. Setcap can be used to run from port\n80 without sudo; this is documented at the end of this file.\n\nThere will be a subscriptions manager soon. For the mean time, always start the\nserver with `-s subscriptions.xml`. Note that you only need to import once!\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\n\nBy default megafilter will save the published items to\n`~/megafilter-published.json`. You can change this directory with `--store-dir`\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\nWhen megafilter starts, it will check each feed within the first 2 minutes\n(this is so that servers don't get hammered) and after this, each feed will be\nchecked at the average post interval. Articles that are posted after the\ninitial check are added to the queue, so it may take a while for articles to\nappear. If you are excited and/or impatient like me, then you may use the new\n`--backfill 5` option, to initially add articles that were new in the last 5\nhours. Articles will take 2 minutes to appear.\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 50.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the [node-feedparser][3] format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\nPublished articles\n------------------\n\nCurrently, megafilter does not create a published RSS feed. If that's needed by\nsomeone I'll add it. The reason I did not put it is because RSS is not\ncross-domain, and is annoying to parse with jQuery.\n\nThe `/published` JSONP feed is simply the latest 50 published articles in the\nformat that [node-feedparser][3] produces.\n\nIf you want an example on how to integrate the published items, see [my website engine.][8]\n\nI'll probably make this available as part of megafilter.\n\n[8]: https://github.com/naggie/naggie.github.com/blob/master/js/src/engine.js\n\n\nRunning without sudo on port 80\n-------------------------------\n\nIf you want to host on port 80 under ubuntu on your account, you can install `libcap2-bin`\nthen run `setcap 'cap_net_bind_service=+ep' /usr/local/bin/node` to give node access to port 80.\n\nYour path to the `node` binary may vary, you can find it with `which node`\n\n\nTheming\n-------\nSince v0.5.1 (global) theming is supported! To use theming, add:\n\n\t--theme <name>\n\nTo the megafilter command, where `<name>` is the filename of a css file in\n`public/themes/`. Currently, the two themes available are `default` and `lime`.\nMany thanks to @dvbportal for developing the lime theme.\n\nHere is the lime theme, which is responsive so that it adjusts to your device:\n\n![screenshot](https://github.com/naggie/megafilter/raw/master/screenshots/lime.png)\n\n\nIf you are switching themes, you may need to do a refresh to clear the cache.\nIt is CTRL+SHIFT+R on Chrome.\n\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n  * [node static][7]: Used to implement serving `/style` dynamically\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n[9]: https://github.com/naggie/megafilter/issues/63\n[10]: https://github.com/cloudhead/node-static\n","readmeFilename":"README.md","_id":"megafilter@0.5.2-2","dist":{"shasum":"f54c744ee524cedefc3ad79a319be51bbfcf0eea","tarball":"https://registry.npmjs.org/megafilter/-/megafilter-0.5.2-2.tgz","integrity":"sha512-jkt4e+sxFSF5pZEQa7jx/+iKmua9iYKqw5mD3TgQb5BPATPVhsiodsfjxX02Jx5z9jzc6950W9XRt9Qj8xdjDA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDImCc2M6BMPP/ZknIHzMlKLRLN2owTVQVRR0AzWXnfYQIhAKIUIrgkPOe//bJQy600fpsACj9mjeOuFSqjWPeaSa8M"}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"naggie","email":"callan.bryant@gmail.com"},"maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.5.3-0":{"name":"megafilter","homepage":"http://callanbryant.co.uk/megafilter/","description":"a personal google reader replacement","keywords":["google reader","rss","aggregator"],"version":"0.5.3-0","author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"scripts":{"start":"node app"},"dependencies":{"restify":"2.3.5","feedparser":"0.12.0","xml2js":"0.2.6","node-static":"0.6.9","optimist":"0.3.7"},"devDependencies":{"uglify-js":"*"},"bugs":{"url":"https://github.com/naggie/megafilter/issues"},"license":"Apache","repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"},"bin":{"megafilter":"./app.js"},"preferGlobal":true,"engines":{"node":">=0.8"},"readme":"This is a personal replacement for Google reader. It's simple and suits my workflow.\n\nArticles are added to a circular FIFO queue, so that the latest articles always appear\nnext. Articles can be:\n\n* **Skipped** (s) to be viewed later\n* **Published** (p) to a JSONP 'RSS' feed\n* **Discarded** (d) from the queue\n* **Inspected** (i) to view the article from the original website, with comments\n\nDestructive actions can be undone (u).\n\nThe current article is synchronised across all devices, so you can continue reading\non yor smartphone.\n\nIt's quite a nice use for your Raspberry Pi.\n\n**State: Very beta but working very well!** I have migrated from Google reader\nto Megafilter. **Patches welcome!** to produce a starred items feed. My copy\npublishes to <http://callanbryant.co.uk/#Recommended>\n\n\n![screenshot](http://callanbryant.co.uk/images/megafilter.png)\n\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\n\tsudo npm install -g megafilter\n\t# copy subscriptions.xml and starred.json from your google reader takeout to here\n\tmegafilter -s subscriptions.xml --import-greader-starred starred.json\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. Setcap can be used to run from port\n80 without sudo; this is documented at the end of this file.\n\nThere will be a subscriptions manager soon. For the mean time, always start the\nserver with `-s subscriptions.xml`. Note that you only need to import once!\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\n\nBy default megafilter will save the published items to\n`~/megafilter-published.json`. You can change this directory with `--store-dir`\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\nWhen megafilter starts, it will check each feed within the first 2 minutes\n(this is so that servers don't get hammered) and after this, each feed will be\nchecked at the average post interval. Articles that are posted after the\ninitial check are added to the queue, so it may take a while for articles to\nappear. If you are excited and/or impatient like me, then you may use the new\n`--backfill 5` option, to initially add articles that were new in the last 5\nhours. Articles will take 2 minutes to appear.\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 50.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the [node-feedparser][3] format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\nPublished articles\n------------------\n\nCurrently, megafilter does not create a published RSS feed. If that's needed by\nsomeone I'll add it. The reason I did not put it is because RSS is not\ncross-domain, and is annoying to parse with jQuery.\n\nThe `/published` JSONP feed is simply the latest 50 published articles in the\nformat that [node-feedparser][3] produces.\n\nIf you want an example on how to integrate the published items, see [my website engine.][8]\n\nI'll probably make this available as part of megafilter.\n\n[8]: https://github.com/naggie/naggie.github.com/blob/master/js/src/engine.js\n\n\nRunning without sudo on port 80\n-------------------------------\n\nIf you want to host on port 80 under ubuntu on your account, you can install `libcap2-bin`\nthen run `setcap 'cap_net_bind_service=+ep' /usr/local/bin/node` to give node access to port 80.\n\nYour path to the `node` binary may vary, you can find it with `which node`\n\n\nTheming\n-------\nSince v0.5.1 (global) theming is supported! To use theming, add:\n\n\t--theme <name>\n\nTo the megafilter command, where `<name>` is the filename of a css file in\n`public/themes/`. Currently, the two themes available are `default` and `lime`.\nMany thanks to @dvbportal for developing the lime theme.\n\nHere is the lime theme, which is responsive so that it adjusts to your device:\n\n![screenshot](https://github.com/naggie/megafilter/raw/master/screenshots/lime.png)\n\n\nIf you are switching themes, you may need to do a refresh to clear the cache.\nIt is CTRL+SHIFT+R on Chrome.\n\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n  * [node static][7]: Used to implement serving `/style` dynamically\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n[9]: https://github.com/naggie/megafilter/issues/63\n[10]: https://github.com/cloudhead/node-static\n","readmeFilename":"README.md","_id":"megafilter@0.5.3-0","dist":{"shasum":"b0f95a072ed68c69753b87275ae5570a7abe4e42","tarball":"https://registry.npmjs.org/megafilter/-/megafilter-0.5.3-0.tgz","integrity":"sha512-xpNIcCJHd41fGGDqnvLCfXIgp95/PrRbwIZVfHZRMJgY7IIZ9B5jaqUG52m+rHdBj2kOMnGsXhsueWrxA197AQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAvGFiPlxnbNX3y0uVqv7afu68BXGdezCzuCf88WxgmdAiADJSgncq0TFmTjOuxzQtqIS1U0f+ykdSkOlc1tIfx0Vw=="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"naggie","email":"callan.bryant@gmail.com"},"maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.6.0-0":{"name":"megafilter","homepage":"http://callanbryant.co.uk/megafilter/","description":"a personal google reader replacement","keywords":["google reader","rss","aggregator"],"version":"0.6.0-0","author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"scripts":{"start":"node app"},"dependencies":{"restify":"2.3.5","feedparser":"0.12.0","xml2js":"0.2.6","node-static":"0.6.9","optimist":"0.3.7"},"devDependencies":{"uglify-js":"*"},"bugs":{"url":"https://github.com/naggie/megafilter/issues"},"license":"Apache","repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"},"bin":{"megafilter":"./app.js"},"preferGlobal":true,"engines":{"node":">=0.8"},"readme":"This is a personal replacement for Google reader. It's simple and suits my workflow.\n\nArticles are added to a circular FIFO queue, so that the latest articles always appear\nnext. Articles can be:\n\n* **Skipped** (s) to be viewed later\n* **Published** (p) to a JSONP 'RSS' feed\n* **Discarded** (d) from the queue\n* **Inspected** (i) to view the article from the original website, with comments\n\nDestructive actions can be undone (u).\n\nThe current article is synchronised across all devices, so you can continue reading\non yor smartphone.\n\nIt's quite a nice use for your Raspberry Pi.\n\n**State: Very beta but working very well!** I have migrated from Google reader\nto Megafilter. **Patches welcome!** to produce a starred items feed. My copy\npublishes to <http://callanbryant.co.uk/#Recommended>\n\n\n![screenshot](http://callanbryant.co.uk/images/megafilter.png)\n\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\n\tsudo npm install -g megafilter\n\t# copy subscriptions.xml and starred.json from your google reader takeout to here\n\tmegafilter -s subscriptions.xml --import-greader-starred starred.json\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. Setcap can be used to run from port\n80 without sudo; this is documented at the end of this file.\n\nThere will be a subscriptions manager soon. For the mean time, always start the\nserver with `-s subscriptions.xml`. Note that you only need to import once!\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\n\nBy default megafilter will save the published items to\n`~/megafilter-published.json`. You can change this directory with `--store-dir`\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\nWhen megafilter starts, it will check each feed within the first 2 minutes\n(this is so that servers don't get hammered) and after this, each feed will be\nchecked at the average post interval. Articles that are posted after the\ninitial check are added to the queue, so it may take a while for articles to\nappear. If you are excited and/or impatient like me, then you may use the new\n`--backfill 5` option, to initially add articles that were new in the last 5\nhours. Articles will take 2 minutes to appear.\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 50.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the [node-feedparser][3] format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\nPublished articles\n------------------\n\nCurrently, megafilter does not create a published RSS feed. If that's needed by\nsomeone I'll add it. The reason I did not put it is because RSS is not\ncross-domain, and is annoying to parse with jQuery.\n\nThe `/published` JSONP feed is simply the latest 50 published articles in the\nformat that [node-feedparser][3] produces.\n\nIf you want an example on how to integrate the published items, see [my website engine.][8]\n\nI'll probably make this available as part of megafilter.\n\n[8]: https://github.com/naggie/naggie.github.com/blob/master/js/src/engine.js\n\n\nRunning without sudo on port 80\n-------------------------------\n\nIf you want to host on port 80 under ubuntu on your account, you can install `libcap2-bin`\nthen run `setcap 'cap_net_bind_service=+ep' /usr/local/bin/node` to give node access to port 80.\n\nYour path to the `node` binary may vary, you can find it with `which node`\n\n\nTheming\n-------\nSince v0.5.1 (global) theming is supported! To use theming, add:\n\n\t--theme <name>\n\nTo the megafilter command, where `<name>` is the filename of a css file in\n`public/themes/`. Currently, the two themes available are `default` and `lime`.\nMany thanks to @dvbportal for developing the lime theme.\n\nHere is the lime theme, which is responsive so that it adjusts to your device:\n\n![screenshot](https://github.com/naggie/megafilter/raw/master/screenshots/lime.png)\n\n\nIf you are switching themes, you may need to do a refresh to clear the cache.\nIt is CTRL+SHIFT+R on Chrome.\n\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n  * [node static][7]: Used to implement serving `/style` dynamically\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n[9]: https://github.com/naggie/megafilter/issues/63\n[10]: https://github.com/cloudhead/node-static\n","readmeFilename":"README.md","_id":"megafilter@0.6.0-0","dist":{"shasum":"fd247cb4d949a1837e9cfec4cf1412dde65ea925","tarball":"https://registry.npmjs.org/megafilter/-/megafilter-0.6.0-0.tgz","integrity":"sha512-MhPqViJ+Y/fWpyKjgBokTS+BsW28+50AxaXqd/YQwykkDCf0V1vPAioqdodHe1GOX6VY8wsx5JOcgwMqa2Vq9A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCnM6GNcBPfl1VpSWfJCU8LU+XOLwGIh70d69eTRaj17wIgXSSImNHqHEg+C5UfcMkVgfsAk5ixPpzH/+bMEREsir0="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"naggie","email":"callan.bryant@gmail.com"},"maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.6.1-0":{"name":"megafilter","homepage":"http://callanbryant.co.uk/megafilter/","description":"a personal google reader replacement","keywords":["google reader","rss","aggregator"],"version":"0.6.1-0","author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"scripts":{"start":"node app"},"dependencies":{"restify":"2.3.5","feedparser":"0.12.0","xml2js":"0.2.6","node-static":"0.6.9","optimist":"0.3.7"},"devDependencies":{"uglify-js":"*"},"bugs":{"url":"https://github.com/naggie/megafilter/issues"},"license":"Apache","repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"},"bin":{"megafilter":"./app.js"},"preferGlobal":true,"engines":{"node":">=0.8"},"readme":"This is a personal replacement for Google reader. It's simple and suits my workflow.\n\nArticles are added to a circular FIFO queue, so that the latest articles always appear\nnext. Articles can be:\n\n* **Skipped** (s) to be viewed later\n* **Published** (p) to a JSONP 'RSS' feed\n* **Discarded** (d) from the queue\n* **Inspected** (i) to view the article from the original website, with comments\n\nDestructive actions can be undone (u).\n\nThe current article is synchronised across all devices, so you can continue reading\non yor smartphone.\n\nIt's quite a nice use for your Raspberry Pi.\n\n**State: Very beta but working very well!** I have migrated from Google reader\nto Megafilter. **Patches welcome!** to produce a starred items feed. My copy\npublishes to <http://callanbryant.co.uk/#Recommended>\n\n\n![screenshot](http://callanbryant.co.uk/images/megafilter.png)\n\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\n\tsudo npm install -g megafilter\n\t# copy subscriptions.xml and starred.json from your google reader takeout to here\n\tmegafilter -s subscriptions.xml --import-greader-starred starred.json\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. Setcap can be used to run from port\n80 without sudo; this is documented at the end of this file.\n\nThere will be a subscriptions manager soon. For the mean time, always start the\nserver with `-s subscriptions.xml`. Note that you only need to import once!\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\n\nBy default megafilter will save the published items to\n`~/megafilter-published.json`. You can change this directory with `--store-dir`\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\nWhen megafilter starts, it will check each feed within the first 2 minutes\n(this is so that servers don't get hammered) and after this, each feed will be\nchecked at the average post interval. Articles that are posted after the\ninitial check are added to the queue, so it may take a while for articles to\nappear. If you are excited and/or impatient like me, then you may use the new\n`--backfill 5` option, to initially add articles that were new in the last 5\nhours. Articles will take 2 minutes to appear.\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 50.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the [node-feedparser][3] format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\nPublished articles\n------------------\n\nCurrently, megafilter does not create a published RSS feed. If that's needed by\nsomeone I'll add it. The reason I did not put it is because RSS is not\ncross-domain, and is annoying to parse with jQuery.\n\nThe `/published` JSONP feed is simply the latest 50 published articles in the\nformat that [node-feedparser][3] produces.\n\nIf you want an example on how to integrate the published items, see [my website engine.][8]\n\nI'll probably make this available as part of megafilter.\n\n[8]: https://github.com/naggie/naggie.github.com/blob/master/js/src/engine.js\n\n\nRunning without sudo on port 80\n-------------------------------\n\nIf you want to host on port 80 under ubuntu on your account, you can install `libcap2-bin`\nthen run `setcap 'cap_net_bind_service=+ep' /usr/local/bin/node` to give node access to port 80.\n\nYour path to the `node` binary may vary, you can find it with `which node`\n\n\nTheming\n-------\nSince v0.5.1 (global) theming is supported! To use theming, add:\n\n\t--theme <name>\n\nTo the megafilter command, where `<name>` is the filename of a css file in\n`public/themes/`. Currently, the two themes available are `default` and `lime`.\nMany thanks to @dvbportal for developing the lime theme.\n\nHere is the lime theme, which is responsive so that it adjusts to your device:\n\n![screenshot](https://github.com/naggie/megafilter/raw/master/screenshots/lime.png)\n\n\nIf you are switching themes, you may need to do a refresh to clear the cache.\nIt is CTRL+SHIFT+R on Chrome.\n\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n  * [node static][7]: Used to implement serving `/style` dynamically\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n[9]: https://github.com/naggie/megafilter/issues/63\n[10]: https://github.com/cloudhead/node-static\n","readmeFilename":"README.md","_id":"megafilter@0.6.1-0","dist":{"shasum":"80972269b5e4d9cf88583e57a42a997629c4d489","tarball":"https://registry.npmjs.org/megafilter/-/megafilter-0.6.1-0.tgz","integrity":"sha512-d8XXz9fi5wDY3K4oyE68Oswv7uo5cylCrmiY20OuFoXjzh/4V6BvM2CbVbDj9okxirfztRQH6A2+bERsutTKfQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEv5w27y80+uIKiCQXZESERILJvNyemcKWV+DsSorSNjAiB6v5wJxynOft79MnrGgRQdv7vhMql71BzcnSg3Xg7nHA=="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"naggie","email":"callan.bryant@gmail.com"},"maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.6.3-0":{"name":"megafilter","homepage":"http://callanbryant.co.uk/megafilter/","description":"a personal google reader replacement","keywords":["google reader","rss","aggregator"],"version":"0.6.3-0","author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"scripts":{"start":"node app"},"dependencies":{"restify":"2.3.5","feedparser":"0.12.0","xml2js":"0.2.6","node-static":"0.6.9","optimist":"0.3.7"},"devDependencies":{"uglify-js":"*"},"bugs":{"url":"https://github.com/naggie/megafilter/issues"},"license":"Apache","repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"},"bin":{"megafilter":"./app.js"},"preferGlobal":true,"engines":{"node":">=0.8"},"readme":"**DEVELOPMENT PAUSED, I HAVE EXAMS. SORRY.** However, I will merge pull requests!\n\n\n\nThis is a personal replacement for Google reader. It's simple and suits my workflow.\n\nArticles are added to a circular FIFO queue, so that the latest articles always appear\nnext. Articles can be:\n\n* **Skipped** (s) to be viewed later\n* **Published** (p) to a JSONP 'RSS' feed\n* **Discarded** (d) from the queue\n* **Inspected** (i) to view the article from the original website, with comments\n\nDestructive actions can be undone (u).\n\nThe current article is synchronised across all devices, so you can continue reading\non yor smartphone.\n\nIt's quite a nice use for your Raspberry Pi.\n\n**State: Very beta but working very well!** I have migrated from Google reader\nto Megafilter. **Patches welcome!** to produce a starred items feed. My copy\npublishes to <http://callanbryant.co.uk/#Recommended>\n\n\n![screenshot](http://callanbryant.co.uk/images/megafilter.png)\n\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\n\tsudo npm install -g megafilter\n\t# copy subscriptions.xml and starred.json from your google reader takeout to here\n\tmegafilter -s subscriptions.xml --import-greader-starred starred.json\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. Setcap can be used to run from port\n80 without sudo; this is documented at the end of this file.\n\nThere will be a subscriptions manager soon. For the mean time, always start the\nserver with `-s subscriptions.xml`. Note that you only need to import once!\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\n\nBy default megafilter will save the published items to\n`~/megafilter-published.json`. You can change this directory with `--store-dir`\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\nWhen megafilter starts, it will check each feed within the first 2 minutes\n(this is so that servers don't get hammered) and after this, each feed will be\nchecked at the average post interval. Articles that are posted after the\ninitial check are added to the queue, so it may take a while for articles to\nappear. If you are excited and/or impatient like me, then you may use the new\n`--backfill 5` option, to initially add articles that were new in the last 5\nhours. Articles will take 2 minutes to appear.\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 50.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the [node-feedparser][3] format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\nPublished articles\n------------------\n\nCurrently, megafilter does not create a published RSS feed. If that's needed by\nsomeone I'll add it. The reason I did not put it is because RSS is not\ncross-domain, and is annoying to parse with jQuery.\n\nThe `/published` JSONP feed is simply the latest 50 published articles in the\nformat that [node-feedparser][3] produces.\n\nIf you want an example on how to integrate the published items, see [my website engine.][8]\n\nI'll probably make this available as part of megafilter.\n\n[8]: https://github.com/naggie/naggie.github.com/blob/master/js/src/engine.js\n\n\nRunning without sudo on port 80\n-------------------------------\n\nIf you want to host on port 80 under ubuntu on your account, you can install `libcap2-bin`\nthen run `setcap 'cap_net_bind_service=+ep' /usr/local/bin/node` to give node access to port 80.\n\nYour path to the `node` binary may vary, you can find it with `which node`\n\n\nTheming\n-------\nSince v0.5.1 (global) theming is supported! To use theming, add:\n\n\t--theme <name>\n\nTo the megafilter command, where `<name>` is the filename of a css file in\n`public/themes/`. Currently, the two themes available are `default` and `lime`.\nMany thanks to @dvbportal for developing the lime theme.\n\nHere is the lime theme, which is responsive so that it adjusts to your device:\n\n![screenshot](https://github.com/naggie/megafilter/raw/master/screenshots/lime.png)\n\n\nIf you are switching themes, you may need to do a refresh to clear the cache.\nIt is CTRL+SHIFT+R on Chrome.\n\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n  * [node static][7]: Used to implement serving `/style` dynamically\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n[9]: https://github.com/naggie/megafilter/issues/63\n[10]: https://github.com/cloudhead/node-static\n","readmeFilename":"README.md","_id":"megafilter@0.6.3-0","dist":{"shasum":"37ef01274055f821e5a9d122413a164b08b1bb70","tarball":"https://registry.npmjs.org/megafilter/-/megafilter-0.6.3-0.tgz","integrity":"sha512-X72iEP6pVnArk3goyCcVGpOl3fQNi7VcLU/wDWnE90jUAqEURBQlRNtFWEEX9SPToqBIeRwhrrQrCwNWoiZt7A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID+z8+ci6vkoFEomNLKPlpNls5TQ2cFI14tkByNkOShAAiEA9PYCHwpXIG+1mCDtCBsU9Fogj9NxlaDpPCR7fomBT3k="}]},"_from":".","_npmVersion":"1.2.24","_npmUser":{"name":"naggie","email":"callan.bryant@gmail.com"},"maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.6.3-1":{"name":"megafilter","homepage":"http://callanbryant.co.uk/megafilter/","description":"a personal google reader replacement","keywords":["google reader","rss","aggregator"],"version":"0.6.3-1","author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"scripts":{"start":"node app"},"dependencies":{"restify":"2.3.5","feedparser":"0.12.0","xml2js":"0.2.6","node-static":"0.6.9","optimist":"0.3.7"},"devDependencies":{"uglify-js":"*"},"bugs":{"url":"https://github.com/naggie/megafilter/issues"},"license":"Apache","repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"},"bin":{"megafilter":"./app.js"},"preferGlobal":true,"engines":{"node":">=0.8"},"readme":"**DEVELOPMENT PAUSED, I HAVE EXAMS. SORRY.** However, I will merge pull requests!\n\n\n\nThis is a personal replacement for Google reader. It's simple and suits my workflow.\n\nArticles are added to a circular FIFO queue, so that the latest articles always appear\nnext. Articles can be:\n\n* **Skipped** (s) to be viewed later\n* **Published** (p) to a JSONP 'RSS' feed\n* **Discarded** (d) from the queue\n* **Inspected** (i) to view the article from the original website, with comments\n\nDestructive actions can be undone (u).\n\nThe current article is synchronised across all devices, so you can continue reading\non yor smartphone.\n\nIt's quite a nice use for your Raspberry Pi.\n\n**State: Very beta but working very well!** I have migrated from Google reader\nto Megafilter. **Patches welcome!** to produce a starred items feed. My copy\npublishes to <http://callanbryant.co.uk/#Recommended>\n\n\n![screenshot](http://callanbryant.co.uk/images/megafilter.png)\n\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\n\tsudo npm install -g megafilter\n\t# copy subscriptions.xml and starred.json from your google reader takeout to here\n\tmegafilter -s subscriptions.xml --import-greader-starred starred.json\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. Setcap can be used to run from port\n80 without sudo; this is documented at the end of this file.\n\nThere will be a subscriptions manager soon. For the mean time, always start the\nserver with `-s subscriptions.xml`. Note that you only need to import once!\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\n\nBy default megafilter will save the published items to\n`~/megafilter-published.json`. You can change this directory with `--store-dir`\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\nWhen megafilter starts, it will check each feed within the first 2 minutes\n(this is so that servers don't get hammered) and after this, each feed will be\nchecked at the average post interval. Articles that are posted after the\ninitial check are added to the queue, so it may take a while for articles to\nappear. If you are excited and/or impatient like me, then you may use the new\n`--backfill 5` option, to initially add articles that were new in the last 5\nhours. Articles will take 2 minutes to appear.\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 50.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the [node-feedparser][3] format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\nPublished articles\n------------------\n\nCurrently, megafilter does not create a published RSS feed. If that's needed by\nsomeone I'll add it. The reason I did not put it is because RSS is not\ncross-domain, and is annoying to parse with jQuery.\n\nThe `/published` JSONP feed is simply the latest 50 published articles in the\nformat that [node-feedparser][3] produces.\n\nIf you want an example on how to integrate the published items, see [my website engine.][8]\n\nI'll probably make this available as part of megafilter.\n\n[8]: https://github.com/naggie/naggie.github.com/blob/master/js/src/engine.js\n\n\nRunning without sudo on port 80\n-------------------------------\n\nIf you want to host on port 80 under ubuntu on your account, you can install `libcap2-bin`\nthen run `setcap 'cap_net_bind_service=+ep' /usr/local/bin/node` to give node access to port 80.\n\nYour path to the `node` binary may vary, you can find it with `which node`\n\n\nTheming\n-------\nSince v0.5.1 (global) theming is supported! To use theming, add:\n\n\t--theme <name>\n\nTo the megafilter command, where `<name>` is the filename of a css file in\n`public/themes/`. Currently, the two themes available are `default` and `lime`.\nMany thanks to @dvbportal for developing the lime theme.\n\nHere is the lime theme, which is responsive so that it adjusts to your device:\n\n![screenshot](https://github.com/naggie/megafilter/raw/master/screenshots/lime.png)\n\n\nIf you are switching themes, you may need to do a refresh to clear the cache.\nIt is CTRL+SHIFT+R on Chrome.\n\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n  * [node static][7]: Used to implement serving `/style` dynamically\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n[9]: https://github.com/naggie/megafilter/issues/63\n[10]: https://github.com/cloudhead/node-static\n","readmeFilename":"README.md","_id":"megafilter@0.6.3-1","dist":{"shasum":"ac2b5bc261bf38b3d44979dc842f880780407d26","tarball":"https://registry.npmjs.org/megafilter/-/megafilter-0.6.3-1.tgz","integrity":"sha512-wiL9clXJK1Zel2SNzVQ1gYti2++L/n0+yeqQDymWt1VKbjJ6lXffBbm5iN+gGk5VPBt4U2zMrdRimtmplmi4UA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDk+CAqzrjwsaa1oQj7LwwFdmqBjAOxabrRpx4s41vcuAiEAgOr/blqa52og08Pc8yFdmYLw9Ih3dtZYC4YMLJJWJBI="}]},"_from":".","_npmVersion":"1.2.24","_npmUser":{"name":"naggie","email":"callan.bryant@gmail.com"},"maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.7.0-0":{"name":"megafilter","homepage":"http://callanbryant.co.uk/megafilter/","description":"a personal google reader replacement","keywords":["google reader","rss","aggregator"],"version":"0.7.0-0","author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"scripts":{"start":"node app"},"dependencies":{"restify":"2.3.5","feedparser":"0.12.0","xml2js":"0.2.6","node-static":"0.6.9","optimist":"0.3.7"},"devDependencies":{"uglify-js":"*"},"bugs":{"url":"https://github.com/naggie/megafilter/issues"},"license":"Apache","repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"},"bin":{"megafilter":"./app.js"},"preferGlobal":true,"engines":{"node":">=0.8"},"readme":"~~**DEVELOPMENT PAUSED, I HAVE EXAMS. SORRY.**~~ Graduated with a First (MEng)!\n\n\n\nThis is a personal replacement for Google reader. It's simple and suits my workflow.\n\nArticles are added to a circular FIFO queue, so that the latest articles always appear\nnext. Articles can be:\n\n* **Skipped** (s) to be viewed later\n* **Published** (p) to a JSONP 'RSS' feed\n* **Discarded** (d) from the queue\n* **Inspected** (i) to view the article from the original website, with comments\n\nDestructive actions can be undone (u).\n\nThe current article is synchronised across all devices, so you can continue reading\non yor smartphone.\n\nIt's quite a nice use for your Raspberry Pi.\n\n**State: Very beta but working very well!** I have migrated from Google reader\nto Megafilter. **Patches welcome!** to produce a starred items feed. My copy\npublishes to <http://callanbryant.co.uk/#Recommended>\n\n\n![screenshot](http://callanbryant.co.uk/images/megafilter.png)\n\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\n\tsudo npm install -g megafilter\n\t# copy subscriptions.xml and starred.json from your google reader takeout to here\n\tmegafilter -s subscriptions.xml --import-greader-starred starred.json\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. Setcap can be used to run from port\n80 without sudo; this is documented at the end of this file.\n\nThere will be a subscriptions manager soon. For the mean time, always start the\nserver with `-s subscriptions.xml`. Note that you only need to import once!\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\n\nBy default megafilter will save the published items to\n`~/megafilter-published.json`. You can change this directory with `--store-dir`\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\nWhen megafilter starts, it will check each feed within the first 2 minutes\n(this is so that servers don't get hammered) and after this, each feed will be\nchecked at the average post interval. Articles that are posted after the\ninitial check are added to the queue, so it may take a while for articles to\nappear. If you are excited and/or impatient like me, then you may use the new\n`--backfill 5` option, to initially add articles that were new in the last 5\nhours. Articles will take 2 minutes to appear.\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 50.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the [node-feedparser][3] format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\nPublished articles\n------------------\n\nCurrently, megafilter does not create a published RSS feed. If that's needed by\nsomeone I'll add it. The reason I did not put it is because RSS is not\ncross-domain, and is annoying to parse with jQuery.\n\nThe `/published` JSONP feed is simply the latest 50 published articles in the\nformat that [node-feedparser][3] produces.\n\nIf you want an example on how to integrate the published items, see [my website engine.][8]\n\nI'll probably make this available as part of megafilter.\n\n[8]: https://github.com/naggie/naggie.github.com/blob/master/js/src/engine.js\n\n\nRunning without sudo on port 80\n-------------------------------\n\nIf you want to host on port 80 under ubuntu on your account, you can install `libcap2-bin`\nthen run `setcap 'cap_net_bind_service=+ep' /usr/local/bin/node` to give node access to port 80.\n\nYour path to the `node` binary may vary, you can find it with `which node`\n\n\nTheming\n-------\nSince v0.5.1 (global) theming is supported! To use theming, add:\n\n\t--theme <name>\n\nTo the megafilter command, where `<name>` is the filename of a css file in\n`public/themes/`. Currently, the two themes available are `default` and `lime`.\nMany thanks to @dvbportal for developing the lime theme.\n\nHere is the lime theme, which is responsive so that it adjusts to your device:\n\n![screenshot](https://github.com/naggie/megafilter/raw/master/screenshots/lime.png)\n\n\nIf you are switching themes, you may need to do a refresh to clear the cache.\nIt is CTRL+SHIFT+R on Chrome.\n\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n  * [node static][7]: Used to implement serving `/style` dynamically\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n[9]: https://github.com/naggie/megafilter/issues/63\n[10]: https://github.com/cloudhead/node-static\n\n[Donate on gittip to support megafilter, if you like. Thanks!](https://www.gittip.com/naggie/)\n","readmeFilename":"README.md","_id":"megafilter@0.7.0-0","dist":{"shasum":"60a692acc081be1211f7d31809dcca9d20112f95","tarball":"https://registry.npmjs.org/megafilter/-/megafilter-0.7.0-0.tgz","integrity":"sha512-x6e4Ibozo+SdHJvotj3OMNiGrfUCvAADjc6Dh1Xfp6wp0PZVJTFMAMyB+WILNP34P3anJDf3R5Woo/ynO5V8sQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDVxDkYhn1xAa3c9wfBWmElETqHk1PUvlPhvt1vzA5nqgIhAM+maiRFzWxkO1USd4nVlsXiCkhjibqwk5Z6CrtE+0Ap"}]},"_from":".","_npmVersion":"1.2.24","_npmUser":{"name":"naggie","email":"callan.bryant@gmail.com"},"maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.7.1-0":{"name":"megafilter","homepage":"http://callanbryant.co.uk/megafilter/","description":"a personal google reader replacement","keywords":["google reader","rss","aggregator"],"version":"0.7.1-0","author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"scripts":{"start":"node app"},"dependencies":{"restify":"2.3.5","feedparser":"0.12.0","xml2js":"0.2.6","node-static":"0.6.9","optimist":"0.3.7"},"devDependencies":{"uglify-js":"*"},"bugs":{"url":"https://github.com/naggie/megafilter/issues"},"license":"Apache","repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"},"bin":{"megafilter":"./app.js"},"preferGlobal":true,"engines":{"node":">=0.8"},"readme":"~~**DEVELOPMENT PAUSED, I HAVE EXAMS. SORRY.**~~ Graduated with a First (MEng)!\n\n\n\nThis is a personal replacement for Google reader. It's simple and suits my workflow.\n\nArticles are added to a circular FIFO queue, so that the latest articles always appear\nnext. Articles can be:\n\n* **Skipped** (s) to be viewed later\n* **Published** (p) to a JSONP 'RSS' feed\n* **Discarded** (d) from the queue\n* **Inspected** (i) to view the article from the original website, with comments\n\nDestructive actions can be undone (u).\n\nThe current article is synchronised across all devices, so you can continue reading\non yor smartphone.\n\nIt's quite a nice use for your Raspberry Pi.\n\n**State: Very beta but working very well!** I have migrated from Google reader\nto Megafilter. **Patches welcome!** to produce a starred items feed. My copy\npublishes to <http://callanbryant.co.uk/#Recommended>\n\n\n![screenshot](http://callanbryant.co.uk/images/megafilter.png)\n\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\n\tsudo npm install -g megafilter\n\t# copy subscriptions.xml and starred.json from your google reader takeout to here\n\tmegafilter -s subscriptions.xml --import-greader-starred starred.json\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. Setcap can be used to run from port\n80 without sudo; this is documented at the end of this file.\n\nThere will be a subscriptions manager soon. For the mean time, always start the\nserver with `-s subscriptions.xml`. Note that you only need to import once!\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\n\nBy default megafilter will save the published items to\n`~/megafilter-published.json`. You can change this directory with `--store-dir`\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\nWhen megafilter starts, it will check each feed within the first 2 minutes\n(this is so that servers don't get hammered) and after this, each feed will be\nchecked at the average post interval. Articles that are posted after the\ninitial check are added to the queue, so it may take a while for articles to\nappear. If you are excited and/or impatient like me, then you may use the new\n`--backfill 5` option, to initially add articles that were new in the last 5\nhours. Articles will take 2 minutes to appear.\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 50.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the [node-feedparser][3] format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\nPublished articles\n------------------\n\nCurrently, megafilter does not create a published RSS feed. If that's needed by\nsomeone I'll add it. The reason I did not put it is because RSS is not\ncross-domain, and is annoying to parse with jQuery.\n\nThe `/published` JSONP feed is simply the latest 50 published articles in the\nformat that [node-feedparser][3] produces.\n\nIf you want an example on how to integrate the published items, see [my website engine.][8]\n\nI'll probably make this available as part of megafilter.\n\n[8]: https://github.com/naggie/naggie.github.com/blob/master/js/src/engine.js\n\n\nRunning without sudo on port 80\n-------------------------------\n\nIf you want to host on port 80 under ubuntu on your account, you can install `libcap2-bin`\nthen run `setcap 'cap_net_bind_service=+ep' /usr/local/bin/node` to give node access to port 80.\n\nYour path to the `node` binary may vary, you can find it with `which node`\n\n\nTheming\n-------\nSince v0.5.1 (global) theming is supported! To use theming, add:\n\n\t--theme <name>\n\nTo the megafilter command, where `<name>` is the filename of a css file in\n`public/themes/`. Currently, the two themes available are `default` and `lime`.\nMany thanks to @dvbportal for developing the lime theme.\n\nHere is the lime theme, which is responsive so that it adjusts to your device:\n\n![screenshot](https://github.com/naggie/megafilter/raw/master/screenshots/lime.png)\n\n\nIf you are switching themes, you may need to do a refresh to clear the cache.\nIt is CTRL+SHIFT+R on Chrome.\n\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n  * [node static][7]: Used to implement serving `/style` dynamically\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n[9]: https://github.com/naggie/megafilter/issues/63\n[10]: https://github.com/cloudhead/node-static\n\n[Donate on gittip to support megafilter, if you like. Thanks!](https://www.gittip.com/naggie/)\n","readmeFilename":"README.md","_id":"megafilter@0.7.1-0","dist":{"shasum":"89a986a8b500943cb79c6f9909609ecaa90d9f33","tarball":"https://registry.npmjs.org/megafilter/-/megafilter-0.7.1-0.tgz","integrity":"sha512-KSnjOZ22wqO959vRWnTiBw9x0orDKvybyYAZsfrp8VyojyvYDEoPZFgYdMCNS7GfdtAPpohGnrUFHHJ56lKJcQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEU2EtIsC5BVolikEp5jwSdDhpDhAdAIS1vB6qzuLcpuAiBRx6r3cM6sb9u/hQi5yNYxbuDcXjqV7qsgQxLe3GKPHg=="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"naggie","email":"callan.bryant@gmail.com"},"maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"directories":{},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."}},"readme":"![screenshot](screenshot.png)\n\n\nThis is a personal replacement for Google reader. It's simple and suits my workflow.\n\n[See my blog post about it][2].\n\n[2]: http://callanbryant.co.uk/#Blog\n\n\nRemember to do a recursive clone, there are submodules. If you don't the icons won't work.\n\n\tgit clone --recursive https://github.com/naggie/megafilter.git\n\tcd megafilter/\n\t# copy subscriptions.xml from your google reader takeout to here\n\tnpm install\n\tnode app\n\topen http://localhost:8080\n\nThe idea is that you run this on your own server. You can specify a PORT via\nthe environment variable or `--port`. [Setcap can be used][1] to run from port 80 without sudo\n\nThere will be a subscriptions manager soon.\n\nYou can specify `--password <password>` to require auth. A `--username` can be\nset, but this defaults to the executing user.\n\nIf you want to import starred items, **before the server is started,** run:\n\n\tnode import --google-starred starred.json\n\nusing the file from the takeout.\n\n\n\n\n[1]: http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-l\n\n\n\nRESTful JSON API\n----------------\n\n> `GET /next`\nGet the next article. Returns `article` and `pending` count.\n\n> `GET /current`\nGet the current article (good for first load) returns `article` and `pending` count.\n\n> `DELETE /queue/:id`\nDiscard an article from the queue.\n\n> `PUT /publish/:id`\nPublish an article by ID from the queue.\n\n> `GET /published`\nGiven a `count` as parameter, return published articles. 0 Means all articles, unspecified  means 30.\n\n> `GET /pending`\nGives the current number of articles pending\n\n> `DELETE /published/:id`\nDelete an article from the published collection\n\n> `POST /enqueue`\nRemotely adds an article to the queue.\n\n\n\n\nArticle format\n--------------\n\nThe same as the node-feedparser format.\n\n* `title`\n* `description` (frequently, the full article content)\n* `summary` (frequently, an excerpt of the article content)\n* `link`\n* `origlink` (when FeedBurner or Pheedo puts a special tracking url in the `link` property, `origlink` contains the original link)\n* `date` (most recent update)\n* `pubdate` (original published date)\n* `author`\n* `guid` (a unique identifier for the article)\n* `comments` (a link to the article's comments section)\n* `image` (an Object containing `url` and `title` properties)\n* `categories` (an Array of Strings)\n* `source` (an Object containing `url` and `title` properties pointing to the original source for an article; see the [RSS Spec](http://cyber.law.harvard.edu/rss/rss.html#ltsourcegtSubelementOfLtitemgt) for an explanation of this element)\n* `enclosures` (an Array of Objects, each representing a podcast or other enclosure and having a `url` property and possibly `type` and `length` properties)\n* `meta` (an Object containing all the feed meta properties; especially handy when using the EventEmitter interface to listen to `article` emissions)\n\nAcknowledgements\n----------------\n\nMegafilter would not have been possible without the following awesome projects:\n\n  * [node feedparser][3]: Used to understand RSS feeds\n  * [jQuery hotkeys][4]: Used for the keyboard shorcuts\n  * [Font Awesome][5]: used for the UI graphics\n  * [jQuery][6]\n  * [node restify][7]: Used for the RESTful JSON API, and UI serving\n\n[3]: https://github.com/danmactough/node-feedparser\n[4]: https://github.com/jeresig/jquery.hotkeys\n[5]: http://fortawesome.github.io/Font-Awesome/\n[6]: http://jquery.com\n[7]: http://mcavage.github.io/node-restify/\n","maintainers":[{"name":"naggie","email":"callan.bryant@gmail.com"}],"time":{"modified":"2022-06-19T17:37:04.873Z","created":"2013-04-14T12:47:41.178Z","0.1.1":"2013-04-14T12:47:54.448Z","0.1.2":"2013-04-14T13:01:40.006Z","0.1.3":"2013-04-14T13:04:13.863Z","0.1.4":"2013-04-14T13:46:44.743Z","0.1.5":"2013-04-14T13:57:20.304Z","0.1.6":"2013-04-14T14:35:01.020Z","0.1.7":"2013-04-14T15:04:33.174Z","0.1.8":"2013-04-14T23:44:43.796Z","0.2.0":"2013-04-15T12:46:15.528Z","0.3.0":"2013-04-15T22:38:49.683Z","0.3.1":"2013-04-17T12:21:43.296Z","0.3.2":"2013-04-17T12:26:28.171Z","0.3.3":"2013-04-20T23:58:18.262Z","0.3.4":"2013-04-21T01:08:15.497Z","0.4.0":"2013-04-21T02:02:44.723Z","0.4.1":"2013-04-21T02:42:50.632Z","0.4.2":"2013-04-21T19:09:37.225Z","0.4.3":"2013-04-22T13:41:57.341Z","0.4.4":"2013-04-23T09:32:43.816Z","0.4.5":"2013-04-25T01:02:39.145Z","0.5.0":"2013-04-28T09:17:52.275Z","0.5.1":"2013-04-28T09:32:19.728Z","0.5.2":"2013-04-28T10:45:03.941Z","0.5.2-2":"2013-04-28T11:29:07.429Z","0.5.3-0":"2013-05-04T18:03:05.557Z","0.6.0-0":"2013-05-10T23:38:20.862Z","0.6.1-0":"2013-05-13T11:36:37.672Z","0.6.3-0":"2013-06-26T20:17:38.171Z","0.6.3-1":"2013-06-26T20:23:54.767Z","0.7.0-0":"2013-07-14T17:57:11.298Z","0.7.1-0":"2013-07-19T17:08:09.929Z"},"author":{"name":"Callan Bryant","email":"callan.bryant@gmail.com","url":"http://callanbryant.co.uk/"},"repository":{"type":"git","url":"https://github.com/naggie/megafilter.git"}}