#! /usr/bin/env python import sys, os if os.path.isdir('/tracker'): # for running in doc ker image. os.chdir('/tracker') sys.path.insert(0, '.') import logging logging.basicConfig( stream=sys.stdout, level=logging.INFO, format="%(asctime)s %(levelname)s %(message)s", datefmt='%H:%M:%S' ) from tracker.unicorn import artist_ingestion from tracker.logger import get_logger from tracker import db db.setup_session() logger = get_logger(__name__) if __name__ == '__main__': logger.info(f"--- Viral Charts Ingestor ---") include_daily_streams = len(sys.argv) > 1 and sys.argv[1] == 'include_streams' only_daily_streams = len(sys.argv) > 1 and sys.argv[1] == 'only_streams' count_daily_streams = len(sys.argv) > 1 and sys.argv[1] == 'count_streams' count_listeners = len(sys.argv) > 1 and sys.argv[1] == 'count_listeners' only_listeners = len(sys.argv) > 1 and sys.argv[1] == 'only_listeners' if count_daily_streams: ids = artist_ingestion.get_new_artists_for_streams() logger.info(f"There are {len(ids)} needing daily streams") elif only_daily_streams: logger.info(f"Starting daily streams ingestion (only)") artist_ingestion.process_viral_daily_streams() elif count_listeners: ids = artist_ingestion.get_new_unsigned_artists() logger.info(f"There are {len(ids)} needing listeners") elif only_listeners: ids = artist_ingestion.get_new_unsigned_artists() logger.info(f"There are {len(ids)} needing listeners") artist_ingestion.store_listeners(ids) else: logger.info(f"Ingesting charts, include_daily_streams={include_daily_streams}") artist_ingestion.process_all_viral(include_daily_streams)