lideo 1.1.0 → 1.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/cli.rb +11 -0
- data/lib/fetcher.rb +11 -7
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 68b144c6a100b8adb3707cc42190c4374f4ad7ceee6be1d1d92a95bec3fa328d
|
4
|
+
data.tar.gz: 38c378b27233565d043ff2e1e1638ea816146cc76c75769528a50c0ccb23ab09
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5017a86f94e42c78df633950e761c10c0b7ba1007ba82c34a2cec6e421013446fc2958688fbc5c406e534e385a470096eddda491b030371b5162c8f547a1faa0
|
7
|
+
data.tar.gz: 6d95181d90ad47784dfec7601187969b00a82d85dbb5e97ca566d581768628643a97a000e24b371bc261a3ef4ff549cb7c19b6b9511850cf74113e02ec9f8eac
|
data/lib/cli.rb
CHANGED
@@ -25,6 +25,11 @@ class Cli < Thor
|
|
25
25
|
return
|
26
26
|
end
|
27
27
|
|
28
|
+
unless feed_works?(url)
|
29
|
+
puts 'A test fetch failed for the feed and as such it won\'t be added.'
|
30
|
+
return
|
31
|
+
end
|
32
|
+
|
28
33
|
LideoController.new.add(url, group(options))
|
29
34
|
end
|
30
35
|
|
@@ -65,6 +70,12 @@ class Cli < Thor
|
|
65
70
|
|
66
71
|
private
|
67
72
|
|
73
|
+
def feed_works?(url)
|
74
|
+
Fetcher.new.fetch(Feed.new(url, ''))
|
75
|
+
rescue
|
76
|
+
false
|
77
|
+
end
|
78
|
+
|
68
79
|
def list_feeds
|
69
80
|
s = StringIO.new
|
70
81
|
LideoController.new.feeds.map { |feed| s << "#{feed.to_s}\n" }
|
data/lib/fetcher.rb
CHANGED
@@ -5,15 +5,19 @@ require 'rss/atom'
|
|
5
5
|
|
6
6
|
class Fetcher
|
7
7
|
def fetch(feed)
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
8
|
+
begin
|
9
|
+
open(feed.url) do |rss|
|
10
|
+
fetched = RSS::Parser.parse(rss)
|
11
|
+
fetched.items.map do |item|
|
12
|
+
title = fetched.is_a?(RSS::Atom::Feed) ? item.title.content : item.title
|
13
|
+
link = fetched.is_a?(RSS::Atom::Feed) ? item.link.href : item.link
|
14
|
+
channel = fetched.is_a?(RSS::Atom::Feed) ? fetched.author.name.content : fetched.channel.title
|
14
15
|
|
15
|
-
|
16
|
+
Headline.new(title, link, channel)
|
17
|
+
end
|
16
18
|
end
|
19
|
+
rescue
|
20
|
+
puts "An error occurred while fetching #{feed.url}"
|
17
21
|
end
|
18
22
|
end
|
19
23
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lideo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gyowanny Queiroz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-03-
|
11
|
+
date: 2020-03-13 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A simple RSS aggregator CLI where you can read the headlines from your
|
14
14
|
terminal
|