twitch-plays/src/writer.py

32 lines
688 B
Python

import time
class Writer:
def __init__(self):
self.previous = Line(None)
def write(self, v):
latest = Line(v)
chosen = Line.choose(self.previous, latest)
if chosen.v != self.previous.v:
print(chosen)
self.previous = chosen
class Line:
def __init__(self, v):
self.t = time.time()
self.v = v
def __str__(self):
return f'@{self.t} | {self.v}'
def choose(a, b):
if not a:
return b
if not b:
return a
latest = max([a,b], key=lambda x:x.t)
oldest = min([a,b], key=lambda x:x.t)
if not latest.v and time.time() - oldest.t < 1:
return oldest
return latest