diff options
Diffstat (limited to 'lib/listenbrainz.atd')
-rw-r--r-- | lib/listenbrainz.atd | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/lib/listenbrainz.atd b/lib/listenbrainz.atd new file mode 100644 index 0000000..d45136d --- /dev/null +++ b/lib/listenbrainz.atd @@ -0,0 +1,58 @@ +type mbid = string +type isrc = string + +type additional_info = { + ?artist_mbids : mbid list option; + ?release_group_mbid : mbid list option; + ?release_mid : mbid option; + ?recording_mbid : mbid option; + ?track_mbid : mbid option; + ?work_mbids : mbid list option; + ?tracknumber : int option; + ?isrc : isrc option; + ?spotify_id : string option; + ?tags : string list option; + ?listening_from : string option; +} + +type track_metadata = { + artist_name : string; + track_name : string; + ?listened_at : int option; + ?additional_info : additional_info option; + ?release_name : string option; +} + +type listen_type = [ + Single <json name="single"> + | Playing_now <json name="playing_now"> + | Import <json name="import"> +] + +type listen_payload = { + listened_at : int; + track_metadata : track_metadata; +} + +type submission = { + listen_type : listen_type; + payload : listen_payload list; +} <ocaml valid="Listenbrainz_util.validate_submission"> + +type response = { + count : int; + user_id : mbid; + listens : listen_payload list; +} <ocaml valid="Listenbrainz_util.validate_response"> + +type validate_token = { + code : int; + message : string; + valid : bool; + user: string; +} + +type delete_listen = { + listened_at : int; + recording_msid : string; +} |