diff --git a/tools/donate-cpu-server.py b/tools/donate-cpu-server.py index a8865111f..c117d3410 100644 --- a/tools/donate-cpu-server.py +++ b/tools/donate-cpu-server.py @@ -31,27 +31,13 @@ def fmt(a,b,c,d): return ret -def latestReport(): - # Get date/time of results - allResults = [] - for filename in sorted(glob.glob(os.path.expanduser('~/donated-results/*'))): - if not os.path.isfile(filename): - continue - datestr = '0000-00-00 00:00' - for line in open(filename,'rt'): - if line.startswith('2018-'): - datestr = line.strip() - break - allResults.append(datestr + '\t' + filename) - allResults.sort() - +def latestReport(latestResults): html = '
\n' html += '\n' + fmt('Package','Time','head','1.84') + '\n' # Write report for latest results - for res in allResults[20:]: - filename = res[res.find('\t')+1:] + for filename in latestResults: package = filename[filename.rfind('/')+1:] datestr = '' @@ -92,6 +78,8 @@ sock.bind(server_address) sock.listen(1) +latestResults = [] + while True: # wait for a connection print('[' + strDateTime() + '] waiting for a connection') @@ -121,12 +109,16 @@ while True: res = re.match(r'ftp://.*pool/main/[^/]+/([^/]+)/[^/]*tar.gz',url) if res and url in packages: print('results added for package ' + res.group(1)) - f = open(resultPath + '/' + res.group(1), 'wt') + filename = resultPath + '/' + res.group(1) + f = open(filename, 'wt') f.write(strDateTime() + '\n' + data[pos+1:]) f.close() + if len(latestResults) >= 20: + latestResults = latestResults[1:] + latestResults.append(filename) elif cmd=='GET /latest.html': print('[' + strDateTime() + '] ' + cmd) - html = latestReport() + html = latestReport(latestResults) resp = 'HTTP/1.1 200 OK\n' resp += 'Connection: close\n' resp += 'Content-length: ' + str(len(html)) + '\n'