lb_import/lb_import.py

44 lines
2.0 KiB
Python
Raw Normal View History

#!/usr/bin/env python3
import json
import pylistenbrainz
import sys
auth_token = sys.argv[1]
client = pylistenbrainz.ListenBrainz()
client.set_auth_token(auth_token)
with open(sys.argv[2], "r") as read_file:
data = json.load(read_file)
for raw in data:
listen = pylistenbrainz.Listen(
track_name = raw['track_metadata']['track_name'],
artist_name = raw['track_metadata']['artist_name']
)
if 'listened_at' in raw:
listen.listened_at = raw['listened_at']
if 'user_name' in raw:
listen.username = raw['user_name']
if 'release_name' in raw['track_metadata']:
listen.release_name = raw['track_metadata']['release_name']
if 'additional_info' in raw['track_metadata']:
listen.additional_info = raw['track_metadata']['additional_info']
if 'tracknumber' in raw['track_metadata']['additional_info']:
listen.tracknumber = raw['track_metadata']['additional_info']['tracknumber']
if 'spotify_id' in raw['track_metadata']['additional_info']:
listen.spotify_id = raw['track_metadata']['additional_info']['spotify_id']
if 'isrc' in raw['track_metadata']['additional_info']:
listen.spotify_id = raw['track_metadata']['additional_info']['isrc']
if 'listening_from' in raw['track_metadata']['additional_info']:
listen.listening_from = raw['track_metadata']['additional_info']['listening_from']
if 'mbid_mapping' in raw['track_metadata']:
if 'recording_mbid' in raw['track_metadata']['mbid_mapping']:
listen.recording_mbid = raw['track_metadata']['mbid_mapping']['recording_mbid']
if 'artist_mbids' in raw['track_metadata']['mbid_mapping']:
listen.artist_mbids = raw['track_metadata']['mbid_mapping']['artist_mbids']
if 'release_mbid' in raw['track_metadata']['mbid_mapping']:
listen.release_mbid = raw['track_metadata']['mbid_mapping']['release_mbid']
response = client.submit_single_listen(listen)
assert response['status'] == 'ok'