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!