rss-motor 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +6 -1
- data/README +4 -0
- data/lib/rss-motor/version.rb +1 -1
- data/lib/rss-motor/www.rb +6 -6
- data/lib/rss-motor.rb +31 -10
- metadata +5 -5
data/CHANGELOG
CHANGED
@@ -8,7 +8,12 @@
|
|
8
8
|
CHANGE-LOG
|
9
9
|
=====================================================================
|
10
10
|
=====================================================================
|
11
|
-
Changes from v0.0.
|
11
|
+
Changes from v0.0.3 to v0.0.4
|
12
|
+
[+] 3 RSS Motors Available, 1 added is
|
13
|
+
|[+] filtering items from multiple rss links and the links in its items
|
14
|
+
| Rss::Motor.rss_grep_link ['<RSS_LINKS>'], [<KEYWORDS_ARR>]
|
15
|
+
=====================================================================
|
16
|
+
Changes from v0.0.0 to v0.0.3
|
12
17
|
[+] 2 RSS Motors Available
|
13
18
|
|[+] passing a single RSS Link and fetching array of all items, with hash of nodes
|
14
19
|
| Rss::Motor.rss_items '<SINGLE_RSS_LINK>'
|
data/README
CHANGED
@@ -28,5 +28,9 @@ An easy to use RSS library to get kickstarted with using RSS Feeds.
|
|
28
28
|
[+] filtering items from multiple rss-links having any from set of given keywords
|
29
29
|
puts Rss::Motor.rss_grep 'http://news.ycombinator.com/rss', ['ruby', 'android']
|
30
30
|
|
31
|
+
[+] filtering items from multiple rss-links having any from set of given keywords,
|
32
|
+
also grabbing entire rss item's link content and check it for filter
|
33
|
+
puts Rss::Motor.rss_grep_link 'http://news.ycombinator.com/rss', ['ruby', 'android']
|
34
|
+
|
31
35
|
=====================================================================
|
32
36
|
=====================================================================
|
data/lib/rss-motor/version.rb
CHANGED
data/lib/rss-motor/www.rb
CHANGED
@@ -7,12 +7,12 @@ require "xml-motor"
|
|
7
7
|
module Rss
|
8
8
|
module WWW
|
9
9
|
|
10
|
-
def self.
|
11
|
-
|
12
|
-
|
10
|
+
def self.rss_channel(rssurl)
|
11
|
+
xml = http_requester rssurl
|
12
|
+
XMLMotor.get_node_from_content xml, 'rss.channel'
|
13
13
|
end
|
14
14
|
|
15
|
-
def self.http_requester(httpurl
|
15
|
+
def self.http_requester(httpurl)
|
16
16
|
begin
|
17
17
|
uri = URI.parse(httpurl)
|
18
18
|
http = Net::HTTP.new(uri.host, uri.port)
|
@@ -23,9 +23,9 @@ module Rss
|
|
23
23
|
request = Net::HTTP::Get.new(uri.request_uri)
|
24
24
|
response = http.request(request)
|
25
25
|
rescue
|
26
|
-
|
26
|
+
return ''
|
27
27
|
end
|
28
|
-
|
28
|
+
response.body
|
29
29
|
end
|
30
30
|
end
|
31
31
|
end
|
data/lib/rss-motor.rb
CHANGED
@@ -10,7 +10,7 @@ module Rss
|
|
10
10
|
module Motor
|
11
11
|
|
12
12
|
def self.rss_items(rss_url)
|
13
|
-
rss_data = Rss::WWW.
|
13
|
+
rss_data = Rss::WWW.rss_channel rss_url
|
14
14
|
Rss::Proc.rss_hashr rss_data.join
|
15
15
|
end
|
16
16
|
|
@@ -19,23 +19,44 @@ module Rss
|
|
19
19
|
[rss_urls].flatten.each do |rss_url|
|
20
20
|
rss = rss_items rss_url
|
21
21
|
rss.each do |item|
|
22
|
+
[filters].flatten.each do |filter|
|
23
|
+
rss_items.push item if item_filter(item, filter)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
rss_items
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.rss_grep_link(rss_urls, filters)
|
31
|
+
rss_items = []
|
32
|
+
[rss_urls].flatten.each do |rss_url|
|
33
|
+
rss = rss_items rss_url
|
34
|
+
rss.each do |item|
|
35
|
+
link_body = Rss::WWW.http_requester item['link']
|
22
36
|
[filters].flatten.each do |filter|
|
23
37
|
rss_items.push item if
|
24
|
-
item
|
25
|
-
|
26
|
-
item['guid'].match(/#{filter}/) or
|
27
|
-
item['description'].match(/#{filter}/) or
|
28
|
-
item['date'].match(/#{filter}/) or
|
29
|
-
item['author'].match(/#{filter}/) or
|
30
|
-
item['enclosure'].match(/#{filter}/)
|
38
|
+
item_filter(item, filter) or
|
39
|
+
link_body.match(/#{filter}/)
|
31
40
|
end
|
32
41
|
end
|
33
42
|
end
|
34
43
|
rss_items
|
35
44
|
end
|
36
45
|
|
46
|
+
def self.item_filter(item, filter)
|
47
|
+
return true if
|
48
|
+
item['title'].match(/#{filter}/) or
|
49
|
+
item['link'].match(/#{filter}/) or
|
50
|
+
item['guid'].match(/#{filter}/) or
|
51
|
+
item['description'].match(/#{filter}/) or
|
52
|
+
item['date'].match(/#{filter}/) or
|
53
|
+
item['author'].match(/#{filter}/) or
|
54
|
+
item['enclosure'].match(/#{filter}/)
|
55
|
+
return false
|
56
|
+
end
|
37
57
|
end
|
38
58
|
end
|
39
59
|
|
40
|
-
#
|
41
|
-
|
60
|
+
#puts Rss::Motor.rss_items 'http://news.ycombinator.com/rss'
|
61
|
+
#puts "*"*100, "#{Rss::Motor.rss_grep 'http://news.ycombinator.com/rss', ['ruby', 'android']}"
|
62
|
+
#puts "*"*100, "#{Rss::Motor.rss_grep_link 'http://news.ycombinator.com/rss', ['ruby', 'android']}"
|
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.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-06-05 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: xml-motor
|
16
|
-
requirement: &
|
16
|
+
requirement: &20420520 !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: *20420520
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: xml-motor
|
27
|
-
requirement: &
|
27
|
+
requirement: &20436400 !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: *20436400
|
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
|