# exhn

> Streaming Hacker News API client

[![Build Status](](

## Install

In your `mix.exs`:

def application do
  [applications: [:exhn]]

defp deps do
    {:exhn, "~> 1.1.0"}

Then run `mix deps.get`.

## Usage

For information about the endpoints themselves please refer to the [Hacker News API docs](

### Static endpoints

Static endpoints are available under `ExHN`.


Gets the item with the specified `id`.


Returns a `Stream` of items from a given `enum` of `id` numbers. This can be a `List` or a `Range`.


Gets the item with the specified `name`.

### Live endpoints

Live endpoints are available under `ExHN.Live`. These return an infinite `Stream` of data. The following endpoints are available:

* `ExHN.max_item`
* `ExHN.updates`
* `ExHN.new_stories`
* `ExHN.top_stories`
* `ExHN.best_stories`
* `ExHN.ask_stories`
* `ExHN.show_stories`
* `ExHN.job_stories `


A helper function that gets the actual data inside the above endpoints, since they return a list of `ids`:

iex> ExHN.Live.updates |> ExHN.Live.get_items |> Enum.take(1)
iex> [%{"by" => "username", "text" => "I'm a comment!"}]

## License

MIT © [Juan Soto](