mirror of
https://github.com/PR0M3TH3AN/SeedPass.git
synced 2025-09-08 23:38:49 +00:00
feat: add manifest identifier fallback logging
This commit is contained in:
@@ -521,12 +521,23 @@ class NostrClient:
|
|||||||
|
|
||||||
self.keys = keys_obj
|
self.keys = keys_obj
|
||||||
pubkey = self.keys.public_key()
|
pubkey = self.keys.public_key()
|
||||||
identifiers = [
|
|
||||||
f"{MANIFEST_ID_PREFIX}{self.fingerprint}",
|
|
||||||
MANIFEST_ID_PREFIX.rstrip("-"),
|
|
||||||
]
|
|
||||||
timeout = timedelta(seconds=10)
|
timeout = timedelta(seconds=10)
|
||||||
for ident in identifiers:
|
|
||||||
|
ident = f"{MANIFEST_ID_PREFIX}{self.fingerprint}"
|
||||||
|
f = Filter().author(pubkey).kind(Kind(KIND_MANIFEST)).identifier(ident).limit(1)
|
||||||
|
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:
|
||||||
|
ident = MANIFEST_ID_PREFIX.rstrip("-")
|
||||||
f = (
|
f = (
|
||||||
Filter()
|
Filter()
|
||||||
.author(pubkey)
|
.author(pubkey)
|
||||||
@@ -544,25 +555,24 @@ class NostrClient:
|
|||||||
e,
|
e,
|
||||||
)
|
)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
if not events:
|
if not events:
|
||||||
continue
|
return None
|
||||||
|
|
||||||
for manifest_event in events:
|
logger.info("Fetched manifest using identifier %s", ident)
|
||||||
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,
|
|
||||||
)
|
|
||||||
# manifest was found but chunks missing; do not try other identifiers
|
|
||||||
return None
|
|
||||||
|
|
||||||
|
for manifest_event in events:
|
||||||
|
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,
|
||||||
|
)
|
||||||
|
# manifest was found but chunks missing
|
||||||
return None
|
return None
|
||||||
|
|
||||||
async def fetch_latest_snapshot(self) -> Tuple[Manifest, list[bytes]] | None:
|
async def fetch_latest_snapshot(self) -> Tuple[Manifest, list[bytes]] | None:
|
||||||
|
Reference in New Issue
Block a user