pft / mingus

GNU Emacs control of Music Player Daemon (MPD)
104 stars 19 forks source link

mingus-group-by-artist error on some directory #37

Open stardiviner opened 3 years ago

stardiviner commented 3 years ago

I got an error when run mingus-query-regexp to search.

Here is the error output when I toggled debug-on-error.

Debugger entered--Lisp error: (wrong-type-argument plistp ("directory" . "Anime 动漫/Qinsi Moon (秦时明月)/秦时明月/群星/秦时明月 原声大碟"))
  plist-member(("directory" . "Anime 动漫/Qinsi Moon (秦时明月)/秦时明月/群星/秦时明月 原声大碟") AlbumArtist)
  getf(("directory" . "Anime 动漫/Qinsi Moon (秦时明月)/秦时明月/群星/秦时明月 原声大碟") AlbumArtist)
  (or (getf details 'AlbumArtist) (getf details 'Artist))
  (let* ((albumartist (or (getf details 'AlbumArtist) (getf details 'Artist)))) (if albumartist (progn (if (not (assoc albumartist artists)) (progn (setq artists (cons (list albumartist) artists)))) (let* ((v (assoc albumartist artists))) (setcdr v (cons details (cdr v)))))))
  (lambda (details) (let* ((albumartist (or (getf details 'AlbumArtist) (getf details 'Artist)))) (if albumartist (progn (if (not (assoc albumartist artists)) (progn (setq artists ...))) (let* ((v ...)) (setcdr v (cons details ...)))))))(("directory" . "Anime 动漫/Qinsi Moon (秦时明月)/秦时明月/群星/秦时明月 原声大碟"))
  mapc((lambda (details) (let* ((albumartist (or (getf details 'AlbumArtist) (getf details 'Artist)))) (if albumartist (progn (if (not (assoc albumartist artists)) (progn (setq artists ...))) (let* ((v ...)) (setcdr v (cons details ...))))))) (("directory" . "Anime 动漫/Qinsi Moon (秦时明月)/秦时明月/群星/秦时明月 原声大碟") ("directory" . "Anime 动漫/Qinsi Moon (秦时明月)/秦时明月") ("directory" . "BL 耽美") ("directory" . "Chinese Classic Music 中国古典音乐/中国古典音乐") ("directory" . "Chinese Classic Music 中国古典音乐/中国古典音乐历朝黄金年鉴") ("directory" . "Chinese Classic Music 中国古典音乐/埙/周子雷") ("directory" . "Folk 民谣/尧十三") ("directory" . "Folk 民谣/茉莉僧") ("directory" . "Folk 民谣/花粥") ("directory" . "Humming 哼唱") ("directory" . "Mandarin Pop 华语流行") ("directory" . "Mandarin Pop 华语流行/Tank") ("directory" . "Mandarin Pop 华语流行/周笔畅") ("directory" . "Mandarin Pop 华语流行/周杰伦") ("directory" . "Mandarin Pop 华语流行/张瑶") ("directory" . "Mandarin Pop 华语流行/张力夫") ("directory" . "Mandarin Pop 华语流行/林志炫") ("directory" . "Mandarin Pop 华语流行/林俊杰") ("directory" . "Mandarin Pop 华语流行/杨坤") ("directory" . "Mandarin Pop 华语流行/游鸿明") ("directory" . "Mandarin Pop 华语流行/段玫梅") ("directory" . "Mandarin Pop 华语流行/王菲") ("directory" . "Mandarin Pop 华语流行/萧人凤") ("directory" . "Mandarin Pop 华语流行/萧亚轩") ("directory" . "Mandarin Pop 华语流行/苏打绿") ("directory" . "Mandarin Pop 华语流行/许嵩") ("directory" . "Mandarin Pop 华语流行/郭敬明") ("directory" . "Mandarin Pop 华语流行/陈奕迅") ("directory" . "Mandarin Pop 华语流行/香香") ("directory" . "Original Sound Track 电影原声带/东京爱情故事") ("directory" . "Original Sound Track 电影原声带/三生三世 枕上书/三生三世枕上书 电视剧原声带...") ("directory" . "Original Sound Track 电影原声带/仙剑奇侠传") ("directory" . "Original Sound Track 电影原声带/宠物情人/原声大碟.-.[宠物情人].专辑.(...") ("directory" . "Original Sound Track 电影原声带/少林问道") ("directory" . "Original Sound Track 电影原声带/艳骨") ("directory" . "Original Sound Track 电影原声带/花红花火") ("directory" . "Original Sound Track 电影原声带/青云志") ("directory" . "Piano 钢琴曲/石进/夜的钢琴曲") ("directory" . "Ringtones/铃声") ("directory" . "古风") ("directory" . "古风/蒋雪儿") ("directory" . "同人/九州/九州女声") ("directory" . "非主流")))
  (let ((artists)) (mapc #'(lambda (details) (let* ((albumartist (or ... ...))) (if albumartist (progn (if ... ...) (let* ... ...))))) songs) artists)
  mingus-group-by-artist((("directory" . "Anime 动漫/Qinsi Moon (秦时明月)/秦时明月/群星/秦时明月 原声大碟") ("directory" . "Anime 动漫/Qinsi Moon (秦时明月)/秦时明月") ("directory" . "BL 耽美") ("directory" . "Chinese Classic Music 中国古典音乐/中国古典音乐") ("directory" . "Chinese Classic Music 中国古典音乐/中国古典音乐历朝黄金年鉴") ("directory" . "Chinese Classic Music 中国古典音乐/埙/周子雷") ("directory" . "Folk 民谣/尧十三") ("directory" . "Folk 民谣/茉莉僧") ("directory" . "Folk 民谣/花粥") ("directory" . "Humming 哼唱") ("directory" . "Mandarin Pop 华语流行") ("directory" . "Mandarin Pop 华语流行/Tank") ("directory" . "Mandarin Pop 华语流行/周笔畅") ("directory" . "Mandarin Pop 华语流行/周杰伦") ("directory" . "Mandarin Pop 华语流行/张瑶") ("directory" . "Mandarin Pop 华语流行/张力夫") ("directory" . "Mandarin Pop 华语流行/林志炫") ("directory" . "Mandarin Pop 华语流行/林俊杰") ("directory" . "Mandarin Pop 华语流行/杨坤") ("directory" . "Mandarin Pop 华语流行/游鸿明") ("directory" . "Mandarin Pop 华语流行/段玫梅") ("directory" . "Mandarin Pop 华语流行/王菲") ("directory" . "Mandarin Pop 华语流行/萧人凤") ("directory" . "Mandarin Pop 华语流行/萧亚轩") ("directory" . "Mandarin Pop 华语流行/苏打绿") ("directory" . "Mandarin Pop 华语流行/许嵩") ("directory" . "Mandarin Pop 华语流行/郭敬明") ("directory" . "Mandarin Pop 华语流行/陈奕迅") ("directory" . "Mandarin Pop 华语流行/香香") ("directory" . "Original Sound Track 电影原声带/东京爱情故事") ("directory" . "Original Sound Track 电影原声带/三生三世 枕上书/三生三世枕上书 电视剧原声带...") ("directory" . "Original Sound Track 电影原声带/仙剑奇侠传") ("directory" . "Original Sound Track 电影原声带/宠物情人/原声大碟.-.[宠物情人].专辑.(...") ("directory" . "Original Sound Track 电影原声带/少林问道") ("directory" . "Original Sound Track 电影原声带/艳骨") ("directory" . "Original Sound Track 电影原声带/花红花火") ("directory" . "Original Sound Track 电影原声带/青云志") ("directory" . "Piano 钢琴曲/石进/夜的钢琴曲") ("directory" . "Ringtones/铃声") ("directory" . "古风") ("directory" . "古风/蒋雪儿") ("directory" . "同人/九州/九州女声") ("directory" . "非主流")))
  (sort (mingus-group-by-artist results) --cl-favour-exact-match--)
  (mapc #'(lambda (artist) (insert (propertize (car artist) 'face 'mingus-artist-face)) (newline) (mapc #'(lambda (album) (insert (propertize ... ... ...)) (newline) (mapc #'... (sort* ... ...))) (sort (mingus-group-by-album (cdr artist)) --cl-favour-exact-match--))) (sort (mingus-group-by-artist results) --cl-favour-exact-match--))
  (progn (mapc #'(lambda (artist) (insert (propertize (car artist) 'face 'mingus-artist-face)) (newline) (mapc #'(lambda (album) (insert ...) (newline) (mapc ... ...)) (sort (mingus-group-by-album (cdr artist)) --cl-favour-exact-match--))) (sort (mingus-group-by-artist results) --cl-favour-exact-match--)))
  (let* ((--cl-favour-exact-match-- #'(lambda (a b) (if (string= (downcase ...) (downcase query)) (not (string= ... ...)))))) (progn (mapc #'(lambda (artist) (insert (propertize (car artist) 'face 'mingus-artist-face)) (newline) (mapc #'(lambda ... ... ... ...) (sort (mingus-group-by-album ...) --cl-favour-exact-match--))) (sort (mingus-group-by-artist results) --cl-favour-exact-match--))))
  (let ((results (cond ((string-match "regexp on filename" type) (let* ((--cl-var-- ...) (i nil) (list nil)) (while (consp --cl-var--) (setq i ...) (if ... ...) (setq --cl-var-- ...)) list)) (t (if (null as-dir) (cdr (mingus-get-songs ...)) (let* (... ... ...) (while ... ... ... ...) list)))))) (let* ((--cl-favour-exact-match-- #'(lambda (a b) (if (string= ... ...) (not ...))))) (progn (mapc #'(lambda (artist) (insert (propertize ... ... ...)) (newline) (mapc #'... (sort ... --cl-favour-exact-match--))) (sort (mingus-group-by-artist results) --cl-favour-exact-match--)))) (setq header-line-format (list type ": " query)))
  (let ((buffer-read-only nil) (prev (buffer-string))) (erase-buffer) (let ((results (cond ((string-match "regexp on filename" type) (let* (... ... ...) (while ... ... ... ...) list)) (t (if (null as-dir) (cdr ...) (let* ... ... list)))))) (let* ((--cl-favour-exact-match-- #'(lambda (a b) (if ... ...)))) (progn (mapc #'(lambda (artist) (insert ...) (newline) (mapc ... ...)) (sort (mingus-group-by-artist results) --cl-favour-exact-match--)))) (setq header-line-format (list type ": " query))) (goto-char (point-min)) (mingus-revert-from-query pos prev buffer))
  mingus-query-do-it("regexp on filename" "情" 1 "*Mingus Browser*" 1)
  (if (not (string-empty-p (string-trim query))) (mingus-query-do-it type query pos buffer as-dir) (message "Empty query"))
  (let* ((type (or type (mingus-completing-read-allow-spaces "Search type: " '("album" "artist" "genre" "composer" "filename" "title" "regexp on filename") nil t))) (buffer (buffer-name)) (pos (point)) (query (mingus-completing-read-allow-spaces (format "%s query: " (capitalize type)) (if (and mingus-use-ido-mode-p (fboundp 'ido-completing-read)) (mingus-remove-dupes (delq nil (mapcar ... ...))) #'(lambda (string predicate mode) (save-current-buffer ... ...))) nil nil nil (intern-soft (format "mingus-%s-query-hist" type))))) (if (not (string-empty-p (string-trim query))) (mingus-query-do-it type query pos buffer as-dir) (message "Empty query")))
  mingus-query(1 "regexp on filename")
  mingus-query-regexp(1)
  funcall-interactively(mingus-query-regexp 1)
  call-interactively(mingus-query-regexp nil nil)
  command-execute(mingus-query-regexp)