Async-Feedbag
Async-Feedbag is a fork of Ruby's favorite auto-discovery tool/library, using async-http for the requests.
Quick synopsis
>> require "async-feedbag"
=> true
>> AsyncFeedbag.find "damog.net/blog"
=> ["http://damog.net/blog/atom.xml"]
>> AsyncFeedbag.feed? "perl.org"
=> false
>> AsyncFeedbag.feed?("https://m.signalvnoise.com/feed")
=> true
Installation
$ gem install async-feedbag
You can also use the command line tool for quick queries, if you install the gem:
ยป feedbag https://www.ruby-lang.org/en/
== https://www.ruby-lang.org/en/:
- https://www.ruby-lang.org/en/feeds/news.rss
Usage
Feedbag will find all RSS feed types. Here's an example of finding ATOM and JSON Feed
> AsyncFeedbag.find('https://daringfireball.net')
=> ["https://daringfireball.net/feeds/main", "https://daringfireball.net/feeds/json", "https://daringfireball.net/linked/2021/02/17/bookfeed"]
Feedbag defaults to a User-Agent string of AsyncFeedbag/1.10.2, however you can override this
0> AsyncFeedbag.find('https://kottke.org', 'User-Agent' => "My Personal Agent/1.0.1")
=> ["http://feeds.kottke.org/main", "http://feeds.kottke.org/json"]
The other options passed to find, will be passed to OpenURI. For example:
AsyncFeedbag.find("https://kottke.org", 'User-Agent' => "My Personal Agent/1.0.1", open_timeout: 1000)
You can find the other options to OpenURI here.
Why should you use it?
- Because it only uses Nokogiri as dependency.
- Because it follows modern feed filename conventions (like those ones used by WordPress blogs, or Blogger, etc).
- Because it's a single file you can embed easily in your application.
- Because it's faster than anything else.
Author
David Moreno <damog@damog.net> is the original author of feedbag. Renato "Lond" Cerqueira is the author of the async fork.
Donations
Superfeedr has kindly financially supported the development of Feedbag.
Copyright
This is and will always be free software. See COPYING for more information.