mirror of
https://github.com/mikedilger/gossip.git
synced 2024-09-20 03:57:03 +00:00
code renames/reordering around feed subscriptions
This commit is contained in:
parent
cdf88ae0a0
commit
11c81ba2bd
@ -252,7 +252,7 @@ pub(crate) enum ToMinionPayloadDetail {
|
||||
PostEvents(Vec<Event>),
|
||||
Shutdown,
|
||||
SubscribeAugments(Vec<IdHex>),
|
||||
SubscribeOutbox,
|
||||
SubscribeConfig,
|
||||
SubscribeDiscover(Vec<PublicKey>),
|
||||
SubscribeGeneralFeed(Vec<PublicKey>),
|
||||
SubscribeInbox,
|
||||
|
@ -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> {
|
||||
|
@ -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(
|
||||
|
@ -2906,7 +2906,7 @@ impl Overlord {
|
||||
reason: RelayConnectionReason::Config,
|
||||
payload: ToMinionPayload {
|
||||
job_id: rand::random::<u64>(),
|
||||
detail: ToMinionPayloadDetail::SubscribeOutbox,
|
||||
detail: ToMinionPayloadDetail::SubscribeConfig,
|
||||
},
|
||||
}],
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user