Skip to content

sdanzan/feedistiller

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Feedistiller Build Status Hex pm

Provides functions to download enclosures of rss/atom feeds. Includes a small wrapper over the feeder feed parsing library.

Features:

  • 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 the file and stream APIs.

Modules

Command line usage

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.

TODO

  • More filtering options
  • More authentication options
  • Persistency

Installation

Add the github repository to your mix dependencies:

  1. Add feedistiller to your list of dependencies in mix.exs:

    def deps do [{:alambic, git: "https://github.com/sdanzan/feedistiller.git"}] end

  2. Ensure feedistiller is started before your application:

    def application do [applications: [:feedistiller]] end

Or use the Hex package:

  1. Add feedistiller to your list of dependencies in mix.exs:

    def deps do [{:feedistiller, "~> 2.0.0"}] end

  2. Ensure feedistiller is started before your application:

    def application do [applications: [:feedistiller]] end

About

Download rss/atom feeds enclosures

Resources

License

Stars

Watchers

Forks

Packages

No packages published