Skip to content

Commit 05dd639

Browse files
authored
Merge pull request #2 from echarlie/json_conversion
naïvely convert to new json interface, as dsml will be disabled
2 parents 5489b54 + ff80b62 commit 05dd639

File tree

2 files changed

+37
-62
lines changed

2 files changed

+37
-62
lines changed

hokiestalker/dsml.py

Lines changed: 0 additions & 26 deletions
This file was deleted.

hs

Lines changed: 37 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,12 @@
1111
import sys
1212
import urllib.parse
1313
import urllib.request
14+
import json
1415

15-
from hokiestalker import dsml
1616
from hokiestalker import parse_addr
1717

18-
SEARCH_URL = "https://webapps.middleware.vt.edu/peoplesearch/PeopleSearch?"\
19-
"query={0}&dsml-version=2"
20-
18+
SEARCH_URL = "https://apps.middleware.vt.edu/ws/v1/persons/ldap/fuzzysearch?"\
19+
"query={0}"
2120

2221
def row(rows, name, data):
2322
"""Return a formatted row for printing."""
@@ -34,6 +33,8 @@ def row(rows, name, data):
3433
for line in data[1:]:
3534
rows.append("{0:20s}{1}".format('', line))
3635

36+
def jhasattr(obj, attr):
37+
return attr in obj.keys()
3738

3839
def search(query):
3940
"""Search LDAP using the argument as a query. Argument must be
@@ -45,61 +46,61 @@ def search(query):
4546
f = urllib.request.urlopen(r)
4647

4748
has_results = False
48-
results = dsml.DSMLParser(f)
49+
results = json.loads(f.read())
4950

5051
for entry in results:
5152
has_results = True
5253

5354
rows = []
5455
names = []
55-
if hasattr(entry, 'displayName'):
56-
names.append(entry.displayName)
56+
if jhasattr(entry, 'displayName'):
57+
names.append(entry.get("displayName")[0])
5758

58-
if hasattr(entry, 'givenName') and hasattr(entry, 'sn'):
59-
if hasattr(entry, 'middleName'):
59+
if jhasattr(entry, 'givenName') and jhasattr(entry, 'sn'):
60+
if jhasattr(entry, 'middleName'):
6061
names.append('{0} {1} {2}'.format(
61-
entry.givenName,
62-
entry.middleName,
63-
entry.sn))
62+
entry.get("givenName")[0],
63+
entry.get("middleName")[0],
64+
entry.get("sn")[0]))
6465
else:
6566
names.append('{0} {1}'.format(
66-
entry.givenName,
67-
entry.sn))
67+
entry.get("givenName")[0],
68+
entry.get("sn")[0]))
6869

6970
row(rows, 'Name', names)
7071

71-
if hasattr(entry, 'uid'):
72-
row(rows, 'UID', entry.uid)
72+
if jhasattr(entry, 'uid'):
73+
row(rows, 'UID', entry.get("uid")[0])
7374

74-
if hasattr(entry, 'uupid'):
75-
row(rows, 'PID', entry.uupid)
75+
if jhasattr(entry, 'uupid'):
76+
row(rows, 'PID', entry.get("uupid")[0])
7677

77-
if hasattr(entry, 'major'):
78-
row(rows, 'Major', entry.major)
79-
elif hasattr(entry, 'department'):
80-
row(rows, 'Department', entry.department)
78+
if jhasattr(entry, 'major'):
79+
row(rows, 'Major', entry.get("major")[0])
80+
elif jhasattr(entry, 'department'):
81+
row(rows, 'Department', entry.get("department"))
8182

82-
if hasattr(entry, 'title'):
83-
row(rows, 'Title', entry.title)
83+
if jhasattr(entry, 'title'):
84+
row(rows, 'Title', entry.get("title")[0])
8485

85-
if hasattr(entry, 'postalAddress'):
86-
row(rows, 'Office', parse_addr(entry.postalAddress))
86+
if jhasattr(entry, 'postalAddress'):
87+
row(rows, 'Office', parse_addr(entry.get("postalAddress")[0]))
8788

88-
if hasattr(entry, 'mailStop'):
89-
row(rows, 'Mail Stop', entry.mailStop)
89+
if jhasattr(entry, 'mailStop'):
90+
row(rows, 'Mail Stop', entry.get("mailStop")[0])
9091

91-
if hasattr(entry, 'telephoneNumber'):
92-
row(rows, 'Office Phone', entry.telephoneNumber)
92+
if jhasattr(entry, 'telephoneNumber'):
93+
row(rows, 'Office Phone', entry.get("telephoneNumber")[0])
9394

94-
if hasattr(entry, 'localPostalAddress'):
95+
if jhasattr(entry, 'localPostalAddress'):
9596
row(rows, 'Mailing Address', parse_addr(
96-
entry.localPostalAddress))
97+
entry.get("localPostalAddress")[0]))
9798

98-
if hasattr(entry, 'localPhone'):
99-
row(rows, 'Phone Number', entry.localPhone)
99+
if jhasattr(entry, 'localPhone'):
100+
row(rows, 'Phone Number', entry.get("localPhone")[0])
100101

101-
if hasattr(entry, 'mailPreferredAddress'):
102-
row(rows, 'Email Address', entry.mailPreferredAddress)
102+
if jhasattr(entry, 'mailPreferredAddress'):
103+
row(rows, 'Email Address', entry.get("mailPreferredAddress")[0])
103104

104105
print("\n".join(rows))
105106
print()

0 commit comments

Comments
 (0)