Skip to content

Commit 9201376

Browse files
author
ehanson8
committed
script updates
1 parent 2767714 commit 9201376

File tree

1 file changed

+45
-14
lines changed

1 file changed

+45
-14
lines changed

postItem.py

Lines changed: 45 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,43 +13,74 @@
1313
headerAuth = {'content-type':'application/json','accept':'application/json', 'rest-dspace-token':session}
1414
headerAuthFileUpload = {'accept':'application/json', 'rest-dspace-token':session}
1515
print 'authenticated'
16-
16+
#
1717
#Post community
1818
communityName = 'Test Community'
1919
community = json.dumps({'name': communityName})
2020
post = requests.post(baseURL+'/rest/communities', headers=headerAuth, data=community).json()
21-
print post
21+
print json.dumps(post)
2222
communityID = post['link']
2323
print communityID
2424

25-
# #Post collection
25+
#Post collection
2626
collectionName = 'Test Collection'
2727
collection = json.dumps({'name': collectionName})
2828
post = requests.post(baseURL+communityID+'/collections', headers=headerAuth, data=collection).json()
29-
print post
29+
print json.dumps(post)
3030
collectionID = post['link']
3131

3232
#Post item
3333
item = json.dumps({'metadata': [{'key': 'dc.title', 'language': 'en_US', 'value': 'testing123'}]})
3434
post = requests.post(baseURL+collectionID+'/items', headers=headerAuth, data=item).json()
35-
print post
35+
print json.dumps(post)
3636
itemID = post['link']
3737

3838
#Post bitstream
3939
#bitstream = filePath+'test.txt'
4040
bitstream = filePath+'testImage.jpg'
41+
#bitstream = filePath+'A.pdf'
42+
#bitstream = filePath+'test.pdf'
43+
4144
fileName = bitstream[bitstream.rfind('/')+1:]
4245
files = {'file': open(bitstream, 'rb')}
4346
data = json.dumps({'name': fileName, 'sequenceId': 1})
44-
post = requests.post(baseURL+itemID+'/bitstreams', headers=headerAuthFileUpload, files=files).json()
45-
print post
46-
bitstreamID = '/rest/bitstreams/'+str(post['id'])
47-
post = requests.put(baseURL+bitstreamID, headers=headerAuth, data=data)
48-
print post
47+
post = requests.post(baseURL+itemID+'/bitstreams?name='+fileName, headers=headerAuthFileUpload, files=files).json()
48+
print json.dumps(post)
49+
metadata = requests.get(baseURL+itemID+'/metadata', headers=headerAuth).json()
4950

50-
# print baseURL+itemID+'/metadata'
51-
# item = json.dumps([{'key': 'dc.title', 'language': 'en_US', 'value': 'testing123'}])
52-
# post = requests.post(baseURL+itemID+'/metadata', headers=headerAuth, data=item).json()
53-
# print post
51+
updatedMetadata = []
52+
for metadatum in metadata:
53+
if metadatum['key'] != 'dc.description.provenance':
54+
print 'yay'
55+
updatedMetadata.append(metadatum)
56+
else:
57+
value = metadatum['value']
58+
time = value[value.index('DSpace on ')+10:value.index(' (GMT)')]
59+
print time
60+
print 'nay'
61+
provNote = {}
62+
provNote['key'] = 'dc.description.provenance'
63+
provNote['language'] = 'en_US'
64+
bitstreams = requests.get(baseURL+itemID+'/bitstreams', headers=headerAuth).json()
65+
bitstreamCount = len(bitstreams)
66+
provNoteValue = 'Made available in DSpace on '+time+' (GMT). No. of bitstreams: '+str(bitstreamCount)
67+
for bitstream in bitstreams:
68+
fileName = bitstream['name']
69+
size = str(bitstream['sizeBytes'])
70+
checksum = bitstream['checkSum']['value']
71+
print checksum
72+
algorithm = bitstream ['checkSum']['checkSumAlgorithm']
73+
print algorithm
74+
provNoteValue = provNoteValue+' '+fileName+': '+size+' bytes, checkSum: '+checksum+' ('+algorithm+')'
75+
print provNoteValue
76+
provNote['value'] = provNoteValue
77+
print provNote
78+
updatedMetadata.append(provNote)
79+
updatedMetadata = json.dumps(updatedMetadata)
80+
81+
delete = requests.delete(baseURL+itemID+'/metadata', headers=headerAuth)
82+
print delete
83+
post = requests.put(baseURL+itemID+'/metadata', headers=headerAuth, data=updatedMetadata)
84+
print post
5485

5586
logout = requests.post(baseURL+'/rest/logout', headers=headerAuth)

0 commit comments

Comments
 (0)