From 77b43b30303c25071168536ac905ee30140a69fc Mon Sep 17 00:00:00 2001 From: Flare Starfall Date: Fri, 19 Sep 2025 23:00:54 +0200 Subject: [PATCH] Create phase 1 - web service - db is dummy for now, noop --- .gitignore | 3 +- .vscode/launch.json | 15 +++++++ .vscode/settings.json | 18 ++++++++ app.py | 27 +++++++++++- config-sample.toml | 5 +++ requirements.txt | 3 +- starfall/config.py | 31 ++++++++++--- starfall/db/__init__.py | 3 ++ starfall/log.py | 21 +++++++++ starfall/web/__init__.py | 36 +++++++++++++++ starfall/web/home.py | 8 ++++ web/home.html | 11 +++++ web/index.html | 41 ++++++++++++++++++ web/static/favicon.png | Bin 0 -> 4328 bytes web/static/fonts/exo-2-v26-latin-700.woff2 | Bin 0 -> 17220 bytes .../fonts/exo-2-v26-latin-regular.woff2 | Bin 0 -> 16720 bytes web/static/fonts/overpass-v19-latin-700.woff2 | Bin 0 -> 17524 bytes .../fonts/overpass-v19-latin-regular.woff2 | Bin 0 -> 16976 bytes web/static/style/fonts.css | 35 +++++++++++++++ web/static/style/main.css | 1 + 20 files changed, 249 insertions(+), 9 deletions(-) create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 starfall/db/__init__.py create mode 100644 starfall/log.py create mode 100644 starfall/web/__init__.py create mode 100644 starfall/web/home.py create mode 100644 web/home.html create mode 100644 web/index.html create mode 100755 web/static/favicon.png create mode 100644 web/static/fonts/exo-2-v26-latin-700.woff2 create mode 100644 web/static/fonts/exo-2-v26-latin-regular.woff2 create mode 100644 web/static/fonts/overpass-v19-latin-700.woff2 create mode 100644 web/static/fonts/overpass-v19-latin-regular.woff2 create mode 100644 web/static/style/fonts.css create mode 100644 web/static/style/main.css diff --git a/.gitignore b/.gitignore index b006529..e808aad 100644 --- a/.gitignore +++ b/.gitignore @@ -175,4 +175,5 @@ cython_debug/ #.idea/ # ---> StarfallBot -config.toml \ No newline at end of file +config.toml +web/static/style/*.scss \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..67122e9 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,15 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "configurations": [ + { + "console": "integratedTerminal", + "name": "Python: Current File", + "program": "${workspaceFolder}/app.py", + "request": "launch", + "type": "debugpy" + } + ], + "version": "0.2.0" +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..8084b5b --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,18 @@ +{ + "editor.codeActionsOnSave": { + "source.fixAll.ruff": "always", + "source.organizeImports.ruff": "always", + "source.sort.json": "always" + }, + "python.languageServer": "None", + "scss-to-css-compile.browsers": [ + "ie > 9", + "iOS > 8", + "Android >= 4.4", + "ff > 38", + "Chrome > 38" + ], + "scss-to-css-compile.compileOnSave": false, + "scss-to-css-compile.outDir": "./", + "scss-to-css-compile.output": "compressed" +} \ No newline at end of file diff --git a/app.py b/app.py index 089f7aa..50e8fd7 100644 --- a/app.py +++ b/app.py @@ -1,7 +1,32 @@ +import logging +import os +from threading import Thread + from starfall.config import Config +from starfall.log import Log +from starfall.web import App if __name__ == "__main__": + Log.setup() + try: Config.load() except FileNotFoundError: - pass + dst = Config.create() + logging.getLogger().critical( + msg="\n".join( + [ + "*** Config file was not found ***", + "", + "Sample config.toml file has been created in the project's root directory:", + "[b]" + os.path.realpath("./%s" % dst) + "[/b]", + "Edit it and run the program again.", + ] + ), + extra={"markup": True}, + ) + exit() + + App.__init__() + + threads = [Thread(App.run())] diff --git a/config-sample.toml b/config-sample.toml index 302e007..0c028b9 100644 --- a/config-sample.toml +++ b/config-sample.toml @@ -1,12 +1,17 @@ # == StarfallBot configuration file == [web] +# What IP the web server is bound to. +# Use "localhost" until the bot is production ready. +host = "localhost" # What port the web server uses. port = 5000 # Connection database url. # sqlite is only production safe to a point - consult the SQLAlchemy # documentation to see how to set up other databases. database_url = "sqlite:///starfallbot.db" +# Secret key, used to sign the session cookie. +secret_key = "PRIVATE SECRET KEY CHANGEME" [discord] token = "YOUR BOT TOKEN HERE" diff --git a/requirements.txt b/requirements.txt index df0de29..e6f4e24 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,5 @@ +discord-py-interactions flask flask-sqlalchemy -discord-py-interactions +rich twitchio \ No newline at end of file diff --git a/starfall/config.py b/starfall/config.py index 74e4b5f..2f812c1 100644 --- a/starfall/config.py +++ b/starfall/config.py @@ -1,14 +1,24 @@ import os +from shutil import copy +from typing import Any + import tomllib -from typing import Annotated, Optional class Config: - data: Annotated[Optional[dict], - "Configuration imported from config.toml"] = None + data: dict[str, Any] = dict() + """Configuration imported from config.toml.""" @classmethod - def load(cls): + def create(cls) -> str: + """Copy config-sample.toml file to config.toml. + + Does not alert the user to the modification. + """ + return copy(src="config-sample.toml", dst="config.toml") + + @classmethod + def load(cls) -> None: """Loads the contents of the config.toml file into the class. Raises: @@ -16,14 +26,23 @@ class Config: """ if not cls.file_exists(): raise FileNotFoundError("config.toml does not exist") - with open("config.toml", "r") as f: + with open("config.toml", "rb") as f: cls.data = tomllib.load(f) @classmethod def file_exists(cls) -> bool: """Whether the config.toml file exists or needs to be created. - + Returns: bool: True if path exists and is a file, False otherwise. """ return os.path.exists("config.toml") and os.path.isfile("config.toml") + + @classmethod + def get(cls, key: str, default: Any): + """Get config key, if it exists, or return a default. + + Returns: + Any: Result, or default if key does not exist. + """ + return cls.data.get(key, default) diff --git a/starfall/db/__init__.py b/starfall/db/__init__.py new file mode 100644 index 0000000..2e1eeb6 --- /dev/null +++ b/starfall/db/__init__.py @@ -0,0 +1,3 @@ +from flask_sqlalchemy import SQLAlchemy + +db = SQLAlchemy() \ No newline at end of file diff --git a/starfall/log.py b/starfall/log.py new file mode 100644 index 0000000..02d4d5c --- /dev/null +++ b/starfall/log.py @@ -0,0 +1,21 @@ +import logging + +import werkzeug +from rich.logging import RichHandler + + +class Log: + @classmethod + def setup(cls) -> None: + handler = RichHandler(level=logging.DEBUG, rich_tracebacks=True) + logging.basicConfig( + level=logging.DEBUG, + format="%(message)s", + datefmt="[%Y-%m-%d %H:%M:%S]", + handlers=[handler], + ) + + # NOTE: pyright's reportPrivateUsage is suppressed here. + # We disable ANSI terminal codes from being added to Werkzeug (Flask) logs; + # RichHandler already handles all the fancy color stuff. + werkzeug.serving._log_add_style = False # pyright: ignore[reportPrivateUsage] diff --git a/starfall/web/__init__.py b/starfall/web/__init__.py new file mode 100644 index 0000000..3621aba --- /dev/null +++ b/starfall/web/__init__.py @@ -0,0 +1,36 @@ +import os +from typing import Any + +from flask import Flask + +from starfall.config import Config +from starfall.db import db +from starfall.web.home import home_blueprint + + +class App: + app: Flask = Flask(__name__) + config: dict[str, Any] = dict() # pyright: ignore[reportExplicitAny] + + @classmethod + def __init__(cls): + cls.load_config() + cls.app.config.update( # pyright: ignore[reportUnknownMemberType] + SECRET_KEY=cls.config.get("secret_key"), + SQLALCHEMY_DATABASE_URI=cls.config.get("database_url"), + ) + + cls.app.root_path = os.path.realpath(".") + cls.app.static_folder = os.path.realpath("./web/static") + cls.app.template_folder = "web" + + db.init_app(cls.app) + cls.app.register_blueprint(home_blueprint) + + @classmethod + def load_config(cls): + cls.config = Config.get("web", {}) + + @classmethod + def run(cls): + cls.app.run(host=cls.config.get("host"), port=cls.config.get("port")) diff --git a/starfall/web/home.py b/starfall/web/home.py new file mode 100644 index 0000000..c3a6ff5 --- /dev/null +++ b/starfall/web/home.py @@ -0,0 +1,8 @@ +from flask import Blueprint, render_template + +home_blueprint: Blueprint = Blueprint("main", __name__) + + +@home_blueprint.route("/") +def index(): + return render_template("home.html") diff --git a/web/home.html b/web/home.html new file mode 100644 index 0000000..0dc5321 --- /dev/null +++ b/web/home.html @@ -0,0 +1,11 @@ +{% extends "index.html" %} + +{% block titleSuffix %}Overview{% endblock %} + +{% block body %} + +
+

StarfallBot - Overview

+
+ +{% endblock %} \ No newline at end of file diff --git a/web/index.html b/web/index.html new file mode 100644 index 0000000..c236889 --- /dev/null +++ b/web/index.html @@ -0,0 +1,41 @@ + + + + + + StarfallBot - {% block titleSuffix %}Unassigned{% endblock %} + + + + + + + {% block head %} + {% endblock %} + + + + {% block beforeMain %} + {% endblock %} + +
+ {% block beforeMainContainer %} + {% endblock %} + +
+ {% block body %} + +

No content has been defined for this page.

+ + {% endblock %} +
+ + {% block afterMainContainer %} + {% endblock %} +
+ + {% block afterMain %} + {% endblock %} + + + \ No newline at end of file diff --git a/web/static/favicon.png b/web/static/favicon.png new file mode 100755 index 0000000000000000000000000000000000000000..fee6b126bd09af9f074b34e179e615a2ec3794ef GIT binary patch literal 4328 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 XI;)LEFNX|Po4(1q5BWZs!OQ{xm#tGC literal 0 HcmV?d00001 diff --git a/web/static/fonts/exo-2-v26-latin-regular.woff2 b/web/static/fonts/exo-2-v26-latin-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..bb3b04c9c57d566bd57d3bc1d854f3323e262092 GIT binary patch literal 16720 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 literal 0 HcmV?d00001 diff --git a/web/static/fonts/overpass-v19-latin-700.woff2 b/web/static/fonts/overpass-v19-latin-700.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..08210bff62670babb4b35e8fee18afbd015d075a GIT binary patch literal 17524 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�=Y&zZ^(0Qa4ghMrs%< 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�M4=BIo`nQydZP(PTSlBfC%)o~Zo zv(XN9nFy(o!QuQX`T1EIN=3HQLB7eB;KwB_M5*EY%#Re8GeC=*>6LBb*bwmyqQO(c z%(CcmF+wP`CTG_2g&$cY5xj6xa3?TX{5_1rZ{bDq9V81EKfQ}QY7|z}`i%bnU78dy Pv{9Qzo$v6E8q2Iy1yHV^ literal 0 HcmV?d00001 diff --git a/web/static/fonts/overpass-v19-latin-regular.woff2 b/web/static/fonts/overpass-v19-latin-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..707ebe73d4ecbaa4dd2c876d3777cbe3ecda70b6 GIT binary patch literal 16976 zcmV(@K-Rx^Pew8T0RR91076gz5C8xG0I19W072{k0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/web/static/style/fonts.css b/web/static/style/fonts.css new file mode 100644 index 0000000..77b8f7c --- /dev/null +++ b/web/static/style/fonts.css @@ -0,0 +1,35 @@ +/* exo-2-regular - latin */ +@font-face { + font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ + font-family: 'Exo 2'; + font-style: normal; + font-weight: 400; + src: url('../fonts/exo-2-v26-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */ +} + +/* exo-2-700 - latin */ +@font-face { + font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ + font-family: 'Exo 2'; + font-style: normal; + font-weight: 700; + src: url('../fonts/exo-2-v26-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */ +} + +/* overpass-regular - latin */ +@font-face { + font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ + font-family: 'Overpass'; + font-style: normal; + font-weight: 400; + src: url('../fonts/overpass-v19-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */ +} + +/* overpass-700 - latin */ +@font-face { + font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ + font-family: 'Overpass'; + font-style: normal; + font-weight: 700; + src: url('../fonts/overpass-v19-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */ +} diff --git a/web/static/style/main.css b/web/static/style/main.css new file mode 100644 index 0000000..0c435ad --- /dev/null +++ b/web/static/style/main.css @@ -0,0 +1 @@ +body{position:relative;min-height:100%;color:#000;background-image:linear-gradient(to bottom, #205080, #4070a0);background-repeat:no-repeat;background-attachment:fixed;font-family:"Overpass",sans-serif;font-size:18px}main{height:100%;display:flex;justify-content:center}main>.container{width:100%;height:100%;max-width:1400px;padding:8px;background:#001030;border-radius:16px;color:#fff}main .flex{display:flex;flex-flow:row wrap}main .flex.center{justify-content:center}h1{font-family:"Exo 2",sans-serif;font-size:4rem;font-weight:bold;padding:0;margin:0}h2{font-family:"Exo 2",sans-serif;font-size:2rem;font-weight:bold;padding:0;margin:0}h3{font-family:"Exo 2",sans-serif;font-size:1.5rem;font-weight:bold;padding:0;margin:0}h4{font-family:"Exo 2",sans-serif;font-size:1rem;font-weight:bold;padding:0;margin:0}h5{font-family:"Exo 2",sans-serif;font-size:.875rem;font-weight:bold;padding:0;margin:0}h6{font-family:"Exo 2",sans-serif;font-size:.75rem;font-weight:bold;padding:0;margin:0} \ No newline at end of file