]> de.git.xonotic.org Git - xonotic/xonstat.git/blobdiff - xonstat/models/server.py
Use mixins to avoid duplication.
[xonotic/xonstat.git] / xonstat / models / server.py
index 7df45a0b7e89f2a1f4b2bb3620617c2703296a78..40c4a0b3a8129472271294054465f72074a96fb2 100644 (file)
@@ -1,10 +1,17 @@
-from calendar import timegm
+"""
+Models related to servers.
+"""
+
 from datetime import datetime as dt
 
-from xonstat.util import pretty_date
+from xonstat.models.mixins import FuzzyDateMixin, EpochMixin
+
 
+class Server(FuzzyDateMixin, EpochMixin):
+    """
+    A Xonotic server, identifiable by name and (when there's a conflict) hashkey.
+    """
 
-class Server(object):
     def __init__(self, name=None, hashkey=None, ip_addr=None):
         self.name = name
         self.hashkey = hashkey
@@ -12,14 +19,12 @@ class Server(object):
         self.create_dt = dt.utcnow()
 
     def __repr__(self):
-        return "<Server(%s, %s)>" % (self.server_id, self.name.encode('utf-8'))
+        return "<Server({}, {})>".format(self.server_id, self.name.encode('utf-8'))
 
     def to_dict(self):
-        return {'server_id':self.server_id, 'name':self.name,
-            'ip_addr':self.ip_addr, 'location':self.location}
-
-    def fuzzy_date(self):
-        return pretty_date(self.create_dt)
-
-    def epoch(self):
-        return timegm(self.create_dt.timetuple())
\ No newline at end of file
+        return {
+            'server_id': self.server_id,
+            'name': self.name,
+            'ip_addr': self.ip_addr,
+            'location': self.location,
+        }