Constellation, Spacedust, Slingshot, UFOs: atproto crates and services for microcosm
0

Configure Feed

Select the types of activity you want to include in your feed.

did-filtering: ship it

+35 -17
+3 -3
constellation/src/storage/mem_store.rs
··· 186 186 187 187 let did_rkeys: Vec<_> = if let Some(dids) = filter_dids { 188 188 did_rkeys 189 - .into_iter() 190 - .cloned() 189 + .iter() 191 190 .filter(|m| { 192 - m.clone() 191 + Option::<(Did, RKey)>::clone(m) 193 192 .map(|(did, _)| dids.contains(&did)) 194 193 .unwrap_or(false) 195 194 }) 195 + .cloned() 196 196 .collect() 197 197 } else { 198 198 did_rkeys.to_vec()
+3 -3
constellation/src/storage/mod.rs
··· 782 782 storage.push( 783 783 &ActionableEvent::CreateLinks { 784 784 record_id: RecordId { 785 - did: format!("did:plc:linker").into(), 785 + did: "did:plc:linker".into(), 786 786 collection: "app.t.c".into(), 787 787 rkey: "asdf".into(), 788 788 }, ··· 835 835 storage.push( 836 836 &ActionableEvent::CreateLinks { 837 837 record_id: RecordId { 838 - did: format!("did:plc:linker").into(), 838 + did: "did:plc:linker".into(), 839 839 collection: "app.t.c".into(), 840 840 rkey: "asdf-2".into(), 841 841 }, ··· 849 849 storage.push( 850 850 &ActionableEvent::CreateLinks { 851 851 record_id: RecordId { 852 - did: format!("did:plc:someone-else").into(), 852 + did: "did:plc:someone-else".into(), 853 853 collection: "app.t.c".into(), 854 854 rkey: "asdf".into(), 855 855 },
+18 -1
constellation/src/storage/rocks_store.rs
··· 876 876 }); 877 877 }; 878 878 879 - let linkers = self.get_target_linkers(&target_id)?; 879 + let mut linkers = self.get_target_linkers(&target_id)?; 880 + if let Some(dids) = filter_dids { 881 + let mut did_filter = HashSet::new(); 882 + for did in dids { 883 + let Some(DidIdValue(did_id, active)) = 884 + self.did_id_table.get_id_val(&self.db, did)? 885 + else { 886 + eprintln!("failed to find a did_id for {did:?}"); 887 + continue; 888 + }; 889 + if !active { 890 + eprintln!("excluding inactive did from filtered results"); 891 + continue; 892 + } 893 + did_filter.insert(did_id); 894 + } 895 + linkers.0.retain(|linker| did_filter.contains(&linker.0)); 896 + } 880 897 881 898 let (alive, gone) = linkers.count(); 882 899 let total = alive + gone;