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 } )