README.md

# Fiết

[![Actions Status](https://github.com/qcam/fiet/workflows/CI/badge.svg)](https://github.com/qcam/fiet/actions)

An extendable feed parser in Elixir.

## Installation

```elixir
def deps do
  [{:fiet, "~> 0.3"}]
end
```

## Overview

Full documentation can be found on [HexDocs](https://hexdocs.pm/fiet).

Current Fiết supports two feed formats: [Atom - RFC 4287](https://tools.ietf.org/html/rfc4287) and [RSS 2.0](cyber.harvard.edu/rss/rss.html).

To start parsing, go:

```elixir
iex> Fiet.parse(File.read!("/path/to/rss.xml"))
{:ok,
 %Fiet.Feed{
   categories: ["Science", "Space"],
   description: "Liftoff to Space Exploration.",
   items: [
     %Fiet.Item{
       description: "How do Americans get ready to work with Russians aboard the International Space Station? They take a crash course in culture, language and protocol at Russia's <a href=\"http://howe.iki.rssi.ru/GCTC/gctc_e.htm\">Star City</a>.",
       id: "http://liftoff.msfc.nasa.gov/2003/06/03.html#item573",
       link: "http://liftoff.msfc.nasa.gov/news/2003/news-starcity.asp",
       published_at: "Tue, 03 Jun 2003 09:39:21 GMT",
       title: "Star City"
     },
     %Fiet.Item{
       description: "Sky watchers in Europe, Asia, and parts of Alaska and Canada will experience a <a href=\"http://science.nasa.gov/headlines/y2003/30may_solareclipse.htm\">partial eclipse of the Sun</a> on Saturday, May 31st.",
       id: "http://liftoff.msfc.nasa.gov/2003/05/30.html#item572",
       link: nil,
       published_at: "Fri, 30 May 2003 11:06:42 GMT",
       title: "It looks cool"
     }
   ],
   link: "http://liftoff.msfc.nasa.gov/",
   title: "Liftoff News",
   updated_at: "Tue, 10 Jun 2003 09:41:01 GMT"
 }}
```

Fiết also supports customized RSS 2.0, in case the feed document does not strictly follow the specs. See full documentation for more information on [HexDocs](https://hexdocs.pm/fiet).

## Why is it called "Fiết"?

To be honest, all the good names had been taken.

"Fiết", a not-so-Vietnamese word that's pronounced 90% like "feed".

## Contributing

1. Fork it.
2. Write code and related tests.
3. Send a pull request.