|
4 | 4 | import csv |
5 | 5 | import time |
6 | 6 | import urllib3 |
| 7 | +import argparse |
| 8 | + |
| 9 | +parser = argparse.ArgumentParser() |
| 10 | +parser.add_argument('-k', '--key', help='the key to be searched. optional - if not provided, the script will ask for input') |
| 11 | +args = parser.parse_args() |
| 12 | + |
| 13 | +if args.key: |
| 14 | + key = args.key |
| 15 | +else: |
| 16 | + key = raw_input('Enter the key: ') |
7 | 17 |
|
8 | 18 | urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) |
9 | 19 |
|
|
23 | 33 | filePath = secrets.filePath |
24 | 34 | verify = secrets.verify |
25 | 35 |
|
26 | | -key = raw_input('Enter key: ') |
27 | | - |
28 | 36 | startTime = time.time() |
29 | 37 | data = {'email':email,'password':password} |
30 | 38 | header = {'content-type':'application/json','accept':'application/json'} |
|
36 | 44 | userFullName = status['fullname'] |
37 | 45 | print 'authenticated' |
38 | 46 |
|
39 | | -itemList = [] |
40 | | -endpoint = baseURL+'/rest/communities' |
41 | | -communities = requests.get(endpoint, headers=header, cookies=cookies, verify=verify).json() |
42 | | -for i in range (0, len (communities)): |
43 | | - communityID = communities[i]['uuid'] |
44 | | - collections = requests.get(baseURL+'/rest/communities/'+str(communityID)+'/collections', headers=header, cookies=cookies, verify=verify).json() |
45 | | - for j in range (0, len (collections)): |
46 | | - collectionID = collections[j]['uuid'] |
47 | | - if collectionID != '4dccec82-4cfb-4583-a728-2cb823b15ef0': |
48 | | - offset = 0 |
49 | | - items = '' |
50 | | - while items != []: |
51 | | - items = requests.get(baseURL+'/rest/collections/'+str(collectionID)+'/items?limit=200&offset='+str(offset), headers=header, cookies=cookies, verify=verify) |
52 | | - while items.status_code != 200: |
53 | | - time.sleep(5) |
54 | | - items = requests.get(baseURL+'/rest/collections/'+str(collectionID)+'/items?limit=200&offset='+str(offset), headers=header, cookies=cookies, verify=verify) |
55 | | - items = items.json() |
56 | | - for k in range (0, len (items)): |
57 | | - itemID = items[k]['uuid'] |
58 | | - itemList.append(itemID) |
59 | | - offset = offset + 200 |
60 | | -elapsedTime = time.time() - startTime |
61 | | -m, s = divmod(elapsedTime, 60) |
62 | | -h, m = divmod(m, 60) |
63 | | -print 'Item list creation time: ','%d:%02d:%02d' % (h, m, s) |
64 | | - |
65 | 47 | f=csv.writer(open(filePath+'recordsWith'+key+'.csv', 'wb')) |
66 | 48 | f.writerow(['itemID']+['uri']+[key]) |
67 | | -for number, itemID in enumerate(itemList): |
68 | | - itemsRemaining = len(itemList) - number |
69 | | - print 'Items remaining: ', itemsRemaining, 'ItemID: ', itemID |
70 | | - metadata = requests.get(baseURL+'/rest/items/'+str(itemID)+'/metadata', headers=header, cookies=cookies, verify=verify).json() |
71 | | - for l in range (0, len (metadata)): |
72 | | - if metadata[l]['key'] == key: |
73 | | - metadataValue = metadata[l]['value'] |
74 | | - for l in range (0, len (metadata)): |
75 | | - if metadata[l]['key'] == 'dc.identifier.uri': |
76 | | - uri = metadata[l]['value'] |
77 | | - f.writerow([itemID]+[uri]+[metadataValue.encode('utf8')]) |
| 49 | +offset = 0 |
| 50 | +recordsEdited = 0 |
| 51 | +items = '' |
| 52 | +while items != []: |
| 53 | + endpoint = baseURL+'/rest/filtered-items?query_field[]='+key+'&query_op[]=exists&query_val[]=&limit=200&offset='+str(offset) |
| 54 | + print endpoint |
| 55 | + response = requests.get(endpoint, headers=header, cookies=cookies, verify=verify).json() |
| 56 | + items = response['items'] |
| 57 | + for item in items: |
| 58 | + itemMetadataProcessed = [] |
| 59 | + itemLink = item['link'] |
| 60 | + metadata = requests.get(baseURL + itemLink + '/metadata', headers=header, cookies=cookies, verify=verify).json() |
| 61 | + for l in range (0, len (metadata)): |
| 62 | + if metadata[l]['key'] == key: |
| 63 | + metadataValue = metadata[l]['value'].encode('utf-8') |
| 64 | + for l in range (0, len (metadata)): |
| 65 | + if metadata[l]['key'] == 'dc.identifier.uri': |
| 66 | + uri = metadata[l]['value'] |
| 67 | + f.writerow([itemLink]+[uri]+[metadataValue]) |
| 68 | + offset = offset + 200 |
| 69 | + print offset |
78 | 70 |
|
79 | 71 | logout = requests.post(baseURL+'/rest/logout', headers=header, cookies=cookies, verify=verify) |
80 | 72 |
|
|
0 commit comments