[QuickAdd Script] Yet another douban book script

douban插件不支持移动端的问题很久没得到解决,原本打算稍微改一下 DoubanInone.js(by @Lumos) 或者 bookfromdouban.js(by @Cuman) 使使用更符合个人习惯,强迫症犯了,干脆直接重构代码。

注:图书搜索功能通过解析 https://www.douban.com/search?cat=1001&q= 页面实现,测试的时候访问这个页面偶尔会出现需要登录的情况(频率极低)导致获取失败。

代码见Github:Fetch Douban Book (在Mac/iPad/iPhone测试,均能正常使用)

参考模板如下(根据自己需求改):

---
title: {{VALUE:bookTitle}}
subName: "{{VALUE:subtitle}}"
originalName: "{{VALUE:originalTitle}}"
authors: {{VALUE:authors}}
translators: "{{VALUE:translators}}"
pages: "{{VALUE:pageCount}}"
ISBN: "{{VALUE:isbn}}"
publishedDate: "{{VALUE:publicationYear}}"
publisher: "{{VALUE:publisher}}"
bookUrl: "{{VALUE:bookUrl}}"
coverUrl: "{{VALUE:coverUrl}}"
rating: "{{VALUE:rating}}"
tags: books, {{VALUE:tags}}
---
> [!abstract]+ **内容简介**
> 
> {{VALUE:summary}}

> [!abstract]- **作者简介**
> 
> {{VALUE:authorIntro}}

> [!abstract]- **原文摘录**
> 
> {{VALUE:quotes}}

> [!abstract]- **目录**
> 
> {{VALUE:contents}}

参考模板中的变量名已经能清晰的表达作用,不错重复描述。其中除了变量fileName没包含再内,其余都涵盖其中。

  • fileName: 简单的格式化bookTitle,将书名中的/ \ :符号替换成 , ,将"替换成空格。
    有修改需求,可直接修改代码中formatFileName函数的正则表达式部分。
    这个变量一般用在QuickAdd中自动化创建文件。

  • tags: 豆瓣中的tags。用豆瓣API获取tags的数据和解析网页获取的数据对比结果一致。

有需求可自行修改,代码不难,稍微花点时间看下javascript语法外加QuickAdd文档就OK,querySelectorAll + 正则基本都能解决,并且功能代码基本都做了解耦。

个人只有对获取图书有需求,其他电影、音乐等,有需要可以直接拿去修改,整体逻辑基本类似。

有BUG在GitHub里直接反馈,空闲的时候会解决。

Enjoy it!

2 个赞

很丝滑,谢谢大佬!