in ReferenceAppKotlin/scripts/atv-create-media-feed.py [0:0]
def main():
# Parse the output file argument
arg_parser = argparse.ArgumentParser()
arg_parser.add_argument("input_file", help="CSV file to read from")
arg_parser.add_argument("output_movie_file", help="File to output media actions feed for movies in json such as movies.json")
arg_parser.add_argument("output_episodes_file", help="File to output media actions feed for TV episodes in json such as episodes.json")
args = arg_parser.parse_args()
# Avoid overwriting an existing movies file
if Path(args.output_movie_file).exists():
sys.exit(args.output_movie_file + " already exists; aborting")
# Avoid overwriting an existing episodes file
if Path(args.output_episodes_file).exists():
sys.exit(args.output_episodes_file + " already exists; aborting")
# Read in the csv and process it
try:
with open(args.input_file) as csv_file, open(args.output_movie_file, 'w') as movie_json_file, open(args.output_episodes_file,'w') as episodes_json_file:
# Read each row and convert to JSON
dict_reader = csv.DictReader(csv_file)
csv_content_list = list(dict_reader)
# Create content list for movies for the media actions feed
json_movies_list = create_json_movies_list(csv_content_list)
# Generate wrapper with content for movies
movies_dict = {context_json_key: context_value, type_json_key: type_json_value,
dateModified_json_key: dateModified_json_value, dataFeed_json_key: json_movies_list}
json.dump(obj=movies_dict, fp=movie_json_file, indent=4)
# get list of unique TV series
csv_tv_series_tuple_list = get_unique_tv_series(csv_content_list)
# Create content list for TV Series for the media actions feed
json_tv_series_list = create_tv_series_list(csv_tv_series_tuple_list)
# Create content list for TV Episodes for the media actions feed
json_episodes_list = create_json_episodes_list(csv_content_list)
# Generate wrapper with content for TV episodes
episodes_dict = {context_json_key: context_value, type_json_key: type_json_value,
dateModified_json_key: dateModified_json_value, dataFeed_json_key: json_tv_series_list + json_episodes_list}
json.dump(obj=episodes_dict, fp=episodes_json_file, indent=4)
except FileNotFoundError as err:
sys.exit("File doesn't exist: {0}".format(err))
except PermissionError as err:
sys.exit("Permission error, failed to read file: (0)".format(err))
except KeyError as err:
# Remove the output files since they weren't written to successfully
os.remove(args.output_movie_file)
os.remove(args.output_episodes_file)
sys.exit("Missing key in input CSV: {0}".format(err))
print("Movies media action feed JSON written to " + args.output_movie_file)
print("TV episodes media action feed JSON written to " + args.output_episodes_file)