NeteaseCloudMusicApi 得重构,首先得把 router 目录下的一大堆给归拢为一个 js 方便 exports 。然而下面有九十多个文件,所以一个个复制粘贴是不现实的,更何况未来这些文件有改动,于上游一 merge ,这代码得改得老痛苦了。所以决定自己写一个小工具解决这个问题。

python 是个好语言,个人也熟悉,所以用 python 写。一开始的想法是类似编译器的想法,但很明显这些文件是有格式的,依照格式读就行了。我以第一次写采用读取字符串的想法,从「=」号开始取,读到第一个等号就行了。然后格式化输出到一个文件里去。中间出了一点小错误,最后写好了。

但这样又有问题, router 用的都是箭头函数,this 作用域是有问题的,放在各个单个的文件里没什么,但是放到一个文件里, this 作用域可能有问题,于是需要把代码再改一下,把箭头函数转换为匿名函数。如果按照原来的写法,写起来会很麻烦, python 应该用更简洁的方案解决。简单思考了一下,发现可以先用split 按「=>」分割字符串,得到的字符列表除第一个将之后的用「=>」重新 join 下,之后将列表第一项按「=」 split ,然后将得到的这些结果重新组合一下就行了。

这里用 python 解决这个问题蛮有意思的。