mvp
parent
41ba7e008f
commit
781f128de4
37
src/main.py
37
src/main.py
|
|
@ -1,11 +1,46 @@
|
||||||
import reader
|
import reader
|
||||||
import writer
|
import writer
|
||||||
|
|
||||||
|
import random
|
||||||
|
import time
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
r = reader.Reader(reader.StdinReader())
|
r = reader.Reader(reader.StdinReader())
|
||||||
w = writer.Writer()
|
w = writer.Writer()
|
||||||
|
bucket = Bucket()
|
||||||
for line in r.read():
|
for line in r.read():
|
||||||
w.write(line)
|
latest_bucket = Bucket()
|
||||||
|
if latest_bucket.name != bucket.name:
|
||||||
|
picked = bucket.pick_n(2)
|
||||||
|
w.write(picked)
|
||||||
|
bucket = latest_bucket
|
||||||
|
bucket.push(line)
|
||||||
|
|
||||||
|
class Bucket:
|
||||||
|
def __init__(self):
|
||||||
|
self.name = Bucket.ms_to_bucket(Bucket.now_ms())
|
||||||
|
self.content = []
|
||||||
|
|
||||||
|
def push(self, v):
|
||||||
|
if v:
|
||||||
|
self.content.append(v)
|
||||||
|
|
||||||
|
def pick_n(self, n):
|
||||||
|
if not self.content:
|
||||||
|
return []
|
||||||
|
result = []
|
||||||
|
for i in range(0, n):
|
||||||
|
result.append(self.content[random.randint(0, len(self.content)-1)])
|
||||||
|
return list(set(result))
|
||||||
|
|
||||||
|
def now_ms():
|
||||||
|
return int(1000 * time.time())
|
||||||
|
|
||||||
|
def ms_to_bucket(ms):
|
||||||
|
return int(int(ms // Bucket.interval()) * Bucket.interval())
|
||||||
|
|
||||||
|
def interval():
|
||||||
|
return 1000
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue