update
This commit is contained in:
@@ -12,40 +12,29 @@ import json
|
||||
import sqlite3
|
||||
from datetime import datetime, timezone
|
||||
|
||||
from . import users
|
||||
from .db import connect
|
||||
from .users import besitzer, gehoert_mir
|
||||
from .users import WEM, besitzer, gehoert_mir
|
||||
|
||||
SCHEMA = """
|
||||
CREATE TABLE IF NOT EXISTS wishlist (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
session_id TEXT NOT NULL,
|
||||
user_id INTEGER,
|
||||
movie_id INTEGER NOT NULL,
|
||||
title TEXT NOT NULL,
|
||||
year INTEGER,
|
||||
poster_path TEXT,
|
||||
created_at TEXT NOT NULL,
|
||||
UNIQUE (session_id, movie_id)
|
||||
created_at TEXT NOT NULL
|
||||
);
|
||||
"""
|
||||
|
||||
|
||||
def _spalte_user_id(conn, tabelle):
|
||||
"""Nachrüsten und aus der Sitzung füllen — einmalig je Datenbank."""
|
||||
spalten = {r[1] for r in conn.execute(f"PRAGMA table_info({tabelle})")}
|
||||
if "user_id" in spalten:
|
||||
return
|
||||
conn.execute(f"ALTER TABLE {tabelle} ADD COLUMN user_id INTEGER")
|
||||
conn.execute(
|
||||
f"UPDATE {tabelle} SET user_id = ("
|
||||
" SELECT user_id FROM user_sessions s WHERE s.session_id = "
|
||||
f" {tabelle}.session_id)"
|
||||
)
|
||||
|
||||
|
||||
def init():
|
||||
with connect() as conn:
|
||||
conn.executescript(SCHEMA)
|
||||
_spalte_user_id(conn, "wishlist")
|
||||
# Jeder Film einmal je Person
|
||||
users.je_person(conn, "wishlist", SCHEMA, "movie_id")
|
||||
|
||||
|
||||
def alle(session_id):
|
||||
@@ -55,8 +44,7 @@ def alle(session_id):
|
||||
# Genres kommen aus dem Katalog. Ein Film, der nie darin stand,
|
||||
# hat keine — das Rad behandelt ihn dann als "nicht Horror".
|
||||
"SELECT w.*, u.name, m.genres FROM wishlist w "
|
||||
"LEFT JOIN user_sessions s ON s.session_id = w.session_id "
|
||||
"LEFT JOIN users u ON u.id = s.user_id "
|
||||
"LEFT JOIN users u ON u.id = w.user_id "
|
||||
"LEFT JOIN movies m ON m.id = w.movie_id "
|
||||
"ORDER BY w.created_at DESC"
|
||||
).fetchall()
|
||||
@@ -98,10 +86,6 @@ def merken(session_id, movie):
|
||||
return alle(session_id)
|
||||
|
||||
|
||||
# Mit Namen zählt der Name, ohne Namen die Sitzung
|
||||
WEM = "(user_id = ? OR (? IS NULL AND user_id IS NULL AND session_id = ?))"
|
||||
|
||||
|
||||
def vergessen(session_id, movie_id):
|
||||
ich = besitzer(session_id)
|
||||
with connect() as conn:
|
||||
|
||||
Reference in New Issue
Block a user