code renames/reordering around feed subscriptions

This commit is contained in:
Mike Dilger 2024-04-11 12:08:28 +12:00
parent cdf88ae0a0
commit 11c81ba2bd
4 changed files with 39 additions and 39 deletions

View File

@ -252,7 +252,7 @@ pub(crate) enum ToMinionPayloadDetail {
PostEvents(Vec<Event>),
Shutdown,
SubscribeAugments(Vec<IdHex>),
SubscribeOutbox,
SubscribeConfig,
SubscribeDiscover(Vec<PublicKey>),
SubscribeGeneralFeed(Vec<PublicKey>),
SubscribeInbox,

View File

@ -29,22 +29,7 @@ pub fn general_feed(
filters
}
pub fn augments(ids: &[IdHex]) -> Vec<Filter> {
let event_kinds = crate::feed::feed_augment_event_kinds();
let filter = {
let mut filter = Filter {
kinds: event_kinds,
..Default::default()
};
filter.set_tag_values('e', ids.iter().map(|id| id.to_string()).collect());
filter
};
vec![filter]
}
pub fn inbox(since: Unixtime, until: Option<Unixtime>, spamsafe: bool) -> Vec<Filter> {
pub fn inbox_feed(since: Unixtime, until: Option<Unixtime>, spamsafe: bool) -> Vec<Filter> {
let mut filters: Vec<Filter> = Vec::new();
// GiftWrap lookback needs to be one week further back
@ -107,7 +92,35 @@ pub fn inbox(since: Unixtime, until: Option<Unixtime>, spamsafe: bool) -> Vec<Fi
filters
}
pub fn outbox(since: Unixtime) -> Vec<Filter> {
pub fn person_feed(pubkey: PublicKey, since: Unixtime, until: Option<Unixtime>) -> Vec<Filter> {
// Allow all feed related event kinds (excluding DMs)
let event_kinds = crate::feed::feed_displayable_event_kinds(false);
vec![Filter {
authors: vec![pubkey.into()],
kinds: event_kinds,
since: Some(since),
until,
..Default::default()
}]
}
pub fn augments(ids: &[IdHex]) -> Vec<Filter> {
let event_kinds = crate::feed::feed_augment_event_kinds();
let filter = {
let mut filter = Filter {
kinds: event_kinds,
..Default::default()
};
filter.set_tag_values('e', ids.iter().map(|id| id.to_string()).collect());
filter
};
vec![filter]
}
pub fn config(since: Unixtime) -> Vec<Filter> {
if let Some(pubkey) = GLOBALS.identity.public_key() {
let pkh: PublicKeyHex = pubkey.into();
let giftwrap_since = Unixtime(since.0 - 60 * 60 * 24 * 7);
@ -162,19 +175,6 @@ pub fn discover(pubkeys: &[PublicKey]) -> Vec<Filter> {
}]
}
pub fn person_feed(pubkey: PublicKey, since: Unixtime, until: Option<Unixtime>) -> Vec<Filter> {
// Allow all feed related event kinds (excluding DMs)
let event_kinds = crate::feed::feed_displayable_event_kinds(false);
vec![Filter {
authors: vec![pubkey.into()],
kinds: event_kinds,
since: Some(since),
until,
..Default::default()
}]
}
// ancestors can be done with FetchEvent, FetchEventAddr
pub fn replies(main: IdHex, spamsafe: bool) -> Vec<Filter> {

View File

@ -556,8 +556,8 @@ impl Minion {
ToMinionPayloadDetail::SubscribeInbox => {
self.subscribe_inbox(message.job_id).await?;
}
ToMinionPayloadDetail::SubscribeOutbox => {
self.subscribe_outbox(message.job_id).await?;
ToMinionPayloadDetail::SubscribeConfig => {
self.subscribe_config(message.job_id).await?;
}
ToMinionPayloadDetail::SubscribeDiscover(pubkeys) => {
self.subscribe_discover(message.job_id, pubkeys).await?;
@ -714,7 +714,7 @@ impl Minion {
let spamsafe = self.dbrelay.has_usage_bits(Relay::SPAMSAFE);
let filters = filter_fns::inbox(replies_since, None, spamsafe);
let filters = filter_fns::inbox_feed(replies_since, None, spamsafe);
if filters.is_empty() {
return Ok(());
@ -737,11 +737,11 @@ impl Minion {
Ok(())
}
// Subscribe to the user's output (config, DMs, etc) which is on their own write relays
async fn subscribe_outbox(&mut self, job_id: u64) -> Result<(), Error> {
// Subscribe to the user's config (config, DMs, etc) which is on their own write relays
async fn subscribe_config(&mut self, job_id: u64) -> Result<(), Error> {
let since = self.compute_since(GLOBALS.storage.read_setting_person_feed_chunk());
let filters = filter_fns::outbox(since);
let filters = filter_fns::config(since);
if filters.is_empty() {
return Ok(());
@ -831,7 +831,7 @@ impl Minion {
let spamsafe = self.dbrelay.has_usage_bits(Relay::SPAMSAFE);
let filters = filter_fns::inbox(since, Some(until), spamsafe);
let filters = filter_fns::inbox_feed(since, Some(until), spamsafe);
if filters.is_empty() {
self.to_overlord.send(ToOverlordMessage::MinionJobComplete(

View File

@ -2906,7 +2906,7 @@ impl Overlord {
reason: RelayConnectionReason::Config,
payload: ToMinionPayload {
job_id: rand::random::<u64>(),
detail: ToMinionPayloadDetail::SubscribeOutbox,
detail: ToMinionPayloadDetail::SubscribeConfig,
},
}],
)