small fixes

This commit is contained in:
hzrd149
2023-09-21 13:16:54 -05:00
parent b8f20eaf8c
commit 763ea42b0e
2 changed files with 11 additions and 5 deletions

View File

@@ -35,12 +35,14 @@ export function parseStreamEvent(stream: NostrEvent): ParsedStream {
const summary = stream.tags.find((t) => t[0] === "summary")?.[1];
const image = stream.tags.find((t) => t[0] === "image")?.[1];
const starts = stream.tags.find((t) => t[0] === "starts")?.[1];
const endsTag = stream.tags.find((t) => t[0] === "ends")?.[1];
const ends = stream.tags.find((t) => t[0] === "ends")?.[1];
const streaming = stream.tags.find((t) => t[0] === "streaming")?.[1];
const recording = stream.tags.find((t) => t[0] === "recording")?.[1];
const goal = stream.tags.find((t) => t[0] === "goal")?.[1];
const identifier = stream.tags.find((t) => t[0] === "d")?.[1];
if (!identifier) throw new Error("missing identifier");
let relays = stream.tags.find((t) => t[0] === "relays");
// remove the first "relays" element
if (relays) {
@@ -49,11 +51,10 @@ export function parseStreamEvent(stream: NostrEvent): ParsedStream {
}
const startTime = starts ? parseInt(starts) : undefined;
const endTime = endsTag ? parseInt(endsTag) : undefined;
if (!identifier) throw new Error("missing identifier");
let endTime = ends ? parseInt(ends) : undefined;
let status = stream.tags.find((t) => t[0] === "status")?.[1] || "ended";
if (status === "ended" && endTime === undefined) endTime = stream.created_at;
if (endTime && endTime > dayjs().unix()) {
status = "ended";
}

View File

@@ -18,7 +18,11 @@ export default function useStreamChatTimeline(stream: ParsedStream) {
const muteFilter = useClientSideMuteFilter();
const eventFilter = useCallback(
(event: NostrEvent) => !(hostMuteFilter(event) || muteFilter(event)),
(event: NostrEvent) => {
if (stream.starts && event.created_at < stream.starts) return false;
if (stream.ends && event.created_at > stream.ends) return false;
return !(hostMuteFilter(event) || muteFilter(event));
},
[hostMuteFilter, muteFilter],
);
@@ -38,5 +42,6 @@ export default function useStreamChatTimeline(stream: ParsedStream) {
}
return streamQuery;
}, [stream, goal]);
return useTimelineLoader(`${getEventUID(stream.event)}-chat`, streamRelays, query, { eventFilter });
}