mirror of
https://github.com/PR0M3TH3AN/bitvid.git
synced 2026-10-27 07:52:24 +00:00
Merge pull request #2214 from PR0M3TH3AN/clean-up-legacy-moderation-overrides-18282916472860729392
🧹 Remove legacy moderation overrides support
This commit is contained in:
2 files changed
+53
-20
No files matched your search
+1
-20
@@ -30,7 +30,6 @@ const URL_PROBE_TIMEOUT_RETRY_MS = 15 * 1000; // 15 seconds
|
||||
|
||||
|
||||
const MODERATION_OVERRIDE_STORAGE_KEY = "bitvid:moderationOverrides:v2";
|
||||
const LEGACY_MODERATION_OVERRIDE_STORAGE_KEY = "bitvid:moderationOverrides:v1";
|
||||
const MODERATION_OVERRIDE_STORAGE_VERSION = 2;
|
||||
const MODERATION_SETTINGS_STORAGE_KEY = "bitvid:moderationSettings:v1";
|
||||
const MODERATION_SETTINGS_STORAGE_VERSION = 3;
|
||||
@@ -1530,9 +1529,7 @@ export function loadModerationOverridesFromStorage() {
|
||||
return;
|
||||
}
|
||||
|
||||
const raw =
|
||||
localStorage.getItem(MODERATION_OVERRIDE_STORAGE_KEY) ||
|
||||
localStorage.getItem(LEGACY_MODERATION_OVERRIDE_STORAGE_KEY);
|
||||
const raw = localStorage.getItem(MODERATION_OVERRIDE_STORAGE_KEY);
|
||||
if (!raw) {
|
||||
return;
|
||||
}
|
||||
@@ -1553,20 +1550,6 @@ export function loadModerationOverridesFromStorage() {
|
||||
} else {
|
||||
shouldRewrite = true;
|
||||
}
|
||||
} else if (payload.version === 1) {
|
||||
const legacyEntries =
|
||||
payload.entries && typeof payload.entries === "object"
|
||||
? payload.entries
|
||||
: {};
|
||||
Object.entries(legacyEntries).forEach(([eventId, entry]) => {
|
||||
entries.push({
|
||||
eventId,
|
||||
authorPubkey: "",
|
||||
showAnyway: entry?.showAnyway === true,
|
||||
updatedAt: entry?.updatedAt,
|
||||
});
|
||||
});
|
||||
shouldRewrite = true;
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
@@ -1633,7 +1616,6 @@ export function persistModerationOverridesToStorage() {
|
||||
if (entries.length === 0) {
|
||||
try {
|
||||
localStorage.removeItem(MODERATION_OVERRIDE_STORAGE_KEY);
|
||||
localStorage.removeItem(LEGACY_MODERATION_OVERRIDE_STORAGE_KEY);
|
||||
} catch (error) {
|
||||
userLogger.warn(
|
||||
"[cache.persistModerationOverridesToStorage] Failed to clear overrides:",
|
||||
@@ -1654,7 +1636,6 @@ export function persistModerationOverridesToStorage() {
|
||||
MODERATION_OVERRIDE_STORAGE_KEY,
|
||||
JSON.stringify(payload),
|
||||
);
|
||||
localStorage.removeItem(LEGACY_MODERATION_OVERRIDE_STORAGE_KEY);
|
||||
} catch (error) {
|
||||
userLogger.warn(
|
||||
"[cache.persistModerationOverridesToStorage] Failed to persist overrides:",
|
||||
|
||||
@@ -12,6 +12,9 @@ import {
|
||||
getModerationSettings,
|
||||
setModerationSettings,
|
||||
urlHealthConstants,
|
||||
loadModerationOverridesFromStorage,
|
||||
getModerationOverridesList,
|
||||
clearModerationOverride,
|
||||
} from "../../js/state/cache.js";
|
||||
|
||||
// Ensure localStorage is mocked
|
||||
@@ -102,4 +105,53 @@ test("js/state/cache.js", async (t) => {
|
||||
assert.strictEqual(updated.blurThreshold, 1);
|
||||
assert.strictEqual(updated.autoplayBlockThreshold, 2);
|
||||
});
|
||||
|
||||
await t.test("Legacy Moderation Overrides Support", async (t) => {
|
||||
// Reset internal state by clearing overrides
|
||||
const current = getModerationOverridesList();
|
||||
for (const entry of current) {
|
||||
clearModerationOverride(entry, { persist: false });
|
||||
}
|
||||
|
||||
const VALID_HEX_ID_1 = "0000000000000000000000000000000000000000000000000000000000000001";
|
||||
const VALID_HEX_ID_2 = "0000000000000000000000000000000000000000000000000000000000000002";
|
||||
|
||||
await t.test("ignores legacy v1 overrides", () => {
|
||||
const legacyData = {
|
||||
version: 1,
|
||||
entries: {
|
||||
[VALID_HEX_ID_1]: { showAnyway: true, updatedAt: 1234567890 },
|
||||
}
|
||||
};
|
||||
localStorage.setItem("bitvid:moderationOverrides:v1", JSON.stringify(legacyData));
|
||||
|
||||
loadModerationOverridesFromStorage();
|
||||
|
||||
const overrides = getModerationOverridesList();
|
||||
assert.strictEqual(overrides.length, 0, "Should not load legacy overrides");
|
||||
|
||||
// Check if it migrated to v2 key
|
||||
const v2Data = localStorage.getItem("bitvid:moderationOverrides:v2");
|
||||
assert.strictEqual(v2Data, null, "Should not migrate/persist v2 data");
|
||||
|
||||
// Check if legacy key is NOT removed
|
||||
assert.ok(localStorage.getItem("bitvid:moderationOverrides:v1"), "Should not remove legacy key");
|
||||
});
|
||||
|
||||
await t.test("loads v2 overrides", () => {
|
||||
const v2Data = {
|
||||
version: 2,
|
||||
entries: [
|
||||
{ eventId: VALID_HEX_ID_2, authorPubkey: "", showAnyway: true, updatedAt: 1234567890 }
|
||||
]
|
||||
};
|
||||
localStorage.setItem("bitvid:moderationOverrides:v2", JSON.stringify(v2Data));
|
||||
|
||||
loadModerationOverridesFromStorage();
|
||||
|
||||
const overrides = getModerationOverridesList();
|
||||
assert.strictEqual(overrides.length, 1);
|
||||
assert.strictEqual(overrides[0].eventId, VALID_HEX_ID_2);
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user