Skip to content

Commit eebf06e

Browse files
author
ehanson8
committed
updates
1 parent c4c26a3 commit eebf06e

File tree

1 file changed

+75
-0
lines changed

1 file changed

+75
-0
lines changed
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
import json
2+
import requests
3+
import secrets
4+
import csv
5+
import time
6+
7+
secretsVersion = raw_input('To edit production server, enter the name of the secrets file: ')
8+
if secretsVersion != '':
9+
try:
10+
secrets = __import__(secretsVersion)
11+
print 'Editing Production'
12+
except ImportError:
13+
print 'Editing Stage'
14+
else:
15+
print 'Editing Stage'
16+
17+
baseURL = secrets.baseURL
18+
email = secrets.email
19+
password = secrets.password
20+
filePath = secrets.filePath
21+
verify = secrets.verify
22+
23+
requests.packages.urllib3.disable_warnings()
24+
25+
collectionHandle = raw_input('Enter collection handle: ')
26+
key = raw_input('Enter key: ')
27+
28+
startTime = time.time()
29+
data = json.dumps({'email':email,'password':password})
30+
header = {'content-type':'application/json','accept':'application/json'}
31+
session = requests.post(baseURL+'/rest/login', headers=header, verify=verify, data=data).content
32+
headerAuth = {'content-type':'application/json','accept':'application/json', 'rest-dspace-token':session}
33+
print 'authenticated'
34+
35+
itemList = []
36+
endpoint = baseURL+'/rest/handle/'+collectionHandle
37+
collection = requests.get(endpoint, headers=headerAuth, verify=verify).json()
38+
collectionID = collection['id']
39+
offset = 0
40+
items = ''
41+
while items != []:
42+
items = requests.get(baseURL+'/rest/collections/'+str(collectionID)+'/items?limit=1000&offset='+str(offset), headers=headerAuth, verify=verify)
43+
while items.status_code != 200:
44+
time.sleep(5)
45+
items = requests.get(baseURL+'/rest/collections/'+str(collectionID)+'/items?limit=1000&offset='+str(offset), headers=headerAuth, verify=verify)
46+
items = items.json()
47+
for k in range (0, len (items)):
48+
itemID = items[k]['id']
49+
itemList.append(itemID)
50+
offset = offset + 1000
51+
elapsedTime = time.time() - startTime
52+
m, s = divmod(elapsedTime, 60)
53+
h, m = divmod(m, 60)
54+
print 'Item list creation time: ','%d:%02d:%02d' % (h, m, s)
55+
56+
f=csv.writer(open(filePath+'recordsWith'+key+collectionHandle+'.csv', 'wb'))
57+
f.writerow(['itemID']+['uri']+[key])
58+
for number, itemID in enumerate(itemList):
59+
itemsRemaining = len(itemList) - number
60+
print 'Items remaining: ', itemsRemaining, 'ItemID: ', itemID
61+
metadata = requests.get(baseURL+'/rest/items/'+str(itemID)+'/metadata', headers=headerAuth, verify=verify).json()
62+
for l in range (0, len (metadata)):
63+
if metadata[l]['key'] == key:
64+
metadataValue = metadata[l]['value']
65+
for l in range (0, len (metadata)):
66+
if metadata[l]['key'] == 'dc.identifier.uri':
67+
uri = metadata[l]['value']
68+
f.writerow([itemID]+[uri]+[metadataValue])
69+
70+
logout = requests.post(baseURL+'/rest/logout', headers=headerAuth, verify=verify)
71+
72+
elapsedTime = time.time() - startTime
73+
m, s = divmod(elapsedTime, 60)
74+
h, m = divmod(m, 60)
75+
print 'Total script run time: ', '%d:%02d:%02d' % (h, m, s)

0 commit comments

Comments
 (0)