diff --git a/js/constants.js b/js/constants.js index 39d2b5ea..515b4c20 100644 --- a/js/constants.js +++ b/js/constants.js @@ -146,7 +146,6 @@ export const DEFAULT_TRUST_SEED_NPUBS = SANITIZED_DEFAULT_TRUST_SEED_NPUBS; const DEFAULT_FLAGS = Object.freeze({ URL_FIRST_ENABLED: true, // try URL before magnet in the player ACCEPT_LEGACY_V1: true, // accept v1 magnet-only notes - VIEW_FILTER_INCLUDE_LEGACY_VIDEO: false, FEATURE_WATCH_HISTORY_V2: true, FEATURE_PUBLISH_NIP71: false, FEATURE_HASHTAG_PREFERENCES: false, @@ -167,8 +166,6 @@ const runtimeFlags = (() => { const initial = { URL_FIRST_ENABLED: DEFAULT_FLAGS.URL_FIRST_ENABLED, ACCEPT_LEGACY_V1: DEFAULT_FLAGS.ACCEPT_LEGACY_V1, - VIEW_FILTER_INCLUDE_LEGACY_VIDEO: - DEFAULT_FLAGS.VIEW_FILTER_INCLUDE_LEGACY_VIDEO, FEATURE_WATCH_HISTORY_V2: DEFAULT_FLAGS.FEATURE_WATCH_HISTORY_V2, FEATURE_PUBLISH_NIP71: DEFAULT_FLAGS.FEATURE_PUBLISH_NIP71, FEATURE_HASHTAG_PREFERENCES: DEFAULT_FLAGS.FEATURE_HASHTAG_PREFERENCES, @@ -196,11 +193,6 @@ export let ACCEPT_LEGACY_V1 = coerceBoolean( DEFAULT_FLAGS.ACCEPT_LEGACY_V1 ); -export let VIEW_FILTER_INCLUDE_LEGACY_VIDEO = coerceBoolean( - runtimeFlags.VIEW_FILTER_INCLUDE_LEGACY_VIDEO, - DEFAULT_FLAGS.VIEW_FILTER_INCLUDE_LEGACY_VIDEO -); - export let FEATURE_WATCH_HISTORY_V2 = coerceBoolean( runtimeFlags.FEATURE_WATCH_HISTORY_V2, DEFAULT_FLAGS.FEATURE_WATCH_HISTORY_V2 @@ -267,20 +259,6 @@ Object.defineProperty(runtimeFlags, "ACCEPT_LEGACY_V1", { }, }); -Object.defineProperty(runtimeFlags, "VIEW_FILTER_INCLUDE_LEGACY_VIDEO", { - configurable: true, - enumerable: true, - get() { - return VIEW_FILTER_INCLUDE_LEGACY_VIDEO; - }, - set(next) { - VIEW_FILTER_INCLUDE_LEGACY_VIDEO = coerceBoolean( - next, - DEFAULT_FLAGS.VIEW_FILTER_INCLUDE_LEGACY_VIDEO - ); - }, -}); - Object.defineProperty(runtimeFlags, "FEATURE_WATCH_HISTORY_V2", { configurable: true, enumerable: true, @@ -409,7 +387,6 @@ Object.defineProperty(runtimeFlags, "TRUSTED_SPAM_HIDE_THRESHOLD", { // Ensure the runtime object reflects the sanitized defaults immediately. runtimeFlags.URL_FIRST_ENABLED = URL_FIRST_ENABLED; runtimeFlags.ACCEPT_LEGACY_V1 = ACCEPT_LEGACY_V1; -runtimeFlags.VIEW_FILTER_INCLUDE_LEGACY_VIDEO = VIEW_FILTER_INCLUDE_LEGACY_VIDEO; runtimeFlags.FEATURE_WATCH_HISTORY_V2 = FEATURE_WATCH_HISTORY_V2; runtimeFlags.FEATURE_PUBLISH_NIP71 = FEATURE_PUBLISH_NIP71; runtimeFlags.FEATURE_HASHTAG_PREFERENCES = FEATURE_HASHTAG_PREFERENCES; @@ -431,11 +408,6 @@ export function setAcceptLegacyV1(next) { return ACCEPT_LEGACY_V1; } -export function setViewFilterIncludeLegacyVideo(next) { - runtimeFlags.VIEW_FILTER_INCLUDE_LEGACY_VIDEO = next; - return VIEW_FILTER_INCLUDE_LEGACY_VIDEO; -} - export function getWatchHistoryV2Enabled() { return FEATURE_WATCH_HISTORY_V2 === true; } @@ -468,9 +440,6 @@ export function setHashtagPreferencesEnabled(next) { export function resetRuntimeFlags() { setUrlFirstEnabled(DEFAULT_FLAGS.URL_FIRST_ENABLED); setAcceptLegacyV1(DEFAULT_FLAGS.ACCEPT_LEGACY_V1); - setViewFilterIncludeLegacyVideo( - DEFAULT_FLAGS.VIEW_FILTER_INCLUDE_LEGACY_VIDEO - ); setWatchHistoryV2Enabled(DEFAULT_FLAGS.FEATURE_WATCH_HISTORY_V2); setHashtagPreferencesEnabled(DEFAULT_FLAGS.FEATURE_HASHTAG_PREFERENCES); setTrustSeedsEnabled(DEFAULT_FLAGS.FEATURE_TRUST_SEEDS); diff --git a/js/nostr/viewEvents.js b/js/nostr/viewEvents.js index 44c11da2..872e80e1 100644 --- a/js/nostr/viewEvents.js +++ b/js/nostr/viewEvents.js @@ -2,7 +2,6 @@ import { VIEW_COUNT_DEDUPE_WINDOW_SECONDS, VIEW_COUNT_BACKFILL_MAX_DAYS, } from "../config.js"; -import { VIEW_FILTER_INCLUDE_LEGACY_VIDEO } from "../constants.js"; import { buildViewEvent, getNostrEventSchema, @@ -79,14 +78,6 @@ export function createVideoViewEventFilters(pointer) { const filters = [pointerFilter]; - if (VIEW_FILTER_INCLUDE_LEGACY_VIDEO) { - filters.push({ - kinds: [VIEW_EVENT_KIND], - "#t": ["view"], - "#video": [resolved.value], - }); - } - return { pointer: resolved, filters }; } @@ -298,13 +289,6 @@ function isVideoViewEvent(event, pointer) { continue; } - if ( - VIEW_FILTER_INCLUDE_LEGACY_VIDEO && - tagName === "video" && - tagValue === pointerValueLower - ) { - matchesPointer = true; - } } return hasViewTag && matchesPointer; diff --git a/tests/nostr-view-events.test.mjs b/tests/nostr-view-events.test.mjs index f8d9315c..702f2922 100644 --- a/tests/nostr-view-events.test.mjs +++ b/tests/nostr-view-events.test.mjs @@ -10,10 +10,6 @@ const { createVideoViewEventFilters, getViewEventGuardWindowMs, } = await import("../js/nostr/viewEvents.js"); -const { - setViewFilterIncludeLegacyVideo, - resetRuntimeFlags, -} = await import("../js/constants.js"); async function withMockedNow(initialMs, callback) { const originalNow = Date.now; @@ -94,28 +90,15 @@ async function testCreateVideoViewEventFiltersForAddressPointer() { assertPointerFilterStructure(filters[0], pointerValue, "primary"); } -async function testCreateVideoViewEventFiltersIncludeLegacyWhenEnabled() { +async function testCreateVideoViewEventFiltersForEventPointer() { const pointerValue = "legacy-event"; - resetRuntimeFlags(); - setViewFilterIncludeLegacyVideo(true); - try { - const { filters } = createVideoViewEventFilters({ type: "e", value: pointerValue }); - assert.ok(Array.isArray(filters) && filters.length === 2, "legacy flag should add a secondary filter"); - assertPointerFilterStructure(filters[0], pointerValue, "primary"); - const legacyFilter = filters[1]; - assert.ok(legacyFilter, "legacy filter should exist when flag enabled"); - assert.deepEqual( - legacyFilter["#video"], - [pointerValue], - "legacy filter should match the pointer value via #video tag", - ); - } finally { - resetRuntimeFlags(); - } + const { filters } = createVideoViewEventFilters({ type: "e", value: pointerValue }); + assert.ok(Array.isArray(filters) && filters.length === 1, "filters should include only the pointer filter"); + assertPointerFilterStructure(filters[0], pointerValue, "primary"); } await testRememberViewPublishHonorsGuardWindow(); await testCreateVideoViewEventFiltersForAddressPointer(); -await testCreateVideoViewEventFiltersIncludeLegacyWhenEnabled(); +await testCreateVideoViewEventFiltersForEventPointer(); console.log("nostr view events tests passed");