From d125551c0de2b0fcbf6a95310b3f221782c117a6 Mon Sep 17 00:00:00 2001 From: shortcutme Date: Sun, 3 Jun 2018 12:46:00 +0200 Subject: [PATCH] Proritize currently requested site update --- src/Site/Site.py | 1 - src/Ui/UiRequest.py | 7 +++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Site/Site.py b/src/Site/Site.py index d063a576..5bb0931a 100644 --- a/src/Site/Site.py +++ b/src/Site/Site.py @@ -41,7 +41,6 @@ class Site(object): self.peers = {} # Key: ip:port, Value: Peer.Peer self.peers_recent = collections.deque(maxlen=100) self.peer_blacklist = SiteManager.peer_blacklist # Ignore this peers (eg. myself) - self.time_announce = 0 # Last announce time to tracker self.worker_manager = WorkerManager(self) # Handle site download from other peers self.bad_files = {} # SHA check failed files, need to redownload {"inner.content": 1} (key: file, value: failed accept) self.content_updated = None # Content.js update time diff --git a/src/Ui/UiRequest.py b/src/Ui/UiRequest.py index 917c4f62..604dea5f 100644 --- a/src/Ui/UiRequest.py +++ b/src/Ui/UiRequest.py @@ -5,6 +5,8 @@ import mimetypes import json import cgi +import gevent + from Config import config from Site import SiteManager from User import UserManager @@ -307,6 +309,11 @@ class UiRequest(object): return False self.sendHeader(extra_headers=extra_headers) + + if time.time() - site.announcer.time_last_announce > 60 * 60: + site.log.debug("Site requested, but not announced recently. Updating...") + gevent.spawn(site.update, announce=True) + return iter([self.renderWrapper(site, path, inner_path, title, extra_headers)]) # Make response be sent at once (see https://github.com/HelloZeroNet/ZeroNet/issues/1092)