Browse Source

added api status tool

pull/1/head
r4sas 8 years ago
parent
commit
68e3b47be1
  1. 1
      pyi2phosts/api/urls.py
  2. 46
      pyi2phosts/api/views.py

1
pyi2phosts/api/urls.py

@ -2,4 +2,5 @@ from django.conf.urls import *
urlpatterns = patterns('pyi2phosts.api.views', urlpatterns = patterns('pyi2phosts.api.views',
url(r'^all/$', 'all'), url(r'^all/$', 'all'),
url(r'^status/$', 'status'),
) )

46
pyi2phosts/api/views.py

@ -14,3 +14,49 @@ def all(request):
# pass last_seen to json in unixtime # pass last_seen to json in unixtime
json_dict[get_b32(host.b64hash)] = host.last_seen.strftime("%s") json_dict[get_b32(host.b64hash)] = host.last_seen.strftime("%s")
return HttpResponse(json.dumps(json_dict), content_type="application/json") return HttpResponse(json.dumps(json_dict), content_type="application/json")
def status(request):
"""
Return all hosts in {
"hostname": hostname,
"b64": b64,
"b32": b32,
"last-seen": timestamp
} form.
Implemented by MXPLRS|Kirill request.
"""
# host status
if 'q' in request.GET and request.GET['q'] is not None and request.GET['q'] != '':
hostname = request.GET['q']
else:
json_dict = {
'error': 'Bad request',
}
return HttpResponse(json.dumps(json_dict), content_type="application/json")
try:
host = i2phost.objects.get(name=hostname)
except:
host = None
if host and host.last_seen:
json_dict = {
'hostname': host.name,
'b64': host.b64hash,
'b32': get_b32(host.b64hash),
'last-seen': host.last_seen.strftime("%s"),
}
elif host and not host.last_seen:
json_dict = {
'hostname': host.name,
'b64': host.b64hash,
'b32': get_b32(host.b64hash),
'error': 'Never seen',
}
else:
json_dict = {
'hostname': hostname,
'error': 'Not found',
}
return HttpResponse(json.dumps(json_dict), content_type="application/json")

Loading…
Cancel
Save