Skip to content

Commit 481fe63

Browse files
committed
updates
1 parent 9e90438 commit 481fe63

File tree

1 file changed

+94
-0
lines changed

1 file changed

+94
-0
lines changed

getFacultyNamesFromETDs.py

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
import json
2+
import requests
3+
import secrets
4+
import time
5+
import csv
6+
from datetime import datetime
7+
import urllib3
8+
import argparse
9+
10+
parser = argparse.ArgumentParser()
11+
parser.add_argument('-i', '--handle', help='handle of the community to retreive. optional - if not provided, the script will ask for input')
12+
args = parser.parse_args()
13+
14+
if args.handle:
15+
handle = args.handle
16+
else:
17+
handle = raw_input('Enter community handle: ')
18+
19+
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
20+
21+
secretsVersion = raw_input('To edit production server, enter the name of the secrets file: ')
22+
if secretsVersion != '':
23+
try:
24+
secrets = __import__(secretsVersion)
25+
print 'Editing Production'
26+
except ImportError:
27+
print 'Editing Stage'
28+
else:
29+
print 'Editing Stage'
30+
31+
baseURL = secrets.baseURL
32+
email = secrets.email
33+
password = secrets.password
34+
filePath = secrets.filePath
35+
verify = secrets.verify
36+
37+
startTime = time.time()
38+
data = {'email':email,'password':password}
39+
header = {'content-type':'application/json','accept':'application/json'}
40+
session = requests.post(baseURL+'/rest/login', headers=header, verify=verify, params=data).cookies['JSESSIONID']
41+
cookies = {'JSESSIONID': session}
42+
headerFileUpload = {'accept':'application/json'}
43+
cookiesFileUpload = cookies
44+
status = requests.get(baseURL+'/rest/status', headers=header, cookies=cookies, verify=verify).json()
45+
userFullName = status['fullname']
46+
print 'authenticated'
47+
48+
endpoint = baseURL+'/rest/handle/'+handle
49+
community = requests.get(endpoint, headers=header, cookies=cookies, verify=verify).json()
50+
communityID = community['uuid']
51+
collections = requests.get(baseURL+'/rest/communities/'+str(communityID)+'/collections', headers=header, cookies=cookies, verify=verify).json()
52+
collSels = ''
53+
for j in range (0, len (collections)):
54+
collectionID = collections[j]['uuid']
55+
collSel = '&collSel[]=' + collectionID
56+
collSels = collSels + collSel
57+
58+
59+
f=csv.writer(open(filePath+'EtdFacultyNames.csv', 'wb'))
60+
f.writerow(['name'])
61+
62+
nameFields = ['dc.contributor.advisor','dc.contributor.committeeMember','jhuthesis.advisor.externalmember','jhuthesis.advisor.primary','jhuthesis.advisor.secondary']
63+
64+
facultyNames = []
65+
66+
offset = 0
67+
recordsEdited = 0
68+
items = ''
69+
while items != []:
70+
endpoint = baseURL+'/rest/filtered-items?&query_val[]='+collSels+'&limit=200&offset='+str(offset)
71+
print endpoint
72+
response = requests.get(endpoint, headers=header, cookies=cookies, verify=verify).json()
73+
items = response['items']
74+
for item in items:
75+
itemMetadataProcessed = []
76+
itemLink = item['link']
77+
metadata = requests.get(baseURL+itemLink+'/metadata', headers=header, cookies=cookies, verify=verify).json()
78+
for metadataElement in metadata:
79+
if metadataElement['key'] in nameFields:
80+
facultyName = metadataElement['value'].encode('utf-8')
81+
if facultyName not in facultyNames:
82+
facultyNames.append(facultyName)
83+
offset = offset + 200
84+
print offset
85+
86+
for facultyName in facultyNames:
87+
f.writerow([facultyName])
88+
89+
logout = requests.post(baseURL+'/rest/logout', headers=header, cookies=cookies, verify=verify)
90+
91+
elapsedTime = time.time() - startTime
92+
m, s = divmod(elapsedTime, 60)
93+
h, m = divmod(m, 60)
94+
print 'Total script run time: ', '%d:%02d:%02d' % (h, m, s)

0 commit comments

Comments
 (0)