def main(): setup_logging() logging.info(sys.argv) try: stream_type = sys.argv[1] except IndexError: stream_type = 'market' logging.info('betfairlightweight version: %s' % betfairlightweight.__version__) logging.info('flumine version: %s' % __version__) if stream_type == 'race': logging.info('Creating "storageengine.s3"') storage_engine = storageengine.S3('flumine', data_type='racedata', force_update=False) logging.info('Creating "RaceRecorder"') recorder = RaceRecorder(storage_engine=storage_engine) elif stream_type == 'market': try: market_filter = json.loads(sys.argv[2]) except IndexError: logging.warning('Market Filter not provided, defaulting to GB and IE WIN racing') market_filter = {"eventTypeIds": ["7"], "countryCodes": ["GB", "IE"], "marketTypes": ["WIN"]} except json.JSONDecodeError: logging.error('Market Filter arg must be provided in json format') raise try: market_data_filter = json.loads(sys.argv[3]) except IndexError: logging.warning('Market Data Filter not provided, defaulting to None') market_data_filter = None except json.JSONDecodeError: logging.error('Market Data Filter arg must be provided in json format') market_data_filter = None logging.info('Creating "storageengine.s3"') storage_engine = storageengine.S3('flumine', data_type='marketdata') logging.info('Creating "MarketRecorder"') recorder = MarketRecorder( storage_engine=storage_engine, market_filter=market_filter, market_data_filter=market_data_filter, ) else: raise ValueError('Invalid stream_type must be "race" or "market"') flumine = Flumine( recorder=recorder, settings={'certificate_login': False} ) try: flumine.start(_async=False) except FlumineException as e: logging.critical('Major flumine error: %s' % e)
def main(s3_bucket, market_filter=None, market_data_filter=None, settings=None): setup_logging() logging.info("betfairlightweight version: %s" % betfairlightweight.__version__) logging.info("flumine version: %s" % __version__) logging.info('Creating "storageengine.s3"') storage_engine = storageengine.S3(s3_bucket) logging.info('Creating "MarketRecorder"') recorder = MarketRecorder( storage_engine=storage_engine, market_filter=market_filter, market_data_filter=market_data_filter, ) flumine = Flumine(recorder=recorder, settings=settings) try: flumine.start(async_=False) except FlumineException as e: logging.critical("Major flumine error: %s" % e)