rss-motor 0.0.3 → 0.0.4
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 +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
|