Stream create with None end time

pull/457/head
kompotkot 2021-11-24 15:12:03 +00:00
rodzic 17e92352dd
commit b0c5d75375
1 zmienionych plików z 55 dodań i 40 usunięć

Wyświetl plik

@ -405,20 +405,16 @@ class Moonstream:
Returns: A dictionary stream representing the results of your query. Returns: A dictionary stream representing the results of your query.
""" """
shift = 2 * 60 * 60 shift = 1 * 60 * 60
continues = False
if end_time is None:
continues = True
end_time = int(self.server_time())
def fetch_events(modified_start_time: int, modified_end_time: int) -> int:
# If going to bottom of history, reverse_list after time_range # If going to bottom of history, reverse_list after time_range
# will be generated # will be generated
reversed_time = False reversed_time = False
if start_time > end_time: if modified_start_time > modified_end_time:
reversed_time = True reversed_time = True
max_boundary = max(start_time, end_time) max_boundary = max(modified_start_time, modified_end_time)
min_boundary = min(start_time, end_time) min_boundary = min(modified_start_time, modified_end_time)
time_range_list = [] time_range_list = []
# 300, 450 with shift 100 => [{"start_time": 300, "end_time": 399}, {"start_time": 400, "end_time": 450}] # 300, 450 with shift 100 => [{"start_time": 300, "end_time": 399}, {"start_time": 400, "end_time": 450}]
@ -441,15 +437,34 @@ class Moonstream:
include_end=True, include_end=True,
q=q, q=q,
) )
yield r_json
yield r_json, reversed_time
time_range_list = time_range_list[:] time_range_list = time_range_list[:]
if end_time is None:
# Update float_start_time after first iteration to last event time
float_start_time = start_time
while True:
end_time = int(self.server_time())
for r_json, reversed_time in fetch_events(float_start_time, end_time):
yield r_json
float_start_time = (
end_time + 1 if not reversed_time else end_time - 1
)
events = r_json.get("events") events = r_json.get("events")
if reversed_time: if len(events) == 0:
last_event_time = events[-1].get("event_timestamp") # if reversed_time:
# last_event_time = events[-1].get("event_timestamp")
# else:
# last_event_time = events[0].get("event_timestamp")
# float_start_time = last_event_time
time.sleep(5)
else: else:
last_event_time = events[0].get("event_timestamp") fetch_events(start_time, end_time)
def client_from_env() -> Moonstream: def client_from_env() -> Moonstream: