Feedparser
Atom and RSS
Both formats are converted to the same (RSS like) datastructure:
Atom | RSS | Datastructure |
---|---|---|
Feeds | ||
feed | channel | %Feed{} |
title | title | Feed.title |
subtitle | description | Feed.description |
link.href | link | Feed.link |
updated | lastBuildDate | Feed.lastBuildDate |
Items | ||
entry | item | %Item{} |
title | title | Item.title |
link | link | Item.link |
summary | description | Item.description |
updated | pubDate | Item.pubDate |
Feedparser.RSS
iex> HTTPoison.start
iex> HTTPoison.start
iex> {:ok, %HTTPoison.Response{status_code: 200, body: body}} = HTTPoison.get("http://l3kn.de/feed.xml")
iex> feed = Feedparser.RSS.parse(body)
...
iex> feed.title
'l3kn.de Blog'
iex> Enum.each feed.items, fn(i) -> IO.puts i.title end
...
Benchmarking with ab and R
Download all files in a Podcast feed
Project Euler in Erlang - Problem 1
Elixir on Uberspace
Feedparser.Utils
iex> HTTPoison.start
iex> {:ok, %HTTPoison.Response{status_code: 200, body: body}} = HTTPoison.get("http://l3kn.de")
iex> Feedparser.Utils.get_feeds(body)
["http://www.l3kn.de/feed.xml"]
TODO
- Universal Parser
- Move util functions to the Feedparser class
- Add feed type to the %Feed{} object
- Document the RSS-Parser
- Document the Atom-Parser