add douban book

This commit is contained in:
wanxp 2022-06-20 18:48:31 +08:00
parent ea1845d9cf
commit 3440bf266e
3 changed files with 16 additions and 10 deletions

@ -48,9 +48,8 @@ type: {{type}}
author: {{author}} author: {{author}}
score: {{score}} score: {{score}}
datePublished: {{datePublished}} datePublished: {{datePublished}}
director: {{director}}
translator: {{translator}} translator: {{translator}}
publish: {{publish}} publish: {{publish}
isbn: {{isbn}} isbn: {{isbn}}
url: {{url}} url: {{url}}
image: {{image}} image: {{image}}

@ -9,6 +9,7 @@ import DoubanSubject from "douban/model/DoubanSubject";
export default class DoubanBookLoadHandler extends DoubanAbstractLoadHandler<DoubanBookSubject> { export default class DoubanBookLoadHandler extends DoubanAbstractLoadHandler<DoubanBookSubject> {
parseText(extract: DoubanBookSubject, settings:DoubanPluginSettings): string { parseText(extract: DoubanBookSubject, settings:DoubanPluginSettings): string {
return settings.bookTemplate ? settings.bookTemplate.replaceAll("{{id}}", extract.id) return settings.bookTemplate ? settings.bookTemplate.replaceAll("{{id}}", extract.id)
.replaceAll("{{type}}", extract.type ? extract.type : "") .replaceAll("{{type}}", extract.type ? extract.type : "")
@ -53,17 +54,23 @@ export default class DoubanBookLoadHandler extends DoubanAbstractLoadHandler<Dou
var author = html(html("head > meta[property= 'book:author']").get(0)).attr("content"); var author = html(html("head > meta[property= 'book:author']").get(0)).attr("content");
var isbn = html(html("head > meta[property= 'book:isbn']").get(0)).attr("content"); var isbn = html(html("head > meta[property= 'book:isbn']").get(0)).attr("content");
var detailDom = html(html("#info").get(0)) var detailDom = html(html("#info").get(0))
var publish = detailDom.find("span:contains('出版社') > a").text(); var publish = detailDom.find("span.pl");
var translator = detailDom.find("span:contains('译者') > a").text();
publish.map((index, info) => {
let key = html(info).text().trim();
let value = ''
if(key.indexOf('作者') >= 0 || key.indexOf('丛书') >= 0 || key.indexOf('译者') >= 0 || key.indexOf('出版社') >= 0){
value = html(info.next.next).text().trim();
}else{
value = html(info.next).text().trim();
}
})
var idPattern = /(\d){5,10}/g; var idPattern = /(\d){5,10}/g;
var id = idPattern.exec(url); var id = idPattern.exec(url);
var info = detailDom.html.toString();
var datePublishedPattern = /<span class="pl">出版年:<\/span> ((\d){4}-(\d){1,2})<br\/>/g;
var datePublished = datePublishedPattern.exec(info);
const result:DoubanBookSubject = { const result:DoubanBookSubject = {
author: [author], author: [author],
translator: [translator], translator: [translator],
@ -72,7 +79,7 @@ export default class DoubanBookLoadHandler extends DoubanAbstractLoadHandler<Dou
datePublished: datePublished?new Date(datePublished[0]):null, datePublished: datePublished?new Date(datePublished[0]):null,
totalWord: 0, totalWord: 0,
isbn: isbn, isbn: isbn,
publish: publish, publish: null,
score: 0, score: 0,
originalTitle: "", originalTitle: "",
subTitle: "", subTitle: "",