feed_us_grabber 0.1.15 → 1.0.0

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/README.rdoc CHANGED
@@ -1,4 +1,3 @@
1
- =begin
2
1
  = feed_us_grabber
3
2
 
4
3
  == ENVIRONEMNT
@@ -67,7 +66,7 @@ To clear cache goto following url
67
66
  * Clear entire cache
68
67
  http://rails_app/FeedUsGrabber?cachecommand=clearall
69
68
 
70
- :Note that if you receive a failure message that your IP is not authorized to clear the cache, add your IP to the ClientWhiteList in your controller (replace 127.0.0.0 with your IP, visit http://whatismyip.com/)
69
+ :Note that if you receive a failure message that your IP is not authorized to clear the cache, add your IP to the ClientWhiteList in your controller
71
70
  def index
72
71
  @grabber = feedUsGrabber(:FeedUsURL => 'http://render.feed.us/Feed.aspx?g=00767d50-bde8-e111-9875-4040419a7f04', :ClientWhiteList => '127.0.0.1')
73
72
  end
@@ -90,6 +89,6 @@ end
90
89
 
91
90
  == Copyright
92
91
 
93
- Copyright (c) 2012 Cliff G. See LICENSE.txt for
92
+ Copyright (c) 2013 Feed.Us See LICENSE.txt for
94
93
  further details.
95
- =end
94
+
@@ -10,71 +10,73 @@ class FeedUsGrabberController < ActionController::Base
10
10
  # ! IMPORTANT: TO DISABLE THIS CHECK SET BOTH ARRAYS TO nil
11
11
  @mClientWhiteList = [ "75.126.108.226", "75.126.107.10", "127.0.0.1", "50.56.95.92" ]
12
12
  @mClientHostNameWhileList = [ "app.feed.us", "request.feed.us", "feed.us", "classic.syndication.feed.us", "render.feed.us", "dev.feed.us", "stage.feed.us", "localhost"]
13
- @mClientIp
13
+ @mClientIp = ""
14
14
  end
15
15
 
16
- args = {}
17
-
16
+ @mArgs = {}
17
+
18
18
  # URL that will be checked for connectivity before clearing the cache (phone home)
19
- args[:FeedUsURL] = 'http://render.feed.us/grabberdefault.htm?phonehome=true'
19
+ @mArgs[:FeedUsURL] = 'http://render.feed.us/grabberdefault.htm?phonehome=true'
20
+ @mArgs[:DebugOutput] = ""
21
+ @mArgs[:Debug] = false
22
+ @mDebugLogger = FeedUsGrabber.new
20
23
 
21
24
  unless params[:cachecommand].nil?
22
- args[:CacheCommand] = params[:cachecommand]
25
+ @mArgs[:CacheCommand] = params[:cachecommand]
23
26
  end
24
27
  unless params[:group].nil?
25
- args[:FeedUsCacheGroup] = params[:group]
28
+ @mArgs[:FeedUsCacheGroup] = params[:group]
26
29
  end
27
- args[:DebugOutput] = ""
28
- args[:Debug] = false
30
+
29
31
  unless params[:debug].nil?
30
- args[:Debug] = params[:debug] == "1"
32
+ @mArgs[:Debug] = params[:debug] == "1"
31
33
  end
32
34
 
33
- if args[:FeedUsCacheGroup] && args[:CacheCommand].nil?
34
- args[:CacheCommand] = 'clear'
35
+ if @mArgs[:FeedUsCacheGroup] && @mArgs[:CacheCommand].nil?
36
+ @mArgs[:CacheCommand] = 'clear'
35
37
  end
36
38
 
37
- if args[:CacheCommand].nil?
38
- args[:CacheCommand] = 'clearall'
39
+ if @mArgs[:CacheCommand].nil?
40
+ @mArgs[:CacheCommand] = 'clearall'
39
41
  end
40
42
 
41
- if args[:CacheCommand] == 'clear' && args[:FeedUsCacheGroup]
43
+ if @mArgs[:CacheCommand] == 'clear' && @mArgs[:FeedUsCacheGroup]
42
44
  fetch = true
43
45
  else
44
46
  fetch = false
45
47
  end
46
- if args[:CacheCommand] == 'clearall' || args[:CacheCommand] == CACHE_COMMAND_FORCE
48
+ if @mArgs[:CacheCommand] == 'clearall' || @mArgs[:CacheCommand] == CACHE_COMMAND_FORCE
47
49
  fetch = true
48
50
  end
49
51
 
50
52
  # Client ip check
51
- isPermittedToProceed = IsPermittedToProceed(args)
53
+ isPermitted = IsPermittedToProceed()
52
54
 
53
55
  renderText = ""
54
- if isPermittedToProceed == false
55
- renderText = "<img src=\"http://feed.us/images/feedus_logo_people.png\"><br />
56
- <p style=\"font-family:arial;\"> IP " + @mClientIp + " is not authorized. Modify the feed_us_grabber_controller @mClientWhiteList array if this IP should have access. "
57
- else
56
+ if @mArgs[:Debug] == true && isPermitted
57
+ renderText << @mArgs[:DebugOutput]
58
+ end
59
+
60
+ if isPermitted
58
61
  if fetch == true
59
- feedUsGrabber(args)
60
- renderText = "<img src=\"http://feed.us/images/feedus_logo_people.png\"><br />
62
+ grabber = feedUsGrabber(@mArgs)
63
+ renderText << grabber.getDebugOutput
64
+ renderText << "<img src=\"http://feed.us/images/feedus_logo_people.png\"><br />
61
65
  <p style=\"font-family:arial;\">Congratulations! You have successfully refreshed your content.</p>
62
66
  <p style=\"font-family:arial;\"><a href=\"/\">Home</a></p> "
63
67
  else
64
- renderText = "<img src=\"http://feed.us/images/feedus_logo_people.png\"><br />
68
+ renderText << "<img src=\"http://feed.us/images/feedus_logo_people.png\"><br />
65
69
  <p style=\"font-family:arial;\"> Please specify cachecommand=clear&group=GROUPNAME or cachecommand=clearall or cachecommand=force_clear_all in the URL</p> "
66
- end
67
- end
68
-
69
- if args[:Debug] == true
70
- renderText << args[:DebugOutput]
71
- renderText << @mClientWhiteList.to_s
70
+ end
71
+ else
72
+ renderText << "<img src=\"http://feed.us/images/feedus_logo_people.png\"><br />
73
+ <p style=\"font-family:arial;\"> IP " + @mClientIp + " is not authorized. Modify the feed_us_grabber_controller @mClientWhiteList array if this IP should have access. "
72
74
  end
73
-
75
+
74
76
  render :text=> renderText
75
77
  end
76
78
 
77
- def IsPermittedToProceed(args)
79
+ def IsPermittedToProceed
78
80
  isPermitted = false
79
81
  @mClientIp = request.remote_addr
80
82
 
@@ -82,7 +84,7 @@ class FeedUsGrabberController < ActionController::Base
82
84
  @mClientIp = request.env["HTTP_X_FORWARDED_FOR"]
83
85
  end
84
86
 
85
- isPermitted = IsClientIpInWhiteList(args)
87
+ isPermitted = IsClientIpInWhiteList()
86
88
 
87
89
  if isPermitted == false
88
90
  if @mClientHostNameWhileList.nil? == false
@@ -90,7 +92,7 @@ class FeedUsGrabberController < ActionController::Base
90
92
  begin
91
93
  s = Socket.getaddrinfo(@mClientIp,nil)
92
94
  host = s[0][2]
93
- puts "Trace: host = #{host}"
95
+ AddToDebugOutput("Host is #{host}")
94
96
  if @mClientHostNameWhileList.include?(host) == true
95
97
  isPermitted = true
96
98
  end
@@ -106,25 +108,17 @@ class FeedUsGrabberController < ActionController::Base
106
108
  if @mClientIp == "" || @mClientIp.nil?
107
109
  @mClientIp = request.env["X-Forwarded-For"]
108
110
  end
109
- isPermitted = IsClientIpInWhiteList(args)
110
- puts "Trace: Try to use fwd header = #{@mClientIp}"
111
- puts "Trace: using fwd header isPermitted = #{isPermitted}"
112
- end
113
-
114
- # Set the Debug flag - do not want to output Debug info if not permitted
115
- if isPermitted == false
116
- args[:Debug] = false
111
+ isPermitted = IsClientIpInWhiteList()
112
+ AddToDebugOutput("Trying to use X-Forwarded-For #{@mClientIp}")
117
113
  end
118
-
119
- puts "Trace: mClientIp = #{@mClientIp}"
120
- puts "Trace: returning is permitted true"
121
- args[:DebugOutput] << "Debug: mClientIp = #{@mClientIp}"
114
+
115
+ AddToDebugOutput("Results of is permitted check = #{isPermitted.to_s} for IP #{@mClientIp}")
122
116
 
123
- return isPermitted
117
+ isPermitted
124
118
  end
125
119
 
126
- def IsClientIpInWhiteList(args)
127
- included = false
120
+ def IsClientIpInWhiteList
121
+ included = false
128
122
  if @mClientWhiteList.nil? && @mClientHostNameWhileList.nil?
129
123
  included = true
130
124
  else
@@ -134,10 +128,16 @@ class FeedUsGrabberController < ActionController::Base
134
128
  @mClientWhiteList.push(configuredClientWhiteList)
135
129
  end
136
130
 
131
+ AddToDebugOutput("Checking if IP #{@mClientIp} is in ClientWhiteList #{@mClientWhiteList.to_s}")
132
+
137
133
  if @mClientWhiteList.nil? == false && @mClientWhiteList.include?(@mClientIp) == true
138
134
  included = true
139
135
  end
140
136
  end
141
137
  return included
142
138
  end
139
+
140
+ def AddToDebugOutput(info)
141
+ @mDebugLogger.addToDebugOutput(@mArgs[:DebugOutput], info)
142
+ end
143
143
  end
@@ -37,5 +37,5 @@ module FeedUsGrabberHelper
37
37
 
38
38
  def feedUsGrabberRender(grabber)
39
39
  grabber.renderCacheFromFile.to_s.html_safe
40
- end
40
+ end
41
41
  end
@@ -18,6 +18,7 @@ class FeedUsGrabber
18
18
  @mstrCacheGroup = ""
19
19
  @mstrStateFile = File.join(Rails.root.to_s,'tmp','FeedUsGrabberState')
20
20
  @mstrClientWhiteList = ""
21
+ @mstrDebugOutput = ""
21
22
  end
22
23
 
23
24
  def setCacheGroup(param)
@@ -91,6 +92,14 @@ class FeedUsGrabber
91
92
  @mstrClientWhiteList
92
93
  end
93
94
 
95
+ def setDebugOutput(param)
96
+ @mstrDebugOutput = param
97
+ end
98
+
99
+ def getDebugOutput
100
+ @mstrDebugOutput
101
+ end
102
+
94
103
  def getDynURL
95
104
  @mstrDynURL
96
105
  end
@@ -122,12 +131,12 @@ class FeedUsGrabber
122
131
  end
123
132
 
124
133
  def autoCacheToFile
125
- puts "trace: start autoCacheToFile. bIsPostBack = #{@bIsPostBack}"
134
+ appendDebugOutput("Start autoCacheToFile. bIsPostBack = #{@bIsPostBack}")
126
135
  if @bIsPostBack
127
136
  return
128
137
  end
129
138
 
130
- puts "trace: mstrCacheCommand = #{@mstrCacheCommand}"
139
+ appendDebugOutput("Cache command received = #{@mstrCacheCommand}")
131
140
  if @mstrCacheCommand.nil? || @mstrCacheCommand == ''
132
141
  if (!self.cachedFileExists) or self.cacheFileIsExpired
133
142
  self.createCacheFile
@@ -295,8 +304,8 @@ class FeedUsGrabber
295
304
  end
296
305
 
297
306
  def clearAllCachedFiles
298
- # For testing heroku logging
299
- puts "Trace: Clearing all caches at path = #{@mstrCacheFolder}"
307
+ # For testing heroku logging
308
+ appendDebugOutput("Clearing all caches at path = #{@mstrCacheFolder}")
300
309
  logfile = File.open(File.join(Rails.root.to_s,'log','FeedUsGrabber.log'),'a');
301
310
  grabber_logger = FeedUsGrabberLogger.new(logfile)
302
311
  grabber_logger.info("Clearing all caches at path #{@mstrCacheFolder}")
@@ -308,7 +317,7 @@ class FeedUsGrabber
308
317
  canConnect = canConnectToFeedUs()
309
318
 
310
319
  if canConnect == true
311
- puts "Trace: clear cache folder can connect"
320
+ appendDebugOutput("Clear cache folder can connect")
312
321
  FileUtils.rm_r Dir.glob("#{folder}/*")
313
322
  else
314
323
  logError("Unable to connect to Feed.Us. Cache will not be cleared. URL that was checked: #{@mstrDynURL}")
@@ -343,4 +352,14 @@ class FeedUsGrabber
343
352
  logfile.close
344
353
  end
345
354
 
355
+ def addToDebugOutput(debugOutput, info)
356
+ debugOutput << info + "<br />"
357
+ puts " Debug Trace -> " + info
358
+ end
359
+
360
+ private
361
+
362
+ def appendDebugOutput(info)
363
+ self.addToDebugOutput(@mstrDebugOutput, info)
364
+ end
346
365
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: feed_us_grabber
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.15
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -124,7 +124,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
124
124
  version: '0'
125
125
  segments:
126
126
  - 0
127
- hash: -873202771
127
+ hash: 39973683
128
128
  required_rubygems_version: !ruby/object:Gem::Requirement
129
129
  none: false
130
130
  requirements: