mirror of
https://github.com/PR0M3TH3AN/SeedPass.git
synced 2025-09-08 07:18:47 +00:00
Improve sync error reporting
This commit is contained in:
@@ -467,17 +467,39 @@ class NostrClient:
|
||||
return None
|
||||
await self._connect_async()
|
||||
|
||||
self.last_error = None
|
||||
pubkey = self.keys.public_key()
|
||||
f = Filter().author(pubkey).kind(Kind(KIND_MANIFEST)).limit(3)
|
||||
timeout = timedelta(seconds=10)
|
||||
events = (await self.client.fetch_events(f, timeout)).to_vec()
|
||||
try:
|
||||
events = (await self.client.fetch_events(f, timeout)).to_vec()
|
||||
except Exception as e: # pragma: no cover - network errors
|
||||
self.last_error = str(e)
|
||||
logger.error(
|
||||
"Failed to fetch manifest from relays %s: %s",
|
||||
self.relays,
|
||||
e,
|
||||
)
|
||||
return None
|
||||
|
||||
if not events:
|
||||
return None
|
||||
|
||||
for manifest_event in events:
|
||||
result = await self._fetch_chunks_with_retry(manifest_event)
|
||||
if result is not None:
|
||||
return result
|
||||
try:
|
||||
result = await self._fetch_chunks_with_retry(manifest_event)
|
||||
if result is not None:
|
||||
return result
|
||||
except Exception as e: # pragma: no cover - network errors
|
||||
self.last_error = str(e)
|
||||
logger.error(
|
||||
"Error retrieving snapshot from relays %s: %s",
|
||||
self.relays,
|
||||
e,
|
||||
)
|
||||
|
||||
if self.last_error is None:
|
||||
self.last_error = "Snapshot not found on relays"
|
||||
|
||||
return None
|
||||
|
||||
|
@@ -1162,6 +1162,16 @@ class PasswordManager:
|
||||
try:
|
||||
result = await self.nostr_client.fetch_latest_snapshot()
|
||||
if not result:
|
||||
if self.nostr_client.last_error:
|
||||
logger.warning(
|
||||
"Unable to fetch latest snapshot from Nostr relays %s: %s",
|
||||
self.nostr_client.relays,
|
||||
self.nostr_client.last_error,
|
||||
)
|
||||
self.notify(
|
||||
f"Sync failed: {self.nostr_client.last_error}",
|
||||
level="WARNING",
|
||||
)
|
||||
return
|
||||
manifest, chunks = result
|
||||
encrypted = gzip.decompress(b"".join(chunks))
|
||||
@@ -1177,7 +1187,19 @@ class PasswordManager:
|
||||
):
|
||||
logger.info("Local database synchronized from Nostr.")
|
||||
except Exception as e:
|
||||
logger.warning(f"Unable to sync index from Nostr: {e}")
|
||||
logger.warning(
|
||||
"Unable to sync index from Nostr relays %s: %s",
|
||||
self.nostr_client.relays,
|
||||
e,
|
||||
)
|
||||
if self.nostr_client.last_error:
|
||||
logger.warning(
|
||||
"NostrClient last error: %s", self.nostr_client.last_error
|
||||
)
|
||||
self.notify(
|
||||
f"Sync failed: {self.nostr_client.last_error or e}",
|
||||
level="WARNING",
|
||||
)
|
||||
finally:
|
||||
if getattr(self, "verbose_timing", False):
|
||||
duration = time.perf_counter() - start
|
||||
|
Reference in New Issue
Block a user