mvp
parent
781f128de4
commit
02dce9fa67
|
|
@ -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
|
||||
|
||||
42
src/main.py
42
src/main.py
|
|
@ -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()
|
||||
|
|
|
|||
Loading…
Reference in New Issue