From 1bdf4ca8c0f51718124ffe5247ac133973d4f251 Mon Sep 17 00:00:00 2001 From: Tyler Hoang Date: Wed, 6 May 2026 15:25:36 -0700 Subject: Add authentication, public profile, and infinite scroll MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- templates/profile.html | 124 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 templates/profile.html (limited to 'templates/profile.html') diff --git a/templates/profile.html b/templates/profile.html new file mode 100644 index 0000000..9fac27f --- /dev/null +++ b/templates/profile.html @@ -0,0 +1,124 @@ + + + + + + Tyler's Film Diary - Lumière + + + +
+
+ Lumière + +
+ +
+
+ +
+

Tyler's Film Diary

+

A curated collection of films watched and loved

+ + +
+
+
{{ total_watched }}
+
Films Watched
+
+
+
{% for _ in range(average_stars|int) %}✦{% endfor %} {{ average_stars }}
+
Average Rating
+
+
+
+ + + {% if most_watched_directors %} +
+

Top Directors

+
+ {% for item in most_watched_directors %} +
+ {{ item.director }} + {{ item.count }} film{{ 's' if item.count > 1 else '' }} +
+ {% endfor %} +
+
+ {% endif %} + + +
+

Rating Distribution

+
+ {% for item in star_distribution %} +
+
+ + {% if item.stars == 0 %}No rating{% elif item.stars == 1 %}{% elif item.stars == 2 %}✦✦{% elif item.stars == 3 %}✦✦✦{% endif %} + + {{ item.count }} +
+
+ {% if total_watched > 0 %} +
+ {% endif %} +
+
+ {% endfor %} +
+
+ + + {% if films_per_country %} +
+

Top Countries

+
+ {% for item in films_per_country %} +
+
{{ item.count }}
+
{{ item.country }}
+
+ {% endfor %} +
+
+ {% endif %} + + + {% if recent_films %} +
+

Recently Watched

+
+ {% for film in recent_films %} +
+ {% if film.poster_url %} + {{ film.title }} + {% else %} +
No poster
+ {% endif %} +

{{ film.title }}

+ {% if film.stars %} +
+ {% for i in range(film.stars) %}✦{% endfor %} +
+ {% endif %} + {% if film.date_watched %} +
{{ film.date_watched[:10] }}
+ {% endif %} +
+ {% endfor %} +
+
+ {% endif %} +
+
+ + +
+ + -- cgit v1.3-2-g0d8e