mirror of
https://github.com/coracle-social/flotilla.git
synced 2025-12-10 19:07:06 +00:00
Fix recent missing events in feeds
This commit is contained in:
@@ -5,6 +5,7 @@
|
|||||||
* Fix skinny profile images
|
* Fix skinny profile images
|
||||||
* Custom handler for relay urls
|
* Custom handler for relay urls
|
||||||
* Improve time based chat partitioning
|
* Improve time based chat partitioning
|
||||||
|
* Improve authenticated image access interop
|
||||||
|
|
||||||
# 1.6.0
|
# 1.6.0
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import {
|
|||||||
int,
|
int,
|
||||||
YEAR,
|
YEAR,
|
||||||
DAY,
|
DAY,
|
||||||
assoc,
|
|
||||||
insertAt,
|
insertAt,
|
||||||
sortBy,
|
sortBy,
|
||||||
now,
|
now,
|
||||||
@@ -33,7 +32,7 @@ import {load, request} from "@welshman/net"
|
|||||||
import {repository, makeFeedController, loadRelay, tracker} from "@welshman/app"
|
import {repository, makeFeedController, loadRelay, tracker} from "@welshman/app"
|
||||||
import {createScroller} from "@lib/html"
|
import {createScroller} from "@lib/html"
|
||||||
import {daysBetween} from "@lib/util"
|
import {daysBetween} from "@lib/util"
|
||||||
import {NOTIFIER_RELAY} from "@app/core/state"
|
import {NOTIFIER_RELAY, getEventsForUrl} from "@app/core/state"
|
||||||
|
|
||||||
// Utils
|
// Utils
|
||||||
|
|
||||||
@@ -48,12 +47,9 @@ export const makeFeed = ({
|
|||||||
element: HTMLElement
|
element: HTMLElement
|
||||||
onExhausted?: () => void
|
onExhausted?: () => void
|
||||||
}) => {
|
}) => {
|
||||||
const initialIds = Array.from(tracker.getIds(url))
|
const seen = new Set<string>()
|
||||||
const initialFilters = filters.map(assoc("ids", initialIds))
|
|
||||||
const initialEvents = repository.query(initialFilters)
|
|
||||||
const seen = new Set(initialEvents.map(e => e.id))
|
|
||||||
const controller = new AbortController()
|
const controller = new AbortController()
|
||||||
const buffer = writable(initialEvents)
|
const buffer = writable<TrustedEvent[]>([])
|
||||||
const events = writable<TrustedEvent[]>([])
|
const events = writable<TrustedEvent[]>([])
|
||||||
|
|
||||||
const insertEvent = (event: TrustedEvent) => {
|
const insertEvent = (event: TrustedEvent) => {
|
||||||
@@ -124,6 +120,10 @@ export const makeFeed = ({
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
for (const event of getEventsForUrl(url, filters)) {
|
||||||
|
insertEvent(event)
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
events,
|
events,
|
||||||
cleanup: () => {
|
cleanup: () => {
|
||||||
@@ -147,9 +147,6 @@ export const makeCalendarFeed = ({
|
|||||||
}) => {
|
}) => {
|
||||||
const interval = int(5, DAY)
|
const interval = int(5, DAY)
|
||||||
const controller = new AbortController()
|
const controller = new AbortController()
|
||||||
const initialIds = Array.from(tracker.getIds(url))
|
|
||||||
const initialFilters = filters.map(assoc("ids", initialIds))
|
|
||||||
const initialEvents = repository.query(initialFilters)
|
|
||||||
|
|
||||||
let exhaustedScrollers = 0
|
let exhaustedScrollers = 0
|
||||||
let backwardWindow = [now() - interval, now()]
|
let backwardWindow = [now() - interval, now()]
|
||||||
@@ -159,7 +156,7 @@ export const makeCalendarFeed = ({
|
|||||||
|
|
||||||
const getEnd = (event: TrustedEvent) => parseInt(getTagValue("end", event.tags) || "")
|
const getEnd = (event: TrustedEvent) => parseInt(getTagValue("end", event.tags) || "")
|
||||||
|
|
||||||
const events = writable(sortBy(getStart, initialEvents))
|
const events = writable(sortBy(getStart, getEventsForUrl(url, filters)))
|
||||||
|
|
||||||
const insertEvent = (event: TrustedEvent) => {
|
const insertEvent = (event: TrustedEvent) => {
|
||||||
const start = getStart(event)
|
const start = getStart(event)
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ import {
|
|||||||
deriveItemsByKey,
|
deriveItemsByKey,
|
||||||
deriveEventsByIdByUrl,
|
deriveEventsByIdByUrl,
|
||||||
deriveEventsByIdForUrl,
|
deriveEventsByIdForUrl,
|
||||||
|
getEventsByIdForUrl,
|
||||||
} from "@welshman/store"
|
} from "@welshman/store"
|
||||||
import {isKindFeed, findFeed} from "@welshman/feeds"
|
import {isKindFeed, findFeed} from "@welshman/feeds"
|
||||||
import {
|
import {
|
||||||
@@ -216,6 +217,9 @@ export const deriveEvent = makeDeriveEvent({
|
|||||||
onDerive: (filters: Filter[], relays: string[]) => load({filters, relays}),
|
onDerive: (filters: Filter[], relays: string[]) => load({filters, relays}),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
export const getEventsForUrl = (url: string, filters: Filter[]) =>
|
||||||
|
getEventsByIdForUrl({url, tracker, repository, filters}).values()
|
||||||
|
|
||||||
export const deriveEventsForUrl = (url: string, filters: Filter[]) =>
|
export const deriveEventsForUrl = (url: string, filters: Filter[]) =>
|
||||||
deriveArray(deriveEventsByIdForUrl({url, tracker, repository, filters}))
|
deriveArray(deriveEventsByIdForUrl({url, tracker, repository, filters}))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user