summaryrefslogtreecommitdiff
path: root/templates/import.html
diff options
context:
space:
mode:
authorTyler Hoang <tyler@tylerhoang.xyz>2026-05-06 12:21:26 -0700
committerTyler Hoang <tyler@tylerhoang.xyz>2026-05-06 12:21:26 -0700
commite708bec6cd76c2686de4158dde4d04f72a3c300d (patch)
tree04b0bc4738e090dd7834d47478c7e652da010f92 /templates/import.html
init: lumiere film diary
Diffstat (limited to 'templates/import.html')
-rw-r--r--templates/import.html108
1 files changed, 108 insertions, 0 deletions
diff --git a/templates/import.html b/templates/import.html
new file mode 100644
index 0000000..50c27d6
--- /dev/null
+++ b/templates/import.html
@@ -0,0 +1,108 @@
+{% extends "base.html" %}
+
+{% block title %}Import · Lumière{% endblock %}
+
+{% block content %}
+ <section class="form-shell narrow">
+ <div class="form-heading">
+ <p class="eyebrow">Letterboxd</p>
+ <h1>Import diary CSV</h1>
+ </div>
+
+ {% if error %}
+ <div class="notice error">{{ error }}</div>
+ {% endif %}
+
+ <form class="film-form" method="post" action="/import/letterboxd" enctype="multipart/form-data">
+ <div class="field">
+ <label for="file">CSV export</label>
+ <input id="file" name="file" type="file" accept=".csv,text/csv" required>
+ </div>
+
+ <div class="form-actions">
+ <a href="/">Cancel</a>
+ <button type="submit">Import entries</button>
+ </div>
+ </form>
+ </section>
+
+ <section class="form-shell narrow data-tools">
+ <div class="form-heading compact-heading">
+ <p class="eyebrow">Queue</p>
+ <h1>Import watchlist CSV</h1>
+ </div>
+
+ <form class="film-form" method="post" action="/import/watchlist" enctype="multipart/form-data">
+ <div class="field">
+ <label for="watchlist-file">Watchlist CSV</label>
+ <input id="watchlist-file" name="file" type="file" accept=".csv,text/csv" required>
+ </div>
+
+ <div class="form-actions">
+ <a href="/queue">Cancel</a>
+ <button type="submit">Import to queue</button>
+ </div>
+ </form>
+ </section>
+
+ <section class="form-shell narrow data-tools">
+ <div class="form-heading compact-heading">
+ <p class="eyebrow">TMDB</p>
+ <h1>Fetch missing posters</h1>
+ </div>
+
+ <p class="muted">
+ Match imported films against TMDB and fill blank posters plus missing metadata.
+ </p>
+
+ <form class="film-form" method="post" action="/data/enrich-posters">
+ <div class="form-actions">
+ <button type="submit">Fetch missing posters</button>
+ </div>
+ </form>
+ </section>
+
+ <section class="form-shell narrow data-tools">
+ <div class="form-heading compact-heading">
+ <p class="eyebrow">Data</p>
+ <h1>Clear duplicates</h1>
+ </div>
+
+ <p class="muted">
+ Remove repeated imports that match the same film and watched date, keeping the oldest entry.
+ </p>
+
+ <form
+ class="film-form"
+ method="post"
+ action="/data/clear-duplicates"
+ data-confirm="Remove duplicate film entries? Lumière will keep the oldest entry for each film/date."
+ >
+ <div class="form-actions">
+ <button type="submit">Clear duplicates</button>
+ </div>
+ </form>
+ </section>
+
+ <section class="form-shell narrow danger-zone">
+ <div class="form-heading compact-heading">
+ <p class="eyebrow">Data</p>
+ <h1>Clear diary</h1>
+ </div>
+
+ <p class="muted">
+ Remove every film entry from Lumière and reset the local database counter.
+ </p>
+
+ <form
+ class="film-form"
+ method="post"
+ action="/data/clear"
+ data-confirm="Clear all Lumière film data? This cannot be undone."
+ >
+ <div class="form-actions">
+ <button class="danger-button" type="submit">Clear all data</button>
+ </div>
+ </form>
+ </section>
+{% endblock %}