summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-05-07Add rewatch patterns stats panelTyler Hoang
Adds a "Rewatches" section to /stats that displays films you've watched multiple times, grouped by title. For each rewatched film, shows: - Watch count (e.g., "3×") - Rating history (e.g., ✦ → ✦✦ → ✦) with accent highlight when ratings drift - Days between first and last watch Changes: - routers/stats.py: Group films by title in _build_stats_payload, compute rewatch details (ratings, days between, rating change flag), add rewatch_patterns key - templates/stats.html: Add "Rewatches" panel HTML and JS renderer (renderLists) Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06minor fixTyler Hoang
2026-05-06Add /about page with rating system explanationTyler Hoang
Introduces a public-facing /about page that explains the 1-3 star rating rubric with real examples pulled from the diary. Each star tier displays 3 randomly-selected, unique films (deduplicated by title to avoid rewatch duplicates). Changes: - New routers/about.py: GET /about queries films by stars, dedupes, randomizes - New templates/about.html: Page with eyebrow, h1, three tier sections with example film cards, closing philosophy, and View Profile button - main.py: Import about router, register it, add /about to public_paths in AuthMiddleware - templates/base.html: Add About nav link after Stats - templates/profile.html: Add About link to /tyler nav - templates/login.html: Add About and View Profile buttons in footer, plus "Made with Lumière" repo link Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06Add genre tracking and year-in-review improvementsTyler Hoang
Adds genre field to Film model with TMDB enrichment. Genres populate from TMDB detail fetch during add/edit and bulk enrichment. Genre metadata displays on film cards, detail page (Production section), stats page (top genres panel), and year-in-review (by decade and genre breakdowns). Auto-detects rewatches when adding films via TMDB autocomplete - if a film with the same TMDB ID already exists in diary, pre-fills rewatch checkbox and count. Rewatch count now displays on film cards as "Rewatch #N". Stats page now shows: - Top genres (most watched) - Film decades (sorted chronologically) - Already shows: directors, companions, star distribution, rewatch rate Year-in-review shows decades and genres alongside monthly activity and companions. Bulk enrichment endpoint (/data/enrich-posters) now fetches missing genre metadata along with posters and TMDB IDs. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06Add TMDB poster picker to film detail pageTyler Hoang
- New movie_images() async function in services/tmdb.py fetches poster URLs from TMDB /movie/{id}/images endpoint, filtering for English and no-text posters only - New GET /tmdb/posters endpoint returns list of available posters for a TMDB ID - New POST /films/{film_id}/poster endpoint to save selected poster (mirrors the stars endpoint pattern) - Add "Change Poster" button on detail page (only shown if film has a TMDB ID) that opens a 3-column grid of posters - Selected poster gets accent border, main image updates instantly, no page reload needed - Posters are cached per load to avoid refetching on re-open Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06Add search, filter, and sort functionality to film shelvesTyler Hoang
- Add _SORT_COLUMNS dict to routers/films.py with 8 sort options - Extend _get_shelf_query to accept q (search) and sort parameters - Update /films/partial endpoint to accept q/sort query params and pass search_active to template to suppress month grouping when searching - Add filter bar (search input + sort select) to templates/index.html - Add data-shelf attribute to #film-feed for JS to read current shelf - Rewrite infinite scroll JS to support debounced search (300ms), feed reset on filter/sort change, and pass params on all fetches Filters text search by title OR director (case-insensitive ilike). Sort options: date watched (newest/oldest), title (A-Z/Z-A), year, stars. Month grouping disabled when search is active. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06Hide solo from watched with stats listTyler Hoang
Filter out 'solo' entries from the watched_with_breakdown on the stats page so only companions are shown. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06Fix mobile responsive issues on stats pageTyler Hoang
Scale down heatmap cells and gaps on mobile (8px cells, 2px gaps instead of 13px/4px). Reduce stats bar row label width from 64px to 40px. Make stats list single column on mobile to improve spacing. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06Hide hamburger menu on desktopTyler Hoang
Set menu-toggle to display: none by default so it only appears on mobile (max-width: 760px) where it's explicitly shown. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06Fix mobile menu visibility issueTyler Hoang
Use visibility and opacity instead of max-height/overflow to completely hide the mobile menu when closed. Prevents elements from peeking out. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06Add hamburger menu for mobile navigationTyler Hoang
Hide nav-actions on mobile (<= 760px) and show a hamburger menu button instead. Menu opens/closes on click and closes when a link is clicked or when clicking outside. Hamburger icon created with CSS pseudo-elements. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06Make All Films tab public on profile pageTyler Hoang
Add /films/partial to public paths so unauthenticated users can load all films on /tyler public profile. The All Films tab now works without requiring login. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06Fix director biography fetchingTyler Hoang
- Use person details endpoint instead of search to get full biography - Search endpoint only returns truncated/partial biography - Now correctly fetches complete biography from TMDB Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06Add director image and biography to director pageTyler Hoang
- Fetch director profile image and biography from TMDB API - Display image next to director name with lazy loading - Show biography below director name - Gracefully handle missing data (image/biography optional) Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06Add tabs to public profile: Overview and All FilmsTyler Hoang
- Add tab navigation for switching between overview stats and full filmography - All Films tab loads diary entries with infinite scroll - Lazy load films only when tab is selected Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06Increase brand font size from 1.55rem to 1.8remTyler Hoang
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06Add favicon to LumièreTyler Hoang
- Create gold cinema-themed SVG favicon - Add to base.html and profile.html templates Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06reset restTyler Hoang
2026-05-06testTyler Hoang
2026-05-06Add authentication, public profile, and infinite scrollTyler Hoang
- Implement session-based auth with argon2 password hashing - Add login form and logout button in nav - Create public /tyler profile page with curated stats - Implement infinite scroll for film lists (load 20 at a time) - Add lazy loading for poster images - Fix profile page CSS to use dark theme variables - Use consistent star character (✦) across all pages - Add /films/partial endpoint for pagination Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06fixed star behavior and claude initTyler Hoang
2026-05-06Add year review and inline diary ratingsTyler Hoang
2026-05-06init: lumiere film diaryTyler Hoang