TrackerShare: rename the shared
key to trackers
key in the json file
and delete the unused `type` parameter
This commit is contained in:
parent
1f34f477ef
commit
b0005026b4
1 changed files with 18 additions and 18 deletions
|
@ -141,13 +141,13 @@ class TrackerStorage(object):
|
||||||
return protocols
|
return protocols
|
||||||
|
|
||||||
def getDefaultFile(self):
|
def getDefaultFile(self):
|
||||||
return {"shared": {}}
|
return {"trackers": {}}
|
||||||
|
|
||||||
def onTrackerFound(self, tracker_address, type="shared", my=False, persistent=False):
|
def onTrackerFound(self, tracker_address, my=False, persistent=False):
|
||||||
if not self.isTrackerAddressValid(tracker_address):
|
if not self.isTrackerAddressValid(tracker_address):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
trackers = self.getTrackers(type)
|
trackers = self.getTrackers()
|
||||||
added = False
|
added = False
|
||||||
if tracker_address not in trackers:
|
if tracker_address not in trackers:
|
||||||
# "My" trackers never get deleted on announce errors, but aren't saved between restarts.
|
# "My" trackers never get deleted on announce errors, but aren't saved between restarts.
|
||||||
|
@ -212,8 +212,8 @@ class TrackerStorage(object):
|
||||||
self.log.info("Tracker %s looks down, removing." % tracker_address)
|
self.log.info("Tracker %s looks down, removing." % tracker_address)
|
||||||
del trackers[tracker_address]
|
del trackers[tracker_address]
|
||||||
|
|
||||||
def isTrackerWorking(self, tracker_address, type="shared"):
|
def isTrackerWorking(self, tracker_address):
|
||||||
trackers = self.getTrackers(type)
|
trackers = self.getTrackers()
|
||||||
tracker = trackers[tracker_address]
|
tracker = trackers[tracker_address]
|
||||||
if not tracker:
|
if not tracker:
|
||||||
return False
|
return False
|
||||||
|
@ -223,29 +223,29 @@ class TrackerStorage(object):
|
||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def getTrackers(self, type="shared"):
|
def getTrackers(self):
|
||||||
return self.file_content.setdefault(type, {})
|
return self.file_content.setdefault("trackers", {})
|
||||||
|
|
||||||
def getTrackersPerProtocol(self, type="shared", working_only=False):
|
def getTrackersPerProtocol(self, working_only=False):
|
||||||
if not self.site_announcer:
|
if not self.site_announcer:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
trackers = self.getTrackers(type)
|
trackers = self.getTrackers()
|
||||||
|
|
||||||
trackers_per_protocol = {}
|
trackers_per_protocol = {}
|
||||||
for tracker_address in trackers:
|
for tracker_address in trackers:
|
||||||
protocol = self.getNormalizedTrackerProtocol(tracker_address)
|
protocol = self.getNormalizedTrackerProtocol(tracker_address)
|
||||||
if not protocol:
|
if not protocol:
|
||||||
continue
|
continue
|
||||||
if not working_only or self.isTrackerWorking(tracker_address, type=type):
|
if not working_only or self.isTrackerWorking(tracker_address):
|
||||||
trackers_per_protocol.setdefault(protocol, []).append(tracker_address)
|
trackers_per_protocol.setdefault(protocol, []).append(tracker_address)
|
||||||
|
|
||||||
return trackers_per_protocol
|
return trackers_per_protocol
|
||||||
|
|
||||||
def getWorkingTrackers(self, type="shared"):
|
def getWorkingTrackers(self):
|
||||||
trackers = {
|
trackers = {
|
||||||
key: tracker for key, tracker in self.getTrackers(type).items()
|
key: tracker for key, tracker in self.getTrackers().items()
|
||||||
if self.isTrackerWorking(key, type)
|
if self.isTrackerWorking(key)
|
||||||
}
|
}
|
||||||
return trackers
|
return trackers
|
||||||
|
|
||||||
|
@ -280,12 +280,12 @@ class TrackerStorage(object):
|
||||||
helper.atomicWrite(self.file_path, json.dumps(self.file_content, indent=2, sort_keys=True).encode("utf8"))
|
helper.atomicWrite(self.file_path, json.dumps(self.file_content, indent=2, sort_keys=True).encode("utf8"))
|
||||||
self.log.debug("Saved in %.3fs" % (time.time() - s))
|
self.log.debug("Saved in %.3fs" % (time.time() - s))
|
||||||
|
|
||||||
def enoughWorkingTrackers(self, type="shared"):
|
def enoughWorkingTrackers(self):
|
||||||
supported_protocols = self.getSupportedProtocols()
|
supported_protocols = self.getSupportedProtocols()
|
||||||
if not supported_protocols:
|
if not supported_protocols:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
trackers_per_protocol = self.getTrackersPerProtocol(type="shared", working_only=True)
|
trackers_per_protocol = self.getTrackersPerProtocol(working_only=True)
|
||||||
if not trackers_per_protocol:
|
if not trackers_per_protocol:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
@ -309,7 +309,7 @@ class TrackerStorage(object):
|
||||||
return unmet_conditions == 0
|
return unmet_conditions == 0
|
||||||
|
|
||||||
def discoverTrackers(self, peers):
|
def discoverTrackers(self, peers):
|
||||||
if self.enoughWorkingTrackers(type="shared"):
|
if self.enoughWorkingTrackers():
|
||||||
return False
|
return False
|
||||||
|
|
||||||
self.log.info("Discovering trackers from %s peers..." % len(peers))
|
self.log.info("Discovering trackers from %s peers..." % len(peers))
|
||||||
|
@ -357,7 +357,7 @@ class SiteAnnouncerPlugin(object):
|
||||||
tracker_storage.time_discover = time.time()
|
tracker_storage.time_discover = time.time()
|
||||||
gevent.spawn(tracker_storage.discoverTrackers, self.site.getConnectedPeers())
|
gevent.spawn(tracker_storage.discoverTrackers, self.site.getConnectedPeers())
|
||||||
trackers = super(SiteAnnouncerPlugin, self).getTrackers()
|
trackers = super(SiteAnnouncerPlugin, self).getTrackers()
|
||||||
shared_trackers = list(tracker_storage.getTrackers("shared").keys())
|
shared_trackers = list(tracker_storage.getTrackers().keys())
|
||||||
if shared_trackers:
|
if shared_trackers:
|
||||||
return trackers + shared_trackers
|
return trackers + shared_trackers
|
||||||
else:
|
else:
|
||||||
|
@ -378,7 +378,7 @@ class SiteAnnouncerPlugin(object):
|
||||||
@PluginManager.registerTo("FileRequest")
|
@PluginManager.registerTo("FileRequest")
|
||||||
class FileRequestPlugin(object):
|
class FileRequestPlugin(object):
|
||||||
def actionGetTrackers(self, params):
|
def actionGetTrackers(self, params):
|
||||||
shared_trackers = list(tracker_storage.getWorkingTrackers("shared").keys())
|
shared_trackers = list(tracker_storage.getWorkingTrackers().keys())
|
||||||
random.shuffle(shared_trackers)
|
random.shuffle(shared_trackers)
|
||||||
self.response({"trackers": shared_trackers})
|
self.response({"trackers": shared_trackers})
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue