This commit is contained in:
2026-05-28 13:21:18 +02:00
parent 006ee727ec
commit 9804376d30
2 changed files with 10 additions and 4 deletions

View File

@@ -552,11 +552,13 @@ window.cancelAnimFrame = (function () {
if (isAllBtn) { if (isAllBtn) {
// ALL: clear ratings cookie, set mode=3 on server // ALL: clear ratings cookie, set mode=3 on server
// Must set activeMode BEFORE syncRatingButtonUI so the ALL button
// active-state check (activeRatings.length === 0 && window.activeMode === 3) passes.
clearRatingsCookie(); clearRatingsCookie();
syncRatingButtonUI();
if (fromFilterModal) window._keepFilterModal = true;
window.activeMode = 3; window.activeMode = 3;
document.cookie = `mode=3; Path=/; Max-Age=31536000`; document.cookie = `mode=3; Path=/; Max-Age=31536000`;
syncRatingButtonUI();
if (fromFilterModal) window._keepFilterModal = true;
document.dispatchEvent(new CustomEvent('f0ck:modeChanged', { detail: { mode: 3 } })); document.dispatchEvent(new CustomEvent('f0ck:modeChanged', { detail: { mode: 3 } }));
fetch('/mode/3', { headers: { 'X-Requested-With': 'XMLHttpRequest' }, credentials: 'include' }) fetch('/mode/3', { headers: { 'X-Requested-With': 'XMLHttpRequest' }, credentials: 'include' })
.then(r => r.json()) .then(r => r.json())

View File

@@ -63,7 +63,9 @@ export default (router, tpl) => {
try { try {
const isRandom = req.cookies.random_mode === '1'; const isRandom = req.cookies.random_mode === '1';
const ratingsRaw = req.cookies.ratings; const ratingsRaw = req.cookies.ratings;
const ratingsArr = ratingsRaw ? decodeURIComponent(ratingsRaw).split(/[|,]/).filter(r => ['sfw','nsfw','nsfl','untagged'].includes(r)) : null; // In All mode (mode=3), ignore the ratings cookie — it would otherwise
// filter out e.g. NSFW uploads even though the user is in "All" mode.
const ratingsArr = (req.mode === 3) ? null : (ratingsRaw ? decodeURIComponent(ratingsRaw).split(/[|,]/).filter(r => ['sfw','nsfw','nsfl','untagged'].includes(r)) : null);
f0cks = await f0cklib.getf0cks({ f0cks = await f0cklib.getf0cks({
user: user, user: user,
mode: req.mode, mode: req.mode,
@@ -87,7 +89,9 @@ export default (router, tpl) => {
try { try {
const isRandom = req.cookies.random_mode === '1'; const isRandom = req.cookies.random_mode === '1';
const ratingsRaw = req.cookies.ratings; const ratingsRaw = req.cookies.ratings;
const ratingsArr = ratingsRaw ? decodeURIComponent(ratingsRaw).split(/[|,]/).filter(r => ['sfw','nsfw','nsfl','untagged'].includes(r)) : null; // In All mode (mode=3), ignore the ratings cookie — a stale ratings cookie
// (e.g. only 'sfw') would cause NSFW favorites to show 0 on the profile.
const ratingsArr = (req.mode === 3) ? null : (ratingsRaw ? decodeURIComponent(ratingsRaw).split(/[|,]/).filter(r => ['sfw','nsfw','nsfl','untagged'].includes(r)) : null);
favs = await f0cklib.getf0cks({ favs = await f0cklib.getf0cks({
user: user, user: user,
mode: req.mode, mode: req.mode,