Revert "Backfill watchlist alternative titles lazily"

This reverts commit 8aa490adf8.
This commit is contained in:
Dymas
2026-05-23 19:14:34 +02:00
parent 8aa490adf8
commit 5b0f4043ed
8 changed files with 18 additions and 165 deletions
+15 -78
View File
@@ -674,8 +674,6 @@ WATCHLIST_HTML = r"""<!doctype html>
watchlistPerPage: 30,
queuedCount: 0,
watchlistCategory: "watching",
altTitleTokens: {},
altTitlePending: new Set(),
thumbnailNonce: Date.now(),
thumbnailWarmupTokens: {},
thumbnailWarmupPending: new Set(),
@@ -865,44 +863,6 @@ WATCHLIST_HTML = r"""<!doctype html>
.find((card) => card.dataset.showId === showId) || null;
}
function altTitleToken(item) {
return [
item.english_title || "",
...(item.display_alt_titles || []),
].join("|");
}
function applyAltTitles(card, item) {
if (!card) return;
const altTitlesNode = card.querySelector(".alt-titles");
const oldToggle = card.querySelector(".alt-toggle");
if (!altTitlesNode || !oldToggle) return;
const altTitles = item.display_alt_titles || [];
const wasVisible = altTitlesNode.classList.contains("visible");
altTitlesNode.classList.remove("visible");
altTitlesNode.textContent = "";
altTitlesNode.hidden = true;
const newToggle = oldToggle.cloneNode(true);
oldToggle.replaceWith(newToggle);
newToggle.hidden = true;
newToggle.textContent = "Alternative titles";
newToggle.setAttribute("aria-expanded", "false");
if (!altTitles.length) return;
altTitlesNode.hidden = false;
altTitlesNode.textContent = altTitles.join(" · ");
newToggle.hidden = false;
if (wasVisible) {
altTitlesNode.classList.add("visible");
newToggle.textContent = "Hide alternative titles";
newToggle.setAttribute("aria-expanded", "true");
}
newToggle.addEventListener("click", () => {
const visible = altTitlesNode.classList.toggle("visible");
newToggle.setAttribute("aria-expanded", visible ? "true" : "false");
newToggle.textContent = visible ? "Hide alternative titles" : "Alternative titles";
});
}
function thumbnailWarmupToken(item) {
return [
item.thumbnail_ready ? "1" : "0",
@@ -949,42 +909,6 @@ WATCHLIST_HTML = r"""<!doctype html>
}
}
async function hydrateAltTitlesOnce(items) {
const missing = [];
for (const item of items) {
const token = altTitleToken(item);
if ((item.display_alt_titles || []).length) {
state.altTitlePending.delete(item.show_id);
state.altTitleTokens[item.show_id] = token;
continue;
}
if (state.altTitlePending.has(item.show_id)) continue;
if (state.altTitleTokens[item.show_id] === token) continue;
state.altTitlePending.add(item.show_id);
state.altTitleTokens[item.show_id] = token;
missing.push(item.show_id);
if (missing.length >= 6) break;
}
if (!missing.length) return;
try {
const data = await api("/api/watchlist/ensure-alt-titles", {
method: "POST",
body: JSON.stringify({ show_ids: missing, limit: 6, force: false })
});
for (const item of data.items || []) {
state.altTitleTokens[item.show_id] = altTitleToken(item);
const card = findCardByShowId(item.show_id);
if (!card) continue;
applyAltTitles(card, item);
}
} catch (_error) {
} finally {
for (const showId of missing) {
state.altTitlePending.delete(showId);
}
}
}
async function reloadWatchlistThumbnail(showId, title) {
const card = findCardByShowId(showId);
if (card) setThumbnailReloading(card, true);
@@ -1117,7 +1041,21 @@ WATCHLIST_HTML = r"""<!doctype html>
titleLink.rel = "noopener noreferrer";
titleLink.textContent = item.title;
titleNode.replaceChildren(titleLink);
applyAltTitles(card, item);
const altToggle = card.querySelector(".alt-toggle");
const altTitlesNode = card.querySelector(".alt-titles");
const altTitles = item.display_alt_titles || [];
if (altTitles.length) {
altToggle.hidden = false;
altTitlesNode.hidden = false;
altTitlesNode.textContent = altTitles.join(" · ");
altToggle.setAttribute("aria-expanded", "false");
altToggle.addEventListener("click", () => {
const visible = altTitlesNode.classList.toggle("visible");
altToggle.setAttribute("aria-expanded", visible ? "true" : "false");
altToggle.textContent = visible ? "Hide alternative titles" : "Alternative titles";
});
altToggle.textContent = "Alternative titles";
}
const finishCheck = card.querySelector(".finish-check");
if (finishCheck && item.finished_badge) {
finishCheck.title = item.finished_badge === "downloaded"
@@ -1176,7 +1114,6 @@ WATCHLIST_HTML = r"""<!doctype html>
applyThumbnail(card, item, false);
}
renderPager();
window.setTimeout(() => hydrateAltTitlesOnce(items), 120);
window.setTimeout(() => hydrateThumbnailsOnce(items), 150);
}