3 require 'active_support/all'
\r
4 require 'rest_client'
\r
10 puts "uploader.rb host dirname attr.json lsname auth"
\r
11 puts "upload on child dirs"
\r
22 def initialize host, dirname, attr_fn, lsname, auth
\r
28 @licenses = self.licenses
\r
29 @license_groups = self.license_groups
\r
34 u = @host + 'licenses.json'
\r
35 r = RestClient.get(u)
\r
37 ary['list'].each do |l|
\r
45 u = @host + 'license_groups.json'
\r
46 r = RestClient.get(u)
\r
48 ary['list'].each do |l|
\r
49 res[l['id'].to_i] = l
\r
55 Dir.glob File.expand_path(@dirname) + '/*' do |filename|
\r
56 if File.directory?(filename)
\r
63 Dir.glob File.expand_path(@dirname) + '/*' do |fn|
\r
64 ext = File.extname(fn).downcase
\r
66 when '.png', '.gif', '.jpeg'
\r
74 b = Base64.encode64(File.open(fn, 'rb').read)
\r
75 u = @host + 'original_pictures'
\r
77 r = RestClient.post(u,
\r
78 {:original_picture => {:file => b}, :auth_token => @auth}.to_json,
\r
79 :content_type => :json, :accept => :json
\r
84 puts ' failed: ' + r.to_s
\r
89 def original_picture_license oid, lgid, lsid, en, attr
\r
91 u = @host + '/original_picture_licenses'
\r
93 :original_picture_id => oid,
\r
94 :license_group_id => lgid,
\r
95 :license_id => lsid,
\r
96 :license_group_module_name => en,
\r
97 :license_settings => attr,
\r
98 :auth_token => @auth
\r
101 r = RestClient.post(u,
\r
103 :content_type => :json, :accept => :json
\r
107 puts ' failed: ' + u.to_s
\r
115 def resource_picture oid, lgid, lsid, en, formname, attr
\r
117 u = @host + en.tableize + '/attributes'
\r
118 attr['license_id'] = lsid
\r
120 :original_picture_id => oid,
\r
121 :original_picture_license_group => {
\r
122 :original_picture_id => oid, :license_group_id => lgid
\r
124 :auth_token => @auth
\r
126 param[:attributes] = attr
\r
128 r = RestClient.post(u,
\r
130 :content_type => :json, :accept => :json
\r
134 puts ' failed: ' + u.to_s
\r
141 def publish oid, lgid, rp
\r
143 u = @host + 'resource_pictures'
\r
145 :original_picture_id => oid,
\r
146 :original_picture_license_group => {
\r
147 :original_picture_id => oid, :license_group_id => lgid
\r
149 :resource_picture => rp,
\r
150 :auth_token => @auth
\r
153 r = RestClient.post(u,
\r
155 :content_type => :json, :accept => :json
\r
159 puts ' failed: ' + r.to_s
\r
165 attr = JSON.parse(File.open(@attr_fn).read)
\r
166 each_op do |imgfile|
\r
167 puts 'uploading: ' + imgfile
\r
168 oid = self.upload imgfile
\r
170 puts 'success: ' + oid.to_s
\r
171 ls = @licenses[@lsname]
\r
173 puts 'not detect licenses: ' + @lsname.to_s
\r
177 lgid = ls['license_group_id'].to_i
\r
178 lg = @license_groups[lgid]
\r
179 en = lg['module_name']
\r
180 confirm = self.original_picture_license oid, lgid, lsid, en, attr
\r
181 puts 'publishing: ' + @lsname.to_s
\r
182 r = self.publish oid, lgid, confirm
\r
183 puts 'success: ' + r['id'].to_s
\r
189 u = Uploader.new host, dirname, attr_fn, lsname, auth
\r