97 lines
3.3 KiB
Python
97 lines
3.3 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.
|
|
|
|
|
|
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']
|
|
# server_address = 'http://localhost:8000/spoiler'
|
|
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 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))
|
|
return HttpResponseRedirect("/")
|
|
else:
|
|
form = ServerAddressForm()
|
|
return render(request, "tracker/index.html", {"form": form})
|