Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # This is to be put in line by line into an interactive python
- # command line
- from lib.fedoraClient import FedoraClient
- from lib.foxml import *
- from lib.dc import *
- # Get the fedora client:
- f = FedoraClient(serverurl='http://localhost:8080/fedora', username='fedoraAdmin', password='fedoraAdmin', version="2.2")
- # Get an empty foxml object:
- foxml = Foxml()
- foxml.setProperty('contentModel', 'eprint')
- foxml.setProperty('ownerId', 'Owner ID or name')
- foxml.setProperty('label', 'Title of thing')
- # Get next pid:
- pid_response = f.getNextPID(namespace='changeme')
- found_pid = None
- if pid_response._pid != None and pid_response._pid != '':
- found_pid = pid_response._pid[0]
- foxml.setPID(found_pid)
- response = f.ingest(foxml.toString())
- # Now you have a fresh new item in the repository, as long as the response
- # doesn't say otherwise.
- # Let's get the DC field from the repository in a helper function and
- # add a few fields and save it back:
- # Create dc helper and pass a reference to the Fedora client:
- dc = DC(FedoraClient=f)
- # This will get the DC from the object in the repository. The '' is there
- # as this is another way to pass the DC xml into this object.
- dc.setDOM('',pid=found_pid)
- dc.addField('creator', 'A.N.Other')
- dc.addField('date', '2007')
- dc.addField('identifier', 'urn:isbn:dadedadedah')
- # Whoops, let's get rid of that identifier:
- # dc.removeField('field') works in a LiFo way - Last in, First Out.
- dc.removeField('identifier')
- print dc.toString()
- # This works, as the Fedora client ref was passed to it. It knows how to store itself.
- dc.store()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement