From ea324f4874b6b820395001285dbf470c82c08918 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sun, 29 Dec 2013 22:06:04 +0100 Subject: [PATCH] Lots of smaller bug fixes. --- webapp/backend/database.py | 3 +++ webapp/backend/mirrors.py | 4 ++-- webapp/backend/releases.py | 4 ++-- webapp/backend/tracker.py | 17 +++++++++-------- webapp/handlers_rss.py | 2 +- webapp/handlers_stasy.py | 13 ++++++++----- webapp/handlers_tracker.py | 3 +++ 7 files changed, 28 insertions(+), 18 deletions(-) diff --git a/webapp/backend/database.py b/webapp/backend/database.py index d2964d3..77a87bb 100644 --- a/webapp/backend/database.py +++ b/webapp/backend/database.py @@ -71,6 +71,9 @@ class Connection(object): self._db = psycopg2.connect(**self._db_args) self._db.autocommit = True + # Initialize the timezone setting. + self.execute("SET TIMEZONE TO 'UTC'") + def query(self, query, *parameters, **kwparameters): """ Returns a row list for the given query and parameters. diff --git a/webapp/backend/mirrors.py b/webapp/backend/mirrors.py index 265e516..b276a80 100644 --- a/webapp/backend/mirrors.py +++ b/webapp/backend/mirrors.py @@ -474,7 +474,7 @@ class Mirror(Object): except ValueError: timestamp = 0 - timestamp = datetime.datetime.fromtimestamp(timestamp) + timestamp = datetime.datetime.utcfromtimestamp(timestamp) self.db.execute("UPDATE mirrors SET last_update = %s WHERE id = %s", timestamp, self.id) @@ -594,7 +594,7 @@ class Mirror(Object): @property def development(self): - return self._info.get("development", False) + return self._info.get("mirrorlist_devel", False) @property def mirrorlist(self): diff --git a/webapp/backend/releases.py b/webapp/backend/releases.py index 64bed28..929f5b9 100644 --- a/webapp/backend/releases.py +++ b/webapp/backend/releases.py @@ -438,7 +438,7 @@ class Releases(Object): if not file: return - release = Release(file.releases) - file = File(release, file.id) + release = Release(self.backend, file.releases) + file = File(self.backend, release, file.id) return file diff --git a/webapp/backend/tracker.py b/webapp/backend/tracker.py index 24a763b..7b82478 100644 --- a/webapp/backend/tracker.py +++ b/webapp/backend/tracker.py @@ -76,7 +76,7 @@ class Tracker(Object): peer6["peer id"] = row.id if peer4: - peer6["peer id"] = row.id + peer4["peer id"] = row.id if peer6: peers.append(peer6) @@ -91,7 +91,7 @@ class Tracker(Object): Remove all peers that have timed out. """ self.db.execute("DELETE FROM tracker \ - WHERE last_update < NOW() - INTERVAL '%ss'", self.interval) + WHERE last_update < NOW() - INTERVAL '%ss'", self.interval + 600) def update_peer(self, peer_id, info_hash, address6=None, port6=None, address4=None, port4=None, downloaded=None, uploaded=None, left_data=None): @@ -186,12 +186,13 @@ class Tracker(Object): } } - for info_hash in info_hashes: - ret["files"][info_hash] = { - "complete" : self.complete(info_hash), - "incomplete" : self.incomplete(info_hash), - "downloaded" : 0, - } + if info_hashes: + for info_hash in info_hashes: + ret["files"][info_hash] = { + "complete" : self.complete(info_hash), + "incomplete" : self.incomplete(info_hash), + "downloaded" : 0, + } return ret diff --git a/webapp/handlers_rss.py b/webapp/handlers_rss.py index 21ae4ac..0f2ac9b 100644 --- a/webapp/handlers_rss.py +++ b/webapp/handlers_rss.py @@ -68,7 +68,7 @@ class RSSNewsHandler(RSSHandler): item = tornado.database.Row({ "title" : n.title, "author" : n.author, - "published" : n.date, + "published" : n.published, "url" : "http://www.ipfire.org/news/%s" % n.slug, "markup" : n.text, }) diff --git a/webapp/handlers_stasy.py b/webapp/handlers_stasy.py index d54b487..d384bc5 100644 --- a/webapp/handlers_stasy.py +++ b/webapp/handlers_stasy.py @@ -15,10 +15,6 @@ import backend from handlers_base import * class StasyBaseHandler(BaseHandler): - @property - def stasy(self): - return backend.Stasy() - def format_size(self, s): units = ("K", "M", "G", "T") unit = 0 @@ -195,7 +191,14 @@ class StasyProfileSendHandler(StasyBaseHandler): if addr.is_private: continue - profile.geoip = self.geoip.get_all(remote_ip) + location = self.geoip.get_location(remote_ip) + if location: + profile.geoip = { + "country_code" : location.country, + } + else: + profile.geoip = None + break # Move previous profiles to archive and keep only the latest one diff --git a/webapp/handlers_tracker.py b/webapp/handlers_tracker.py index ec6e626..27fe7fd 100644 --- a/webapp/handlers_tracker.py +++ b/webapp/handlers_tracker.py @@ -93,6 +93,9 @@ class TrackerAnnounceHandler(TrackerBaseHandler): # Get the external IP address of the client. addr = self.get_remote_ip() + if addr.startswith("172.28.1."): + addr = "178.63.73.246" + if not ":" in addr: return addr, default_port -- 2.39.2