Compare commits
2
Commits
722e9ccbd3
...
e0c1d34e4a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e0c1d34e4a | ||
|
|
f1325f31e0 |
No files matched your search
@@ -15,7 +15,7 @@ dev:
|
|||||||
$(PY) -m pip install -r requirements-dev.txt
|
$(PY) -m pip install -r requirements-dev.txt
|
||||||
|
|
||||||
run:
|
run:
|
||||||
$(PY) -m battleflow.cli --host $(HOST) --port $(PORT) --token $(TOKEN) $(if $(DATA),--data-dir $(DATA),)
|
$(PY) -m encounterflow.cli --host $(HOST) --port $(PORT) --token $(TOKEN) $(if $(DATA),--data-dir $(DATA),)
|
||||||
|
|
||||||
test:
|
test:
|
||||||
pytest -q
|
pytest -q
|
||||||
|
|||||||
@@ -5,16 +5,16 @@ Refactored project layout (same features, cleaner code).
|
|||||||
## Install & Run
|
## Install & Run
|
||||||
```bash
|
```bash
|
||||||
pip install -e .
|
pip install -e .
|
||||||
battleflow --host 0.0.0.0 --port 5050 --token YOURSECRET
|
encounterflow --host 0.0.0.0 --port 5050 --token YOURSECRET
|
||||||
```
|
```
|
||||||
Open:
|
Open:
|
||||||
- Admin: `http://HOST:PORT/admin?token=YOURSECRET`
|
- Admin: `http://HOST:PORT/admin?token=YOURSECRET`
|
||||||
- Board: `http://HOST:PORT/board?token=YOURSECRET`
|
- Board: `http://HOST:PORT/board?token=YOURSECRET`
|
||||||
|
|
||||||
## Data directories
|
## Data directories
|
||||||
Default data folder is `battleflow_data/`. If an older `initrack_data/` exists and `battleflow_data/` isn't present, it will be reused automatically (migration-by-reuse).
|
Default data folder is `encounterflow_data/`. If an older `initrack_data/` exists and `encounterflow_data/` isn't present, it will be reused automatically (migration-by-reuse).
|
||||||
```
|
```
|
||||||
battleflow_data/
|
encounterflow_data/
|
||||||
avatars/
|
avatars/
|
||||||
icons/
|
icons/
|
||||||
state.json
|
state.json
|
||||||
|
|||||||
File renamed without changes.
@@ -5,11 +5,11 @@ from .storage import ensure_default_icons, load_state
|
|||||||
from .state import STATE
|
from .state import STATE
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
parser = argparse.ArgumentParser(prog="battleflow")
|
parser = argparse.ArgumentParser(prog="encounterflow")
|
||||||
parser.add_argument('--host', default='127.0.0.1')
|
parser.add_argument('--host', default='127.0.0.1')
|
||||||
parser.add_argument('--port', type=int, default=5050)
|
parser.add_argument('--port', type=int, default=5050)
|
||||||
parser.add_argument('--token', default=os.environ.get('BATTLEFLOW_TOKEN','changeme'))
|
parser.add_argument('--token', default=os.environ.get('ENCOUNTERFLOW_TOKEN','changeme'))
|
||||||
parser.add_argument('--data-dir', default=os.environ.get('BATTLEFLOW_DATA_DIR'))
|
parser.add_argument('--data-dir', default=os.environ.get('ENCOUNTERFLOW_DATA_DIR'))
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
app = create_app(token=args.token, data_dir=args.data_dir)
|
app = create_app(token=args.token, data_dir=args.data_dir)
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
# battleflow/config.py
|
# encounterflow/config.py
|
||||||
import os
|
import os
|
||||||
|
|
||||||
DEFAULT_DATA_DIR = os.path.join(os.getcwd(), "battleflow_data")
|
DEFAULT_DATA_DIR = os.path.join(os.getcwd(), "encounterflow_data")
|
||||||
|
|
||||||
def load_config(app, **overrides):
|
def load_config(app, **overrides):
|
||||||
app.config.setdefault("SECRET_KEY", os.environ.get("SECRET_KEY", "dev-secret"))
|
app.config.setdefault("SECRET_KEY", os.environ.get("SECRET_KEY", "dev-secret"))
|
||||||
app.config.setdefault(
|
app.config.setdefault(
|
||||||
"COMBAT_TOKEN",
|
"COMBAT_TOKEN",
|
||||||
overrides.get("token") or os.environ.get("BATTLEFLOW_TOKEN", "changeme")
|
overrides.get("token") or os.environ.get("ENCOUNTERFLOW_TOKEN", "changeme")
|
||||||
)
|
)
|
||||||
|
|
||||||
# Kies data-dir: override/env > default. Migreer legacy 'initrack_data' → 'battleflow_data' indien nodig.
|
# Kies data-dir: override/env > default. Migreer legacy 'initrack_data' → 'encounterflow_data' indien nodig.
|
||||||
data_dir = overrides.get("data_dir") or os.environ.get("BATTLEFLOW_DATA_DIR")
|
data_dir = overrides.get("data_dir") or os.environ.get("ENCOUNTERFLOW_DATA_DIR")
|
||||||
if not data_dir:
|
if not data_dir:
|
||||||
default_new = DEFAULT_DATA_DIR
|
default_new = DEFAULT_DATA_DIR
|
||||||
legacy = os.path.join(os.getcwd(), "initrack_data")
|
legacy = os.path.join(os.getcwd(), "initrack_data")
|
||||||
@@ -32,7 +32,7 @@ def load_config(app, **overrides):
|
|||||||
os.makedirs(app.config["ICON_DIR"], exist_ok=True)
|
os.makedirs(app.config["ICON_DIR"], exist_ok=True)
|
||||||
|
|
||||||
# Branding
|
# Branding
|
||||||
app.config.setdefault("PRODUCT_NAME", "Battleflow")
|
app.config.setdefault("PRODUCT_NAME", "EncounterFlow")
|
||||||
app.config.setdefault("PRODUCT_SUBTITLE", "by Aetryos Workshop")
|
app.config.setdefault("PRODUCT_SUBTITLE", "by Aetryos Workshop")
|
||||||
|
|
||||||
return app
|
return app
|
||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+3
-3
@@ -3,9 +3,9 @@ requires = ["setuptools>=68", "wheel"]
|
|||||||
build-backend = "setuptools.build_meta"
|
build-backend = "setuptools.build_meta"
|
||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "battleflow"
|
name = "encounterflow"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
description = "Battleflow — OBS-friendly initiative board for tabletop encounters"
|
description = "EncounterFlow"
|
||||||
authors = [{name="Aetryos Workshop"}]
|
authors = [{name="Aetryos Workshop"}]
|
||||||
requires-python = ">=3.9"
|
requires-python = ">=3.9"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
@@ -14,4 +14,4 @@ dependencies = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
[project.scripts]
|
[project.scripts]
|
||||||
battleflow = "battleflow.cli:main"
|
encounterflow = "encounterflow.cli:main"
|
||||||
@@ -9,7 +9,7 @@ def install(c):
|
|||||||
@task
|
@task
|
||||||
def run(c, host="0.0.0.0", port=5050, token="changeme", data_dir=""):
|
def run(c, host="0.0.0.0", port=5050, token="changeme", data_dir=""):
|
||||||
extra = f"--data-dir {data_dir}" if data_dir else ""
|
extra = f"--data-dir {data_dir}" if data_dir else ""
|
||||||
c.run(f"python -m battleflow.cli --host {host} --port {port} --token {token} {extra}")
|
c.run(f"python -m encounterflow.cli --host {host} --port {port} --token {token} {extra}")
|
||||||
|
|
||||||
@task
|
@task
|
||||||
def seed_icons(c, host="127.0.0.1", port=5050, token="changeme"):
|
def seed_icons(c, host="127.0.0.1", port=5050, token="changeme"):
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import os, json, tempfile, shutil
|
import os, json, tempfile, shutil
|
||||||
import pytest
|
import pytest
|
||||||
from battleflow import create_app
|
from encounterflow import create_app
|
||||||
from battleflow.state import STATE
|
from encounterflow.state import STATE
|
||||||
from battleflow.storage import ensure_default_icons, load_state
|
from encounterflow.storage import ensure_default_icons, load_state
|
||||||
|
|
||||||
TOKEN = "testtoken"
|
TOKEN = "testtoken"
|
||||||
|
|
||||||
@@ -11,8 +11,8 @@ def isolated_data(tmp_path, monkeypatch):
|
|||||||
# fresh state for each test
|
# fresh state for each test
|
||||||
data_dir = tmp_path / "bfdata"
|
data_dir = tmp_path / "bfdata"
|
||||||
data_dir.mkdir()
|
data_dir.mkdir()
|
||||||
monkeypatch.setenv("BATTLEFLOW_DATA_DIR", str(data_dir))
|
monkeypatch.setenv("ENCOUNTERFLOW_DATA_DIR", str(data_dir))
|
||||||
monkeypatch.setenv("BATTLEFLOW_TOKEN", TOKEN)
|
monkeypatch.setenv("ENCOUNTERFLOW_TOKEN", TOKEN)
|
||||||
# reset STATE
|
# reset STATE
|
||||||
STATE.actors.clear(); STATE.turn_idx=0; STATE.round=1; STATE.visible=True; STATE.dead_mode='normal'
|
STATE.actors.clear(); STATE.turn_idx=0; STATE.round=1; STATE.visible=True; STATE.dead_mode='normal'
|
||||||
app = create_app()
|
app = create_app()
|
||||||
|
|||||||
Reference in new issue
Block a user