rss-motor 0.0.5 → 0.0.6
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.
- data/CHANGELOG +9 -0
- data/README +6 -1
- data/lib/rss-motor/version.rb +1 -1
- data/lib/rss-motor/www.rb +1 -1
- data/lib/rss-motor.rb +17 -13
- metadata +6 -6
data/CHANGELOG
CHANGED
@@ -8,6 +8,15 @@
|
|
8
8
|
CHANGE-LOG
|
9
9
|
=====================================================================
|
10
10
|
=====================================================================
|
11
|
+
Changes from v0.0.5 to v0.0.6
|
12
|
+
[+] pull request
|
13
|
+
|[+] https://github.com/fntzr/rubygem_rss_motor/commit/3a49b68167f1e148753224c869a04b9be330e1c1
|
14
|
+
| | The engines rss_grep and rss_grep_link send improvised values like
|
15
|
+
| | [ {'filter1' => [{'title' => '....', ...}, ...]},
|
16
|
+
| | {'filter2' => [{'title' => '....', ...}, ...]} ... ]
|
17
|
+
[+] Few Bug Absurdities Fixed
|
18
|
+
|[+] HTTP Status Check Order
|
19
|
+
=====================================================================
|
11
20
|
Changes from v0.0.4 to v0.0.5
|
12
21
|
[+] Few Bug Absurdities Fixed
|
13
22
|
|[+] Web link redirection response['location'] fetched
|
data/README
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
||\\ _\\ _\\ || || ||_|| || ||_|| ||\\
|
5
5
|
|
6
6
|
======================================================================
|
7
|
-
v 0.0.
|
7
|
+
v 0.0.6
|
8
8
|
|
9
9
|
@GitHub: https://github.com/abhishekkr/rubygem_rss_motor
|
10
10
|
@RubyGems: http://rubygems.org/gems/rss-motor
|
@@ -24,13 +24,18 @@ An easy to use RSS library to get kickstarted with using RSS Feeds.
|
|
24
24
|
Usage:
|
25
25
|
[+] passing a single RSS Link and fetching array of all items, with hash of nodes
|
26
26
|
puts Rss::Motor.rss_items 'http://news.ycombinator.com/rss'
|
27
|
+
Output: [{'title1' => '....', ...}, {'title2' => '....', ...}, ...]
|
27
28
|
|
28
29
|
[+] filtering items from multiple rss-links having any from set of given keywords
|
29
30
|
puts Rss::Motor.rss_grep 'http://news.ycombinator.com/rss', ['ruby', 'android']
|
31
|
+
Output: ['ruby' => [ {'title1' => '....', ...}, {'title2' => '....', ...}, ...]
|
32
|
+
'android' => [ {'title1' => '....', ...}, {'title2' => '....', ...}, ...] ]
|
30
33
|
|
31
34
|
[+] filtering items from multiple rss-links having any from set of given keywords,
|
32
35
|
also grabbing entire rss item's link content and check it for filter
|
33
36
|
puts Rss::Motor.rss_grep_link 'http://news.ycombinator.com/rss', ['ruby', 'android']
|
37
|
+
Output: ['ruby' => [ {'title1' => '....', ...}, {'title2' => '....', ...}, ...]
|
38
|
+
'android' => [ {'title1' => '....', ...}, {'title2' => '....', ...}, ...] ]
|
34
39
|
|
35
40
|
=====================================================================
|
36
41
|
=====================================================================
|
data/lib/rss-motor/version.rb
CHANGED
data/lib/rss-motor/www.rb
CHANGED
@@ -25,8 +25,8 @@ module Rss
|
|
25
25
|
rescue
|
26
26
|
return ''
|
27
27
|
end
|
28
|
-
return response.body if response['location'].nil?
|
29
28
|
return '' if response.code.match(/^4/) || response.code.match(/^5/)
|
29
|
+
return response.body if response['location'].nil?
|
30
30
|
http_requester response['location']
|
31
31
|
end
|
32
32
|
end
|
data/lib/rss-motor.rb
CHANGED
@@ -15,13 +15,23 @@ module Rss
|
|
15
15
|
Rss::Proc.rss_hashr rss_data.join
|
16
16
|
end
|
17
17
|
|
18
|
+
#Returned Array of Hashes, where the keys are given *filters*
|
19
|
+
#
|
20
|
+
#Example
|
21
|
+
# Rss::Motor.rss_grep 'http://example.com', ['item1', 'item2', 'item3']
|
22
|
+
# [
|
23
|
+
# {'item1' => [{'title' => '....'}, {'title' => '....'}, ...]},
|
24
|
+
# {'item2' => [{'title' => '....'}, {'title' => '....'}, ...]},
|
25
|
+
# {'item3' => [{'title' => '....'}, {'title' => '....'}, ...]}
|
26
|
+
# ]
|
27
|
+
#
|
18
28
|
def self.rss_grep(rss_urls, filters)
|
19
|
-
rss_items = []
|
29
|
+
rss_items = filters.flatten.map{|k| {k => []} }
|
20
30
|
[rss_urls].flatten.each do |rss_url|
|
21
31
|
rss = rss_items rss_url
|
22
32
|
rss.each do |item|
|
23
33
|
[filters].flatten.each do |filter|
|
24
|
-
rss_items.push
|
34
|
+
rss_items.detect{|a| a.key?(filter)}[filter].push(item) if item_filter(item, filter)
|
25
35
|
end
|
26
36
|
end
|
27
37
|
end
|
@@ -29,13 +39,13 @@ module Rss
|
|
29
39
|
end
|
30
40
|
|
31
41
|
def self.rss_grep_link(rss_urls, filters)
|
32
|
-
rss_items = []
|
42
|
+
rss_items = filters.flatten.map{|k| {k => []} }
|
33
43
|
[rss_urls].flatten.each do |rss_url|
|
34
44
|
rss = rss_items rss_url
|
35
45
|
rss.each do |item|
|
36
46
|
link_body = Rss::WWW.http_requester item['link']
|
37
47
|
[filters].flatten.each do |filter|
|
38
|
-
rss_items.push
|
48
|
+
rss_items.detect{|a| a.key?(filter)}[filter].push(item) if
|
39
49
|
item_filter(item, filter) or
|
40
50
|
link_body.match(/#{filter}/)
|
41
51
|
end
|
@@ -44,17 +54,11 @@ module Rss
|
|
44
54
|
rss_items
|
45
55
|
end
|
46
56
|
|
57
|
+
|
47
58
|
def self.item_filter(item, filter)
|
48
59
|
return false if item.empty? || filter.nil?
|
49
|
-
return
|
50
|
-
|
51
|
-
item['link'].match(/#{filter}/) or
|
52
|
-
item['guid'].match(/#{filter}/) or
|
53
|
-
item['description'].match(/#{filter}/) or
|
54
|
-
item['date'].match(/#{filter}/) or
|
55
|
-
item['author'].match(/#{filter}/) or
|
56
|
-
item['enclosure'].match(/#{filter}/)
|
57
|
-
return false
|
60
|
+
return !item.values.select{|v| v.match(/#{filter}/)}.empty?
|
61
|
+
false
|
58
62
|
end
|
59
63
|
end
|
60
64
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rss-motor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-06-
|
12
|
+
date: 2012-06-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: xml-motor
|
16
|
-
requirement: &
|
16
|
+
requirement: &23388720 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 0.1.4
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *23388720
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: xml-motor
|
27
|
-
requirement: &
|
27
|
+
requirement: &23404580 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: 0.1.4
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *23404580
|
36
36
|
description: ! 'boost up your RSS related applications with the motor available: https://github.com/abhishekkr/rubygem_rss_motor/blob/master/README'
|
37
37
|
email:
|
38
38
|
- abhikumar163@gmail.com
|