README.md

# ![](https://i.imgur.com/7IUuHes.png)

Feed aggregator for Elixir.

## Installation

First, add RaSStaggregator to your `mix.exs` dependencies:

```elixir
def deps do
  [{:rasstaggregator, "~> 1.0"}]
end
```

and run `$ mix deps.get`. Now, list the `:rasstaggregator` application as your
application dependency:

```elixir
def application do
  [applications: [:rasstaggregator]]
end
```

## Usage

The RaSStaggregator will read the list of feeds from the configuration value:

```elixir
config :rasstaggregator, feeds: [
  %RaSStaggregator.Feed{id: :example_feed, url: "http://example.com/feed"},
  %RaSStaggregator.Feed{id: :another_feed, url: "http://example.com/another_feed"},
  %RaSStaggregator.Feed{id: :yet_another_feed, url: "http://example.com/yet_another_feed"},
]
```

It is also possible to add a feed programatically:

```elixir
RaSStaggregator.add_feed :feed_id, "http://example.com/feed"
```

RaSStaggregator will start a parser for each feed and periodically check them
and store them into ETS. It is easy to get the list of feed entries from it:

```elixir
entries = RaSStaggregator.Cache.find(:feed_id)
```

or to get the post timeline consisting out of multiple feeds:

```elixir
timeline = RaSStaggregator.get_timeline([:feed_id_1, :feed_id_2, ...])
```