You can set where the backend server is now.
This commit is contained in:
parent
eed3fe39c6
commit
a76661cfad
@ -1,46 +1,15 @@
|
||||
annotated-types==0.6.0
|
||||
anyio==4.3.0
|
||||
arrow==1.3.0
|
||||
asgiref==3.7.2
|
||||
autopep8==2.0.4
|
||||
binaryornot==0.4.4
|
||||
certifi==2024.2.2
|
||||
chardet==5.2.0
|
||||
charset-normalizer==3.3.2
|
||||
click==8.1.7
|
||||
cookiecutter==2.6.0
|
||||
Django==5.0.2
|
||||
Django==5.0.3
|
||||
django-browser-reload==1.12.1
|
||||
django-tailwind==3.8.0
|
||||
fastapi==0.110.0
|
||||
h11==0.14.0
|
||||
httptools==0.6.1
|
||||
idna==3.6
|
||||
Jinja2==3.1.3
|
||||
markdown-it-py==3.0.0
|
||||
MarkupSafe==2.1.5
|
||||
mdurl==0.1.2
|
||||
numpy==1.26.4
|
||||
pyarrow==15.0.0
|
||||
pyarrow==15.0.1
|
||||
pycodestyle==2.11.1
|
||||
pydantic==2.6.3
|
||||
pydantic_core==2.16.3
|
||||
Pygments==2.17.2
|
||||
python-dateutil==2.8.2
|
||||
python-dotenv==1.0.1
|
||||
python-slugify==8.0.4
|
||||
PyYAML==6.0.1
|
||||
pylance==0.10.2
|
||||
requests==2.31.0
|
||||
rich==13.7.1
|
||||
six==1.16.0
|
||||
sniffio==1.3.1
|
||||
sqlparse==0.4.4
|
||||
starlette==0.36.3
|
||||
text-unidecode==1.3
|
||||
types-python-dateutil==2.8.19.20240106
|
||||
typing_extensions==4.10.0
|
||||
urllib3==2.2.1
|
||||
uvicorn==0.27.1
|
||||
uvloop==0.19.0
|
||||
watchfiles==0.21.0
|
||||
websockets==12.0
|
||||
|
@ -1,27 +0,0 @@
|
||||
annotated-types==0.6.0
|
||||
anyio==4.3.0
|
||||
asgiref==3.7.2
|
||||
autopep8==2.0.4
|
||||
click==8.1.7
|
||||
Django==5.0.2
|
||||
django-browser-reload==1.12.1
|
||||
django-tailwind==3.8.0
|
||||
fastapi==0.110.0
|
||||
h11==0.14.0
|
||||
httptools==0.6.1
|
||||
idna==3.6
|
||||
numpy==1.26.4
|
||||
pyarrow==15.0.0
|
||||
pycodestyle==2.11.1
|
||||
pydantic==2.6.3
|
||||
pydantic_core==2.16.3
|
||||
python-dotenv==1.0.1
|
||||
PyYAML==6.0.1
|
||||
sniffio==1.3.1
|
||||
sqlparse==0.4.4
|
||||
starlette==0.36.3
|
||||
typing_extensions==4.10.0
|
||||
uvicorn==0.27.1
|
||||
uvloop==0.19.0
|
||||
watchfiles==0.21.0
|
||||
websockets==12.0
|
14
tunictracker/tracker/forms.py
Normal file
14
tunictracker/tracker/forms.py
Normal file
@ -0,0 +1,14 @@
|
||||
from django import forms
|
||||
from json import loads
|
||||
|
||||
|
||||
class ServerAddressForm(forms.Form):
|
||||
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_form = forms.URLField(
|
||||
max_length=1312, initial=server_address, empty_value="http://localhost:8000/", label="")
|
||||
server_address_form.widget.attrs["class"] = "w-full text-sm rounded-md border-2 border-bluelight-dark bg-[#242424]/10"
|
@ -1,7 +1,9 @@
|
||||
var current_hash = "";
|
||||
var server_address = "";
|
||||
|
||||
window.onload = () => {
|
||||
fetch("http://localhost:8080/static/tracker/data/holy_cross_codes.json")
|
||||
get_updated_server_address();
|
||||
fetch(`${document.URL}static/tracker/data/holy_cross_codes.json`)
|
||||
.then((response) => response.json())
|
||||
.then(
|
||||
(data) => {
|
||||
@ -19,8 +21,26 @@ window.onload = () => {
|
||||
);
|
||||
};
|
||||
|
||||
async function get_updated_server_address() {
|
||||
fetch(`${document.URL}static/tracker/data/listen_address.json`)
|
||||
.then((response) => response.json())
|
||||
.then(
|
||||
(data) => {
|
||||
server_address_object = JSON.parse(JSON.stringify(data));
|
||||
if (server_address_object.user != "") {
|
||||
server_address = server_address_object.address.user;
|
||||
} else {
|
||||
server_address = server_address_object.address.default;
|
||||
}
|
||||
document.getElementById("id_server_address_form").value =
|
||||
server_address;
|
||||
},
|
||||
(error) => console.log(error)
|
||||
);
|
||||
}
|
||||
|
||||
async function refresh_elements(cross_codes) {
|
||||
fetch("http://localhost:8000/spoiler")
|
||||
fetch(server_address)
|
||||
.then((response) => response.json())
|
||||
.then(
|
||||
(data) => {
|
||||
@ -31,6 +51,7 @@ async function refresh_elements(cross_codes) {
|
||||
return;
|
||||
} else {
|
||||
current_hash = response_object.Debug.Hash;
|
||||
get_updated_server_address();
|
||||
}
|
||||
|
||||
// Parse out data from the back-end into variables.
|
||||
@ -319,7 +340,7 @@ async function refresh_elements(cross_codes) {
|
||||
scene_entrances_undiscovered <= 0
|
||||
) {
|
||||
summary_block.classList.add("hidden");
|
||||
breakdown_block.classList.add("hidden");
|
||||
// breakdown_block.classList.add("hidden");
|
||||
}
|
||||
new_summary_list.firstElementChild.appendChild(
|
||||
summary_block.cloneNode(true)
|
||||
@ -346,6 +367,7 @@ async function refresh_elements(cross_codes) {
|
||||
},
|
||||
(error) => {
|
||||
document.getElementById("status-block").classList.remove("hidden");
|
||||
// get_updated_server_address();
|
||||
return error;
|
||||
}
|
||||
);
|
||||
|
@ -0,0 +1 @@
|
||||
{"address": {"default": "http://localhost:8000/spoiler", "user": "http://localhost:8000/spoiler"}}
|
13
tunictracker/tracker/templates/tracker/address/index.html
Normal file
13
tunictracker/tracker/templates/tracker/address/index.html
Normal file
@ -0,0 +1,13 @@
|
||||
<form action="{% url "set_address" %}"
|
||||
method="post"
|
||||
class="px-2 py-1 flex flex-row space-x-2 rounded-md ring-4 ring-bluelight-dark bg-bluelight-translucent"
|
||||
id="server-address-form">
|
||||
<div class="w-full text-sm rounded-md border-2 border-bluelight-dark bg-[#242424]/10" hidden></div>
|
||||
{% csrf_token %}
|
||||
<label for="address-form-input"
|
||||
class="m-auto text-md justify-center align-top min-w-fit text-md text-nowrap">Server:</label>
|
||||
{% for field in form %}{{ field }}{% endfor %}
|
||||
<input type="submit"
|
||||
value="Submit"
|
||||
class="p-2 m-auto text-sm rounded-md ring-2 ring-bluelight-dark bg-bluelight-translucent" />
|
||||
</form>
|
@ -15,6 +15,7 @@
|
||||
Tunic Transition Tracker
|
||||
</div>
|
||||
<hr class="border-2 border-bluelight-translucent-dark rounded-md" />
|
||||
{% include "tracker/address/index.html" %}
|
||||
{% include "tracker/status/index.html" %}
|
||||
<div class="p-4 flex flex-col max-w-full space-y-4 md:space-y-4 text-md rounded-md ring-4 bg-bluelight-translucent ring-bluelight-dark"
|
||||
id="overview">
|
||||
|
@ -4,4 +4,5 @@ from . import views
|
||||
|
||||
urlpatterns = [
|
||||
path("", views.index, name="index"),
|
||||
path("set/address/", views.set_address, name="set_address"),
|
||||
]
|
@ -1,19 +1,28 @@
|
||||
from django.shortcuts import render
|
||||
from django.http import HttpResponse
|
||||
from django.http import HttpResponse, HttpResponseRedirect
|
||||
from django.template import loader
|
||||
from json import loads
|
||||
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
|
||||
server_address = 'http://localhost:8000/spoiler'
|
||||
|
||||
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).text
|
||||
request_data = requests.get(
|
||||
server_address, timeout=5, verify=True).text
|
||||
except:
|
||||
with open('empty_spoiler.json', 'r') as t:
|
||||
try:
|
||||
@ -52,6 +61,8 @@ def index(request):
|
||||
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,
|
||||
@ -63,6 +74,24 @@ def index(request):
|
||||
"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})
|
||||
|
@ -23,9 +23,12 @@ BASE_DIR = Path(__file__).resolve().parent.parent
|
||||
SECRET_KEY = 'django-insecure-ae-fwu3z$wexeiac4ggt0l@x1*uq5v9-q&$y#frf85xli)bo8f'
|
||||
|
||||
# SECURITY WARNING: don't run with debug turned on in production!
|
||||
DEBUG = True
|
||||
DEBUG = False
|
||||
|
||||
ALLOWED_HOSTS = []
|
||||
ALLOWED_HOSTS = [
|
||||
"localhost",
|
||||
"127.0.0.1"
|
||||
]
|
||||
|
||||
|
||||
# Application definition
|
||||
@ -118,7 +121,13 @@ USE_TZ = True
|
||||
# Static files (CSS, JavaScript, Images)
|
||||
# https://docs.djangoproject.com/en/5.0/howto/static-files/
|
||||
|
||||
STATIC_URL = 'static/'
|
||||
STATIC_URL = '/static/'
|
||||
|
||||
STATIC_ROOT = "tracker/static/"
|
||||
|
||||
STATICFILES_DIRS = [
|
||||
BASE_DIR / "static/"
|
||||
]
|
||||
|
||||
# Default primary key field type
|
||||
# https://docs.djangoproject.com/en/5.0/ref/settings/#default-auto-field
|
||||
|
Loading…
Reference in New Issue
Block a user