X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=qchess%2Fsrc%2Flog.py;h=af0c2a79106adf67a71d4a18e0f8a5ab8d56a63e;hb=8571bc0c18f4a42bd1c8f34a5a36bcd9678b3f14;hp=1ef8145bb43ba337e90263edb93ac37ecc4f8f06;hpb=3decbfd61b59ee2611700e7fa96368e02f643d4d;p=progcomp2013.git diff --git a/qchess/src/log.py b/qchess/src/log.py index 1ef8145..af0c2a7 100644 --- a/qchess/src/log.py +++ b/qchess/src/log.py @@ -131,6 +131,43 @@ class HttpReplay(): 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: