笔记:小博客状态展示的实现
虽然在其他社交媒体分享了我的小博客,但确实还没在这里说呢。
总而言之,Nightola Memos 博客正式开启了,专门发我的碎碎念!

并且我找到了如何不让自己再去 GitHub 仓库一个个新建文件更新内容的办法,顺带也弄成了一个小工具,一键处理图片(改变图片大小 → 压缩并处理成 Webp → 上传至我的自搭图床 → 把获得的 markodown 代码直接写在我的发布页内),现在就基本没有什么能够让我觉得麻烦的地方了。应该,除非以后心情不好或者忙吧。但现在发微博客的体验基本上和发 QQ 空间之类的平台没有很大的区别了,不得不说,token 真是好东西。

在弄小博客的时候,我也把此前的 “睡似了吗” 的三个状态展示弄过来了。主要是感觉这个博客的 “我的收藏”(暂时想不到什么别的名字了)有六个就感觉稍微有点多了,AI 建议我合并一下,于是就这么做了。

而这次博文的主题就出来了,我想在此特地记录一下如何实现的状态同步。虽然都是我和 AI 讨论的,但是我实践了,方法有效。我怕哪天换了手机电脑,或者可能长时间搁置了博客的更新之后,哪天又想同步的话忘了东西,特此记录一下。虽然很可能只在当下有效,以后多少年之后是否有效无法保证。
不过首要条件,就是你的设备要联网。
音乐状态同步
- 首先要有一个 last.fm 账号,注册很容易,其他能记录听歌数据的平台也行,但我没用过

-
用第三方工具来给自己的 last.fm 账号传听歌数据,按照我的个人情况来就是:
-
安卓端可以考虑 Pano Scrobbler,可以通过抓取通知的方式同步你的听歌信息,可以在任意播放器上实现;

-
Windows 端用 MusicBee 这种本地播放器,有上传数据到 last.fm 的插件,绑定之后至少可以记录这一个播放器的数据;

-
也可以用 iTunes,结合另外一个软件来同步。但此前我用 Apple Music 的时候存在歌单完全丢失的情况,从此决定再也不把 iTunes 当作常用的播放器了……
-
-
让 AI 根据 last.fm 的 api 写一串代码,以便我在博客上展示我正在听的歌的信息(歌曲、艺术家、封面等),并设置固定时间更新一次,我设置的是 30 秒。
非常推荐 使用本地播放器来记录数据。我就拿一个术力口歌曲举例,在软件 1 可能是 歌名 = 歌名 + 翻译 歌手名 = P 主 + 虚拟歌姬,在软件 2 可能就是 歌名 = 歌名 + feat. 虚拟歌姬 歌手名 = P 主,而只要信息文本有一点不对应,软件就会把本应该是一首歌的歌记录成两首歌,把 P 主 P 主 / 歌姬 P 主 1+P 主 2 P 主 feat. 歌姬 视为三个艺术家。last.fm 的缺点就是一首歌只能绑定一个艺术家,不能绑定多个艺术家。我是用了好几年了,割舍不掉,才决定适应这个规则…… 对此没有强迫症的可以忽视了。
接下来是 为了以后的听歌数据统一,我给自己定的一个记录规则。在此郑重声明,我对任何 P 主、歌姬均无恶意。以术力口歌曲举例:
- 针对术力口歌曲,把完整的歌姬、P 主信息放在文件名里;
- 在歌曲内部信息(在播放器内读取到的歌曲信息,可以改)里,歌名就是歌名,不带翻译不带歌姬信息;艺术家只能是一个 P 主,如果是合作曲也只记在一个 P 主上;
Last.FM 上的歌曲封面如果缺失,可以去 last.fm 手动上传,推荐 Last.fm Missing Artwork Fixer 这个浏览器插件,在部分情况下可以一键帮你把专辑图片找出来并写进去。

这只是顺手的举例……
电脑状态同步(Windows)
- 注册类似 supabase 的带有远程数据库的平台,新建数据库,按照你的需求 / AI 给出的步骤,给数据库添加字段。

- 获取你的 supabase 数据库的项目地址,以及 Anon KEY(匿名访问密钥,允许脚本通过 API 对数据库进行修改)

- 给电脑安装 / 下载解压即用的 python,并在系统变量里加上 python 的路径。如果系统变量怎么都没法设置成功(在任意位置启用 CMD、Powershell 等软件可以正常使用 python 指令),就先记住 python 的绝对路径。
- 让 AI 根据你刚才获取的地址和密钥(可以不告诉 AI)来写本地运行的 python 脚本代码,目的就是读取你电脑正在打开 / 使用的窗口信息(可以在切换窗口的时候再上传),上传数据来更新你的 supabase 数据库,并且设置几分钟无操作 / 关机的时候自动切换状态。再写一个 bat 文件,可以一键运行命令,启动 python 脚本。环境变量没设置成功的就直接告诉它你的 python.exe 的绝对路径。
- 确认数据库成功自动更新后,让 AI 帮你代码,从 supabase 拉取你的电脑使用信息展示到博客上。
有条件的可以常开电脑,或者整一个开机自动开启脚本(通过 bat 文件实现)的定时任务。这样弄完之后,常玩游戏的话也算是同步你的 STEAM 状态了,还可以让 AI 设置只上传游戏相关的窗口名字,去自定义就可以了。
手机状态同步(安卓)
- 依然需要一个带有在线数据库的网站,我这里还是用的 supabase,在 id 1 那一行里新加字段用作手机正在使用 APP 的情况收集。
- 安装一个 MacroDroid,免费版虽然有广告,但也能设置 5 个宏,够用了。想经常更新就设置好后台常驻和无障碍权限。

- 告诉 AI,你要通过 MacroDroid 新建两个宏,一个宏用来识别并上传你手机解锁屏幕之后正在使用的 APP,另一个宏用来在你锁屏的时候自动给数据库上传 “已锁屏” 的状态。
- 然后就按照 AI 提供的步骤操作吧。我这边动作是 HTTP 请求,请求办法为 PATCH,下面要写的网址是来读取你表格指定 id 的指定字段,内容正文指定这个字段是
[app_name],macrodroid 权限有了之后就直接读取你当前正在用的 APP 名字了。请求头参数需要从数据库的网站上获取。 - 确认数据库会自动更新之后,让 AI 写代码,读取并展示你使用的手机 APP 名字。
有什么不宜展示的私密 APP 可以提前告诉 AI,或者,不想展示的时候先只开判断锁屏状态的宏,锁一下屏幕,再开启屏幕,状态就会固定成已锁屏了,这个时候就可以看其他 APP 了👀。
想在博客上同步其他设备的使用状态,原理都是差不多的,但 NS 这样的游戏机就不行了,毕竟系统是封闭的。真想同步的话,可以在确保有足够游玩时间的时候自己编辑,写上游戏名,在不玩的时候写成其他状态就可以了。