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 +4 -4
- data/lib/rssly.rb +2 -1
- data/lib/rssly/article.rb +9 -7
- data/lib/rssly/cli.rb +4 -1
- data/lib/rssly/collection.rb +4 -0
- data/lib/rssly/feed.rb +12 -5
- data/lib/rssly/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c25eb7b0ee6b8445a5a3272e88d9d166d1f0aeb7
|
4
|
+
data.tar.gz: 39c286943032ae9a7b86e31fda1c0f52b84f209b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 53f400d0d9d4e7d10ee842c4dd39abec25c7750e017079f1ff32fe9140641ead2f49422455b005df116c771d9424a47636d7b4c740979c414a26dcbbab961435
|
7
|
+
data.tar.gz: e2ead2d0d8b530b8bf9c0108fe4691f11799351145cc554ee4548083f330e8c9a66b9799571b989754fe8000bed94047bcae9fc9ef33423ae457c575b1ff35e5
|
data/lib/rssly.rb
CHANGED
data/lib/rssly/article.rb
CHANGED
@@ -66,19 +66,21 @@ module Rssly
|
|
66
66
|
|
67
67
|
def summarized
|
68
68
|
@summarized ||= begin
|
69
|
-
|
70
|
-
|
71
|
-
|
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
|
-
|
77
|
-
|
78
|
-
|
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
|
83
|
+
"Could not retrieve document for article at: #{url}"
|
82
84
|
end
|
83
85
|
end
|
84
86
|
end
|
data/lib/rssly/cli.rb
CHANGED
@@ -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
|
data/lib/rssly/collection.rb
CHANGED
data/lib/rssly/feed.rb
CHANGED
@@ -22,11 +22,8 @@ module Rssly
|
|
22
22
|
private
|
23
23
|
|
24
24
|
def fetch_articles
|
25
|
-
urls =
|
26
|
-
|
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
|
data/lib/rssly/version.rb
CHANGED