#!/usr/bin/env python

import json
import requests


def main():
    # The Zenodo record ID to parse
    recordid = 7811871

    # Download a JSON file describing all files inside Zenodo repository
    url = f'https://zenodo.org/api/records/{recordid}'
    response = requests.get(url)
    response.raise_for_status()

    # Parse JSON response
    d = json.loads(response.text)
    print(d)
    
    # Extract filenames, urls and checksums
    checksum_lines = []
    url_lines = []

    for filespec in d['files']:
        fname = filespec['key']
        # Only download stellar_params_catalog* files
        if fname.startswith('stellar_params_catalog'):
            url = filespec['links']['self']
            md5sum = filespec['checksum'].removeprefix(r'md5:')

            checksum_lines.append(f'{md5sum} {fname}')
            url_lines.append(url)

    # Write checksum file
    checksum_fname = f'checksums_{recordid}.txt'
    with open(checksum_fname, 'w') as f:
        f.write('\n'.join(checksum_lines))

    # Write URL list
    url_fname = f'urls_{recordid}.txt'
    with open(url_fname, 'w') as f:
        f.write('\n'.join(url_lines))

    return 0

if __name__ == '__main__':
    main()

