savetv_web: Neueste Filme zuerst, Aufnahmedatum anzeigen

This commit is contained in:
Homelab Cursor 2026-03-27 14:15:56 +01:00
parent 50df9e955c
commit 9f60a9e292

View file

@ -575,11 +575,18 @@ function filmCard(f) {
var detailsHtml = cached ? buildDetails(cached) : ''; var detailsHtml = cached ? buildDetails(cached) : '';
var detailsClass = detailsHtml ? 'film-details loaded' : 'film-details'; var detailsClass = detailsHtml ? 'film-details loaded' : 'film-details';
var dateLabel = '';
if (f.start_date) {
var d = new Date(f.start_date);
if (!isNaN(d)) dateLabel = d.toLocaleDateString('de-DE', {day:'2-digit', month:'2-digit', year:'numeric'});
}
return '<div class="' + cardClass + '" onclick="toggleFilm(' + f.tid + ')" data-tid="' + f.tid + '">' return '<div class="' + cardClass + '" onclick="toggleFilm(' + f.tid + ')" data-tid="' + f.tid + '">'
+ statusEl + statusEl
+ '<div class="film-title">' + esc(f.title) + '</div>' + '<div class="film-title">' + esc(f.title) + '</div>'
+ '<div class="film-meta">' + '<div class="film-meta">'
+ '<span>' + esc(f.station) + '</span>' + '<span>' + esc(f.station) + '</span>'
+ (dateLabel ? '<span style="color:#8888a8">' + dateLabel + '</span>' : '')
+ '<span class="badge ' + (f.cinema ? 'badge-kino' : 'badge-tv') + '">' + (f.cinema ? 'Kino' : 'TV') + '</span>' + '<span class="badge ' + (f.cinema ? 'badge-kino' : 'badge-tv') + '">' + (f.cinema ? 'Kino' : 'TV') + '</span>'
+ '<span class="days-badge ' + daysClass + '">' + daysLabel + '</span>' + '<span class="days-badge ' + daysClass + '">' + daysLabel + '</span>'
+ '</div>' + '</div>'
@ -710,18 +717,20 @@ def api_films():
station = tc.get("STVSTATIONNAME", "?") station = tc.get("STVSTATIONNAME", "?")
days_left = int(tc.get("IDAYSLEFTBEFOREDELETE", 0)) days_left = int(tc.get("IDAYSLEFTBEFOREDELETE", 0))
tid = int(tc.get("ITELECASTID", 0)) tid = int(tc.get("ITELECASTID", 0))
start_date = tc.get("DSTARTDATE", "")
is_cinema = savetv._is_known_cinema(title) is_cinema = savetv._is_known_cinema(title)
key = title.lower().strip() key = title.lower().strip()
if key in seen_titles: if key in seen_titles:
if days_left > seen_titles[key]["days_left"]: if days_left > seen_titles[key]["days_left"]:
seen_titles[key].update(days_left=days_left, tid=tid) seen_titles[key].update(days_left=days_left, tid=tid, start_date=start_date)
continue continue
seen_titles[key] = { seen_titles[key] = {
"tid": tid, "title": title, "station": station, "tid": tid, "title": title, "station": station,
"days_left": days_left, "cinema": is_cinema, "days_left": days_left, "cinema": is_cinema,
"start_date": start_date,
} }
films = sorted(seen_titles.values(), key=lambda x: (x["days_left"], not x["cinema"])) films = sorted(seen_titles.values(), key=lambda x: x.get("start_date", ""), reverse=True)
dl_log = _load_download_log() dl_log = _load_download_log()
return jsonify({ return jsonify({