master
Bel LaPointe 2022-09-18 12:38:31 -06:00
parent 781f128de4
commit 02dce9fa67
2 changed files with 36 additions and 35 deletions

29
src/bucket.py Normal file
View File

@ -0,0 +1,29 @@
import random
import time
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 100

View File

@ -1,46 +1,18 @@
import reader
import writer
import random
import time
import bucket
def main():
r = reader.Reader(reader.StdinReader())
w = writer.Writer()
bucket = Bucket()
bkt = bucket.Bucket()
for line in r.read():
latest_bucket = Bucket()
if latest_bucket.name != bucket.name:
picked = bucket.pick_n(2)
latest_bkt = bucket.Bucket()
if latest_bkt.name != bkt.name:
picked = bkt.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
bkt = latest_bkt
bkt.push(line)
if __name__ == "__main__":
main()