Files
eve_verify/eve_auth/views.py

81 lines
3.0 KiB
Python

from typing import Union
import requests
from django.contrib.auth.models import User
from django.shortcuts import render
from allauth.socialaccount.providers import eveonline
# Create your views here.
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):
c = Corporation(id=98002591)
c.save()
#c.update()
return render(
request,
'base.html',
{}
)
def renew_token(request, account: Union[SocialAccount, User]):
if account is User:
account = SocialAccount.objects.get(user=account)
token = SocialToken.objects.get(account=account)
app = SocialApp.objects.get(provider='eveonline')
req = requests.post(
url='https://login.eveonline.com/oauth/token',
data={
'grant_type': 'refresh_token',
'refresh_token': token.token_secret
},
auth=HTTPBasicAuth(app.client_id, app.secret)
)
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
}
)