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 CHANGED
@@ -8,7 +8,12 @@
8
8
  CHANGE-LOG
9
9
  =====================================================================
10
10
  =====================================================================
11
- Changes from v0.0.0 to v0.0.1
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
  =====================================================================
@@ -1,5 +1,5 @@
1
1
  module Rss
2
2
  module Motor
3
- VERSION = "0.0.3"
3
+ VERSION = "0.0.4"
4
4
  end
5
5
  end
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.rss_items(rssurl)
11
- rss_data = http_requester rssurl, "rss.channel.item"
12
- Rss::Proc.rss_hashr rss_data
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, node)
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
- response = nil
26
+ return ''
27
27
  end
28
- XMLMotor.get_node_from_content response.body, node
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.http_requester rss_url, 'rss.channel'
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['title'].match(/#{filter}/) or
25
- item['link'].match(/#{filter}/) or
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
- #p Rss::Motor.rss_items 'http://news.ycombinator.com/rss'
41
- p Rss::Motor.rss_grep 'http://news.ycombinator.com/rss', ['ruby', 'android']
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.3
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: &12793320 !ruby/object:Gem::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: *12793320
24
+ version_requirements: *20420520
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: xml-motor
27
- requirement: &12792820 !ruby/object:Gem::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: *12792820
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