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