#!/usr/bin/env python3 import logging import json import urllib.parse import datetime import urllib.request from datetime import timedelta import time from typing import NoReturn __version__ = "0.1" LOCAL_HOST = '10.42.0.1' LOCAL_PORT = '5151' ENDPOINT = 'entities' CHECK_FREQUENCY = timedelta(seconds=0.5) # Vividi checking frequency in seconds def sleep(duration: timedelta) -> None: """ Sleep for a given period of time. """ time.sleep(duration.total_seconds()) def main() -> NoReturn: logging.info('Fetching entities from %s:%s/%s', LOCAL_HOST, LOCAL_PORT, ENDPOINT) while True: timestamp_to = int(datetime.datetime.now().timestamp()*1000) timestamp_from = timestamp_to - 1000 url = f'http://{LOCAL_HOST}:{LOCAL_PORT}/{ENDPOINT}/{timestamp_from}/{timestamp_to}' logging.info(f'Fetching {url}') req = urllib.request.Request(url) with urllib.request.urlopen(req, timeout=3) as response: content = json.loads(response.read()) entities = content['entities'] # TODO: implement your logic here # example response (trajectory body was shortened) # { # "entities": [ # {"id":659, # "num_face_observations": 5188, # "properties": {"age": "32","is_male": "0.992124"}, # "timestamp_end": 1634225375.154, # "timestamp_start": 1634224837.122, # "trajectory_body": [[551,533,577,698],[558,539,595,717],[558,541,591,716], [558,542,587,715],[577,538,564,708],[598,462,551,850],[592,461,542,834],[593,461,548,840]], # "trajectory_len": 1077} # ], # "message_type": "entities", # "observation_interval": {"end": 1634225375.154,"start": 1634225372.538}, # "timestamp": 1634225375.154 # } sleep(CHECK_FREQUENCY) if __name__ == "__main__": logging.basicConfig(level=logging.INFO) main()