rssly 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 40b604e802d282cf7b48e9efaad73aa6d68787fd
4
- data.tar.gz: 80610e76b8abd289d264974c4585fe83eb0bdfb2
3
+ metadata.gz: c25eb7b0ee6b8445a5a3272e88d9d166d1f0aeb7
4
+ data.tar.gz: 39c286943032ae9a7b86e31fda1c0f52b84f209b
5
5
  SHA512:
6
- metadata.gz: 0612dc50a7f4040db82c31a147358fa263ab1b50b28fde3461e9df323f4e300855a3b4e41cbda5d3fdc4942c564913841bb1744ff9c479f15809c028593a3cdc
7
- data.tar.gz: 4e7c5c5b9bbce27abbd7aad695607ffc1fdadcc0111b5c62d92c2e66df6322e7114523e7a0fa0373d8d1b5da4d7ed88d1d9b4091fc62f53f631577f202815e44
6
+ metadata.gz: 53f400d0d9d4e7d10ee842c4dd39abec25c7750e017079f1ff32fe9140641ead2f49422455b005df116c771d9424a47636d7b4c740979c414a26dcbbab961435
7
+ data.tar.gz: e2ead2d0d8b530b8bf9c0108fe4691f11799351145cc554ee4548083f330e8c9a66b9799571b989754fe8000bed94047bcae9fc9ef33423ae457c575b1ff35e5
@@ -12,6 +12,7 @@ require 'rssly/collection/age_filter'
12
12
  module Rssly
13
13
  CONFIG = {
14
14
  summary_ratio: 35,
15
- discover_feeds: false
15
+ discover_feeds: true,
16
+ verbose: false
16
17
  }
17
18
  end
@@ -66,19 +66,21 @@ module Rssly
66
66
 
67
67
  def summarized
68
68
  @summarized ||= begin
69
- text = Sanitize.clean(extracted.content)
70
- OTS.parse(text)
71
- end
69
+ $stderr.puts "Summarizing article at #{url}" if Rssly::CONFIG[:verbose]
70
+ text = Sanitize.clean(extracted.content)
71
+ OTS.parse(text)
72
+ end
72
73
  end
73
74
 
74
75
  def extracted
75
76
  @extracted ||= begin
76
- source = open(url).read
77
- Readability::Document.new(source)
78
- end
77
+ $stderr.puts "Fetching article at #{url}" if Rssly::CONFIG[:verbose]
78
+ source = open(url).read
79
+ Readability::Document.new(source)
80
+ end
79
81
  rescue OpenURI::HTTPError
80
82
  raise Rssly::HTTPError,
81
- "Could not retrieve document for arcitle at: #{url}"
83
+ "Could not retrieve document for article at: #{url}"
82
84
  end
83
85
  end
84
86
  end
@@ -23,9 +23,12 @@ module Rssly
23
23
  Whether rss feed urls should be auto discovered from the given url.
24
24
  EOT
25
25
 
26
+ option :verbose, default: false, type: :boolean
27
+
26
28
  def fetch(*feed_urls)
27
29
  Rssly::CONFIG[:summary_ratio] = options[:summary_ratio]
28
30
  Rssly::CONFIG[:discover_feeds] = options[:discover]
31
+ Rssly::CONFIG[:verbose] = options[:verbose]
29
32
 
30
33
  feeds = feed_urls.map { |url| Rssly::Feed.new url: url }
31
34
  collection = Rssly::Collection.create_from_feeds(*feeds)
@@ -36,7 +39,7 @@ module Rssly
36
39
  else fail "Serializer #{options[:format]} not found."
37
40
  end
38
41
 
39
- puts serializer.new(collection).perform
42
+ $stdout.puts serializer.new(collection).perform
40
43
  end
41
44
  end
42
45
  end
@@ -5,6 +5,10 @@ module Rssly
5
5
  class Collection
6
6
  class << self
7
7
  def create_from_feeds(*feeds)
8
+ if Rssly::CONFIG[:verbose]
9
+ $stderr.puts "Creating collection from #{feeds.map(&:url).join(', ')}"
10
+ end
11
+
8
12
  instance = new(
9
13
  feeds.map { |f| f.articles }.flatten
10
14
  )
@@ -22,11 +22,8 @@ module Rssly
22
22
  private
23
23
 
24
24
  def fetch_articles
25
- urls = if Rssly::CONFIG[:discover_feeds]
26
- ([@url] + Feedbag.find(@url) + Rfeedfinder.feeds(@url))
27
- .flatten.uniq.compact
28
- else [@url]
29
- end
25
+ urls = gather_feeds
26
+ $stderr.puts "Found feeds #{urls.join(', ')}" if Rssly::CONFIG[:verbose]
30
27
 
31
28
  Feedjira::Feed.fetch_and_parse(urls).values.select do |result|
32
29
  result.class.name.start_with?('Feedjira::')
@@ -36,5 +33,15 @@ module Rssly
36
33
  rescue RuntimeError
37
34
  raise Rssly::HTTPError, "Could not fetch articles for feed: #{url}"
38
35
  end
36
+
37
+ def gather_feeds
38
+ $stderr.puts "Gathering feeds for #{url}" if Rssly::CONFIG[:verbose]
39
+
40
+ if Rssly::CONFIG[:discover_feeds]
41
+ ([@url] + Feedbag.find(@url) + Rfeedfinder.feeds(@url))
42
+ .flatten.uniq.compact
43
+ else [@url]
44
+ end
45
+ end
39
46
  end
40
47
  end
@@ -1,3 +1,3 @@
1
1
  module Rssly
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rssly
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Kot