added ability to search for corps, chars and alliances.

This commit is contained in:
2018-04-25 15:57:11 +01:00
parent 3839235937
commit 9f5fe51c35
8 changed files with 200 additions and 5 deletions

View File

@@ -10,6 +10,8 @@ from allauth.socialaccount.models import SocialAccount, SocialToken, SocialApp
from requests.auth import HTTPBasicAuth
from eve_auth.models import Corporation
from eve_auth.forms import SearchForm
from eve_auth import data_classes
def hello(request):
@@ -38,3 +40,41 @@ def renew_token(request, account: Union[SocialAccount, User]):
)
token.token = req.json()['access_token']
token.save()
def search(request):
results = []
if request.POST:
form = SearchForm(request.POST)
if form.is_valid():
search_results = requests.get(f'https://esi.tech.ccp.is/latest/search/?categories='
f'{form.cleaned_data["category"]}&datasource=tranquility&language=en-us&'
f'search={form.cleaned_data["search_text"]}&strict=false').json()
if form.cleaned_data["category"] == 'alliance':
if search_results:
for alliance in search_results['alliance']:
res = requests.get(f'https://esi.tech.ccp.is/latest/alliances'
f'/{alliance}/?datasource=tranquility').json()
results.append(data_classes.Alliance(id=alliance, **res))
elif form.cleaned_data["category"] == 'corporation':
if search_results:
for corp in search_results['corporation']:
res = requests.get(f'https://esi.tech.ccp.is/latest/corporations/{corp}/?'
f'datasource=tranquility').json()
results.append(data_classes.Corporation(id=corp, **res))
elif form.cleaned_data["category"] == 'character':
if search_results:
for cha in search_results['character']:
res = requests.get(f'https://esi.tech.ccp.is/latest/characters/{cha}/?'
f'datasource=tranquility').json()
results.append(data_classes.Character(id=cha, **res))
else:
form = SearchForm()
return render(
request,
'search.html',
{
'form': form,
'results': results
}
)