新插件: netease-cloud-music.el (网易云音乐)

  1. 修复了把 storage 添加到歌单失败的问题;
  2. 为歌词添加了检查功能,避免空白歌词将上句歌词覆盖;
  3. 添加了歌词速率检查功能,对不同歌曲设置不同的歌词更新速度,保证同步。

TUI 的storage 还有点问题 :joy:,执行netease-cloud-music-storagenetease-cloud-music-storage 值为 (6) 而不是 ((441722 "太阳照常升起" 14408 "久石譲"))

改成这样就好啦

(defun netease-cloud-music-storage-song (&optional song)
  "Storage the song under cursor or with its index."
  (interactive)
  (unless song
    (setq song-index (if (get-buffer netease-cloud-music-buffer-name)
                         (netease-cloud-music--current-song)
                       (1- (read-number "Enter the song's index: "))))
    (setq song (nth song-index
                    (if netease-cloud-music-use-local-playlist
                        netease-cloud-music-playlist
                      netease-cloud-music-playlists-songs))))
  (unless (netease-cloud-music--memeq song netease-cloud-music-storage)
    (setq netease-cloud-music-storage
          (append netease-cloud-music-storage
                  (list song)))
    (message "[Netease-Cloud-Music]: Added the song into storage.")))
1 个赞

Solved

我又来提需求了 :joy:

netease-cloud-music-show-storage 的界面,有方法可以绑定个快捷键比如d,删除某个加入了storage 但是之后又想把他删掉(清空整个storage再重新一个个加可能会比较麻烦)

再加个storage 正在播放的歌曲的功能应该也蛮好用的hhhh

增加删除 storage 中歌曲功能,快捷键参考 README

1 个赞

写了个实现

(defun netease-cloud-music-storage-current-song ()
  "Storage current playing song. "
  (interactive)
  (if netease-cloud-music-current-song
      (let ((song (nth netease-cloud-music-playlist-song-index
                       (if netease-cloud-music-use-local-playlist
                           netease-cloud-music-playlist
                         netease-cloud-music-playlists-songs))))
        (unless (netease-cloud-music--memeq song netease-cloud-music-storage)
          (setq netease-cloud-music-storage
                (append netease-cloud-music-storage
                        (list song)))
          (message "[Netease-Cloud-Music]: Added current playing song into storage.")))
    ))

netease-cloud-music-playlists-songs 的值为

((451894733 "在那遙遠的地方" 3681 "李志")
 (452007503 "來了" 3681 "李志")
 (1844656636 "定西" 0 nil)
 (451894521 "意味" 3681 "李志")
 (442932122 "結婚" 0 nil)
 (451892766 "阿蘭" 3681 "李志")
 (451894270 "曖昧" 3681 "李志")
 (452007259 "媽媽" 3681 "李志")
 (1844638423 "兰花草" 0 nil)
 (451886791 "不多" 0 nil)
 (452036435 "斜" 3681 "李志")
 (451887817 "好威武支持有希望" 0 nil))

歌手名字的位置有很多nil,然后就没法正常显示了

欢迎提交 PR,我不愿添加小功能原因是每次添加后都得去 EAF 提一个只是加了点快捷键的 PR,太麻烦。

嗯嗯,pr提交啦,主要是tui端的功能,和eaf端没什么关系

netease-cloud-music-storage-song 添加了新判断机制。调用该命令时,TUI 下如果当前光标下没有 song,则添加播放中的歌曲进入 storage;EAF端如果输入的 index 为空字符串,则添加播放中的歌曲进入 storage。这样就避免了一个只加入 keybinding 的 EAF PR :joy:

1 个赞

EAF补丁可以随时提哇

1 个赞

为 EAF 的新变量及 eaf-setq 的更改做了适配。不过得等 EAF 合并了 PR 后才可正常使用。

eaf下能打开界面,能得到搜索结果,但是之后就没有反应了。出现 "json-encode-key: Bad JSON object key: 190009"错误提示。

不使用eaf时可以正常使用。用eaf打开demo、访问网络都没有问题。 @SpringHan

已经合并,pull 一下 EAF 就可

1 个赞

修改了获取歌单中歌曲的函数,保证获得的歌单中歌曲完整。

修改了 netease-cloud-music-storage-song 的逻辑:

  1. TUI 下,若光标下有歌曲,则将光标下歌曲添加至 storage ;否则询问用户是添加当前播放的歌曲还是当前歌单所有歌曲
  2. EAF 端,若输入的 index 可转化为数字,则将 index 对应的歌曲添加入 storage ; 若为空,则添加当前播放的歌曲;若为字符串 all ,则添加当前歌单中所有歌曲。

这个功能的主要用途:在本地歌单获取一堆歌曲,然后通过 write-mode 整理出自己所需要的,然后全部加入 storage ,这样就可轻松将其添加入其它用户歌单了。

修复了播放因某些原因无法获取信息的歌曲时出现非正常行为的问题

目前看来本项目趋于稳定了,改加的功能都有了,活跃度开始下降了。

UnblockNetease 还打算加不

刚更新了下

netease-cloud-music-get-playlist-songs: Symbol’s value as variable is void: data