Provides functions to download enclosures of rss/atom feeds. Includes
a small wrapper over the feeder
feed parsing library.
- download multiple feeds at once and limit the number of downloads occurring at the same (globally or on per feed basis).
- limited support for authenticated feeds (http basic auth)
- various filtering options:
- content-type criteria
- item name criteria
- item date criteria
- an elixir wrapper over the
feeder
module (https://github.com/michaelnisi/feeder) with complete support of thefile
andstream
APIs.
Feedistiller.Feeder
: wrapper over https://github.com/michaelnisi/feederFeedistiller.CLI
: command line API for Feedistiller featuresFeedistiller.Http
: Http download of feedsFeedistiller
: feed download functions
mix run feedistiller.exs [OPTIONS]
Example:
mix run feedistiller --destination some_directory --max 15 --max-download 5 \ --filter-content-type "audio/mpeg" --feed-url http://some_feed.rss
See mix run feedistiller --help
or Feedistiller.CLI.help
for more informations.
You can optionally start a GUI for visual feedback with the --gui
option.
Alternatively you can build the feedistiller
standalone executable using mix escript.build
and run it as feedistiller [OPTIONS]
.
Feedistiller can be embedded as an application in your projects. Just ensure the
feedistiller
application is started. Download functions are located in the
Feedistiller
module. Reporting is available in the Feedistiller.Reporter.Reported
Agent.
You can activate console or logger logging via the Feedistiller.Reporter.log_to_console/log_to_logger
functions. See the source code for some example.
- More filtering options
- More authentication options
- Persistency
Add the github repository to your mix dependencies:
-
Add feedistiller to your list of dependencies in
mix.exs
:def deps do [{:alambic, git: "https://github.com/sdanzan/feedistiller.git"}] end
-
Ensure feedistiller is started before your application:
def application do [applications: [:feedistiller]] end
Or use the Hex package:
-
Add feedistiller to your list of dependencies in
mix.exs
:def deps do [{:feedistiller, "~> 2.0.0"}] end
-
Ensure feedistiller is started before your application:
def application do [applications: [:feedistiller]] end