mirror of
https://github.com/mikedilger/gossip.git
synced 2024-09-30 00:41:42 +00:00
cleanup
This commit is contained in:
parent
52e6d83861
commit
bcad46849a
@ -201,7 +201,12 @@ impl Globals {
|
||||
relays: Vec::new(),
|
||||
};
|
||||
|
||||
for ri in GLOBALS.relay_tracker.all_relays.iter().filter(|ri| ri.value().write) {
|
||||
for ri in GLOBALS
|
||||
.relay_tracker
|
||||
.all_relays
|
||||
.iter()
|
||||
.filter(|ri| ri.value().write)
|
||||
{
|
||||
profile.relays.push(ri.key().to_unchecked_url())
|
||||
}
|
||||
|
||||
@ -216,7 +221,7 @@ impl Globals {
|
||||
.all_relays
|
||||
.iter()
|
||||
.filter_map(|r| {
|
||||
if f(&r.value()) {
|
||||
if f(r.value()) {
|
||||
Some(r.value().clone())
|
||||
} else {
|
||||
None
|
||||
@ -233,7 +238,7 @@ impl Globals {
|
||||
.all_relays
|
||||
.iter()
|
||||
.filter_map(|r| {
|
||||
if f(&r.value()) {
|
||||
if f(r.value()) {
|
||||
Some(r.key().clone())
|
||||
} else {
|
||||
None
|
||||
|
@ -1,4 +1,6 @@
|
||||
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] // hide console window on Windows in release
|
||||
// TEMPORARILY
|
||||
#![allow(clippy::uninlined_format_args)]
|
||||
|
||||
#[macro_use]
|
||||
extern crate lazy_static;
|
||||
|
@ -125,7 +125,8 @@ async fn update_relays(
|
||||
let db_relay = DbRelay::new(relay_url.clone());
|
||||
DbRelay::insert(db_relay.clone()).await?;
|
||||
|
||||
if let Entry::Vacant(entry) = GLOBALS.relay_tracker.all_relays.entry(relay_url.clone()) {
|
||||
if let Entry::Vacant(entry) = GLOBALS.relay_tracker.all_relays.entry(relay_url.clone())
|
||||
{
|
||||
entry.insert(db_relay);
|
||||
}
|
||||
|
||||
|
@ -53,9 +53,10 @@ impl Minion {
|
||||
)
|
||||
.await?;
|
||||
// set in globals
|
||||
if let Some(mut dbrelay) = GLOBALS.relay_tracker.all_relays.get_mut(&self.dbrelay.url) {
|
||||
dbrelay.last_general_eose_at =
|
||||
Some(event.created_at.0 as u64);
|
||||
if let Some(mut dbrelay) =
|
||||
GLOBALS.relay_tracker.all_relays.get_mut(&self.dbrelay.url)
|
||||
{
|
||||
dbrelay.last_general_eose_at = Some(event.created_at.0 as u64);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -96,10 +96,10 @@ impl Overlord {
|
||||
{
|
||||
let mut all_relays: Vec<DbRelay> = DbRelay::fetch(None).await?;
|
||||
for dbrelay in all_relays.drain(..) {
|
||||
GLOBALS.relay_tracker.all_relays.insert(
|
||||
dbrelay.url.clone(),
|
||||
dbrelay
|
||||
);
|
||||
GLOBALS
|
||||
.relay_tracker
|
||||
.all_relays
|
||||
.insert(dbrelay.url.clone(), dbrelay);
|
||||
}
|
||||
}
|
||||
|
||||
@ -259,7 +259,11 @@ impl Overlord {
|
||||
}
|
||||
Ok(relay_url) => {
|
||||
if let Some(elem) = GLOBALS.relay_tracker.relay_assignments.get(&relay_url) {
|
||||
tracing::debug!("Picked {} covering {} pubkeys", &relay_url, elem.value().pubkeys.len());
|
||||
tracing::debug!(
|
||||
"Picked {} covering {} pubkeys",
|
||||
&relay_url,
|
||||
elem.value().pubkeys.len()
|
||||
);
|
||||
// Apply the relay assignment
|
||||
if let Err(e) = self.apply_relay_assignment(elem.value().to_owned()).await {
|
||||
tracing::error!("{}", e);
|
||||
@ -283,9 +287,7 @@ impl Overlord {
|
||||
// Subscribe to the general feed
|
||||
let _ = self.to_minions.send(ToMinionMessage {
|
||||
target: assignment.relay_url.0.clone(),
|
||||
payload: ToMinionPayload::SubscribeGeneralFeed(
|
||||
assignment.pubkeys.clone(),
|
||||
),
|
||||
payload: ToMinionPayload::SubscribeGeneralFeed(assignment.pubkeys.clone()),
|
||||
});
|
||||
|
||||
// Until NIP-65 is in widespread use, we should listen for mentions
|
||||
@ -410,7 +412,11 @@ impl Overlord {
|
||||
|
||||
async fn recover_from_minion_exit(&mut self, url: RelayUrl) {
|
||||
GLOBALS.relay_tracker.relay_disconnected(&url);
|
||||
if let Err(e) = GLOBALS.relay_tracker.refresh_person_relay_scores(false).await {
|
||||
if let Err(e) = GLOBALS
|
||||
.relay_tracker
|
||||
.refresh_person_relay_scores(false)
|
||||
.await
|
||||
{
|
||||
tracing::error!("Error: {}", e);
|
||||
}
|
||||
self.pick_relays().await;
|
||||
@ -421,10 +427,7 @@ impl Overlord {
|
||||
ToOverlordMessage::AddRelay(relay_str) => {
|
||||
let dbrelay = DbRelay::new(relay_str.clone());
|
||||
DbRelay::insert(dbrelay.clone()).await?;
|
||||
GLOBALS.relay_tracker.all_relays.insert(
|
||||
relay_str,
|
||||
dbrelay
|
||||
);
|
||||
GLOBALS.relay_tracker.all_relays.insert(relay_str, dbrelay);
|
||||
}
|
||||
ToOverlordMessage::AdvertiseRelayList => {
|
||||
self.advertise_relay_list().await?;
|
||||
@ -447,11 +450,11 @@ impl Overlord {
|
||||
Overlord::follow_pubkey_and_relay(pubkeystr, relay).await?;
|
||||
}
|
||||
ToOverlordMessage::FollowNip05(nip05) => {
|
||||
let _ = tokio::spawn(async move {
|
||||
std::mem::drop(tokio::spawn(async move {
|
||||
if let Err(e) = crate::nip05::get_and_follow_nip05(nip05).await {
|
||||
tracing::error!("{}", e);
|
||||
}
|
||||
});
|
||||
}));
|
||||
}
|
||||
ToOverlordMessage::FollowNprofile(nprofile) => {
|
||||
match Profile::try_from_bech32_string(&nprofile) {
|
||||
@ -508,19 +511,19 @@ impl Overlord {
|
||||
// Clear new events
|
||||
GLOBALS.events.clear_new();
|
||||
|
||||
let _ = tokio::spawn(async move {
|
||||
std::mem::drop(tokio::spawn(async move {
|
||||
for (event, url, sub) in GLOBALS.incoming_events.write().await.drain(..) {
|
||||
let _ =
|
||||
crate::process::process_new_event(&event, true, Some(url), sub).await;
|
||||
}
|
||||
});
|
||||
}));
|
||||
}
|
||||
ToOverlordMessage::PruneDatabase => {
|
||||
let _ = tokio::spawn(async move {
|
||||
std::mem::drop(tokio::spawn(async move {
|
||||
if let Err(e) = crate::db::prune().await {
|
||||
tracing::error!("{}", e);
|
||||
}
|
||||
});
|
||||
}));
|
||||
}
|
||||
ToOverlordMessage::Post(content, tags, reply_to) => {
|
||||
self.post(content, tags, reply_to).await?;
|
||||
@ -1170,7 +1173,9 @@ impl Overlord {
|
||||
let db_relay = DbRelay::new(relay_url.clone());
|
||||
DbRelay::insert(db_relay.clone()).await?;
|
||||
|
||||
if let Entry::Vacant(entry) = GLOBALS.relay_tracker.all_relays.entry(relay_url.clone()) {
|
||||
if let Entry::Vacant(entry) =
|
||||
GLOBALS.relay_tracker.all_relays.entry(relay_url.clone())
|
||||
{
|
||||
entry.insert(db_relay);
|
||||
}
|
||||
|
||||
|
@ -16,7 +16,9 @@ pub struct RelayAssignment {
|
||||
impl RelayAssignment {
|
||||
pub fn merge_in(&mut self, other: RelayAssignment) -> Result<(), Error> {
|
||||
if self.relay_url != other.relay_url {
|
||||
return Err(Error::General("Attempted to merge relay assignments on different relays".to_owned()));
|
||||
return Err(Error::General(
|
||||
"Attempted to merge relay assignments on different relays".to_owned(),
|
||||
));
|
||||
}
|
||||
self.pubkeys.extend(other.pubkeys);
|
||||
Ok(())
|
||||
@ -42,7 +44,9 @@ impl fmt::Display for RelayPickFailure {
|
||||
match *self {
|
||||
RelayPickFailure::NoPeopleLeft => write!(f, "All people accounted for."),
|
||||
RelayPickFailure::NoProgress => write!(f, "Unable to make further progress."),
|
||||
RelayPickFailure::MaxConnectedRelays => write!(f, "We have hit the maximum number of connected relays"),
|
||||
RelayPickFailure::MaxConnectedRelays => {
|
||||
write!(f, "We have hit the maximum number of connected relays")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -162,11 +166,7 @@ impl RelayTracker {
|
||||
pub async fn pick(&self) -> Result<RelayUrl, RelayPickFailure> {
|
||||
// Maybe we hit max
|
||||
let max_relays = GLOBALS.settings.read().await.max_relays as usize;
|
||||
if self
|
||||
.relay_assignments
|
||||
.len()
|
||||
>= max_relays
|
||||
{
|
||||
if self.relay_assignments.len() >= max_relays {
|
||||
return Err(RelayPickFailure::MaxConnectedRelays);
|
||||
}
|
||||
|
||||
@ -281,7 +281,8 @@ impl RelayTracker {
|
||||
// FIXME this could cause a panic, but it would mean we have bad code.
|
||||
maybe_elem.value_mut().merge_in(assignment).unwrap();
|
||||
} else {
|
||||
self.relay_assignments.insert(winning_url.clone(), assignment);
|
||||
self.relay_assignments
|
||||
.insert(winning_url.clone(), assignment);
|
||||
}
|
||||
|
||||
Ok(winning_url)
|
||||
|
@ -23,7 +23,12 @@ pub(super) fn posting_area(
|
||||
}
|
||||
ui.label(" to post.");
|
||||
});
|
||||
} else if !GLOBALS.relay_tracker.all_relays.iter().any(|r| r.value().write) {
|
||||
} else if !GLOBALS
|
||||
.relay_tracker
|
||||
.all_relays
|
||||
.iter()
|
||||
.any(|r| r.value().write)
|
||||
{
|
||||
ui.horizontal_wrapped(|ui| {
|
||||
ui.label("You need to ");
|
||||
if ui.link("choose write relays").clicked() {
|
||||
|
@ -65,7 +65,9 @@ pub(super) fn update(app: &mut GossipUi, ctx: &Context, frame: &mut eframe::Fram
|
||||
ui.label(&relay_url.0);
|
||||
});
|
||||
row.col(|ui| {
|
||||
if let Some(ref assignment) = GLOBALS.relay_tracker.relay_assignments.get(relay_url) {
|
||||
if let Some(ref assignment) =
|
||||
GLOBALS.relay_tracker.relay_assignments.get(relay_url)
|
||||
{
|
||||
ui.label(format!("{}", assignment.pubkeys.len()));
|
||||
}
|
||||
});
|
||||
@ -80,11 +82,7 @@ pub(super) fn update(app: &mut GossipUi, ctx: &Context, frame: &mut eframe::Fram
|
||||
ui.add_space(12.0);
|
||||
ui.heading("Coverage");
|
||||
|
||||
if !GLOBALS
|
||||
.relay_tracker
|
||||
.pubkey_counts
|
||||
.is_empty()
|
||||
{
|
||||
if !GLOBALS.relay_tracker.pubkey_counts.is_empty() {
|
||||
for elem in GLOBALS.relay_tracker.pubkey_counts.iter() {
|
||||
let pk = elem.key();
|
||||
let count = elem.value();
|
||||
|
Loading…
Reference in New Issue
Block a user