MCPcopy
hub / github.com/HelloZeroNet/ZeroNet / sitePublish

Method sitePublish

src/main.py:372–412  ·  view source on GitHub ↗
(self, address, peer_ip=None, peer_port=15441, inner_path="content.json")

Source from the content-addressed store, hash-verified

370 return ws
371
372 def sitePublish(self, address, peer_ip=None, peer_port=15441, inner_path="content.json"):
373 global file_server
374 from Site.Site import Site
375 from Site import SiteManager
376 from File import FileServer # We need fileserver to handle incoming file requests
377 from Peer import Peer
378 file_server = FileServer()
379 site = SiteManager.site_manager.get(address)
380 logging.info("Loading site...")
381 site.settings["serving"] = True # Serving the site even if its disabled
382
383 try:
384 ws = self.getWebsocket(site)
385 logging.info("Sending siteReload")
386 self.siteCmd(address, "siteReload", inner_path)
387
388 logging.info("Sending sitePublish")
389 self.siteCmd(address, "sitePublish", {"inner_path": inner_path, "sign": False})
390 logging.info("Done.")
391
392 except Exception as err:
393 logging.info("Can't connect to local websocket client: %s" % err)
394 logging.info("Creating FileServer....")
395 file_server_thread = gevent.spawn(file_server.start, check_sites=False) # Dont check every site integrity
396 time.sleep(0.001)
397
398 # Started fileserver
399 file_server.portCheck()
400 if peer_ip: # Announce ip specificed
401 site.addPeer(peer_ip, peer_port)
402 else: # Just ask the tracker
403 logging.info("Gathering peers from tracker")
404 site.announce() # Gather peers
405 published = site.publish(5, inner_path) # Push to peers
406 if published > 0:
407 time.sleep(3)
408 logging.info("Serving files (max 60s)...")
409 gevent.joinall([file_server_thread], timeout=60)
410 logging.info("Done.")
411 else:
412 logging.info("No peers found, sitePublish command only works if you already have visitors serving your site")
413
414 # Crypto commands
415 def cryptPrivatekeyToAddress(self, privatekey=None):

Callers 2

siteSignMethod · 0.95
all.jsFile · 0.80

Calls 8

getWebsocketMethod · 0.95
siteCmdMethod · 0.95
portCheckMethod · 0.95
FileServerClass · 0.90
addPeerMethod · 0.80
getMethod · 0.45
announceMethod · 0.45
publishMethod · 0.45

Tested by

no test coverage detected