"""Megaphone ingester. i run this with Environment=dev PYTHONPATH=. env/bin/python3.6 dev/quick_megaphone_push.py -api_key=key -podcast_id=1 -network_id=1 """ import argparse from urllib.parse import urlparse from podcast import config from podcast.models import episode as episode_model from podcast.models import podcast as podcast_model from podcast.models.api_episode import ApiEpisode from podcast.utils import api_utils users = { 'dev': '366', 'qa': '1298', 'prod': '88' } def main(): """Extract shell arguments and start ingest.""" global request_headers argparser = argparse.ArgumentParser(prog='megaphone tester') argparser.add_argument('-api_key', required=True, help='API Key') argparser.add_argument('-podcast_id', required=True, help='podcast id') argparser.add_argument('-network_id', required=True, help='network id') argparser.add_argument('-env', required=True, help='env', default='qa') args = argparser.parse_args() network_id = int(args.network_id) podcast_id = int(args.podcast_id) env = args.env def get_user_id(): """Mock get user id return value.""" return users[env] api_utils.get_user_id = get_user_id request_headers = { 'Grass-Account-Type': 'vendor', 'Grass-Account-Id': '1', 'Correlation-Id': '12', 'Orchard-Identity-UUID': 'podcast-admin', 'Content-Type': 'application/json' } orch_podcast = podcast_model.get_podcast_by_id(podcast_id) orch_episodes = episode_model.get_episodes( podcast_id, filter_by_state='DONE').get('items') megaphone_api_episode = ApiEpisode(network_id) for episode in orch_episodes: update_data = { 'externalId': episode['uuid'], 'guid': episode['uuid'] } print(update_data) megaphone_api_episode.update( orch_podcast['megaphone_id'], episode['megaphone_id'], update_data) print('updated episode {}'.format(episode['id'])) if __name__ == '__main__': main()