114 lines
4.1 KiB
Python
114 lines
4.1 KiB
Python
from django.shortcuts import render
|
|
from django.http import HttpResponse, HttpResponseRedirect
|
|
from django.template import loader
|
|
from json import loads, dumps
|
|
from math import floor
|
|
import requests
|
|
from .forms import ServerAddressForm
|
|
|
|
# Create your views here.
|
|
default_address = 'http://localhost:8000/spoiler'
|
|
|
|
|
|
def index(request):
|
|
request_data = None
|
|
|
|
# with open('tracker/static/tracker/data/listen_address.json', 'r') as address:
|
|
# read_address = loads(address.read())
|
|
# if (read_address['address']['user'] != ''):
|
|
# server_address = read_address['address']['user']
|
|
# else:
|
|
# server_address = read_address['address']['default']
|
|
if 'listen_address' in request.session.keys():
|
|
server_address = request.session['listen_address']
|
|
print(request.session['listen_address'])
|
|
else:
|
|
request.session['listen_address'] = default_address
|
|
print(request.session['listen_address'])
|
|
server_address = default_address
|
|
is_hidden = True
|
|
try:
|
|
request_data = requests.get(
|
|
server_address, timeout=5, verify=True).text
|
|
except:
|
|
with open('empty_spoiler.json', 'r') as t:
|
|
try:
|
|
tracker_output = loads(t.read())
|
|
is_hidden = False
|
|
|
|
except:
|
|
return
|
|
try:
|
|
tracker_output = loads(request_data)
|
|
except:
|
|
with open('empty_spoiler.json', 'r') as t:
|
|
try:
|
|
tracker_output = loads(t.read())
|
|
is_hidden = False
|
|
except:
|
|
return
|
|
with open('tracker/static/tracker/data/holy_cross_codes.json', 'r') as t:
|
|
try:
|
|
cross_codes = loads(t.read())
|
|
except:
|
|
return
|
|
tracker_debug = tracker_output['Debug']
|
|
tracker_totals = tracker_output['Totals']
|
|
tracker_current_scene = tracker_output['Current']['Scene']
|
|
tracker_current_scene_data = tracker_output['Scenes'][tracker_current_scene]
|
|
tracker_scenes = tracker_output['Scenes']
|
|
entered_codes = tracker_output['Codes']
|
|
try:
|
|
tracker_codes = cross_codes
|
|
for scene in entered_codes:
|
|
for k, v in cross_codes[scene].items():
|
|
tracker_codes[scene][k] = (
|
|
v, entered_codes[scene][k])
|
|
except Exception as e:
|
|
current_cross_codes = {}
|
|
# print(e)
|
|
template = loader.get_template('tracker/index.html')
|
|
form = ServerAddressForm()
|
|
form.fields['server_address_form'].initial = server_address
|
|
context = {
|
|
'server_address': server_address,
|
|
'is_hidden': is_hidden,
|
|
'debug': tracker_debug,
|
|
'default_codes': cross_codes['Default'],
|
|
'tracked_codes': tracker_codes,
|
|
'totals': tracker_totals,
|
|
'scenes': tracker_scenes,
|
|
'current_scene': {
|
|
'title': tracker_current_scene,
|
|
'data': tracker_current_scene_data
|
|
},
|
|
'form': form
|
|
}
|
|
return HttpResponse(template.render(context, request))
|
|
|
|
|
|
def get_address(request):
|
|
if request.method == 'GET':
|
|
return HttpResponse(dumps(request.session['listen_address']), content_type="application/json")
|
|
else:
|
|
return render(request, 'tracker/index.html')
|
|
|
|
|
|
def set_address(request):
|
|
if request.method == 'POST':
|
|
form = ServerAddressForm(request.POST)
|
|
form.label_classes = ('p-2')
|
|
if form.is_valid():
|
|
# with open('tracker/static/tracker/data/listen_address.json', 'r') as la:
|
|
# listen_address = loads(la.read())
|
|
# listen_address['address']['user'] = form.cleaned_data['server_address_form']
|
|
|
|
# with open('tracker/static/tracker/data/listen_address.json', 'w') as la:
|
|
# la.write(dumps(listen_address))
|
|
server_address = form.cleaned_data['server_address_form']
|
|
request.session['listen_address'] = form.cleaned_data['server_address_form']
|
|
print(request.session['listen_address'])
|
|
return HttpResponseRedirect('/')
|
|
else:
|
|
form = ServerAddressForm()
|
|
return render(request, 'tracker/index.html', {'form': form})
|