Skip to content

Commit a734fac

Browse files
committed
From main to format_page
1 parent e437eff commit a734fac

File tree

1 file changed

+34
-35
lines changed

1 file changed

+34
-35
lines changed

public_html/gateway.py

Lines changed: 34 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,15 @@ def order_keys(x):
4444
return '1_%s' % x
4545

4646

47+
def lookup(ip, rdap=False):
48+
obj = IPWhois(ip)
49+
if rdap:
50+
# TODO: RDAP output includes less relevant info, needs a dedicated formatter
51+
return obj.lookup_rdap()
52+
else:
53+
return obj.lookup()
54+
55+
4756
def format_new_lines(s):
4857
return s.replace('\n', '<br/>')
4958

@@ -92,20 +101,7 @@ def format_link_list(header, ls):
92101
return ret
93102

94103

95-
def lookup(ip, rdap=False):
96-
obj = IPWhois(ip)
97-
if rdap:
98-
# TODO: RDAP output includes less relevant info, needs a dedicated formatter
99-
return obj.lookup_rdap()
100-
else:
101-
return obj.lookup()
102-
103-
104-
if __name__ == '__main__':
105-
106-
if os.path.exists(LOGDIR):
107-
cgitb.enable(display=0, logdir=LOGDIR)
108-
form = cgi.FieldStorage()
104+
def format_page(form):
109105
ip = form.getfirst('ip', '')
110106
provider = form.getfirst('provider', '').upper()
111107
fmt = form.getfirst('format', 'html').lower()
@@ -129,17 +125,12 @@ def lookup(ip, rdap=False):
129125
error = True
130126

131127
if provider in PROVIDERS:
132-
print('Location: %s' % PROVIDERS[provider](ip))
133-
print('')
134-
exit()
128+
return 'Location: {}\n\n'.format(PROVIDERS[provider](ip))
135129

136130
if fmt == 'json' and do_lookup:
137-
print('Content-type: text/plain')
138-
print('')
139-
print(json.dumps(result))
140-
exit()
141-
142-
print('''Content-type: text/html
131+
return 'Content-type: text/plain\n\n{}\n'.format(json.dumps(result))
132+
133+
ret = '''Content-type: text/html
143134
144135
<!DOCTYPE HTML>
145136
<html lang="en">
@@ -180,7 +171,7 @@ def lookup(ip, rdap=False):
180171
css=css,
181172
ip=ip,
182173
error= 'has-error' if error else '',
183-
af= 'autofocus onFocus="this.select();"' if (not do_lookup or error) else ''))
174+
af= 'autofocus onFocus="this.select();"' if (not do_lookup or error) else '')
184175

185176
if do_lookup:
186177
link = 'https://tools.wmflabs.org/whois/%s/lookup' % ip
@@ -189,7 +180,7 @@ def lookup(ip, rdap=False):
189180
hostname = socket.gethostbyaddr(ip)[0]
190181
except IOError:
191182
pass
192-
print('''
183+
ret += '''
193184
<div class="panel panel-default"><div class="panel-heading">{hostname}</div>
194185
<div class="panel-body">{table}</div></div>
195186
@@ -201,42 +192,50 @@ def lookup(ip, rdap=False):
201192
</div>
202193
'''.format(hostname='<strong>%s</strong>' % hostname if hostname else '<em>(No corresponding host name retrieved)</em>',
203194
table=format_table(result, ip),
204-
link=link))
195+
link=link)
205196

206-
print('''</div>
197+
ret += '''</div>
207198
<div class="col-sm-3">
208-
''')
209-
print(format_link_list(
199+
'''
200+
ret += format_link_list(
210201
'Other tools',
211202
[(q(ip),
212203
'Look up %s at %s' % (ip, name),
213204
'<small class="el-ip">%s</small><span class="el-prov"> @%s</span>' % (ip, name),
214205
['el'])
215206
for (name, q) in sorted(TOOLS.items())]
216-
))
207+
)
217208

218-
print(format_link_list(
209+
ret += format_link_list(
219210
'Sources',
220211
[(q(ip),
221212
'Look up %s at %s' % (ip, name),
222213
'<small class="el-ip">%s</small><span class="el-prov"> @%s</span>' % (ip, name),
223214
['el', 'active'] if result.get('asn_registry', '').upper() == name else ['el'])
224215
for (name, q) in sorted(PROVIDERS.items())]
225-
))
216+
)
226217

227-
print('''
218+
ret += '''
228219
</div>
229220
</div>
230221
231222
<footer><div class="container">
232223
<hr>
233224
<p class="text-center text-muted">
234-
<a href="https://tools.wmflabs.org/whois/">Whois Gateway</a>
225+
<a href="{site}">Whois Gateway</a>
235226
<small>(<a href="https://github.com/whym/whois-gateway">source code</a>,
236227
<a href="https://github.com/whym/whois-gateway#api">API</a>)</small>
237228
on <a href="https://tools.wmflabs.org">Tool Labs</a> /
238229
<a href="https://github.com/whym/whois-gateway/issues">Issues?</a>
239230
</p>
240231
</div></footer>
241232
</div>
242-
</body></html>''' % {'site': SITE})
233+
</body></html>'''.format(site=SITE)
234+
235+
return ret
236+
237+
if __name__ == '__main__':
238+
239+
if os.path.exists(LOGDIR):
240+
cgitb.enable(display=0, logdir=LOGDIR)
241+
print(format_page(cgi.FieldStorage()))

0 commit comments

Comments
 (0)