种植日期: 2026-01-18
上次照料: 2026-01-19
2026-01-18
折腾网易云
在听歌这件事上,在 Emacs 里的 scratch-buffer 慢慢一点点折腾去实现自己想要的功能,你赢了, Emacs 。
(defun my/direct-download-netease-music (link)
(interactive (list (org-cliplink-clipboard-content)))
(let ((music-id (car (last (string-split link "id=")))))
(enep-download-music music-id)
))
(setq emms-source-file-default-directory (expand-file-name "~/Music/NeteaseMusic/"))
(setq emms-player-next-function
(lambda ()
(run-at-time
3 nil
(lambda ()
(emms-next)))
))
(defun my/emms-info-track-description (track)
(let ((artist (emms-track-get track 'info-artist))
(album (emms-track-get track 'info-album))
(title (emms-track-get track 'info-title))
(mtime (emms-track-get track 'info-playing-time)))
(format "%s - %s - %s - %02d:%02d"
(or artist "Unknown")
(or album "Unknown")
(or title "Unknown")
(/ mtime 60) (% mtime 60))))
(setq emms-track-description-function 'my/emms-info-track-description)
(defun my/emms-playlist-sum-duration (beg end)
(interactive "r")
(let ((total-seconds 0)
(gap-seconds 3))
(save-excursion
(goto-char beg)
(while (< (point) end)
(let* ((track (emms-playlist-track-at (point)))
(duration (and track (emms-track-get track 'info-playing-time))))
(when duration
(setq total-seconds (+ total-seconds duration gap-seconds))))
(forward-line 1)))
(let ((hours (/ total-seconds 3600))
(minutes (/ (% total-seconds 3600) 60))
(seconds (% total-seconds 60)))
(message "Total Time: %02d:%02d:%02d"
hours minutes seconds)))))
评论