<aside> 💡 本Quicker动作只是因个人需求而制作的,不保证每本图书都能抓取导入成功。

</aside>

😛 一些废话

制作这个 Quicker动作源于用了几年的藏书管理工具「晒书房」2021年被下架了。一时间找不到更好可替代的藏书管理工具(即使有也不敢用了,因为这类工具可能因「不可抗力/技术原因」而被随时下架)。

考虑过用Excel来管理,但用Excel来记录管理图书信息,界面实在不好看,而且每一本书的信息都要一条条地手动录入,太麻烦了,这一来就大大降低了使用的欲望。

刚好去年开始使用Notion作为自己的电子笔记工具,而Notion中的表格数据库用来做「个人藏书库」再合适不过了,也刚好去年Notion开放了API。这样就能将图书信息通过API导入的方式传到Notion的表格数据库中。一开始,我结合 竹简 ISBN 图书查询接口做了一个IOS版的扫图书码导入Notion库的「捷径」,但使用这种个人维护的图书信息查询接口还是存在一些问题,一是图书信息不全,尤其是一些新书;二是不稳定,这种个人维护的信息查询接口很容易失效。

最后,就只能退了求其次,先爬取「豆瓣图书网页」来获取图书信息,爬到图书信息后再通过API导入的方式把图书信息传到到Notion中,而 Quicker 就是实现一套流程的工具。

⭐ 书库模板地址和Quicker动作地址

<aside> 💡 更新内容:

  1. 增加图书封面(file&media属性)
  2. 添加「出版日」(date属性)
  3. 其他 </aside>

这次的动作是基于上次的 动作 更新而来,因此基础步骤参考之前的使用说明:

Notion书库使用说明

👂使用说明

<aside> 💡 本Quicker动作只是因个人需求而制作的,不保证每本图书都能抓取导入成功,如有需要请自行更改动作内容,请确保前面的步骤都按照说明设置好了。

</aside>

那「导入失败」主要原因都出在「HTTP请求(提交信息到Noton) 」这条动作中,原因是提交HTTP请求的请求体内容与书库中property的类型和名字不一定导致的。

要修改请求体内容请双击截图中框起来的那条动作——「HTTP请求(提交信息到Notion)」

Untitled

HTTP请求构造体内容

$${
  "parent": {
    "type": "database_id",
    "database_id": "{notion_database_id}"
  },
  "properties": {
    "书名": { "title": [{"type": "text","text": {"content":  "{title}"}}]},
    "作者": { "rich_text": [{"type": "text","text": {"content": "{author}"}}]},
    "出版日期": { "rich_text": [{"type": "text","text": {"content": "{press_year}"}}]},
    "ISBN": { "rich_text": [{"type": "text","text": {"content": "{isbnNum}"}}]},
    "丛书": { "rich_text": [{"type": "text","text": {"content": "{series}"}}]},
    "装帧": { "rich_text": [{"type": "text","text": {"content": "{design}"}}]},
    "出版社": { "select": {"name": "{press}" }},
    "出品方": { "select": {"name": "{brand}" }},
    "时间": { "date": {"start": "{purchase_date}", "end": null }},
    "册数": { "number": 1 },
    "定价": { "number": {price2} },
    "页数": { "number": {pages} },
    "豆瓣": { "url": "{douban_url}" },
    "出版日": { "date": {"start": "{publishDate}", "end": null }},
    "封面": {"files":[{"name": "testname","type":"external","external":{"url": "{img_url}" }}]}
  }
}