zencoder-fetcher 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.1.3
@@ -21,6 +21,7 @@ EOS
21
21
  opt :seconds, "Check every x seconds.", :short => 's', :type => Integer, :default => 60
22
22
  opt :count, "Number of notifications to retrieve per page.", :short => 'c', :type => Integer, :default => 50
23
23
  opt :page, "The page to load.", :short => 'p', :type => Integer, :default => 1
24
+ opt :all, "Get all records on each request, rather than only new ones.", :short => 'a', :default => false
24
25
  end
25
26
 
26
27
  #
@@ -48,13 +49,21 @@ options[:api_key] = ARGV[0]
48
49
  options[:url] = opts[:url]
49
50
  options[:count] = opts[:count]
50
51
  options[:page] = opts[:page]
52
+ options[:all] = opts[:all]
51
53
 
52
54
  begin
53
55
  if opts[:loop]
56
+ @since_job_id = 0
54
57
  loop do
55
- puts "Checking Zencoder for Notifications at #{Time.now}"
56
- ZencoderFetcher.request(options)
57
- sleep opts[:seconds]
58
+ begin
59
+ puts "Checking Zencoder for Notifications at #{Time.now}"
60
+ options.merge!({:since_job_id => @since_job_id})
61
+ last_job = ZencoderFetcher.request(options)
62
+ @since_job_id = last_job if last_job > @since_job_id
63
+ sleep [10,opts[:seconds]].max
64
+ rescue Exception => e
65
+ raise e
66
+ end
58
67
  end
59
68
  else
60
69
  ZencoderFetcher.request(options)
@@ -14,20 +14,25 @@ module ZencoderFetcher
14
14
  post_uri = options[:url] ? options[:url] : "http://localhost:3000/"
15
15
  per_page = options[:count] ? options[:count] : 50
16
16
  page = options[:page] ? options[:page] : 1
17
+ since_job_id = (options[:all] || options[:since_job_id].to_s == "") ? 0 : options[:since_job_id]
17
18
 
18
19
  begin
19
- response = HTTParty.get("http://app.zencoder.com/api/notifications.json?api_key=#{api_key}&per_page=#{per_page}&page=#{page}")
20
- if response.is_a?(String)
20
+ response = HTTParty.get("http://app.zencoder.com/api/notifications.json?api_key=#{api_key}&per_page=#{per_page}&page=#{page}&since_id=#{since_job_id}")
21
+
22
+ if response.body.is_a?(String)
21
23
  if response.body =~ /\{"errors"/
22
24
  puts JSON.parse(response.body)["errors"]
23
25
  else
24
26
  i = 0
25
- JSON.parse(response).each do |job|
27
+ latest_job_id = 0
28
+ JSON.parse(response.body).each do |job|
26
29
  options = {:headers => {"Content-type" => "application/json"}, :body => job}
27
30
  HTTParty.post(post_uri, options)
31
+ latest_job_id = JSON.parse(job)["job"]["id"].to_i if JSON.parse(job)["job"]["id"].to_i > latest_job_id
28
32
  i += 1
29
33
  end
30
34
  puts "#{i} notifications retrieved and posted to #{post_uri}"
35
+ return latest_job_id
31
36
  end
32
37
  else
33
38
  puts "No notifications found."
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{zencoder-fetcher}
8
- s.version = "0.1.2"
8
+ s.version = "0.1.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["chriswarren"]
12
- s.date = %q{2010-05-06}
12
+ s.date = %q{2010-05-07}
13
13
  s.default_executable = %q{zencoder_fetcher}
14
14
  s.description = %q{Fetches notifications from Zencoder for local development where Zencoder is unable to communicate to the server, usually because it's localhost.}
15
15
  s.email = %q{chris@zencoder.com}
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 2
9
- version: 0.1.2
8
+ - 3
9
+ version: 0.1.3
10
10
  platform: ruby
11
11
  authors:
12
12
  - chriswarren
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-05-06 00:00:00 -05:00
17
+ date: 2010-05-07 00:00:00 -05:00
18
18
  default_executable: zencoder_fetcher
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency