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