tf_uploader 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
1
1
  class TfUploader::Command < Thor
2
2
  include Thor::Actions
3
3
 
4
- desc "upload", "Upload a directory of tomb images and sqlite db pulled from the iphone"
4
+ desc "upload", "Upload a directory of tomb images and sqlite db pulled from the iphone. USAGE: tf upload <directory> <auth_token>"
5
5
  def upload(dir, token)
6
6
  TfUploader::Uploader.new(dir, token).upload!
7
7
  end
@@ -1,5 +1,5 @@
1
1
  class TfUploader::Uploader
2
- attr_accessor :base_path, :token
2
+ attr_accessor :base_path, :token, :connection
3
3
 
4
4
  def initialize(directory, token)
5
5
  @base_path = File.expand_path(directory)
@@ -8,12 +8,18 @@ class TfUploader::Uploader
8
8
  @connection = ActiveRecord::Base.establish_connection(
9
9
  :adapter => "sqlite3",
10
10
  :database => File.join(@base_path, "TombfinderNew.sqlite"))
11
+
12
+ unless Tomb.columns.map(&:name).include? "uploaded"
13
+ @connection.connection.add_column('ZTOMB', 'uploaded', 'boolean', :default => false)
14
+ Tomb.reset_column_information
15
+ end
11
16
  end
12
17
 
13
18
  def upload!
14
- tombs = Tomb.all
15
- puts "Posting #{tombs.count} records"
16
- Tomb.all.each do |tomb|
19
+ tombs = Tomb.where(:uploaded => false)
20
+ puts "Posting #{tombs.count} records (#{Tomb.where(:uploaded => true).count} already posted)"
21
+ puts "Response Codes:"
22
+ tombs.each do |tomb|
17
23
  post(tomb)
18
24
  end
19
25
  puts ""
@@ -23,17 +29,21 @@ class TfUploader::Uploader
23
29
  def post(tomb)
24
30
  picture = square_pic(tomb)
25
31
 
26
- RestClient.post(
32
+ response = RestClient.post(
27
33
  "#{TfUploader::HOST}/api/records.json?auth_token=#{token}",
28
34
  :record => tomb.as_json(:gravepic => picture),
29
35
  :favorite => "false",
30
36
  :name => "record",
31
37
  :secret => "U8BsP0TZF"
32
38
  )
33
- print "."
39
+ if response.code == 201
40
+ tomb.update_attribute(:uploaded, true)
41
+ print "201 "
42
+ else
43
+ print "#{response.code} "
44
+ end
34
45
  rescue RestClient::UnprocessableEntity => e
35
- puts ""
36
- puts "Failed to upload record #{tomb.read_attribute("ZGUID")}"
46
+ print "422 "
37
47
  ensure
38
48
  STDOUT.flush
39
49
  end
@@ -47,6 +57,8 @@ class TfUploader::Uploader
47
57
  end
48
58
 
49
59
  image.crop geometry
60
+ image.auto_orient
61
+
50
62
  cropped_path = File.join(base_path, "cropped_" + tomb.file_system_file.path)
51
63
  image.write cropped_path
52
64
  File.new(cropped_path, 'rb')
data/lib/tf_uploader.rb CHANGED
@@ -6,8 +6,8 @@ require 'rest_client'
6
6
  require 'mini_magick'
7
7
 
8
8
  module TfUploader
9
- #HOST = "http://www.tombfinder.com"
10
- HOST = "http://localhost:3000"
9
+ HOST = "http://www.tombfinder.com"
10
+ #HOST = "http://localhost:3000"
11
11
  end
12
12
 
13
13
  require 'tf_uploader/uploader'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tf_uploader
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -14,7 +14,7 @@ date: 2012-05-08 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: term-ansicolor
17
- requirement: &2164531120 !ruby/object:Gem::Requirement
17
+ requirement: &2151818080 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ~>
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: 1.0.7
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2164531120
25
+ version_requirements: *2151818080
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: rest-client
28
- requirement: &2164530520 !ruby/object:Gem::Requirement
28
+ requirement: &2151816520 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ~>
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 1.6.7
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *2164530520
36
+ version_requirements: *2151816520
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: thor
39
- requirement: &2164529900 !ruby/object:Gem::Requirement
39
+ requirement: &2151814560 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ~>
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: 0.14.6
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *2164529900
47
+ version_requirements: *2151814560
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: activerecord
50
- requirement: &2164529320 !ruby/object:Gem::Requirement
50
+ requirement: &2151813660 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ~>
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: 3.1.3
56
56
  type: :runtime
57
57
  prerelease: false
58
- version_requirements: *2164529320
58
+ version_requirements: *2151813660
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: sqlite3
61
- requirement: &2164528840 !ruby/object:Gem::Requirement
61
+ requirement: &2151812960 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ~>
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: 1.3.5
67
67
  type: :runtime
68
68
  prerelease: false
69
- version_requirements: *2164528840
69
+ version_requirements: *2151812960
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: sqlite3-ruby
72
- requirement: &2164528360 !ruby/object:Gem::Requirement
72
+ requirement: &2151812400 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ~>
@@ -77,10 +77,10 @@ dependencies:
77
77
  version: 1.3.3
78
78
  type: :runtime
79
79
  prerelease: false
80
- version_requirements: *2164528360
80
+ version_requirements: *2151812400
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: mini_magick
83
- requirement: &2164527860 !ruby/object:Gem::Requirement
83
+ requirement: &2151811540 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
86
86
  - - ~>
@@ -88,7 +88,7 @@ dependencies:
88
88
  version: '3.4'
89
89
  type: :runtime
90
90
  prerelease: false
91
- version_requirements: *2164527860
91
+ version_requirements: *2151811540
92
92
  description: A ruby command line interface for uploading large numbers of tombs to
93
93
  TombFinder
94
94
  email: rosshale@gmail.com