辛宝的玄酒清谈!
526 words
3 minutes
闪电笔记memos-152

给自己写了个工具!#

unstorage-memos 获取自托管的 #Memos 内容列表,用来把公开的笔记下载为 markdown 放到文字博客里。https://npmjs.com/package/@web.worker/unstorage-memos?activeTab=readme

背后用的 unstorage

缘起#

开始老了,叹气,只想写一点短东西,快速记录一些想法并把他发出来留存。之前我在博文中提到,我习惯使用 Memos 很容易写零碎内容,而且我找到了 Memos 支持 open api。

那我岂不是可以读取 memos 把我想公开的信息发送到我到 blog 里,减少我表达到情绪压力?

Do it!#

打开 Memos api 的文档地址 。这个页面是获取 Memos 的笔记接口。

官方示例长这样

curl --request GET \
  --url https://memos.apidocumentation.com/api/v1/memos

这里需要注意,如果你是自托管的服务,baseurl 换成自己的域名就行。比如我的托管服务是 https://notes.ijust.cc,后面的 path 不变。

匿名不鉴权,只能获取 public 的公开信息,去 memos 的设置里获取 token 放到 header,类似下面这样

headers: {
  Authorization: `Bearer ${opt.AccessToken}`,
}

就可以读取到 private 到内容啦。

官方的 api 里非常完善,我目测只关注 MemoService 段落就够了。可以实现笔记的增删改查。

更进一步封装成 sdk#

之前在 xlog/github 里养成好习惯,可以使用 unstorage 封装成简单的 storage.getItem/setItem 实现数据的读取,简化操作,非常契合我的观点,精简再精简!

理论上用户下载我的适配器,就可以通过:

  • memosStorage.getKeys() 获取筛选后的信息列表,对应 getList
  • memosStorage.getItem() 获取对应 id 的详情
  • memosStorage.setItem() 根据是否有 id 决定是创建还是更新笔记
  • memosStorage.removeItem() 删除对应的文章

是不是思路打开了?如果换个适配器,就可以变成其他平台的信息维护了。轻松又愉快。说干就干。

这次就用 unstorage + memoApi + bun 快速写了一个工程,最后发到 npm 上了!链接在此 https://npmjs.com/package/@web.worker/unstorage-memos?activeTab=readme

结语#

难得写了写代码,唤醒了一些开心的回忆,后面慢慢去完善细节就好了。

#public

闪电笔记memos-152
https://ijust.cc/posts/LfjBCJgL6KU5xZ9AEqaDzP/
Author
辛宝 Otto
Published at
2024-10-15