晚上用 NodeJS 写了一个脚本,主要原因是此前调整过日记的相关字段,老旧数据没有良好的兼容,因此才写了这样一个东西,彻底解决这个历史遗留问题。编码过程还算顺利,只是在请求库的选择中纠结了一会儿,最终选择了 node-fetch
包解决。总体来说,比写 Shell 还是要简单不少的。
主要逻辑如下:
- 获取老数据涉及的笔记 ID 和音乐 ID
- 遍历获取对应的音乐信息(随机冷却时间,防止网易把我 Ban 了)
- 分别调用接口写入数据库完成更新
关于老数据的情况我也简单描述一下,就是原先日记的音乐仅保留了网易云音乐的 ID,并未包含任何具体的标题、歌手等信息,这样就导致前端展示的时候没法快速获取到,降低了使用体验(如果我要听别人推荐的一首歌,也会首先看标题和封面再做考虑),而由于没法展示相关信息,会显得很神秘,随便播放出来又怕社死,因此我估计大多数人在阅读我内容的时候并没有尝试过这个功能。(现在你看到这篇日记的时候会点击了吗)
新版前端已经将该调整成功落地了,把老数据迁移完毕后也不再需要编写额外的兼容代码了,可以说是非常舒服了。关于我的小窝目前其实还有一个坑,就是相册功能重写过 2 次,日记展示对应的媒体也存在旧数据需要兼容的,这也是一个至今仍未解决的问题。由于系统早期的设计不够合理,未留下冗余的字段记录,才造成了如此困难的现状。不过我还是可以尝试着借助脚本的力量逐步解决这样的问题,这或许也是一种学习吧!