Skip to content

Commit 5d495f8

Browse files
committed
updates
1 parent be74ce7 commit 5d495f8

File tree

1 file changed

+49
-49
lines changed

1 file changed

+49
-49
lines changed

replaceValueInCommunityFromCSV.py

Lines changed: 49 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# -*- coding: utf-8 -*-
12
import json
23
import requests
34
import secrets
@@ -37,8 +38,6 @@
3738
except ImportError:
3839
print 'Editing Stage'
3940

40-
41-
4241
startTime = time.time()
4342
data = {'email':email,'password':password}
4443
header = {'content-type':'application/json','accept':'application/json'}
@@ -65,53 +64,54 @@
6564
with open(fileName) as csvfile:
6665
reader = csv.DictReader(csvfile)
6766
for row in reader:
68-
replacedValue = row['replacedValue']
69-
replacementValue = row['replacementValue']
70-
offset = 0
71-
recordsEdited = 0
72-
items = ''
73-
while items != []:
74-
endpoint = baseURL+'/rest/filtered-items?query_field[]=*&query_op[]=equals&query_val[]='+replacedValue+collSels+'&limit=200&offset='+str(offset)
75-
print endpoint
76-
77-
response = requests.get(endpoint, headers=header, cookies=cookies, verify=verify).json()
78-
items = response['items']
79-
for item in items:
80-
itemMetadataProcessed = []
81-
itemLink = item['link']
82-
metadata = requests.get(baseURL + itemLink + '/metadata', headers=header, cookies=cookies, verify=verify).json()
83-
for l in range (0, len (metadata)):
84-
metadata[l].pop('schema', None)
85-
metadata[l].pop('element', None)
86-
metadata[l].pop('qualifier', None)
87-
languageValue = metadata[l]['language']
88-
if metadata[l]['value'] == replacedValue:
89-
key = metadata[l]['key']
90-
replacedElement = metadata[l]
91-
updatedMetadataElement = {}
92-
updatedMetadataElement['key'] = metadata[l]['key']
93-
updatedMetadataElement['value'] = unicode(replacementValue)
94-
updatedMetadataElement['language'] = languageValue
95-
itemMetadataProcessed.append(updatedMetadataElement)
96-
provNote = '\''+key+': '+replacedValue+'\' was replaced by \''+key+': '+replacementValue+'\' through a batch process on '+datetime.now().strftime('%Y-%m-%d %H:%M:%S')+'.'
97-
provNoteElement = {}
98-
provNoteElement['key'] = 'dc.description.provenance'
99-
provNoteElement['value'] = unicode(provNote)
100-
provNoteElement['language'] = 'en_US'
101-
itemMetadataProcessed.append(provNoteElement)
102-
recordsEdited = recordsEdited + 1
103-
else:
104-
if metadata[l] not in itemMetadataProcessed:
105-
itemMetadataProcessed.append(metadata[l])
106-
itemMetadataProcessed = json.dumps(itemMetadataProcessed)
107-
print 'updated', itemLink, recordsEdited
108-
delete = requests.delete(baseURL+itemLink+'/metadata', headers=header, cookies=cookies, verify=verify)
109-
print delete
110-
post = requests.put(baseURL+itemLink+'/metadata', headers=header, cookies=cookies, verify=verify, data=itemMetadataProcessed)
111-
print post
112-
f.writerow([itemLink]+[replacedValue]+[replacementValue]+[delete]+[post])
113-
offset = offset + 200
114-
print offset
67+
print row
68+
replacedValue = row['replacedValue'].decode('utf-8')
69+
replacementValue = row['replacementValue'].decode('utf-8')
70+
if replacedValue != replacementValue:
71+
print replacedValue
72+
offset = 0
73+
recordsEdited = 0
74+
items = ''
75+
while items != []:
76+
endpoint = baseURL+'/rest/filtered-items?query_field[]=*&query_op[]=equals&query_val[]='+replacedValue+collSels+'&limit=200&offset='+str(offset)
77+
print endpoint
78+
response = requests.get(endpoint, headers=header, cookies=cookies, verify=verify).json()
79+
items = response['items']
80+
for item in items:
81+
itemMetadataProcessed = []
82+
itemLink = item['link']
83+
metadata = requests.get(baseURL + itemLink + '/metadata', headers=header, cookies=cookies, verify=verify).json()
84+
for l in range (0, len (metadata)):
85+
metadata[l].pop('schema', None)
86+
metadata[l].pop('element', None)
87+
metadata[l].pop('qualifier', None)
88+
languageValue = metadata[l]['language']
89+
if metadata[l]['value'] == replacedValue:
90+
key = metadata[l]['key']
91+
replacedElement = metadata[l]
92+
updatedMetadataElement = {}
93+
updatedMetadataElement['key'] = metadata[l]['key']
94+
updatedMetadataElement['value'] = unicode(replacementValue)
95+
updatedMetadataElement['language'] = languageValue
96+
itemMetadataProcessed.append(updatedMetadataElement)
97+
provNote = '\''+key+': '+replacedValue+'\' was replaced by \''+key+': '+replacementValue+'\' through a batch process on '+datetime.now().strftime('%Y-%m-%d %H:%M:%S')+'.'
98+
provNoteElement = {}
99+
provNoteElement['key'] = 'dc.description.provenance'
100+
provNoteElement['value'] = unicode(provNote)
101+
provNoteElement['language'] = 'en_US'
102+
itemMetadataProcessed.append(provNoteElement)
103+
recordsEdited = recordsEdited + 1
104+
else:
105+
if metadata[l] not in itemMetadataProcessed:
106+
itemMetadataProcessed.append(metadata[l])
107+
itemMetadataProcessed = json.dumps(itemMetadataProcessed)
108+
print 'updated', itemLink, recordsEdited
109+
delete = requests.delete(baseURL+itemLink+'/metadata', headers=header, cookies=cookies, verify=verify)
110+
print delete
111+
post = requests.put(baseURL+itemLink+'/metadata', headers=header, cookies=cookies, verify=verify, data=itemMetadataProcessed)
112+
print post
113+
f.writerow([itemLink]+[replacedValue.encode('utf-8')]+[replacementValue.encode('utf-8')]+[delete]+[post])
114+
offset = offset + 200
115115

116116
logout = requests.post(baseURL+'/rest/logout', headers=header, cookies=cookies, verify=verify)
117117

0 commit comments

Comments
 (0)