mirror of
https://github.com/Wanxp/obsidian-douban.git
synced 2026-04-05 01:28:46 +08:00
fix import error
This commit is contained in:
parent
49be403b23
commit
f651a851c9
@ -2,7 +2,7 @@ import {AggregateRating, Person, WithContext} from 'schema-dts';
|
|||||||
|
|
||||||
import DoubanSubject from 'src/douban/data/model/DoubanSubject';
|
import DoubanSubject from 'src/douban/data/model/DoubanSubject';
|
||||||
|
|
||||||
export default class DoubanPageBroadcastSubject {
|
export default class DoubanPageBroadcastSubject extends DoubanSubject {
|
||||||
pageNumber:number;
|
pageNumber:number;
|
||||||
broadcast:DoubanPageBroadcastSubject[];
|
broadcast:DoubanPageBroadcastSubject[];
|
||||||
pageSize:number;
|
pageSize:number;
|
||||||
|
|||||||
@ -1,116 +1,117 @@
|
|||||||
import { Editor, moment, renderResults } from "obsidian";
|
import { Editor, moment, renderResults } from "obsidian";
|
||||||
|
|
||||||
import { CheerioAPI } from 'cheerio';
|
import { CheerioAPI } from 'cheerio';
|
||||||
import DoubanAbstractLoadHandler from "./DoubanAbstractLoadHandler";
|
import DoubanAbstractLoadHandler from "./DoubanAbstractLoadHandler";
|
||||||
import DoubanBookSubject from "../model/DoubanBookSubject";
|
import DoubanBookSubject from "../model/DoubanBookSubject";
|
||||||
import DoubanPlugin from "main";
|
import DoubanPlugin from "main";
|
||||||
import { DoubanPluginSettings } from "src/douban/Douban";
|
import { DoubanPluginSettings } from "src/douban/Douban";
|
||||||
|
import DoubanSubject from "../model/DoubanSubject";
|
||||||
export default class DoubanBookLoadHandler extends DoubanAbstractLoadHandler<DoubanBookSubject> {
|
|
||||||
|
export default class DoubanBookLoadHandler extends DoubanAbstractLoadHandler<DoubanBookSubject> {
|
||||||
parseText(extract: DoubanBookSubject, settings:DoubanPluginSettings): string {
|
|
||||||
return settings.bookTemplate ? settings.bookTemplate.replaceAll("{{id}}", extract.id)
|
parseText(extract: DoubanBookSubject, settings:DoubanPluginSettings): string {
|
||||||
.replaceAll("{{type}}", extract.type ? extract.type : "")
|
return settings.bookTemplate ? settings.bookTemplate.replaceAll("{{id}}", extract.id)
|
||||||
.replaceAll("{{title}}", extract.title ? extract.title : "")
|
.replaceAll("{{type}}", extract.type ? extract.type : "")
|
||||||
.replaceAll("{{desc}}", extract.desc ? extract.desc : "")
|
.replaceAll("{{title}}", extract.title ? extract.title : "")
|
||||||
.replaceAll("{{image}}", extract.image ? extract.image : "")
|
.replaceAll("{{desc}}", extract.desc ? extract.desc : "")
|
||||||
.replaceAll("{{author}}", extract.author ? extract.author.join(settings.arraySpilt) : "")
|
.replaceAll("{{image}}", extract.image ? extract.image : "")
|
||||||
.replaceAll("{{datePublished}}", extract.datePublished ? moment(extract.datePublished).format(settings.dateFormat) : "")
|
.replaceAll("{{author}}", extract.author ? extract.author.join(settings.arraySpilt) : "")
|
||||||
.replaceAll("{{url}}", extract.url ? extract.url : "")
|
.replaceAll("{{datePublished}}", extract.datePublished ? moment(extract.datePublished).format(settings.dateFormat) : "")
|
||||||
.replaceAll("{{score}}", extract.score && extract.score ? extract.score + "" : "")
|
.replaceAll("{{url}}", extract.url ? extract.url : "")
|
||||||
.replaceAll("{{translator}}", extract.translator ? extract.translator.join(settings.arraySpilt) : "")
|
.replaceAll("{{score}}", extract.score && extract.score ? extract.score + "" : "")
|
||||||
.replaceAll("{{totalWord}}", extract.totalWord ? extract.totalWord+"" : "")
|
.replaceAll("{{translator}}", extract.translator ? extract.translator.join(settings.arraySpilt) : "")
|
||||||
.replaceAll("{{isbn}}", extract.isbn ? extract.isbn : "")
|
.replaceAll("{{totalWord}}", extract.totalWord ? extract.totalWord+"" : "")
|
||||||
.replaceAll("{{publish}}", extract.publish ? extract.publish : "")
|
.replaceAll("{{isbn}}", extract.isbn ? extract.isbn : "")
|
||||||
.replaceAll("{{originalTitle}}", extract.originalTitle ? extract.originalTitle : "")
|
.replaceAll("{{publish}}", extract.publish ? extract.publish : "")
|
||||||
.replaceAll("{{subTitle}}", extract.subTitle ? extract.subTitle : "")
|
.replaceAll("{{originalTitle}}", extract.originalTitle ? extract.originalTitle : "")
|
||||||
.replaceAll("{{totalPage}}", extract.totalPage ? extract.totalPage + "" : "")
|
.replaceAll("{{subTitle}}", extract.subTitle ? extract.subTitle : "")
|
||||||
.replaceAll("{{menu}}", extract.menu ? extract.menu.join(settings.arraySpilt) : "")
|
.replaceAll("{{totalPage}}", extract.totalPage ? extract.totalPage + "" : "")
|
||||||
.replaceAll("{{price}}", extract.price ? extract.price + "" : "")
|
.replaceAll("{{menu}}", extract.menu ? extract.menu.join(settings.arraySpilt) : "")
|
||||||
.replaceAll("{{labels}}", extract.labels ? extract.labels.join(settings.arraySpilt) : "")
|
.replaceAll("{{price}}", extract.price ? extract.price + "" : "")
|
||||||
|
.replaceAll("{{labels}}", extract.labels ? extract.labels.join(settings.arraySpilt) : "")
|
||||||
: undefined;
|
|
||||||
}
|
: undefined;
|
||||||
support(extract: DoubanSubject): boolean {
|
}
|
||||||
return extract && extract.type && (extract.type.contains("书籍") || extract.type.contains("Book") || extract.type.contains("book"));
|
support(extract: DoubanSubject): boolean {
|
||||||
}
|
return extract && extract.type && (extract.type.contains("书籍") || extract.type.contains("Book") || extract.type.contains("book"));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
constructor(doubanPlugin:DoubanPlugin) {
|
|
||||||
super(doubanPlugin);
|
constructor(doubanPlugin:DoubanPlugin) {
|
||||||
}
|
super(doubanPlugin);
|
||||||
|
}
|
||||||
parseSubjectFromHtml(html: CheerioAPI): DoubanBookSubject {
|
|
||||||
var title = html(html("head > meta[property= 'og:title']").get(0)).attr("content");
|
parseSubjectFromHtml(html: CheerioAPI): DoubanBookSubject {
|
||||||
var desc = html(html("head > meta[property= 'og:description']").get(0)).attr("content");
|
var title = html(html("head > meta[property= 'og:title']").get(0)).attr("content");
|
||||||
var url = html(html("head > meta[property= 'og:url']").get(0)).attr("content");
|
var desc = html(html("head > meta[property= 'og:description']").get(0)).attr("content");
|
||||||
var image = html(html("head > meta[property= 'og:image']").get(0)).attr("content");
|
var url = html(html("head > meta[property= 'og:url']").get(0)).attr("content");
|
||||||
var type = html(html("head > meta[property= 'og:type']").get(0)).attr("content");
|
var image = html(html("head > meta[property= 'og:image']").get(0)).attr("content");
|
||||||
var author = html(html("head > meta[property= 'book:author']").get(0)).attr("content");
|
var type = html(html("head > meta[property= 'og:type']").get(0)).attr("content");
|
||||||
var isbn = html(html("head > meta[property= 'book:isbn']").get(0)).attr("content");
|
var author = html(html("head > meta[property= 'book:author']").get(0)).attr("content");
|
||||||
var score = html(html("#interest_sectl > div > div.rating_self.clearfix > strong[property= 'v:average']").get(0)).text();
|
var isbn = html(html("head > meta[property= 'book:isbn']").get(0)).attr("content");
|
||||||
var detailDom = html(html("#info").get(0));
|
var score = html(html("#interest_sectl > div > div.rating_self.clearfix > strong[property= 'v:average']").get(0)).text();
|
||||||
var publish = detailDom.find("span.pl");
|
var detailDom = html(html("#info").get(0));
|
||||||
|
var publish = detailDom.find("span.pl");
|
||||||
var valueMap = new Map<string, string>();
|
|
||||||
|
var valueMap = new Map<string, string>();
|
||||||
publish.map((index, info) => {
|
|
||||||
let key = html(info).text().trim();
|
publish.map((index, info) => {
|
||||||
let value = ''
|
let key = html(info).text().trim();
|
||||||
if(key.indexOf('作者') >= 0 || key.indexOf('丛书') >= 0 || key.indexOf('译者') >= 0 || key.indexOf('出版社') >= 0){
|
let value = ''
|
||||||
value = html(info.next.next).text().trim();
|
if(key.indexOf('作者') >= 0 || key.indexOf('丛书') >= 0 || key.indexOf('译者') >= 0 || key.indexOf('出版社') >= 0){
|
||||||
}else{
|
value = html(info.next.next).text().trim();
|
||||||
value = html(info.next).text().trim();
|
}else{
|
||||||
}
|
value = html(info.next).text().trim();
|
||||||
valueMap.set(BookKeyValueMap.get(key), value);
|
}
|
||||||
})
|
valueMap.set(BookKeyValueMap.get(key), value);
|
||||||
|
})
|
||||||
var idPattern = /(\d){5,10}/g;
|
|
||||||
var id = idPattern.exec(url);
|
var idPattern = /(\d){5,10}/g;
|
||||||
|
var id = idPattern.exec(url);
|
||||||
const result:DoubanBookSubject = {
|
|
||||||
author: [author],
|
const result:DoubanBookSubject = {
|
||||||
translator: [valueMap.get('translator')],
|
author: [author],
|
||||||
bookType: "",
|
translator: [valueMap.get('translator')],
|
||||||
image: image,
|
bookType: "",
|
||||||
datePublished: valueMap.has('datePublished')?new Date(valueMap.get('datePublished')) : null,
|
image: image,
|
||||||
totalWord: valueMap.has('totalWord') ? Number(valueMap.get('totalWord')) : null,
|
datePublished: valueMap.has('datePublished')?new Date(valueMap.get('datePublished')) : null,
|
||||||
isbn: isbn,
|
totalWord: valueMap.has('totalWord') ? Number(valueMap.get('totalWord')) : null,
|
||||||
publish: valueMap.has('publish') ? valueMap.get('publish') : "",
|
isbn: isbn,
|
||||||
score: Number(score),
|
publish: valueMap.has('publish') ? valueMap.get('publish') : "",
|
||||||
originalTitle: valueMap.has('originalTitle') ? valueMap.get('originalTitle') : "",
|
score: Number(score),
|
||||||
subTitle: "",
|
originalTitle: valueMap.has('originalTitle') ? valueMap.get('originalTitle') : "",
|
||||||
totalPage: valueMap.has('originalTitle') ? Number(valueMap.get('totalPage')) : null,
|
subTitle: "",
|
||||||
belong: "",
|
totalPage: valueMap.has('originalTitle') ? Number(valueMap.get('totalPage')) : null,
|
||||||
menu: [],
|
belong: "",
|
||||||
price: valueMap.has('price') ? Number(valueMap.get('price').replace('元', '')) : null,
|
menu: [],
|
||||||
labels: [],
|
price: valueMap.has('price') ? Number(valueMap.get('price').replace('元', '')) : null,
|
||||||
id: id ? id[0]:"",
|
labels: [],
|
||||||
type: "Book",
|
id: id ? id[0]:"",
|
||||||
title: title,
|
type: "Book",
|
||||||
desc: desc,
|
title: title,
|
||||||
url: url
|
desc: desc,
|
||||||
};
|
url: url
|
||||||
return result;
|
};
|
||||||
}
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
}
|
||||||
|
|
||||||
const BookKeyValueMap:Map<string, string> = new Map(
|
|
||||||
[['作者', 'author'],
|
const BookKeyValueMap:Map<string, string> = new Map(
|
||||||
['出版社:', 'publish'],
|
[['作者', 'author'],
|
||||||
['原作名:', 'originalTitle'],
|
['出版社:', 'publish'],
|
||||||
['出版年:', 'datePublished'],
|
['原作名:', 'originalTitle'],
|
||||||
['页数:', 'totalPage'],
|
['出版年:', 'datePublished'],
|
||||||
['定价:', 'price'],
|
['页数:', 'totalPage'],
|
||||||
['装帧:', 'binding'],
|
['定价:', 'price'],
|
||||||
['丛书:', 'bush'],
|
['装帧:', 'binding'],
|
||||||
['ISBN:', 'isbn'],
|
['丛书:', 'bush'],
|
||||||
['译者', 'translator'],
|
['ISBN:', 'isbn'],
|
||||||
]
|
['译者', 'translator'],
|
||||||
);
|
]
|
||||||
|
);
|
||||||
|
|||||||
@ -1,10 +1,11 @@
|
|||||||
import { CheerioAPI } from 'cheerio';
|
import { CheerioAPI } from 'cheerio';
|
||||||
import DoubanAbstractLoadHandler from "./DoubanAbstractLoadHandler";
|
import DoubanAbstractLoadHandler from "./DoubanAbstractLoadHandler";
|
||||||
import DoubanMovieSubject from '../model/DoubanBookSubject';
|
|
||||||
import DoubanPlugin from "main";
|
import DoubanPlugin from "main";
|
||||||
import { DoubanPluginSettings } from "src/douban/Douban";
|
import { DoubanPluginSettings } from "src/douban/Douban";
|
||||||
import SchemaOrg from "src/utils/SchemaOrg";
|
import SchemaOrg from "src/utils/SchemaOrg";
|
||||||
import { moment } from "obsidian";
|
import { moment } from "obsidian";
|
||||||
|
import DoubanSubject from '../model/DoubanSubject';
|
||||||
|
import DoubanMovieSubject from '../model/DoubanMovieSubject';
|
||||||
|
|
||||||
export default class DoubanMovieLoadHandler extends DoubanAbstractLoadHandler<DoubanMovieSubject> {
|
export default class DoubanMovieLoadHandler extends DoubanAbstractLoadHandler<DoubanMovieSubject> {
|
||||||
|
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import DoubanMusicSubject from '../model/DoubanMusicSubject';
|
|||||||
import DoubanPlugin from "main";
|
import DoubanPlugin from "main";
|
||||||
import { DoubanPluginSettings } from "src/douban/Douban";
|
import { DoubanPluginSettings } from "src/douban/Douban";
|
||||||
import { moment } from "obsidian";
|
import { moment } from "obsidian";
|
||||||
|
import DoubanSubject from '../model/DoubanSubject';
|
||||||
|
|
||||||
export default class DoubanMusicLoadHandler extends DoubanAbstractLoadHandler<DoubanMusicSubject> {
|
export default class DoubanMusicLoadHandler extends DoubanAbstractLoadHandler<DoubanMusicSubject> {
|
||||||
|
|
||||||
|
|||||||
@ -3,6 +3,7 @@ import DoubanAbstractLoadHandler from "./DoubanAbstractLoadHandler";
|
|||||||
import DoubanNoteSubject from '../model/DoubanNoteSubject';
|
import DoubanNoteSubject from '../model/DoubanNoteSubject';
|
||||||
import DoubanPlugin from "main";
|
import DoubanPlugin from "main";
|
||||||
import { DoubanPluginSettings } from "src/douban/Douban";
|
import { DoubanPluginSettings } from "src/douban/Douban";
|
||||||
|
import DoubanSubject from '../model/DoubanSubject';
|
||||||
import html2markdown from '@notable/html2markdown';
|
import html2markdown from '@notable/html2markdown';
|
||||||
import { moment } from "obsidian";
|
import { moment } from "obsidian";
|
||||||
|
|
||||||
|
|||||||
@ -2,6 +2,7 @@ import { CheerioAPI } from "cheerio";
|
|||||||
import DoubanAbstractLoadHandler from "./DoubanAbstractLoadHandler";
|
import DoubanAbstractLoadHandler from "./DoubanAbstractLoadHandler";
|
||||||
import DoubanPlugin from "main";
|
import DoubanPlugin from "main";
|
||||||
import { DoubanPluginSettings } from "src/douban/Douban";
|
import { DoubanPluginSettings } from "src/douban/Douban";
|
||||||
|
import DoubanSubject from "../model/DoubanSubject";
|
||||||
import DoubanTeleplaySubject from "../model/DoubanTeleplaySubject";
|
import DoubanTeleplaySubject from "../model/DoubanTeleplaySubject";
|
||||||
import SchemaOrg from "src/utils/SchemaOrg";
|
import SchemaOrg from "src/utils/SchemaOrg";
|
||||||
import { moment } from "obsidian";
|
import { moment } from "obsidian";
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import {AggregateRating, Person, WithContext} from 'schema-dts';
|
|||||||
|
|
||||||
import DoubanSubject from "./DoubanSubject";
|
import DoubanSubject from "./DoubanSubject";
|
||||||
|
|
||||||
export default class DoubanMovieSubject extends DoubanSubject {
|
export default class DoubanBookSubject extends DoubanSubject {
|
||||||
author:string[];
|
author:string[];
|
||||||
translator:string[];
|
translator:string[];
|
||||||
bookType:string;
|
bookType:string;
|
||||||
|
|||||||
@ -2,7 +2,6 @@ import { App, Editor, Modal, TextComponent } from "obsidian";
|
|||||||
|
|
||||||
import DoubanPlugin from "main";
|
import DoubanPlugin from "main";
|
||||||
import { i18nHelper } from "src/lang/helper";
|
import { i18nHelper } from "src/lang/helper";
|
||||||
import { log } from "src/utils/Logutil";
|
|
||||||
|
|
||||||
export class DoubanSearchModal extends Modal {
|
export class DoubanSearchModal extends Modal {
|
||||||
searchTerm: string;
|
searchTerm: string;
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import { DoubanPluginSettings, doubanHeadrs } from 'src/douban/Douban';
|
|||||||
import cheerio, { load } from 'cheerio';
|
import cheerio, { load } from 'cheerio';
|
||||||
import { get, readStream } from 'tiny-network';
|
import { get, readStream } from 'tiny-network';
|
||||||
|
|
||||||
import DoubanSearchResultSubject from 'src/douban/model/DoubanSearchResultSubject';
|
import DoubanSearchResultSubject from '../model/DoubanSearchResultSubject';
|
||||||
import SearchParserHandler from './SearchParser';
|
import SearchParserHandler from './SearchParser';
|
||||||
import { ensureStatusCode } from 'src/douban/ResponseHandle';
|
import { ensureStatusCode } from 'src/douban/ResponseHandle';
|
||||||
import { log } from 'src/utils/Logutil';
|
import { log } from 'src/utils/Logutil';
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import { CheerioAPI } from "cheerio";
|
import { CheerioAPI } from "cheerio";
|
||||||
import DoubanSearchResultSubject from "src/douban/model/DoubanSearchResultSubject";
|
import DoubanSearchResultSubject from "../model/DoubanSearchResultSubject";
|
||||||
|
|
||||||
export default class SearchParserHandler {
|
export default class SearchParserHandler {
|
||||||
static parseSearch(dataHtml:CheerioAPI):DoubanSearchResultSubject[] {
|
static parseSearch(dataHtml:CheerioAPI):DoubanSearchResultSubject[] {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user