require 'base64'\r
\r
if ARGV.size < 1\r
- puts "uploader.rb src_host src_auth dest_host dest_auth"\r
+ puts "uploader.rb src_host src_email src_token dest_host dest_email dest_token"\r
puts "upload on child dirs"\r
exit\r
end\r
\r
src_host = ARGV[0]\r
-src_auth = ARGV[1]\r
-dest_host = ARGV[2]\r
-dest_auth = ARGV[3]\r
+src_email= ARGV[1]\r
+src_token = ARGV[2]\r
+dest_host = ARGV[3]\r
+dest_email = ARGV[4]\r
+dest_token = ARGV[5]\r
\r
class Importer\r
- def initialize src_host, src_auth, dest_host, dest_auth\r
+ def initialize src_host, src_email, src_token, dest_host, dest_email, dest_token\r
@src_host = src_host\r
- @src_auth = src_auth\r
+ @src_email = src_email\r
+ @src_token = src_token\r
@dest_host = dest_host\r
- @dest_auth = dest_auth\r
+ @dest_email = dest_email\r
+ @dest_token = dest_token\r
@src_licenses = {}\r
self.licenses(@src_host).each do |l|\r
@src_licenses[l['id'].to_i] = l\r
@dest_licenses[l['name']] = l\r
end\r
@src_speech_balloon_templates = {}\r
- self.speech_balloon_templates(@src_host, @src_auth).each do |sb|\r
+ self.speech_balloon_templates(@src_host, @src_email, @src_token).each do |sb|\r
@src_speech_balloon_templates[sb['id'].to_i] = sb\r
end\r
@dest_speech_balloon_templates = {}\r
- self.speech_balloon_templates(@dest_host, @dest_auth).each do |sb|\r
+ self.speech_balloon_templates(@dest_host, @src_email, @src_token).each do |sb|\r
@dest_speech_balloon_templates[sb['name']] = sb\r
end\r
@src_writing_formats = {}\r
- self.writing_formats( @dest_host, @dest_auth).each do |wf|\r
+ self.writing_formats(@dest_host, @src_email, @src_token).each do |wf|\r
# self.writing_formats(@src_host, @src_auth).each do |wf|\r
@src_writing_formats[wf['id'].to_i] = wf\r
end\r
@dest_writing_formats = {}\r
- self.writing_formats(@dest_host, @dest_auth).each do |wf|\r
+ self.writing_formats(@dest_host, @dest_email, @dest_token).each do |wf|\r
@dest_writing_formats[wf['name']] = wf\r
end\r
@src_system_pictures = {}\r
- self.system_pictures(@src_host, @src_auth).each do |sp|\r
+ self.system_pictures(@src_host, @dest_email, @dest_token).each do |sp|\r
@src_system_pictures[sp['id'].to_i] = sp\r
end\r
@dest_system_pictures = {}\r
- self.system_pictures(@dest_host, @dest_auth).each do |sp|\r
+ self.system_pictures(@dest_host, @dest_email, @dest_token).each do |sp|\r
@dest_system_pictures[sp['md5']] = sp\r
end\r
end\r
res\r
end\r
\r
- def speech_balloon_templates host, auth\r
+ def speech_balloon_templates host, email, token\r
res = {}\r
u = host + 'speech_balloon_templates.json'\r
- r = RestClient.get(u, :params => {:page_size => 100, :auth_token => auth})\r
+ r = RestClient.get(u, {:params => {:page_size => 100}}, {:email => email, :token => token})\r
JSON.parse r\r
end\r
\r
- def writing_formats host, auth\r
+ def writing_formats host, email, token\r
res = {}\r
u = host + 'writing_formats.json'\r
- r = RestClient.get(u, :params => {:page_size => 100, :auth_token => auth})\r
+ r = RestClient.get(u, {:params => {:page_size => 100}}, {:email => email, :token => token})\r
JSON.parse r\r
end\r
\r
- def system_pictures host, auth\r
+ def system_pictures host, email, token\r
res = {}\r
u = host + 'system_pictures.json'\r
- r = RestClient.get(u, :params => {:page_size => 100, :auth_token => auth})\r
+ r = RestClient.get(u, {:params => {:page_size => 100}}, {:email => email, :token => token})\r
JSON.parse r\r
end\r
\r
- def panels host, auth\r
+ def panels host, email, token\r
res = {}\r
u = host + 'home/panels.json'\r
- r = RestClient.get(u, :params => {:page_size => 100, :auth_token => auth})\r
- ary = JSON.parse r\r
- ary.each do |panel|\r
+ r = RestClient.get(u, {:params => {:page_size => 100}}, {:email => email, :token => token})\r
+ resp = JSON.parse r\r
+ status = resp['page_status']\r
+ resp['list'].each do |panel|\r
res[panel['id'].to_i] = panel\r
end\r
res\r
end\r
\r
- def resource_picture md5, host, auth\r
+ def picture id, host, email, token\r
res = {}\r
- u = host + 'pictures/search.json'\r
- r = RestClient.get(u, :params => {:md5 => md5, :auth_token => auth})\r
+ u = host + 'pictures/'\r
+ r = RestClient.get(u, {:params => {:id => id}}, {:email => email, :token => token})\r
JSON.parse r\r
end\r
\r
- def each_panel\r
- self.panels(@src_host, @src_auth).each do |key, panel_json|\r
- puts 'source panel:' + key.to_s\r
- # 今はAPIの仕様が変わっているので、そのうち書き直す\r
- elements = panel_json['elements']\r
- panel_json.delete 'elements'\r
- c = true\r
- elements.each do |e|\r
- if e['link']\r
- element_name = 'panel_pictures'\r
- puts 'pp:' + e['id'].to_s\r
- rps = self.resource_picture e['picture']['md5'], @dest_host, @dest_auth\r
- if rps.any?\r
- rp = rps.first\r
- puts 'picture ok(' + rp['id'].to_s + ')'\r
- else\r
- puts 'no picture'\r
- c = false\r
- break\r
- end\r
- src_ls_name = @src_licenses[e['picture']['license_id']]['name'].gsub /License\:/, 'Licenses:'\r
- puts 'license:' + e['picture']['license_id'].to_s + '(' + src_ls_name + ')'\r
- if dl = @dest_licenses[src_ls_name]\r
- puts 'license ok(' + dl['id'].to_s + ')'\r
- else\r
- puts 'no license'\r
- c = false\r
- break\r
- end\r
- e['picture_id'] = rp['id']\r
- e.delete 'picture'\r
- e.delete 'license'\r
- elsif e['classname']\r
- element_name = 'speech_balloons'\r
- puts 'sb:' + e['id'].to_s\r
- src_sb_name = @src_speech_balloon_templates[e['speech_balloon_template_id']]['name']\r
- puts 'speech_balloon_template:' + e['speech_balloon_template_id'].to_s + '(' + src_sb_name + ')'\r
- if dsb = @dest_speech_balloon_templates[src_sb_name]\r
- puts 'speech_balloon_template ok(' + dsb['id'].to_s + ')'\r
- else\r
- puts 'no speech_balloon_template'\r
- c = false\r
- break\r
- end\r
- src_sp_md5 = @src_system_pictures[e['balloon']['system_picture_id']]['md5']\r
- puts 'balloon picture:' + e['balloon']['system_picture_id'].to_s + '(' + src_sp_md5 + ')'\r
- if dsp = @dest_system_pictures[src_sp_md5]\r
- puts 'balloon picture ok(' + dsp['id'].to_s + ')'\r
- else\r
- puts 'no balloon picture'\r
- c = false\r
- break\r
- end\r
- src_wf_name = @src_writing_formats[e['speech']['writing_format_id']]['name']\r
- puts 'speech writing_format:' + e['speech']['writing_format_id'].to_s + '(' + src_wf_name + ')'\r
- if dwf = @dest_writing_formats[src_wf_name]\r
- puts 'speech writing_format ok(' + dwf['id'].to_s + ')'\r
- else\r
- puts 'no speech writing_format'\r
- c = false\r
- break\r
- end\r
- e['speech_balloon_template_id'] = dsb['id']\r
- e["speech_balloon_template_settings"] = e["settings"]\r
- e.delete 'settings'\r
- e["speech_balloon_template_classname"] = dsb["classname"]\r
- e.delete 'classname'\r
- #e.delete 'speech_balloon_template'\r
- balloon = e['balloon']\r
- e.delete 'balloon'\r
- balloon.delete 'id'\r
- balloon.delete 'speech_balloon_id'\r
- balloon["speech_balloon_template_settings"] = e["settings"]\r
- balloon.delete 'settings'\r
- balloon['system_picture_id'] = dsp['id']\r
- balloon['speech_balloon_template_id'] = dsb['id']\r
- balloon["speech_balloon_template_classname"] = dsb["classname"]\r
- \r
- speech = e['speech']\r
- e.delete 'speech'\r
- speech.delete 'id'\r
- speech.delete 'speech_balloon_id'\r
- speech["speech_balloon_template_settings"] = e["settings"]\r
- speech.delete 'settings'\r
- speech['speech_balloon_template_id'] = dsb['id']\r
- speech["speech_balloon_template_classname"] = dsb["classname"]\r
- speech['writing_format_id'] = dwf['id']\r
- # speech["writing_format_classname"] = 'Pettanr' + dwf["classname"]\r
- speech["writing_format_classname"] = dwf["classname"]\r
- \r
- e['balloon_attributes'] = balloon\r
- e['speech_attributes'] = speech\r
- elsif e['code']\r
- element_name = 'ground_colors'\r
- puts 'gc:' + e['id'].to_s\r
- elsif e['repeat']\r
- element_name = 'ground_pictures'\r
- puts 'gp:' + e['id'].to_s\r
- rps = self.resource_picture e['picture']['md5'], @dest_host, @dest_auth\r
- if rps.any?\r
- rp = rps.first\r
- puts 'picture ok(' + rp['id'].to_s + ')'\r
- else\r
- puts 'no picture'\r
- c = false\r
- break\r
- end\r
- #e['license_id'] = dl['id']\r
- e['picture_id'] = rp['id']\r
- #e.delete 'license'\r
- else\r
- c = false\r
- break\r
- end\r
- eid = e['id']\r
- e.delete 'id'\r
- e.delete 'panel_id'\r
- panel_json[element_name + '_attributes'] ||= {}\r
- panel_json[element_name + '_attributes']['new' + eid.to_s] = e\r
- end\r
- next unless c\r
- puts '============ importable'\r
- panel_json.delete 'id'\r
- panel_json.delete 'author'\r
- panel_json.delete 'author_id'\r
- panel_json.delete "created_at"\r
- panel_json.delete 'updated_at'\r
- yield panel_json\r
- end\r
+ def search_resource_picture md5, host, email, token\r
+ res = {}\r
+ u = host + 'resource_pictures/search.json'\r
+ r = RestClient.get(u, {:params => {:md5 => md5}}, {:email => email, :token => token})\r
+ JSON.parse r\r
end\r
\r
- def each_opset \r
- self.each_subdir do |filename|\r
- imgfile = nil\r
- lsname = nil\r
- formname = nil\r
- attr = nil\r
- Dir.glob(filename + '/*') do |fn|\r
- ext = File.extname(fn).downcase\r
- case ext\r
- when '.json'\r
- json = JSON.parse(File.open(fn).read)\r
- lsname = json["license_name"]\r
- formname = json["formname"]\r
- attr = json["attributes"]\r
- when '.png', '.gif', '.jpeg'\r
- imgfile = fn\r
- end\r
- end\r
- if imgfile and lsname and formname and attr\r
- yield imgfile, lsname, formname, attr\r
- end\r
+ def prepare_panel_picture panel_picture\r
+ element_name = 'panel_pictures'\r
+ puts 'panel_picture:' + panel_picture['id'].to_s\r
+ # get picture from src\r
+ picture = self.picture panel_picture['picture_id'], @src_host, @src_email, @src_token\r
+ puts 'picture:' + picture['id'].to_s\r
+ # get resource_picture if exists?\r
+ # choose latest resource_picture if find same rp at server\r
+ rps = self.search_resource_picture picture['md5'], @dest_host, @dest_email, @dest_token\r
+ if rps.any?\r
+ rp = rps.first\r
+ puts 'resource picture ok:' + rp['id'].to_s + '(' + rp['md5'].to_s + ')'\r
+ else\r
+ puts 'no picture'\r
+ c = false\r
+ return\r
+ end\r
+ # get lisence's id if exists?\r
+ src_ls_name = @src_licenses[picture['license_id']]['name'].gsub /License\:/, 'Licenses:'\r
+ puts 'license:' + picture['license_id'].to_s + '(' + src_ls_name + ')'\r
+ if dl = @dest_licenses[src_ls_name]\r
+ puts 'license ok(' + dl['id'].to_s + ')'\r
+ else\r
+ puts 'no license'\r
+ c = false\r
+ return\r
end\r
+ panel_picture['picture_id'] = rp['picture_id']\r
end\r
\r
- def upload fn\r
- oid = nil\r
- b = Base64.encode64(File.open(fn, 'rb').read)\r
- u = @host + 'original_pictures'\r
- begin\r
- r = RestClient.post(u, \r
- {:original_picture => {:file => b}, :auth_token => @auth}.to_json, \r
- :content_type => :json, :accept => :json\r
- )\r
- o = JSON.parse r\r
- oid = o['id']\r
- rescue\r
- puts ' failed: ' + r.to_s\r
+ def prepare_speech_balloon speech_balloon\r
+ element_name = 'speech_balloons'\r
+ puts 'sb:' + e['id'].to_s\r
+ src_sb_name = @src_speech_balloon_templates[e['speech_balloon_template_id']]['name']\r
+ puts 'speech_balloon_template:' + e['speech_balloon_template_id'].to_s + '(' + src_sb_name + ')'\r
+ if dsb = @dest_speech_balloon_templates[src_sb_name]\r
+ puts 'speech_balloon_template ok(' + dsb['id'].to_s + ')'\r
+ else\r
+ puts 'no speech_balloon_template'\r
+ c = false\r
+ return\r
+ end\r
+ src_sp_md5 = @src_system_pictures[e['balloon']['system_picture_id']]['md5']\r
+ puts 'balloon picture:' + e['balloon']['system_picture_id'].to_s + '(' + src_sp_md5 + ')'\r
+ if dsp = @dest_system_pictures[src_sp_md5]\r
+ puts 'balloon picture ok(' + dsp['id'].to_s + ')'\r
+ else\r
+ puts 'no balloon picture'\r
+ c = false\r
+ return\r
end\r
- oid\r
+ src_wf_name = @src_writing_formats[e['speech']['writing_format_id']]['name']\r
+ puts 'speech writing_format:' + e['speech']['writing_format_id'].to_s + '(' + src_wf_name + ')'\r
+ if dwf = @dest_writing_formats[src_wf_name]\r
+ puts 'speech writing_format ok(' + dwf['id'].to_s + ')'\r
+ else\r
+ puts 'no speech writing_format'\r
+ c = false\r
+ return\r
+ end\r
+ e['speech_balloon_template_id'] = dsb['id']\r
+ e["speech_balloon_template_settings"] = e["settings"]\r
+ e.delete 'settings'\r
+ e["speech_balloon_template_classname"] = dsb["classname"]\r
+ e.delete 'classname'\r
+ #e.delete 'speech_balloon_template'\r
+ balloon = e['balloon']\r
+ e.delete 'balloon'\r
+ balloon.delete 'id'\r
+ balloon.delete 'speech_balloon_id'\r
+ balloon["speech_balloon_template_settings"] = e["settings"]\r
+ balloon.delete 'settings'\r
+ balloon['system_picture_id'] = dsp['id']\r
+ balloon['speech_balloon_template_id'] = dsb['id']\r
+ balloon["speech_balloon_template_classname"] = dsb["classname"]\r
+ \r
+ speech = e['speech']\r
+ e.delete 'speech'\r
+ speech.delete 'id'\r
+ speech.delete 'speech_balloon_id'\r
+ speech["speech_balloon_template_settings"] = e["settings"]\r
+ speech.delete 'settings'\r
+ speech['speech_balloon_template_id'] = dsb['id']\r
+ speech["speech_balloon_template_classname"] = dsb["classname"]\r
+ speech['writing_format_id'] = dwf['id']\r
+# speech["writing_format_classname"] = 'Pettanr' + dwf["classname"]\r
+ speech["writing_format_classname"] = dwf["classname"]\r
+ \r
+ e['balloon_attributes'] = balloon\r
+ e['speech_attributes'] = speech\r
end\r
\r
- def publish oid, lgid, rp\r
- res = nil\r
- u = @host + 'resource_pictures'\r
- attr = {\r
- :original_picture_id => oid, \r
- :original_picture_license_group => {\r
- :original_picture_id => oid, :license_group_id => lgid\r
- }, \r
- :resource_picture => {\r
- :original_picture_id => oid, \r
- :license_id => rp['license_id'], \r
- :artist_name => rp['artist_name'], \r
- :system_picture_id => rp['system_picture_id'], \r
- :license_group_classname => rp['license_group_classname'], \r
- :license_group_settings => rp['license_group_settings'], \r
- :credit_picture_settings => rp['credit_picture_settings'], \r
- :license_settings => rp['license_settings']\r
- }, \r
- :auth_token => @auth \r
- }\r
- begin\r
- r = RestClient.post(u, \r
- attr.to_json,\r
- :content_type => :json, :accept => :json\r
- )\r
- res = JSON.parse r\r
- rescue\r
- puts ' failed: ' + r.to_s\r
+ def prepare_ground_color ground_color\r
+ element_name = 'ground_colors'\r
+ puts 'ground_color:' + ground_color['id'].to_s\r
+ end\r
+ \r
+ def prepare_ground_picture ground_picture\r
+ element_name = 'ground_pictures'\r
+ puts 'ground_picture:' + ground_picture['id'].to_s\r
+ rps = self.resource_picture ground_picture['picture']['md5'], @dest_host, @dest_auth\r
+ if rps.any?\r
+ rp = rps.first\r
+ puts 'picture ok(' + rp['id'].to_s + ')'\r
+ else\r
+ puts 'no picture'\r
+ c = false\r
+ return\r
end\r
- res\r
+ #e['license_id'] = dl['id']\r
+ ground_picture['picture_id'] = rp['id']\r
+ #e.delete 'license'\r
+ end\r
+ \r
+ def add_attribute panel_json, attribute\r
+ eid = e['id']\r
+ e.delete 'id'\r
+ e.delete 'panel_id'\r
+ panel_json[element_name + '_attributes'] ||= {}\r
+ panel_json[element_name + '_attributes']['new' + eid.to_s] = e\r
end\r
\r
- def publish_all\r
- each_opset do |imgfile, lsname, formname, attr|\r
- puts 'uploading: ' + imgfile\r
- oid = self.upload imgfile\r
- next unless oid\r
- puts 'success: ' + oid.to_s\r
- ls = @licenses[lsname]\r
- unless ls\r
- puts 'not detect licenses: ' + lsname.to_s\r
- next\r
+ def each_panel\r
+ self.panels(@src_host, @src_email, @src_token).each do |key, panel_json|\r
+ puts 'source panel:' + key.to_s\r
+ c = true\r
+ panel_json['panel_pictures'].each do |panel_picture|\r
+ self.prepare_panel_picture panel_picture\r
+ self.add_attribute panel_json, panel_picture\r
+ end\r
+ panel_json['speech_balloons'].each do |speech_balloon|\r
+ self.prepare_speech_balloon speech_balloon\r
+ end\r
+ panel_json['ground_colors'].each do |ground_color|\r
+ self.prepare_ground_color ground_color\r
end\r
- lsid = ls['id']\r
- lgid = ls['license_group_id'].to_i\r
- lg = @license_groups[lgid]\r
- en = lg['classname']\r
- puts 'building: ' + formname\r
- rp = self.resource_picture oid, lgid, lsid, en, formname, attr\r
- next unless rp\r
- puts 'publishing: ' + lsname\r
- r = self.publish oid, lgid, rp\r
- puts 'success: ' + r['id'].to_s\r
+ panel_json['ground_pictures'].each do |ground_picture|\r
+ self.prepare_ground_picture ground_picture\r
+ end\r
+ next unless c\r
+ puts '============ importable'\r
+ panel_json.delete 'id'\r
+ panel_json.delete 'author'\r
+ panel_json.delete 'author_id'\r
+ panel_json.delete "created_at"\r
+ panel_json.delete 'updated_at'\r
+ yield panel_json\r
end\r
end\r
\r
end\r
\r
-u = Importer.new src_host, src_auth, dest_host, dest_auth\r
+u = Importer.new src_host, src_email, src_token, dest_host, dest_email, dest_token\r
\r
u.each_panel do |panel_json|\r
- u = dest_host + 'panels'\r
- File.open('/Sites/panel_create.json', 'w') do |f|\r
+ u = dest_host + 'panels'\r
+ # write log\r
+ File.open('/Sites/panel_create.json', 'w') do |f|\r
f.write JSON.pretty_generate(panel_json)\r
- end\r
- begin\r
- r = RestClient.post(u, \r
- {:json => panel_json, :auth_token => dest_auth}.to_json, \r
- :content_type => :json, :accept => :json\r
- )\r
- res = JSON.parse r\r
- rescue\r
- puts ' failed: ' + r.to_s\r
- end\r
- # break\r
+ end\r
+ begin\r
+ r = RestClient.post(u, \r
+ {:json => panel_json}.to_json, \r
+ :content_type => :json, :accept => :json, :email => dest_email, :token => dest_token\r
+ )\r
+ res = JSON.parse r\r
+ rescue\r
+ puts ' failed: ' + r.to_s\r
+ end\r
end\r
\r
\r
require 'base64'\r
\r
if ARGV.size < 1\r
- puts "uploader.rb host dirname attr.json lsname auth"\r
+ puts "uploader.rb host dirname license_name email token"\r
puts "upload on child dirs"\r
exit\r
end\r
\r
host = ARGV[0]\r
dirname = ARGV[1]\r
-attr_fn = ARGV[2]\r
-lsname = ARGV[3]\r
+lsname = ARGV[2]\r
+email = ARGV[3]\r
auth = ARGV[4]\r
\r
class Uploader\r
- def initialize host, dirname, attr_fn, lsname, auth\r
+ def initialize host, dirname, lsname, email, auth\r
@host = host\r
@dirname = dirname\r
- @attr_fn = attr_fn\r
@lsname = lsname\r
+ @email = email\r
@auth = auth\r
@licenses = self.licenses\r
@license_groups = self.license_groups\r
def licenses\r
res = {}\r
u = @host + 'licenses.json'\r
- r = RestClient.get(u)\r
+ r = RestClient.get(u, {email: @email, token: @auth})\r
ary = JSON.parse r\r
ary['list'].each do |l|\r
res[l['name']] = l\r
end\r
res\r
end\r
-\r
+ \r
def license_groups\r
res = {}\r
u = @host + 'license_groups.json'\r
- r = RestClient.get(u)\r
+ r = RestClient.get(u, {email: @email, token: @auth})\r
ary = JSON.parse r\r
ary['list'].each do |l|\r
res[l['id'].to_i] = l\r
res\r
end\r
\r
- def each_subdir\r
- Dir.glob File.expand_path(@dirname) + '/*' do |filename|\r
- if File.directory?(filename)\r
- yield filename\r
- end\r
- end\r
- end\r
- \r
def each_op\r
Dir.glob File.expand_path(@dirname) + '/*' do |fn|\r
ext = File.extname(fn).downcase\r
+ bn = File.basename(fn, ".*")\r
case ext\r
when '.png', '.gif', '.jpeg'\r
- yield fn\r
+ custom_attr_file = File.dirname(fn) + '/' + bn + '.json'\r
+ attr = JSON.parse(File.open(custom_attr_file).read)\r
+ yield fn, attr\r
end\r
end\r
end\r
u = @host + 'original_pictures'\r
begin\r
r = RestClient.post(u, \r
- {:original_picture => {:file => b}, :auth_token => @auth}.to_json, \r
- :content_type => :json, :accept => :json\r
+ {:original_picture => {:file => b}}.to_json, \r
+ :content_type => :json, :accept => :json, :email => @email, :token => @auth\r
)\r
o = JSON.parse r\r
oid = o['id']\r
:license_id => lsid, \r
:license_group_module_name => en, \r
:license_settings => attr, \r
- :auth_token => @auth \r
- }\r
- begin\r
- r = RestClient.post(u, \r
- param.to_json,\r
- :content_type => :json, :accept => :json\r
- )\r
- rp = JSON.parse r\r
- rescue\r
- puts ' failed: ' + u.to_s\r
- puts param\r
- puts r.to_s\r
- end\r
- rp\r
- end\r
- \r
- #confirm\r
- def resource_picture oid, lgid, lsid, en, formname, attr\r
- rp = nil\r
- u = @host + en.tableize + '/attributes'\r
- attr['license_id'] = lsid\r
- param = {\r
- :original_picture_id => oid, \r
- :original_picture_license_group => {\r
- :original_picture_id => oid, :license_group_id => lgid\r
- }, \r
- :auth_token => @auth \r
}\r
- param[:attributes] = attr\r
begin\r
r = RestClient.post(u, \r
param.to_json,\r
- :content_type => :json, :accept => :json\r
+ :content_type => :json, :accept => :json, :email => @email, :token => @auth\r
)\r
- rp = JSON.parse r\r
+ resp = JSON.parse r\r
+ rp = resp['item']\r
rescue\r
puts ' failed: ' + u.to_s\r
puts param\r
:original_picture_id => oid, :license_group_id => lgid\r
}, \r
:resource_picture => rp, \r
- :auth_token => @auth \r
}\r
begin\r
r = RestClient.post(u, \r
attr.to_json,\r
- :content_type => :json, :accept => :json\r
+ :content_type => :json, :accept => :json, :email => @email, :token => @auth\r
)\r
res = JSON.parse r\r
rescue\r
end\r
\r
def publish_all\r
- attr = JSON.parse(File.open(@attr_fn).read)\r
- each_op do |imgfile|\r
+ each_op do |imgfile, attr|\r
puts 'uploading: ' + imgfile\r
oid = self.upload imgfile\r
next unless oid\r
\r
end\r
\r
-u = Uploader.new host, dirname, attr_fn, lsname, auth\r
-\r
+u = Uploader.new host, dirname, lsname, email, auth\r
u.publish_all\r
\r