MCPcopy Index your code
hub / github.com/HelloZeroNet/ZeroNet / actionFindHashIds

Method actionFindHashIds

src/File/FileRequest.py:384–411  ·  view source on GitHub ↗
(self, params)

Source from the content-addressed store, hash-verified

382 return back
383
384 def actionFindHashIds(self, params):
385 site = self.sites.get(params["site"])
386 s = time.time()
387 if not site or not site.isServing(): # Site unknown or not serving
388 self.response({"error": "Unknown site"})
389 self.connection.badAction(5)
390 return False
391
392 event_key = "%s_findHashIds_%s_%s" % (self.connection.ip, params["site"], len(params["hash_ids"]))
393 if self.connection.cpu_time > 0.5 or not RateLimit.isAllowed(event_key, 60 * 5):
394 time.sleep(0.1)
395 back = self.findHashIds(site, params["hash_ids"], limit=10)
396 else:
397 back = self.findHashIds(site, params["hash_ids"])
398 RateLimit.called(event_key)
399
400 my_hashes = []
401 my_hashfield_set = set(site.content_manager.hashfield)
402 for hash_id in params["hash_ids"]:
403 if hash_id in my_hashfield_set:
404 my_hashes.append(hash_id)
405
406 if config.verbose:
407 self.log.debug(
408 "Found: %s for %s hashids in %.3fs" %
409 ({key: len(val) for key, val in back.items()}, len(params["hash_ids"]), time.time() - s)
410 )
411 self.response({"peers": back["ipv4"], "peers_onion": back["onion"], "peers_ipv6": back["ipv6"], "my": my_hashes})
412
413 def actionSetHashfield(self, params):
414 site = self.sites.get(params["site"])

Callers

nothing calls this directly

Calls 6

responseMethod · 0.95
findHashIdsMethod · 0.95
isServingMethod · 0.80
badActionMethod · 0.80
itemsMethod · 0.80
getMethod · 0.45

Tested by

no test coverage detected