From dcc8d5ec7458d211512a75e548fbe2988350d5ca Mon Sep 17 00:00:00 2001 From: sfan5 Date: Sat, 5 Oct 2024 15:17:39 +0200 Subject: [PATCH] Get rid of uptime tracking and point penalty closes #37 --- server.py | 38 +------------------------------------- 1 file changed, 1 insertion(+), 37 deletions(-) diff --git a/server.py b/server.py index 4c4cc00..36bf728 100755 --- a/server.py +++ b/server.py @@ -167,7 +167,6 @@ def announce(): if action == "start": server["start"] = int(time.time()) - tracker.push("%s:%d" % (server["ip"], server["port"]), server["start"]) else: server["start"] = old["start"] @@ -442,29 +441,6 @@ def asyncFinishThread(server): serverList.update(server) -class UptimeTracker: - def __init__(self): - self.d = {} - self.cleanTime = 0 - self.lock = RLock() - def push(self, id, ts): - with self.lock: - if time.time() >= self.cleanTime: # clear once in a while - self.d.clear() - self.cleanTime = time.time() + 48*60*60 - - if id in self.d: - self.d[id] = self.d[id][-1:] + [ts] - else: - self.d[id] = [0, ts] - # returns the before-last start time, in bulk - def getStartTimes(self): - ret = {} - with self.lock: - for k, v in self.d.items(): - ret[k] = v[0] - return ret - class ServerList: def __init__(self): self.list = [] @@ -493,8 +469,6 @@ class ServerList: pass def sort(self): - start_times = tracker.getStartTimes() - def server_points(server): points = 0 @@ -520,15 +494,6 @@ class ServerList: if server["ping"] > 0.4: points -= (server["ping"] - 0.4) * 8 - # Up to -8 for less than an hour of uptime (penalty linearly decreasing) - # only if the server has restarted before within the last 2 hours - HOUR_SECS = 60 * 60 - uptime = server["uptime"] - if uptime < HOUR_SECS: - start_time = start_times.get("%s:%d" % (server["ip"], server["port"]), 0) - if start_time >= time.time() - 2 * HOUR_SECS: - points -= ((HOUR_SECS - uptime) / HOUR_SECS) * 8 - # reduction to 40% for servers that support both legacy (v4) and v5 clients if server["proto_min"] <= 32 and server["proto_max"] > 36: points *= 0.4 @@ -595,6 +560,7 @@ class ServerList: self.sort() self.save() + class PurgeThread(Thread): def __init__(self): Thread.__init__(self) @@ -606,8 +572,6 @@ class PurgeThread(Thread): # Globals / Startup -tracker = UptimeTracker() - serverList = ServerList() PurgeThread().start()