From 006cf0949378dc3f0c3368f0e2e29093ec67e4da Mon Sep 17 00:00:00 2001 From: Frederik Vanrenterghem Date: Sat, 25 Jan 2025 21:13:30 +0800 Subject: [PATCH] Support individual historic listens submittion. --- listenbrainz.el | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/listenbrainz.el b/listenbrainz.el index 43084f7..5ebf40a 100644 --- a/listenbrainz.el +++ b/listenbrainz.el @@ -2,9 +2,10 @@ ;; Copyright 2023 FoAM ;; -;; Author: nik gaffney +;; Author: nik gaffney , Frederik Vanrenterghem ;; Created: 2023-05-05 -;; Version: 0.1 +;; Updated: 2025-01-25 +;; Version: 0.2fv ;; Package-Requires: ((emacs "27.1") (request "0.3")) ;; Keywords: music, scrobbling, multimedia ;; URL: https://github.com/zzkt/listenbrainz @@ -289,12 +290,13 @@ macroexpands to something like -> ;; - https://listenbrainz.readthedocs.io/en/production/dev/api-usage/#submitting-listens ;; - https://listenbrainz.readthedocs.io/en/production/dev/json/#json-doc -(defun listenbrainz-submit-listen (type artist track &optional release) +(defun listenbrainz-submit-listen (type artist track &optional release timestamp) "Submit listening data to ListenBrainz. - listen TYPE (string) either \='single\=', \='import\=' or \='playing_now\=' - ARTIST name (string) - TRACK title (string) -- RELEASE title (string) also album title." +- RELEASE title (string) also album title. +- TIMESTAMP time (time) track was listened to" (message "listenbrainz: submitting %s - %s - %s" artist track release) (let* ((json-null "") (now (listenbrainz-timestamp)) @@ -306,6 +308,7 @@ macroexpands to something like -> (remove nil (list (when (string= type "single") (cons "listened_at" now)) + (when (string= type "import") (cons "listened_at" (listenbrainz-timestamp timestamp))) (list "track_metadata" (cons "artist_name" artist) (cons "track_name" track) @@ -332,6 +335,10 @@ macroexpands to something like -> "Submit data for track (ARTIST TRACK and optional RELEASE) playing now." (listenbrainz-submit-listen "playing_now" artist track (when release release))) +;;;###autoload +(defun listenbrainz-submit-historic-listen (artist track timestamp &optional release) + "Submit data for track (ARTIST TRACK and optional RELEASE) heard at TIMESTAMP." + (listenbrainz-submit-listen "import" artist track (if release release "") timestamp)) ;;; ;; ;; ; ; ; ; ; ; ;; -- 2.39.5