Git Product home page Git Product logo

superpipes's Introduction

Superpipes

This is a Yahoo! Pipes equivalent built with Superfeedr, hosted on Heroku. We built that just in case Y! decides to "sunset" pipes as well...

Here is what it does:

  • Agregate feeds
  • Displays the agregate (Atom, Json or HTML)

Also, it's realtime, and can be tweaked in any way you want to fit your needs!

We have deployed a sample application on heroku, with 2 aggregate feeds:

Deploying

You need:

For a simple use, you won't have to write any code at all!

Clone

$ git clone git://github.com/superfeedr/superpipes.git
Cloning into superpipes...
remote: Counting objects: 412, done.
remote: Compressing objects: 100% (311/311), done.
remote: Total 412 (delta 78), reused 394 (delta 60)
Receiving objects: 100% (412/412), 237.10 KiB | 311 KiB/s, done.
Resolving deltas: 100% (78/78), done.
$ cd superpipes/

Configure

Open the config/feeds.js in your favorite text editor, and fill in the feeds. Here is an example of configuration.

exports.feeds = {
    'first': { // Each feed needs to have an unique key. It's is important as it will be used in the permalink for your feeds.
        secret: 'this is the secret for my first agregate', // Optional but you should put a random sentence here to make things secure.
        name: "My very first agregate feed", // Name of your agregate feed
        sources: [
            "http://push-pub.appspot.com/feed",
            "http://techcrunch.com/feed/",
            "http://feeds.feedburner.com/ommalik",
            "http://feeds2.feedburner.com/thenextweb",
            "http://pandodaily.com/feed",
            "http://news.ycombinator.com/rss"
        ] // this is the list of the feeds you want to agregate in one.
    },
    // ... Put more feeds here
}

The exported feeds object contains all the aggregate feeds you want to build with the sources to be used for each of them.

Deploy

$ heroku create --stack cedar
$ git push heroku master
$ heroku addons:add redistogo:nano
$ heroku addons:add superfeedr
$ heroku config:add APP_HOST=<app name>.herokuapp.com 
$ heroku ps:scale web=1

Make sure you replace with your app's name.

Profit

Once deployed, you should be good to start playing! yay!. Now, a little warning: this aggregator will only agregate future entries, which means, that right when you're going to try it, there won't be much in there.

As you've configured your feeds in the first step, you can now access the aggregates in your browser. Each of them has 3 views: atom, json and html. The base url to access them is http://APP_HOST/<key>/format (except for html, where you can just type http://APP_HOST/<key>/). The APP_HOST is your app's hostname and the <key> is the key you've chosen in the config/feeds.js file.

TODO

  • Use https to subscribe
  • Implement signatures to verify origin of content (we can use a secret set in the heroku:config for example.)
  • Add filters that can be applied to a feed, in the form of function called on each entry.
  • Make sure the generated feeds are PubSubHubbub enabled as well
  • Allow for an XMPP retrieval if an XMPP server is provided to connect to
  • Make the HTML view realtime with socket.io for example!

superpipes's People

Contributors

julien51 avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.