6 def __init__(self, log):
12 now = datetime.datetime.now()
13 self.log.write(str(now) + " : " + s + "\n")
14 self.logged.append((now, s))
16 def setup(self, board, players):
17 self.log.write("# Log starts " + str(datetime.datetime.now()) + "\n")
19 self.log.write("# " + p.colour + " : " + p.name + "\n")
21 self.log.write("# Initial board\n")
24 if board.grid[x][y] != None:
25 self.log.write(str(board.grid[x][y]) + "\n")
27 self.log.write("# Start game\n")
30 self.log.write("# EOF\n")
33 class HttpLog(LogFile):
34 def __init__(self, file_name):
35 LogFile.__init__(self, open(file_name, "w", 0))
36 self.file_name = file_name
40 now = datetime.datetime.now()
41 self.logged.append((now, s))
45 self.log = open(self.file_name, "w", 0)
46 LogFile.setup(self, game.board, game.players)
49 for message in self.logged[len(self.logged)-2:]:
50 self.log.write(str(message[0]) + " : " + message[1] + "\n")
52 self.phase = (self.phase + 1) % 2
55 self.log.write("# EOF\n")
59 class HeadRequest(urllib2.Request):
64 def __init__(self, address):
65 self.read_setup = False
66 self.log = urllib2.urlopen(address)
67 self.address = address
71 line = self.log.readline()
72 sys.stderr.write(sys.argv[0] + " : " + str(self.__class__.__name__) + " read \""+str(line.strip("\r\n")) + "\" from address " + str(self.address) + "\n")
74 sys.stderr.write(sys.argv[0] + " : " + str(self.__class__.__name__) + " retrieving from address " + str(self.address) + "\n")
75 date_mod = datetime.datetime.strptime(self.log.headers['last-modified'], "%a, %d %b %Y %H:%M:%S GMT")
78 next_log = urllib2.urlopen(HeadRequest(self.address))
79 date_new = datetime.datetime.strptime(next_log.headers['last-modified'], "%a, %d %b %Y %H:%M:%S GMT")
80 while date_new <= date_mod:
81 next_log = urllib2.urlopen(HeadRequest(self.address))
82 date_new = datetime.datetime.strptime(next_log.headers['last-modified'], "%a, %d %b %Y %H:%M:%S GMT")
84 self.log = urllib2.urlopen(self.address)
86 line = self.log.readline()
99 def log_init(board, players):
101 log_file.setup(board, players)