Skip to content
Snippets Groups Projects
Commit c32a5090 authored by André Starosta's avatar André Starosta
Browse files

Final script almost finished

parent 8dc5f3b2
Branches master
No related tags found
No related merge requests found
def createCommunities file
d = Dir[file + "*"].sort
d.each{|subfile|
meta = subfile + "/" + subfile.split('/')[-1] +".metadata"
name = getName(meta)
descript = getDescription(meta)
community = $client.communities.create(
Dspace::Community.new(
{
'name' => name,
'introductoryText' =>description
}
)
)
createSubComs(subfile,community.id)
}
end
def createSubComs file,id
d = Dir[File.join(file , "*")]
d.each{|subfile|
if(subfile.split(".")[-1] != "metadata")
meta = File.join(subfile , "/" , subfile.split('/')[-1] + ".metadata")
name = getName(meta)
descript = getDescription(meta)
community = $client.communities.create_subcommunity(
Dspace::community.new(
{
'name' = name,
'introductoryText' => description
}
),
id: id
)
createSubComs(subfile,community.id)
end
}
end
def createCollections file
d = Dir[File.join(file , "*")]
d.each{|subfile|
if(subfile.split(".")[-1] != "metadata")
target = subfile
fileName = target.split('/')[-1]
target = fileName.split("_")
if(target[0] == "COL")
meta = file + "/" + file.split('/')[-1] +".metadata"
name = getName(meta)
descript = getDescription(meta)
##PARSE COMMUNITY AND CREATE createCollections
collection =
createItem(subfile,collection.id)
end
if(target[0] == "NUCLEO")
createCollections(subfile)
end
end
}
end
def createItem file,id
d = Dir[File.join(file , "*")]
d.each{|subfile|
target = subfile
fileName = target.split('/')[-1]
target = fileName.split("_")
if(target[0]=="ITEM")
meta = subfile + "/" + subfile.split('/')[-1] + ".metadata"
if(File.exist?(meta))
metarray = getItemMeta(meta)
title = metarray[0]
metarray.delete_at(0)
author = metarray[0]
metarray.delete_at(0)
description = metarray[-1]
metarray.delete_at(-1)
keywords = metarray
else
title = subfile.split('/')[-1].gsub('_',' ')
author = ""
description = ""
keywords = title.split(' ')
end
item_metadata = Dspace::Item.new(
'metadata' => [
{'key' => "dc.title", 'value' => title},
{'key' => "dc.creator", 'value' => author},
{'key' => "dc.description", 'value' => description}
]
)
# p id
item = $client.collections.create_item(item_metadata, id: id)
g = Dir[subfile + "/*"].sort
g.each{|subsubfile|
if((subsubfile.split('.')[-1]=~/(?i)pdf|png/g))
itemFile = File.new(subsubfile,'r')
$client.items.add_bitstream(
itemFile,
id:item.id,
name:subsubfile.split('/')[-1].gsub('_',' '),
description:" "
end
)
}
end
}
end
def getName meta
f = File.open(meta, "r")
i = 0
f.each_line{|line|
if(i == 1)
return(line.extractMeta)
end
i += 1
}
end
def getDescription meta
f = File.open(meta, "r")
i = 0
f.each_line{|line|
if(i == 2)
return(line.extractMeta)
end
i += 1
}
end
###################################################################################################
###################################################################################################
$LOAD_PATH.unshift('/home/starosta/c3sl/dspace-scripts/dspace-rest-client/lib')
require 'dspace'
url = "https://seppirhomologa.c3sl.ufpr.br:8443/rest"
login = "admin@seppirhomologa.com"
passw = "adminadmin"
#autenticacao
if(ARGV[0] == "debug")
$client = Dspace::Client.new(dspace_api: url, logger: Logger.new(STDOUT))
else
$client = Dspace::Client.new(dspace_api: url)
end
if !$client.is_running?
raise 'Can\'t connect to DSpace API.'
end
$client.login(login, passw)
###################################################################################################
###################################################################################################
rootComunidades = "/home/starosta/c3sl/dspaceFiles/SEPPIR_SoNucleos/"
rootColecoesItens = "/home/starosta/c3sl/dspaceFiles/BANCO-SEPPIR-20160624/"
#main
createCommunities(rootComunidades)
createCollections(rootColecoesItens)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment