Initial commit — Movie Night media discovery app
AI-powered web app that recommends unwatched movies from a Jellyfin library based on natural language mood input. Jellyfin auth, modular LLM backend (Claude/OpenAI/Ollama), two-tier pre-filter + AI ranking, mobile-responsive dark theme UI with poster cards and deep links. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class Movie(BaseModel):
|
||||
jellyfin_id: str
|
||||
title: str
|
||||
sort_title: str | None = None
|
||||
year: int | None = None
|
||||
genres: list[str] = []
|
||||
overview: str | None = None
|
||||
community_rating: float | None = None
|
||||
critic_rating: float | None = None
|
||||
runtime_minutes: int | None = None
|
||||
content_rating: str | None = None
|
||||
studios: list[str] = []
|
||||
people: list[dict] = []
|
||||
tags: list[str] = []
|
||||
|
||||
|
||||
class MoodRequest(BaseModel):
|
||||
mood: str
|
||||
additional_user_ids: list[str] = []
|
||||
|
||||
|
||||
class Recommendation(BaseModel):
|
||||
jellyfin_id: str
|
||||
title: str
|
||||
year: int | None = None
|
||||
genres: list[str] = []
|
||||
community_rating: float | None = None
|
||||
runtime_minutes: int | None = None
|
||||
content_rating: str | None = None
|
||||
poster_url: str
|
||||
deep_link: str
|
||||
reasoning: str
|
||||
match_score: float
|
||||
|
||||
|
||||
class MoodResponse(BaseModel):
|
||||
recommendations: list[Recommendation]
|
||||
meta: dict
|
||||
|
||||
|
||||
class LoginRequest(BaseModel):
|
||||
username: str
|
||||
password: str
|
||||
|
||||
|
||||
class UserInfo(BaseModel):
|
||||
id: str
|
||||
name: str
|
||||
Reference in New Issue
Block a user