Fix blurred thumbnail visuals and add moderation buttons to SimilarContentCard

- Adds `blur-xl` class to `SimilarContentCard` thumbnails when blurred, ensuring visual consistency.
- Implements `createModerationOverrideButton`, `createModerationHideButton`, and `createModerationBlockButton` in `SimilarContentCard.js` to provide missing interactivity.
- Updates `VideoModal.js` to wire up moderation callbacks (`onModerationOverride`, `onModerationHide`, `onModerationBlock`) when initializing similar content cards, dispatching global moderation events.
- Ensures moderation actions in the similar content sidebar function identically to the main video player.
This commit is contained in:
google-labs-jules[bot] committed 2026-01-16 13:34:29 +00:00
1 parent 991c090fc4
commit e6ebbb8343
4 files changed
+786 -19

No files matched your search

+307 -18
View File
@@ -1,7 +1,10 @@
import { normalizeDesignSystemContext } from "../../designSystem.js";
import { formatShortNpub } from "../../utils/formatters.js";
import { sanitizeProfileMediaUrl } from "../../utils/profileMedia.js";
import { normalizeVideoModerationContext } from "../moderationUiHelpers.js";
import {
getModerationOverrideActionLabels,
normalizeVideoModerationContext,
} from "../moderationUiHelpers.js";
import { buildModerationBadgeText } from "../moderationCopy.js";
const SVG_NAMESPACE = "http://www.w3.org/2000/svg";
@@ -99,7 +102,12 @@ export class SimilarContentCard {
? fallbackThumbnailSrc.trim()
: "";
this.callbacks = { onPlay: null };
this.callbacks = {
onPlay: null,
onModerationOverride: null,
onModerationBlock: null,
onModerationHide: null,
};
this.root = null;
this.cardStyleId = "";
@@ -117,6 +125,15 @@ export class SimilarContentCard {
this.moderationBadgeEl = null;
this.moderationBadgeLabelEl = null;
this.moderationBadgeTextEl = null;
this.moderationActionsContainer = null;
this.moderationActionButton = null;
this.moderationActionButtonMode = "";
this.moderationBlockButton = null;
this.boundShowAnywayHandler = (event) => this.handleShowAnywayClick(event);
this.boundModerationHideHandler = (event) =>
this.handleModerationHideClick(event);
this.boundModerationBlockHandler = (event) =>
this.handleModerationBlockClick(event);
this.build();
}
@@ -125,6 +142,18 @@ export class SimilarContentCard {
this.callbacks.onPlay = typeof fn === "function" ? fn : null;
}
set onModerationOverride(fn) {
this.callbacks.onModerationOverride = typeof fn === "function" ? fn : null;
}
set onModerationBlock(fn) {
this.callbacks.onModerationBlock = typeof fn === "function" ? fn : null;
}
set onModerationHide(fn) {
this.callbacks.onModerationHide = typeof fn === "function" ? fn : null;
}
getRoot() {
return this.root;
}
@@ -418,21 +447,227 @@ export class SimilarContentCard {
return normalizeVideoModerationContext(this.video?.moderation);
}
shouldShowModerationBlockButton(context = this.getModerationContext()) {
if (!context || !context.trustedMuted) {
return false;
}
if (context.activeHidden && !context.overrideActive) {
return false;
}
return true;
}
createModerationOverrideButton() {
const { text: label, ariaLabel } = getModerationOverrideActionLabels({
overrideActive: false,
});
const button = this.document.createElement("button");
button.classList.add(
"moderation-badge__action",
"flex-shrink-0",
"text-xs",
"py-1",
"px-2"
);
button.type = "button";
button.dataset.moderationAction = "override";
button.setAttribute("aria-pressed", "false");
button.setAttribute("aria-label", ariaLabel);
button.textContent = "Show";
button.addEventListener("click", this.boundShowAnywayHandler);
// Explicit pointer events since container is none
button.style.pointerEvents = "auto";
return button;
}
createModerationHideButton() {
const { text: label, ariaLabel } = getModerationOverrideActionLabels({
overrideActive: true,
});
const button = this.document.createElement("button");
button.classList.add(
"moderation-badge__action",
"flex-shrink-0",
"text-xs",
"py-1",
"px-2"
);
button.type = "button";
button.dataset.moderationAction = "hide";
button.setAttribute("aria-label", ariaLabel);
button.textContent = "Hide";
button.addEventListener("click", this.boundModerationHideHandler);
button.style.pointerEvents = "auto";
return button;
}
createModerationBlockButton() {
const button = this.document.createElement("button");
button.classList.add(
"moderation-badge__action",
"flex-shrink-0",
"text-xs",
"py-1",
"px-2"
);
button.type = "button";
button.dataset.moderationAction = "block";
button.textContent = "Block";
button.addEventListener("click", this.boundModerationBlockHandler);
button.style.pointerEvents = "auto";
return button;
}
handleShowAnywayClick(event) {
event?.preventDefault?.();
event?.stopPropagation?.();
if (this.moderationActionButton) {
this.moderationActionButton.disabled = true;
this.moderationActionButton.setAttribute("aria-busy", "true");
}
if (!this.callbacks.onModerationOverride) {
if (this.moderationActionButton) {
this.moderationActionButton.disabled = false;
this.moderationActionButton.removeAttribute("aria-busy");
}
return;
}
let result;
try {
result = this.callbacks.onModerationOverride({
event,
video: this.video,
card: this,
});
} catch (error) {
if (this.moderationActionButton) {
this.moderationActionButton.disabled = false;
this.moderationActionButton.removeAttribute("aria-busy");
}
return;
}
Promise.resolve(result).then((handled) => {
if (handled !== false) {
this.refreshModerationUi();
} else if (this.moderationActionButton) {
this.moderationActionButton.disabled = false;
this.moderationActionButton.removeAttribute("aria-busy");
}
});
}
handleModerationHideClick(event) {
event?.preventDefault?.();
event?.stopPropagation?.();
if (this.moderationActionButton) {
this.moderationActionButton.disabled = true;
this.moderationActionButton.setAttribute("aria-busy", "true");
}
if (!this.callbacks.onModerationHide) {
if (this.moderationActionButton) {
this.moderationActionButton.disabled = false;
this.moderationActionButton.removeAttribute("aria-busy");
}
return;
}
let result;
try {
result = this.callbacks.onModerationHide({
event,
video: this.video,
card: this,
});
} catch (error) {
if (this.moderationActionButton) {
this.moderationActionButton.disabled = false;
this.moderationActionButton.removeAttribute("aria-busy");
}
return;
}
Promise.resolve(result).then((handled) => {
if (handled !== false) {
this.refreshModerationUi();
} else if (this.moderationActionButton) {
this.moderationActionButton.disabled = false;
this.moderationActionButton.removeAttribute("aria-busy");
}
});
}
handleModerationBlockClick(event) {
event?.preventDefault?.();
event?.stopPropagation?.();
if (this.moderationBlockButton) {
this.moderationBlockButton.disabled = true;
this.moderationBlockButton.setAttribute("aria-busy", "true");
}
if (!this.callbacks.onModerationBlock) {
if (this.moderationBlockButton) {
this.moderationBlockButton.disabled = false;
this.moderationBlockButton.removeAttribute("aria-busy");
}
return;
}
let result;
try {
result = this.callbacks.onModerationBlock({
event,
video: this.video,
card: this,
});
} catch (error) {
if (this.moderationBlockButton) {
this.moderationBlockButton.disabled = false;
this.moderationBlockButton.removeAttribute("aria-busy");
}
return;
}
Promise.resolve(result).then((handled) => {
if (handled !== false) {
this.refreshModerationUi();
} else if (this.moderationBlockButton) {
this.moderationBlockButton.disabled = false;
this.moderationBlockButton.removeAttribute("aria-busy");
}
});
}
buildModerationBadge(context = this.getModerationContext()) {
if (!context.shouldShow || !context.trustedMuted) {
this.moderationBadgeEl = null;
this.moderationActionsContainer = null;
this.moderationActionButton = null;
this.moderationActionButtonMode = "";
this.moderationBlockButton = null;
return null;
}
const badge = this.document.createElement("div");
badge.className = "moderation-badge moderation-badge--interactive opacity-95";
badge.dataset.variant = "warning";
badge.dataset.variant = context.overrideActive ? "neutral" : "warning";
badge.dataset.moderationBadge = "true";
badge.dataset.moderationState = "trusted-mute";
badge.dataset.moderationState = context.overrideActive
? "override"
: "trusted-mute";
// Allow interaction with children
badge.style.pointerEvents = "auto";
const label = this.document.createElement("span");
label.className = "moderation-badge__label inline-flex items-center gap-xs";
// Simplified icon for small card
const iconWrapper = this.document.createElement("span");
iconWrapper.className = "moderation-badge__icon";
iconWrapper.setAttribute("aria-hidden", "true");
@@ -444,7 +679,13 @@ export class SimilarContentCard {
const path = this.document.createElementNS(SVG_NAMESPACE, "path");
path.setAttribute("fill", "currentColor");
path.setAttribute("d", "M10 18a8 8 0 100-16 8 8 0 000 16zm-.75-11.75a.75.75 0 011.5 0v4.5a.75.75 0 01-1.5 0v-4.5zm.75 8.5a1 1 0 100-2 1 1 0 000 2z");
if (context.overrideActive) {
path.setAttribute("d", "M10 18a8 8 0 100-16 8 8 0 000 16zm3.78-9.72a.75.75 0 00-1.06-1.06L9 11.94l-1.72-1.72a.75.75 0 10-1.06 1.06l2.25 2.25a.75.75 0 001.06 0l3.25-3.25z");
} else {
path.setAttribute("d", "M10 18a8 8 0 100-16 8 8 0 000 16zm-.75-11.75a.75.75 0 011.5 0v4.5a.75.75 0 01-1.5 0v-4.5zm.75 8.5a1 1 0 100-2 1 1 0 000 2z");
}
path.setAttribute("fill-rule", "evenodd");
path.setAttribute("clip-rule", "evenodd");
@@ -453,13 +694,40 @@ export class SimilarContentCard {
label.appendChild(iconWrapper);
const text = this.document.createElement("span");
text.className = "moderation-badge__text";
// Shorten text for small cards if needed, but keeping standard for now
text.textContent = "Blocked by trusted contact";
text.className = "moderation-badge__text text-xs";
text.textContent = "Blocked by trusted";
label.appendChild(text);
badge.appendChild(label);
const actions = this.document.createElement("div");
actions.className = "moderation-badge__actions flex items-center gap-1 mt-1";
if (context.allowOverride) {
if (context.overrideActive) {
const hideButton = this.createModerationHideButton();
actions.appendChild(hideButton);
this.moderationActionButton = hideButton;
this.moderationActionButtonMode = "hide";
} else {
const showButton = this.createModerationOverrideButton();
actions.appendChild(showButton);
this.moderationActionButton = showButton;
this.moderationActionButtonMode = "override";
}
}
if (this.shouldShowModerationBlockButton(context)) {
const blockButton = this.createModerationBlockButton();
actions.appendChild(blockButton);
this.moderationBlockButton = blockButton;
}
if (actions.childElementCount > 0) {
badge.appendChild(actions);
this.moderationActionsContainer = actions;
}
this.moderationBadgeEl = badge;
return badge;
}
@@ -471,24 +739,39 @@ export class SimilarContentCard {
this.moderationBadgeEl.remove();
this.moderationBadgeEl = null;
}
this.moderationActionsContainer = null;
this.moderationActionButton = null;
this.moderationActionButtonMode = "";
this.moderationBlockButton = null;
// Apply blurring class if needed
if (this.thumbnailEl) {
const shouldBlur =
(this.shouldMaskNsfwForOwner ||
this.video?.moderation?.blurThumbnail) &&
!context.overrideActive;
if (shouldBlur) {
this.thumbnailEl.dataset.thumbnailState = "blurred";
this.thumbnailEl.classList.add("blur-xl");
} else {
delete this.thumbnailEl.dataset.thumbnailState;
this.thumbnailEl.classList.remove("blur-xl");
}
}
// Check specifically for muted/blurred state where we want the overlay
if (context.shouldShow && context.trustedMuted && !context.overrideActive) {
// Ensure media link exists
if (context.shouldShow && context.trustedMuted) {
if (!this.mediaLinkEl) return;
const badge = this.buildModerationBadge(context);
if (badge) {
// Create a wrapper for centering if needed, or use classes on badge if possible.
// Similar to VideoCard, let's create a container for absolute positioning
const container = this.document.createElement("div");
container.className = "absolute inset-0 flex items-center justify-center p-2 z-10 pointer-events-none";
container.className =
"absolute inset-0 flex flex-col items-center justify-center p-2 z-10 pointer-events-none";
container.appendChild(badge);
this.mediaLinkEl.appendChild(container);
// We track the container removal via moderationBadgeEl reference if we wanted strict cleanup,
// but for now just rebuilding is fine if we store the container.
// Let's store badge el as the container actually to make removal easier
this.moderationBadgeEl = container;
}
}
@@ -502,7 +785,12 @@ export class SimilarContentCard {
img.dataset.videoThumbnail = "true";
// Modified: Add transition classes for hover zoom
img.classList.add("transition-transform", "duration-300", "ease-out", "group-hover:scale-105");
img.classList.add(
"transition-transform",
"duration-300",
"ease-out",
"group-hover:scale-105"
);
const rawThumbnail =
typeof this.video.thumbnail === "string"
@@ -537,6 +825,7 @@ export class SimilarContentCard {
if (this.shouldMaskNsfwForOwner || this.video?.moderation?.blurThumbnail) {
img.dataset.thumbnailState = "blurred";
img.classList.add("blur-xl");
}
const handleLoad = () => {
+16
View File
@@ -4947,6 +4947,22 @@ export class VideoModal {
cardIndex
);
// Wire up moderation callbacks
if (card) {
card.onModerationOverride = (detail) => {
this.dispatch("video:moderation-override", detail);
return true;
};
card.onModerationHide = (detail) => {
this.dispatch("video:moderation-hide", detail);
return true;
};
card.onModerationBlock = (detail) => {
this.dispatch("video:moderation-block", detail);
return true;
};
}
const root = card.getRoot();
if (!root) {
return;
+1 -1
View File
@@ -6,4 +6,4 @@ npm error npm stars # View packages marked as favorites
npm error
npm error To see a list of scripts, run:
npm error npm run
npm error A complete log of this run can be found in: /home/jules/.npm/_logs/2026-01-09T18_38_57_901Z-debug-0.log
npm error A complete log of this run can be found in: /home/jules/.npm/_logs/2026-01-16T13_26_28_834Z-debug-0.log
+462
View File
@@ -0,0 +1,462 @@
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /css/tailwind.generated.css?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/lists.js?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/nostrToolsBootstrap.js?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/accessControl.js?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/config.js?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/webtorrent.js?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/viewManager.js?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/bootstrap.js?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /assets/svg/default-profile.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/index.js?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/disclaimer.js?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/utils/logger.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/config.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/adminListStore.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/nostr/toolkit.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/webtorrent.min.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /config/instance-config.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/utils/safeDecode.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/constants.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/app.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/services/nostrService.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/viewManager.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/services/r2Service.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/services/hashtagPreferencesService.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /assets/svg/filter.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /assets/svg/search.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/channelProfile.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/subscriptions.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/designSystem.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /config/asset-version.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/applicationContext.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/ui/components/staticModalAccessibility.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /config/validate-config.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/services/authService.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/bufferPolyfill.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/themeController.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/accessControl.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/services/authProviders/index.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/nostrClientFacade.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/userBlocks.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/relayManager.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/nostrToolsBootstrap.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/bootstrap.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/nostrClientRegistry.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/nostrEventSchemas.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/nostrPublish.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/nostr/index.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/services/moderationService.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/directMessagesStore.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/state/appState.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/r2.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/storage/r2-s3.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:15] "GET /js/storage/r2-mgmt.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/services/storageService.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/utils/formatters.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/services/videoNotePayload.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/nostrViewEventsFacade.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/webtorrent.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/magnetUtils.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/playbackUtils.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/gridHealth.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/urlHealthObserver.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/utils/cardSourceVisibility.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/utils/videoTags.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/utils/profileMedia.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/lists.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/feedEngine/index.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/watchHistoryService.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/r2-quick.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/components/videoMenuRenderers.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/overlay/popoverEngine.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/watchHistoryDebug.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/sidebarLoading.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/viewCounter.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/payments/zapSplit.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/reactionCounter.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/utils/domUtils.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/components/tagPreferenceMenu.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/utils/videoPointer.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/loginModalController.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/utils/pointer.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/utils/videoDeduper.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/utils/magnetValidators.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/utils/serviceWorkerFallbackMessages.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/utils/profileBatchFetcher.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/utils/videoTimestamps.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/state/cache.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/applicationBootstrap.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/videoModalCommentController.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/services/moderationActionController.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/services/trustBootstrap.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/views/VideoListView.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/components/modalAccessibility.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/components/VideoCard.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/feedEngine/stages.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/moderationUiHelpers.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/moderationCopy.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/payments/zapSharedState.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/payments/zapNotifications.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/payments/platformAddress.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/payments/nwcClient.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/payments/lnurl.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/nostr/defaultClient.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/services/authProviders/nip07.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/services/authProviders/nip46.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/nostr/nip46Client.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/services/authProviders/nsec.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/services/authProviders/generate.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/nostr/client.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/nostr/nip07Permissions.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/nostr/nip71.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/nostr/watchHistory.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/nostr/watchHistoryBindings.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/nostr/viewEvents.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/nostr/reactionEvents.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/nostr/commentEvents.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /vendor/crypto-helpers.bundle.min.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/nostr/viewEventBindings.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/magnet.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/magnetShared.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/magnets.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/feedEngine/engine.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/dom/cardObserver.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/feedEngine/sorters.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/feedEngine/sources.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/designSystem/metrics.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/feedEngine/watchHistoryFeed.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /vendor/floating-ui.dom.bundle.min.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/nostr/publishHelpers.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/overlay/overlayRoot.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/payments/zapReceiptValidator.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/payments/platformFee.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/utils/hex.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/utils/qrcode.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/historyView.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/utils/mediaLoader.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/watchHistoryController.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/services/playbackService.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/services/watchHistoryTelemetry.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/services/discussionCountService.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/services/commentThreadService.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/services/nwcSettingsService.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/profileIdentityController.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/videoListViewController.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/utils/storage.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/state/profileSettingsStore.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/profileModalController.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/moreMenuController.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/ModalManager.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/appChromeController.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/payments/zapMessages.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/components/tagPillList.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/feedEngine/utils.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/videoEventUtils.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/nostr/maxListenerDiagnostics.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/nostr/sessionActor.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/designSystem/dynamicStyles.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/nostrWatchHistoryFacade.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/nwcSettings.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/nostr/countDiagnostics.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/initEditModal.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/initUploadModal.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/components/RevertModal.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/components/VideoModal.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/initDeleteModal.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/components/EventDetailsModal.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/zapController.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/components/EditModal.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/components/UploadModal.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/components/DeleteModal.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/components/nip71FormManager.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/ambientBackground.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/components/video-modal/utils/commentAvatar.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/components/video-modal/similarContentController.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/components/video-modal/commentsController.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/components/video-modal/moderationController.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/components/video-modal/reactionsController.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/ui/components/SimilarContentCard.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /js/utils/torrentHash.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /components/login-modal.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /components/content-appeals-form.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /components/bug-fix-form.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /components/general-feedback-form.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /components/application-form.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /components/feature-request-form.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /components/video-modal.html HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /components/upload-modal.html HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /components/edit-video-modal.html HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /components/profile-modal.html HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /components/iframe_forms/iframe-content-appeals-form.html HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /components/iframe_forms/iframe-bug-fix-form.html HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /components/iframe_forms/iframe-feedback-form.html HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /components/iframe_forms/iframe-request-form.html HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /components/iframe_forms/iframe-application-form.html HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /components/sidebar.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /components/iframe_forms/theme-sync.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:16] "GET /css/tailwind.generated.css HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:17] "GET /views/most-recent-videos.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:17] "GET /assets/svg/recent-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:17] "GET /assets/svg/ellipsis.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:17] "GET /assets/svg/explore-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:17] "GET /assets/svg/about-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:17] "GET /assets/svg/history-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:17] "GET /assets/svg/subscriptions-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:17] "GET /assets/svg/guidelines-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:17] "GET /assets/svg/getting-started-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:17] "GET /assets/svg/upload-content-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:17] "GET /assets/svg/github-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:17] "GET /assets/svg/roadmap-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:17] "GET /assets/svg/blog-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:17] "GET /assets/svg/nostr-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:17] "GET /assets/svg/beacon-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:17] "GET /assets/svg/beta-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:17] "GET /assets/svg/links-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:17] "GET /assets/svg/ipns-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:17] "GET /assets/svg/dns-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:17] "GET /js/sidebar.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:17] "GET /js/index.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:17] "GET /components/login-modal.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:17] "GET /components/general-feedback-form.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:17] "GET /components/bug-fix-form.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:17] "GET /components/application-form.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:17] "GET /components/feature-request-form.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:17] "GET /components/disclaimer.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:17] "GET /components/content-appeals-form.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:17] "GET /views/most-recent-videos.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:17] "GET /js/disclaimer.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:28:17] "GET /components/sidebar.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /index.html HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/config.js?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/nostrToolsBootstrap.js?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/accessControl.js?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/lists.js?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/webtorrent.js?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /css/tailwind.generated.css?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/viewManager.js?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/bootstrap.js?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/disclaimer.js?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/index.js?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/utils/logger.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/config.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /config/instance-config.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/webtorrent.min.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/nostr/toolkit.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/adminListStore.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/constants.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/utils/safeDecode.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/channelProfile.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/subscriptions.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/designSystem.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/app.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /config/asset-version.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/applicationContext.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/services/nostrService.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/services/r2Service.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/viewManager.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/services/hashtagPreferencesService.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/components/staticModalAccessibility.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /config/validate-config.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/bufferPolyfill.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/themeController.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/services/authService.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/services/authProviders/index.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/accessControl.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/nostrClientFacade.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/userBlocks.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/relayManager.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /assets/svg/default-profile.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/bootstrap.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /assets/svg/filter.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /assets/svg/search.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/nostrToolsBootstrap.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/nostrEventSchemas.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/nostrViewEventsFacade.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/nostrClientRegistry.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/nostrPublish.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/sidebarLoading.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/nostr/index.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/views/VideoListView.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/services/moderationService.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/urlHealthObserver.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/gridHealth.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/overlay/popoverEngine.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/components/VideoCard.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/utils/domUtils.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/utils/formatters.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/components/videoMenuRenderers.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/utils/profileMedia.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/feedEngine/stages.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/moderationCopy.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/payments/zapSharedState.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/moderationUiHelpers.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/payments/zapNotifications.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/payments/zapSplit.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/payments/lnurl.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/payments/platformAddress.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/state/appState.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/payments/nwcClient.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/r2.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/directMessagesStore.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/storage/r2-mgmt.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/storage/r2-s3.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/services/videoNotePayload.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/services/storageService.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/components/modalAccessibility.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/webtorrent.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/playbackUtils.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/utils/cardSourceVisibility.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/magnetUtils.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/utils/videoTags.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/lists.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/r2-quick.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/watchHistoryService.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/feedEngine/index.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/watchHistoryDebug.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/viewCounter.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/reactionCounter.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/components/tagPreferenceMenu.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/utils/pointer.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/utils/videoPointer.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/loginModalController.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/utils/magnetValidators.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/utils/videoDeduper.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/utils/serviceWorkerFallbackMessages.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/utils/profileBatchFetcher.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/utils/videoTimestamps.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/state/cache.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/applicationBootstrap.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/videoModalCommentController.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/services/moderationActionController.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/services/trustBootstrap.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/nostr/defaultClient.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/services/authProviders/nip46.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/nostr/viewEventBindings.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/services/authProviders/nsec.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/services/authProviders/nip07.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/services/authProviders/generate.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/nostr/viewEvents.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/nostr/client.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/nostr/nip07Permissions.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/nostr/nip71.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/nostr/watchHistory.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/nostr/watchHistoryBindings.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/nostr/reactionEvents.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/nostr/nip46Client.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/components/tagPillList.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/nostr/commentEvents.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/dom/cardObserver.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/designSystem/metrics.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/overlay/overlayRoot.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /vendor/floating-ui.dom.bundle.min.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/magnets.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/feedEngine/utils.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/payments/zapReceiptValidator.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/payments/zapMessages.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/nostr/publishHelpers.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/payments/platformFee.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/magnet.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/magnetShared.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /vendor/crypto-helpers.bundle.min.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/feedEngine/sources.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/feedEngine/sorters.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/feedEngine/engine.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/feedEngine/watchHistoryFeed.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/utils/hex.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/utils/qrcode.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/utils/storage.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/state/profileSettingsStore.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/utils/mediaLoader.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/historyView.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/watchHistoryController.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/services/playbackService.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/services/watchHistoryTelemetry.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/services/discussionCountService.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/services/commentThreadService.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/services/nwcSettingsService.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/profileIdentityController.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/videoListViewController.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/moreMenuController.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/ModalManager.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/profileModalController.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/appChromeController.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/nostr/countDiagnostics.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/videoEventUtils.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/nostr/maxListenerDiagnostics.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/nostr/sessionActor.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/nostrWatchHistoryFacade.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/components/VideoModal.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/nwcSettings.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/designSystem/dynamicStyles.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/initUploadModal.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/components/RevertModal.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/initEditModal.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/initDeleteModal.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/zapController.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/components/EventDetailsModal.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/ambientBackground.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/components/video-modal/commentsController.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/components/video-modal/moderationController.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/components/video-modal/similarContentController.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/components/video-modal/utils/commentAvatar.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/components/video-modal/reactionsController.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/components/SimilarContentCard.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/components/EditModal.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/components/DeleteModal.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/components/UploadModal.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/ui/components/nip71FormManager.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /js/utils/torrentHash.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /components/login-modal.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /components/application-form.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /components/content-appeals-form.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /components/feature-request-form.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /components/general-feedback-form.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /components/bug-fix-form.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /components/upload-modal.html HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /components/video-modal.html HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /components/edit-video-modal.html HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:45] "GET /components/profile-modal.html HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /components/iframe_forms/iframe-application-form.html HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /components/iframe_forms/iframe-content-appeals-form.html HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /components/iframe_forms/iframe-request-form.html HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /components/iframe_forms/iframe-feedback-form.html HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /components/iframe_forms/iframe-bug-fix-form.html HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /components/sidebar.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /css/tailwind.generated.css HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /components/iframe_forms/theme-sync.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /assets/png/favicon-32x32.png HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /views/most-recent-videos.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /assets/svg/explore-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /assets/svg/recent-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /assets/svg/history-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /assets/svg/subscriptions-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /assets/svg/ellipsis.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /assets/svg/about-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /assets/svg/guidelines-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /assets/svg/upload-content-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /assets/svg/nostr-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /assets/svg/getting-started-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /assets/svg/roadmap-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /assets/svg/blog-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /assets/svg/beacon-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /assets/svg/github-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /assets/svg/beta-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /assets/svg/ipns-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /assets/svg/dns-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /assets/svg/links-icon.svg HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /js/sidebar.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /js/index.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /components/general-feedback-form.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /components/application-form.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /components/feature-request-form.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /components/content-appeals-form.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /components/login-modal.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /components/bug-fix-form.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /components/disclaimer.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /views/most-recent-videos.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /components/sidebar.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /js/disclaimer.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:46] "GET /views/most-recent-videos.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:47] "GET /components/disclaimer.html?v=2024.11.09 HTTP/1.1" 200 -
127.0.0.1 - - [16/Jan/2026 13:29:47] "GET /views/most-recent-videos.html?v=2024.11.09 HTTP/1.1" 200 -