This commit is contained in:
team3
2026-09-29 00:54:58 +02:00
parent f7c9017946
commit f80b8c5826
20 changed files with 997 additions and 77 deletions

View File

@@ -32,6 +32,17 @@ CREATE TABLE IF NOT EXISTS suggestions (
);
"""
# Wer am Abend da ist, aber nichts vorschlagen will. Zusammen mit den
# Vorschlagenden ergibt das die Anwesenheit — die zählt beim Dreh.
DABEI = """
CREATE TABLE IF NOT EXISTS dabei (
id INTEGER PRIMARY KEY AUTOINCREMENT,
session_id TEXT NOT NULL,
user_id INTEGER,
created_at TEXT NOT NULL
);
"""
COOKIE = "filmabend_sid"
# So lange läuft die Animation im Browser. Der Server merkt sich das
@@ -54,9 +65,10 @@ BRUCH_ANTEIL = 0.5
def init():
with connect() as conn:
conn.executescript(SCHEMA)
conn.executescript(SCHEMA + DABEI)
# Ein Vorschlag je Person
users.je_person(conn, "suggestions", SCHEMA)
users.je_person(conn, "dabei", DABEI)
def neue_session():
@@ -196,4 +208,40 @@ def loeschen(session_id):
def alles_loeschen():
"""Host setzt die Runde zurück."""
with connect() as conn:
conn.execute("DELETE FROM dabei")
return conn.execute("DELETE FROM suggestions").rowcount
def dabei_umschalten(session_id):
"""Dabei ohne Vorschlag — der zweite Klick nimmt es zurück.
Gibt zurück, ob es jetzt gesetzt ist."""
ich = besitzer(session_id)
with connect() as conn:
weg = conn.execute(
f"DELETE FROM dabei WHERE {WEM}", (ich, ich, session_id)
).rowcount
if weg:
return False
conn.execute(
"INSERT INTO dabei (session_id, user_id, created_at) VALUES (?, ?, ?)",
(session_id, ich, datetime.now(timezone.utc).isoformat(timespec="seconds")),
)
return True
def dabei_alle():
"""Wer sich ohne Vorschlag eingetragen hat — Namen und Kennungen."""
with connect() as conn:
rows = conn.execute(
"SELECT d.*, u.name FROM dabei d LEFT JOIN users u ON u.id = d.user_id "
"ORDER BY d.created_at ASC"
).fetchall()
return [dict(r) for r in rows]
def teilnehmer():
"""user_ids aller Anwesenden: Vorschlagende und Eingetragene."""
with connect() as conn:
ids = {r["user_id"] for r in conn.execute("SELECT user_id FROM suggestions")}
ids |= {r["user_id"] for r in conn.execute("SELECT user_id FROM dabei")}
return sorted(i for i in ids if i is not None)