base game code; there's no game here (yet)

This commit is contained in:
2023-01-28 21:08:47 -08:00
parent 0cd9cc5fb7
commit 07b56dcd40
11 changed files with 232 additions and 0 deletions

22
app/index.wsgi Normal file
View File

@@ -0,0 +1,22 @@
#!/usr/bin/env python
import gevent.monkey
gevent.monkey.patch_all()
import logging
import flask
from gevent.pywsgi import WSGIServer
from pylocal import core
@core.app.route("/")
def index():
if not core.base_context_live:
core.render_base_context()
return flask.render_template("main_page.j2", **core.base_context)
if __name__ == "__main__":
#core.app.run("0.0.0.0", 1337)
http_server = WSGIServer(('', 80), core.app, log=logging.getLogger(name="gevent"))
http_server.serve_forever()

29
app/pylocal/core.py Normal file
View File

@@ -0,0 +1,29 @@
import flask
app = flask.Flask("seagull-game", root_path="/app")
base_context = {}
base_context_live = False
def render_base_context():
global base_context
global base_context_live
print(flask.request.host)
domain_components = flask.request.host.split(".")
base_domain = ".".join(domain_components[-2:])
# all this wind up for...
if base_domain == "otl-hga.net": # production, use assets from S3
base_context["styles"] = ["https://cdn.otl-hga.net/seagull/css/seagull.css"]
base_context["scripts"] = ["https://cdn.otl-hga.net/seagull/js/seagull.js"]
base_context["seagull_pic"] = "https://cdn.otl-hga.net/seagull/image/seagull.jpg"
else: # dev, serve files from here
base_context["styles"] = [flask.url_for("static", filename="css/seagull.css")]
base_context["scripts"] = [flask.url_for("static", filename="js/seagull.js")]
base_context["seagull_pic"] = flask.url_for("static", filename="image/seagull.jpg")
base_context_live = True

2
app/requirements.txt Normal file
View File

@@ -0,0 +1,2 @@
Flask==2.2.2
gevent==22.10.2

View File

@@ -0,0 +1,39 @@
<!DOCTYPE html>
<html>
<head>
<title>Seagull Game</title>
{%- for style in styles -%}
<link rel="stylesheet" href="{{ style }}">
{%- endfor -%}
{%- for script in scripts -%}
<script src="{{ script }}"></script>
{%- endfor -%}
</head>
<body>
<noscript>
<h1>This doesn't work without JavaScript.</h1><br />
<h2>You're probably using a browser extension or privacy tool that disables it.</h2>
</noscript>
<div id="root">
<div id="main-sidebar">
<div id="side-seagull-image"> <img width="256" src={{ seagull_pic }}> </div>
<div id="side-seagull-name"><span id="lbl-seagull-name">Nameless</span> <a href="javascript:change_seagull_name()">✏️</a></div>
<div id="side-seagull-name-editor"><input type="text" id="edt-seagull-name"> <a href="javascript:confirm_seagull_name()">✅</a><a href="javascript:cancel_seagull_name()">❌</a></div>
<div id="side-seagull-stats">
<p id="side-seagull-lvl">Lv 1 LoadError</p>
<p id="side-seagull-misc">
Colony: 1337<br />
Shinies: 420<br />
</p>
</div>
</div>
<div id="main-content">
<div id="main-day-stats">It has been <span id="main-day-counter">a cosmically unknowable number of</span> days.</div>
<div id="main-log"></div>
</div>
</div>
</body>
</html>