aboutsummaryrefslogtreecommitdiff
path: root/lib/listenbrainz.atd
diff options
context:
space:
mode:
Diffstat (limited to 'lib/listenbrainz.atd')
-rw-r--r--lib/listenbrainz.atd68
1 files changed, 51 insertions, 17 deletions
diff --git a/lib/listenbrainz.atd b/lib/listenbrainz.atd
index d45136d..cf4e09a 100644
--- a/lib/listenbrainz.atd
+++ b/lib/listenbrainz.atd
@@ -1,5 +1,7 @@
-type mbid = string
+type mbid = string <ocaml valid="Listenbrainz_util.validate_mbid">
type isrc = string
+type unixtime = float <json repr="int">
+type tm = unixtime wrap <ocaml module="Unix" t="Unix.tm" wrap="Unix.gmtime" unwrap="Listenbrainz_util.tm_unwrap">
type additional_info = {
?artist_mbids : mbid list option;
@@ -29,30 +31,62 @@ type listen_type = [
| Import <json name="import">
]
-type listen_payload = {
- listened_at : int;
- track_metadata : track_metadata;
+type similar_user = {
+ user_name : string;
+ similarity : float;
}
-type submission = {
- listen_type : listen_type;
- payload : listen_payload list;
-} <ocaml valid="Listenbrainz_util.validate_submission">
+type payload_listen = {
+ ?listened_at : tm option;
+ track_metadata : track_metadata;
+}
-type response = {
+type payload_listen_count = {
count : int;
- user_id : mbid;
- listens : listen_payload list;
-} <ocaml valid="Listenbrainz_util.validate_response">
+}
-type validate_token = {
+type post_submit_listens = {
+ listen_type : listen_type;
+ payload : payload_listen list;
+} <ocaml valid="Listenbrainz_util.validate_post_submit_listens">
+
+type get_validate_token = {
code : int;
message : string;
valid : bool;
- user: string;
+ ?user: string option;
+} <ocaml valid="Listenbrainz_util.validate_get_validate_token">
+
+type post_delete_listen = {
+ listened_at : tm;
+ recording_msid : mbid;
+}
+
+type get_user_similar_users = similar_user list
+
+type get_user_listen_count = {
+ payload : payload_listen_count;
+}
+
+type get_user_playing_now = {
+ count : int;
+ user_id : mbid;
+ listens : payload_listen list;
+} <ocaml valid="Listenbrainz_util.validate_get_user_playing_now">
+
+type get_user_similar_to = similar_user
+
+type get_user_listens = {
+ count : int;
+ user_id : mbid;
+ listens : payload_listen list;
+} <ocaml valid="Listenbrainz_util.validate_get_user_listens">
+
+type get_latest_import = {
+ musicbrainz_id : mbid;
+ latest_import : tm;
}
-type delete_listen = {
- listened_at : int;
- recording_msid : string;
+type post_latest_import = {
+ ts : tm;
}