import urllib2
class LogFile():
- def __init__(self, log):
-
+ def __init__(self, log, name):
+ self.name = name
self.log = log
self.logged = []
self.log.write("# Log starts " + str(datetime.datetime.now()) + "\n")
def setup(self, board, players):
for p in players:
- self.log.write("# " + p.colour + " : " + p.name + "\n")
+ self.log.write("# " + str(p.colour) + " : " + str(p.name) + "\n")
self.log.write("# Initial board\n")
for x in range(0, w):
self.log = sys.stdout
else:
self.log = open(file_name, "w", 0)
- LogFile.__init__(self, self.log)
+ LogFile.__init__(self, self.log, "@"+file_name)
self.file_name = file_name
self.phase = 0
def close(self):
self.getter.stop()
+
+class FileReplay():
+ def __init__(self, filename):
+ self.f = open(filename, "r", 0)
+ self.filename = filename
+ self.mod = os.path.getmtime(filename)
+ self.count = 0
+
+ def readline(self):
+ line = self.f.readline()
+
+ while line == "":
+ mod2 = os.path.getmtime(self.filename)
+ if mod2 > self.mod:
+ #sys.stderr.write("File changed!\n")
+ self.mod = mod2
+ self.f.close()
+ self.f = open(self.filename, "r", 0)
+
+ new_line = self.f.readline()
+
+ if " ".join(new_line.split(" ")[0:3]) != "# Short log":
+ for i in range(self.count):
+ new_line = self.f.readline()
+ #sys.stderr.write("Read back " + str(i) + ": " + str(new_line) + "\n")
+ new_line = self.f.readline()
+ else:
+ self.count = 0
+
+ line = new_line
+
+ self.count += 1
+ return line
+
+ def close(self):
+ self.f.close()
+
def log(s):
for l in log_files:
l.write(s)
+def debug(s):
+ sys.stderr.write("# DEBUG: " + s + "\n")
+
def log_init(board, players):
for l in log_files: