profile: fetch new metadata when visiting profiles
This ensures we always have the latest data Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
@@ -5,7 +5,7 @@ use enostr::{Filter, NoteId, Pubkey};
|
||||
use nostrdb::{Ndb, Transaction};
|
||||
use notedeck::{
|
||||
contacts::{contacts_filter, hybrid_contacts_filter},
|
||||
filter::{self, default_limit},
|
||||
filter::{self, default_limit, default_remote_limit, HybridFilter},
|
||||
FilterError, FilterState, NoteCache, RootIdError, RootNoteIdBuf,
|
||||
};
|
||||
use serde::{Deserialize, Serialize};
|
||||
@@ -468,11 +468,7 @@ impl TimelineKind {
|
||||
todo!("implement generic filter lookups")
|
||||
}
|
||||
|
||||
TimelineKind::Profile(pk) => FilterState::ready(vec![Filter::new()
|
||||
.authors([pk.bytes()])
|
||||
.kinds([1])
|
||||
.limit(default_limit())
|
||||
.build()]),
|
||||
TimelineKind::Profile(pk) => FilterState::ready_hybrid(profile_filter(pk.bytes())),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -535,19 +531,11 @@ impl TimelineKind {
|
||||
}
|
||||
}
|
||||
|
||||
TimelineKind::Profile(pk) => {
|
||||
let filter = Filter::new()
|
||||
.authors([pk.bytes()])
|
||||
.kinds([1])
|
||||
.limit(default_limit())
|
||||
.build();
|
||||
|
||||
Some(Timeline::new(
|
||||
TimelineKind::profile(pk),
|
||||
FilterState::ready(vec![filter]),
|
||||
TimelineTab::full_tabs(),
|
||||
))
|
||||
}
|
||||
TimelineKind::Profile(pk) => Some(Timeline::new(
|
||||
TimelineKind::profile(pk),
|
||||
FilterState::ready_hybrid(profile_filter(pk.bytes())),
|
||||
TimelineTab::full_tabs(),
|
||||
)),
|
||||
|
||||
TimelineKind::Notifications(pk) => {
|
||||
let notifications_filter = Filter::new()
|
||||
@@ -690,6 +678,21 @@ fn last_per_pubkey_filter_state(ndb: &Ndb, pk: &Pubkey) -> FilterState {
|
||||
}
|
||||
}
|
||||
|
||||
fn profile_filter(pk: &[u8; 32]) -> HybridFilter {
|
||||
HybridFilter::split(
|
||||
vec![Filter::new()
|
||||
.authors([pk])
|
||||
.kinds([1])
|
||||
.limit(default_limit())
|
||||
.build()],
|
||||
vec![Filter::new()
|
||||
.authors([pk])
|
||||
.kinds([1, 0])
|
||||
.limit(default_remote_limit())
|
||||
.build()],
|
||||
)
|
||||
}
|
||||
|
||||
fn search_filter(s: &SearchQuery) -> Vec<Filter> {
|
||||
vec![s.filter().limit(default_limit()).build()]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user