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

GitHub - nondanee/UnblockNeteaseMusic: Revive unavailable songs for Netease Cloud Music 这个项目是可以实现网易云变灰的歌用其他的源来替换的(QQ / 虾米 / 百度 / 酷狗 / 酷我 / 咪咕), 如果能加上这个项目的支持就好了

1 个赞

那我到时候把这个项目加上吧。

1 个赞

这东西挺重的?

在本地开启一个服务作为流量代理应该不会太影响emacs,有eaf加持呢hhh

目前放假了,有时间继续完善项目了。
针对评论功能征求一下意见:

  • 能够查看歌曲评论就行
  • 能查看评论,还要能够发送、删除评论
  • 不需要评论功能

0 投票者

我目前觉得是满足第一条就可。

2 个赞

目前看来是放弃评论功能了。

那我现在开始开发 EAF 前端了

3 个赞

修复了无循环时歌曲播放完不会改变状态的 bug。

Listen1?

Listen1 和 YesPlayMusic 我都用过,体验都不是很好,有些歌还是无法播放,直接就停着不动了,估计和用的同一个后端有关系。

YesPlayMusic 的页面漂亮一些,但是歌单和播放列表做了一些自己的改动,不是很符合个人口味

Listen1 的界面又比较原始,少了不少细节,还需要时间完善一下

只能说凑合用吧。Listen1需要自己选择源,大多数情况没问题。UnblockNetease 使用太麻烦了,而且会经常报错,放弃了。

刚刚把一个失效的获取歌单歌曲的 API 换掉了

目前正在写 EAF 前端。有 BUG 欢迎提出

1 个赞

所以考虑 UnblockNetease 的成本和稳定性,是不是考虑前后端分离后,想办法支持其它平台会更好一些? @SpringHan

目前是打算用 UnblockNetease 先试试看。效果不行的话再另寻其它办法。应该是不会支持多平台,不然就不叫 netease-cloud-music

我用UnblockNetease 时灵时不灵,还是很多歌曲不能播放,唉

修复了 UI 的返回函数;为 EAF 前端而将 netease-cloud-music-play 函数进行了修改。

EAF 前端今天上午有社会实践没时间,现在正在写。对于界面和使用有什么要求的可以提一下,目前我的想法是:
控制可用鼠标可用键盘;界面下面是播放面板,上面左边是用户信息和歌单状态,右边是当前歌单的歌曲。

等 EAF 前端写好之后,开始完善文档,然后就可以合并到主分支并提交到 MELPA 上了。请耐心等待。

EAF前端可以试试能不能利用已有的eaf-music-player

  1. 现在 API 支持 docker 和 npm 两种方式,感谢 @VonFry 的贡献
  2. 修复了文档

前面一段时间在配置 Vue lsp 啥的,今天 OK 了。

UI 基本确定就是这样了(背景颜色在每次重新启动 EAF App 的时候会获取一次当前 Emasc 主题背景以及字体颜色,并传给 EAF netease…music App)

剩下的任务:

  1. 解决 python js elisp 之间的交互
  2. 添加快捷键
  3. 添加 UnblockNetease
4 个赞

语言之间相互调用可以参考这篇文章 Home · emacs-eaf/emacs-application-framework Wiki · GitHub

1 个赞
过期内容

现在有 api 的访问好像大部分是同步的?比如 netease-cloud-music-get-user-playlist

request 包不推荐使用同步的方式,

Synchronous request is functional, but please don’t use it other than testing or debugging. Emacs users have better things to do rather than waiting for HTTP request. If you want a better way to write callback chains, use `request-deferred’.

另外我这里 request-backend 是 curl 时,sync 会阻塞非常久(在 request--sync-curl 里有一个写死的 timeout,大概 5 秒。我每次都会必定超出,然后这一个同步的行为结束,请求继续异步,而后导致后续操作需要用到的量全是 nil)。而同样的请求换异步的就是几乎马上得到响应结果。

我用测试用的请示如下,其它的请求也有类似的情况。

(request "https://music.163.com/api/user/playlist/"
           :type "POST"
           :data `(("offset" . "0")
                   ("uid" . ,uid)
                   ("limit" . "1000"))
           :parser 'json-read
           :encoding 'utf-8
           :sync t
           :success (netease-cloud-music-expand-form (print (alist-get 'code data))))

request-backend 换成 url-retrieve 的话,不会有这个问题。但是编码会出错(所有中文字符不知道被解析成什么了),通过增加参数 :encoding 'utf-8 或是 gbk 等并没有办法解决(而且我想用 curl)。

libmpdel 用的是 tq 来处理这类请求的(不过那面的情况不是 http 的请求,是自定的协议,而且是一个长连接

很奇怪,重启了一下没事了