rssly 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
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