Skip to content

Commit 2e66de7

Browse files
committed
Update modifyDigitalObjectUrls.py
1 parent 4710613 commit 2e66de7

File tree

1 file changed

+27
-10
lines changed

1 file changed

+27
-10
lines changed

modifyDigitalObjectUrls.py

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,16 @@
66
import argparse
77
from datetime import datetime
88

9+
secretsVersion = raw_input('To edit production server, enter the name of the secrets file: ')
10+
if secretsVersion != '':
11+
try:
12+
secrets = __import__(secretsVersion)
13+
print 'Editing Production'
14+
except ImportError:
15+
print 'Editing Development'
16+
else:
17+
print 'Editing Development'
18+
919
parser = argparse.ArgumentParser()
1020
parser.add_argument('-1', '--replacedValue', help='the value to be replaced. optional - if not provided, the script will ask for input')
1121
parser.add_argument('-2', '--replacementValue', help='the replacement value. optional - if not provided, the script will ask for input')
@@ -37,24 +47,31 @@
3747
print len(ids)
3848

3949
f=csv.writer(open('doUrlEdits'+datetime.now().strftime('%Y-%m-%d %H.%M.%S')+'.csv', 'wb'))
40-
f.writerow(['uri']+['originalValue']+['editedValue']+['doPost'])
50+
f.writerow(['endpoint']+['doPost'])
4151

4252
for id in ids:
53+
print id
4354
endpoint = '/repositories/3/digital_objects/'+str(id)
4455
output = requests.get(baseURL + endpoint, headers=headers).json()
45-
value = output['digital_object_id']
46-
editedValue = value.replace(replacedValue, replacementValue)
47-
output['digital_object_id'] = editedValue
56+
originalOutput = output
57+
originalIdValue = output['digital_object_id']
58+
editedIdValue = originalIdValue.replace(replacedValue, replacementValue)
59+
output['digital_object_id'] = editedIdValue
4860
file_versions = output['file_versions']
49-
if value != editedValue:
50-
for file_version in file_versions:
51-
file_version['file_uri'] = editedValue
52-
output['file_versions'] = file_versions
61+
fileUriChange = False
62+
for file_version in file_versions:
63+
originalUriValue = file_version['file_uri']
64+
print originalUriValue
65+
editedUriValue = originalUriValue.replace(replacedValue, replacementValue)
66+
if originalUriValue != editedUriValue:
67+
file_version['file_uri'] = editedUriValue
68+
fileUriChange = True
69+
output['file_versions'] = file_versions
70+
if originalIdValue != editedIdValue or fileUriChange == True:
5371
output = json.dumps(output)
5472
doPost = requests.post(baseURL + '/repositories/3/digital_objects/'+str(id), headers=headers, data=output).json()
5573
print doPost
56-
f.writerow([endpoint]+[value]+[editedValue]+[doPost])
57-
74+
f.writerow([endpoint]+[doPost])
5875

5976
elapsedTime = time.time() - startTime
6077
m, s = divmod(elapsedTime, 60)

0 commit comments

Comments
 (0)