change var to let and make all class names more specific

This commit is contained in:
wanxp 2022-10-25 10:55:05 +08:00
parent a97688481d
commit 8701547f79
16 changed files with 232 additions and 231 deletions

@ -20,7 +20,7 @@ export default class DoubanPlugin extends Plugin {
return;
}
log.trace(`you choose item load data success: ${JSON.stringify(extract)}`);
var content:string = this.doubanEtractHandler.parseText(extract, this.settings)
let content:string = this.doubanEtractHandler.parseText(extract, this.settings)
if(content) {
editor.replaceSelection(content);
}

@ -6,5 +6,5 @@
"description": "This is a plugin that can import movies, books or musics info data from Douban for Obsidian .",
"author": "Wanxp",
"authorUrl": "https://obsidian-douban.wanxuping.com",
"isDesktopOnly": true
"isDesktopOnly": false
}

@ -46,7 +46,7 @@ export class DoubanSettingTab extends PluginSettingTab {
frag.createEl('br');
})
);
textField.inputEl.addClass("settings_textField");
textField.inputEl.addClass("obsidian_douban_settings_textField");
textField
.setPlaceholder(DEFAULT_SETTINGS.searchUrl)
.setValue(this.plugin.settings.searchUrl)
@ -76,7 +76,7 @@ export class DoubanSettingTab extends PluginSettingTab {
frag.createEl('br');
})
);
textarea.inputEl.addClass("settings_area");
textarea.inputEl.addClass("obsidian_douban_settings_area");
textarea.inputEl.setAttr("rows", 10);
textarea.setPlaceholder(DEFAULT_SETTINGS.movieTemplate)
.setValue(this.plugin.settings.movieTemplate)
@ -105,7 +105,7 @@ export class DoubanSettingTab extends PluginSettingTab {
frag.createEl('br');
})
);
textarea.inputEl.addClass("settings_area");
textarea.inputEl.addClass("obsidian_douban_settings_area");
textarea.inputEl.setAttr("rows", 10);
textarea.setPlaceholder(DEFAULT_SETTINGS.bookTemplate)
.setValue(this.plugin.settings.bookTemplate)
@ -134,7 +134,7 @@ export class DoubanSettingTab extends PluginSettingTab {
frag.createEl('br');
})
);
textarea.inputEl.addClass("settings_area");
textarea.inputEl.addClass("obsidian_douban_settings_area");
textarea.inputEl.setAttr("rows", 10);
textarea.setPlaceholder(DEFAULT_SETTINGS.musicTemplate)
.setValue(this.plugin.settings.musicTemplate)
@ -162,7 +162,7 @@ export class DoubanSettingTab extends PluginSettingTab {
})
);
textarea.inputEl.addClass("settings_area");
textarea.inputEl.addClass("obsidian_douban_settings_area");
textarea.inputEl.setAttr("rows", 10);
textarea.setPlaceholder(DEFAULT_SETTINGS.noteTemplate)
.setValue(this.plugin.settings.noteTemplate)

@ -17,14 +17,14 @@ export class DoubanPageBroadcastTransformer {
}
public transform(data: CheerioAPI):DoubanPageBroadcastSubject {
var doubanBroadcastSubjects:DoubanBroadcastSubject[] = data('.new-status .status-wrapper')
let doubanBroadcastSubjects:DoubanBroadcastSubject[] = data('.new-status .status-wrapper')
.get()
.map(i => this.transformElement(i, data));
return new DoubanPageBroadcastSubject ();
}
public transformElement(element:any, source:CheerioAPI):DoubanBroadcastSubject {
var targetType:string = element.innerHTML;
let targetType:string = element.innerHTML;
return this.handlers.filter(h => h.support(targetType))[0].transform(element, source);
}

@ -44,20 +44,20 @@ export default class DoubanPageBroadcatLoadHandler extends DoubanAbstractLoadHan
// return html('.new-status .status-wrapper')
// .get()
// .map(i -> {
// var div = html(i);
// let div = html(i);
// div.find('')
// });
var title = html(html("head > meta[property= 'og:title']").get(0)).attr("content");
var desc = html(html("head > meta[property= 'og:description']").get(0)).attr("content");
var url = html(html("head > meta[property= 'og:url']").get(0)).attr("content");
var image = html(html("head > meta[property= 'og:image']").get(0)).attr("content");
var type = html(html("head > meta[property= 'og:type']").get(0)).attr("content");
var authorA = html(html("a.note-author").get(0));
var timePublished = html(html(".pub-date").get(0)).text();
var content = html(html(".note").get(1));
var idPattern = /(\d){5,10}/g;
var id = idPattern.exec(url);
let title = html(html("head > meta[property= 'og:title']").get(0)).attr("content");
let desc = html(html("head > meta[property= 'og:description']").get(0)).attr("content");
let url = html(html("head > meta[property= 'og:url']").get(0)).attr("content");
let image = html(html("head > meta[property= 'og:image']").get(0)).attr("content");
let type = html(html("head > meta[property= 'og:type']").get(0)).attr("content");
let authorA = html(html("a.note-author").get(0));
let timePublished = html(html(".pub-date").get(0)).text();
let content = html(html(".note").get(1));
let idPattern = /(\d){5,10}/g;
let id = idPattern.exec(url);
// const result:DoubanNoteSubject = {
// image: image,

@ -50,14 +50,15 @@ export default abstract class DoubanAbstractLoadHandler<T extends DoubanSubject>
if(!name || !settings || !settings.personNameMode) {
return "";
}
var resultName = "";
let resultName:string = "";
let regValue:RegExpExecArray;
switch(settings.personNameMode) {
case PersonNameMode.CH_NAME:
var regValue = /[\u4e00-\u9fa5]{2,20}/g.exec(name);
regValue = /[\u4e00-\u9fa5]{2,20}/g.exec(name);
resultName = regValue?regValue[0]:name;
break;
case PersonNameMode.EN_NAME:
var regValue = /[a-zA-Z.\s\-]{2,50}/g.exec(name);
regValue = /[a-zA-Z.\s\-]{2,50}/g.exec(name);
resultName = regValue?regValue[0]:name;
break;
default:
@ -68,7 +69,7 @@ export default abstract class DoubanAbstractLoadHandler<T extends DoubanSubject>
html_encode(str:string):string
{
var s = "";
let s = "";
if (str.length == 0) return "";
s = str.replace(/&/g, "&amp;");
s = s.replace(/</g, "&lt;");
@ -82,7 +83,7 @@ export default abstract class DoubanAbstractLoadHandler<T extends DoubanSubject>
html_decode(str:string):string
{
var s = "";
let s = "";
if (str.length == 0) return "";
s = str.replace(/&amp;/g, "&");
s = s.replace(/&lt;/g, "<");

@ -45,18 +45,18 @@ export default class DoubanBookLoadHandler extends DoubanAbstractLoadHandler<Dou
}
parseSubjectFromHtml(html: CheerioAPI): DoubanBookSubject {
var title = html(html("head > meta[property= 'og:title']").get(0)).attr("content");
var desc = html(html("head > meta[property= 'og:description']").get(0)).attr("content");
var url = html(html("head > meta[property= 'og:url']").get(0)).attr("content");
var image = html(html("head > meta[property= 'og:image']").get(0)).attr("content");
var type = html(html("head > meta[property= 'og:type']").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 score = html(html("#interest_sectl > div > div.rating_self.clearfix > strong[property= 'v:average']").get(0)).text();
var detailDom = html(html("#info").get(0));
var publish = detailDom.find("span.pl");
let title = html(html("head > meta[property= 'og:title']").get(0)).attr("content");
let desc = html(html("head > meta[property= 'og:description']").get(0)).attr("content");
let url = html(html("head > meta[property= 'og:url']").get(0)).attr("content");
let image = html(html("head > meta[property= 'og:image']").get(0)).attr("content");
let type = html(html("head > meta[property= 'og:type']").get(0)).attr("content");
let author = html(html("head > meta[property= 'book:author']").get(0)).attr("content");
let isbn = html(html("head > meta[property= 'book:isbn']").get(0)).attr("content");
let score = html(html("#interest_sectl > div > div.rating_self.clearfix > strong[property= 'v:average']").get(0)).text();
let detailDom = html(html("#info").get(0));
let publish = detailDom.find("span.pl");
var valueMap = new Map<string, string>();
let valueMap = new Map<string, string>();
publish.map((index, info) => {
let key = html(info).text().trim();
@ -69,8 +69,8 @@ export default class DoubanBookLoadHandler extends DoubanAbstractLoadHandler<Dou
valueMap.set(BookKeyValueMap.get(key), value);
})
var idPattern = /(\d){5,10}/g;
var id = idPattern.exec(url);
let idPattern = /(\d){5,10}/g;
let id = idPattern.exec(url);
const result:DoubanBookSubject = {
author: [author],

@ -42,17 +42,17 @@ export default class DoubanMovieLoadHandler extends DoubanAbstractLoadHandler<Do
.get()
.filter(scd => "application/ld+json" == data(scd).attr("type"))
.map(i => {
var item = data(i).text();
let item = data(i).text();
item = super.html_decode(item);
var obj = JSON.parse(item.replace(/[\r\n\s+]/g, ''));
var idPattern = /(\d){5,10}/g;
var id = idPattern.exec(obj.url);
var name = obj.name;
var titleExec = /[\u4e00-\u9fa5]{2,20}/g.exec(name);
var title = titleExec?titleExec[0]:name;
let obj = JSON.parse(item.replace(/[\r\n\s+]/g, ''));
let idPattern = /(\d){5,10}/g;
let id = idPattern.exec(obj.url);
let name = obj.name;
let titleExec = /[\u4e00-\u9fa5]{2,20}/g.exec(name);
let title = titleExec?titleExec[0]:name;
var originalTitleExec = /[a-zA-Z.\s\-]{2,50}/g.exec(name);
var originalTitle = originalTitleExec?originalTitleExec[0]:name;
let originalTitleExec = /[a-zA-Z.\s\-]{2,50}/g.exec(name);
let originalTitle = originalTitleExec?originalTitleExec[0]:name;
const result:DoubanMovieSubject = {
id: id?id[0]:'',

@ -40,22 +40,22 @@ export default class DoubanMusicLoadHandler extends DoubanAbstractLoadHandler<Do
}
parseSubjectFromHtml(html: CheerioAPI): DoubanMusicSubject {
var title = html(html("head > meta[property= 'og:title']").get(0)).attr("content");
var desc = html(html("head > meta[property= 'og:description']").get(0)).attr("content");
var url = html(html("head > meta[property= 'og:url']").get(0)).attr("content");
var image = html(html("head > meta[property= 'og:image']").get(0)).attr("content");
var score = html(html("#interest_sectl > div > div.rating_self.clearfix > strong[property= 'v:average']").get(0)).text();
var detailDom = html(html("#info").get(0));
var publish = detailDom.find("span.pl");
let title = html(html("head > meta[property= 'og:title']").get(0)).attr("content");
let desc = html(html("head > meta[property= 'og:description']").get(0)).attr("content");
let url = html(html("head > meta[property= 'og:url']").get(0)).attr("content");
let image = html(html("head > meta[property= 'og:image']").get(0)).attr("content");
let score = html(html("#interest_sectl > div > div.rating_self.clearfix > strong[property= 'v:average']").get(0)).text();
let detailDom = html(html("#info").get(0));
let publish = detailDom.find("span.pl");
var valueMap = new Map<string, string>();
let valueMap = new Map<string, string>();
publish.map((index, info) => {
let key = html(info).text().trim();
let value = ''
if(key.indexOf('表演者') >= 0){
// value = html(info.next.next).text().trim();
var vas:string[] = key.split("\n \n ");
let vas:string[] = key.split("\n \n ");
value = vas && vas.length > 1? vas[1]:"";
key = vas && vas.length > 0? vas[0]:"";
}else{
@ -64,8 +64,8 @@ export default class DoubanMusicLoadHandler extends DoubanAbstractLoadHandler<Do
valueMap.set(BookKeyValueMap.get(key), value);
})
var idPattern = /(\d){5,10}/g;
var id = idPattern.exec(url);
let idPattern = /(\d){5,10}/g;
let id = idPattern.exec(url);
const result:DoubanMusicSubject = {
image: image,

@ -39,16 +39,16 @@ export default class DoubanNoteLoadHandler extends DoubanAbstractLoadHandler<Dou
}
parseSubjectFromHtml(html: CheerioAPI): DoubanNoteSubject {
var title = html(html("head > meta[property= 'og:title']").get(0)).attr("content");
var desc = html(html("head > meta[property= 'og:description']").get(0)).attr("content");
var url = html(html("head > meta[property= 'og:url']").get(0)).attr("content");
var image = html(html("head > meta[property= 'og:image']").get(0)).attr("content");
var type = html(html("head > meta[property= 'og:type']").get(0)).attr("content");
var authorA = html(html("a.note-author").get(0));
var timePublished = html(html(".pub-date").get(0)).text();
var content = html(html(".note").get(1));
var idPattern = /(\d){5,10}/g;
var id = idPattern.exec(url);
let title = html(html("head > meta[property= 'og:title']").get(0)).attr("content");
let desc = html(html("head > meta[property= 'og:description']").get(0)).attr("content");
let url = html(html("head > meta[property= 'og:url']").get(0)).attr("content");
let image = html(html("head > meta[property= 'og:image']").get(0)).attr("content");
let type = html(html("head > meta[property= 'og:type']").get(0)).attr("content");
let authorA = html(html("a.note-author").get(0));
let timePublished = html(html(".pub-date").get(0)).text();
let content = html(html(".note").get(1));
let idPattern = /(\d){5,10}/g;
let id = idPattern.exec(url);
const result:DoubanNoteSubject = {
image: image,

@ -37,7 +37,7 @@ export class DoubanSearchChooseItemHandler {
if(!searchExtract) {
return;
}
var doubanSubjectHandlers:DoubanSubjectLoadHandler<DoubanSubject>[] = this._doubanSubjectHandlers
let doubanSubjectHandlers:DoubanSubjectLoadHandler<DoubanSubject>[] = this._doubanSubjectHandlers
.filter(h => h.support(searchExtract));
if(doubanSubjectHandlers && doubanSubjectHandlers.length > 0) {
doubanSubjectHandlers[0].handle(searchExtract.url, editor);
@ -50,10 +50,10 @@ export class DoubanSearchChooseItemHandler {
if(!settings) {
return "";
}
var doubanSubjectHandlers:DoubanSubjectLoadHandler<DoubanSubject>[] = this._doubanSubjectHandlers
let doubanSubjectHandlers:DoubanSubjectLoadHandler<DoubanSubject>[] = this._doubanSubjectHandlers
.filter(h => h.support(extract));
if(doubanSubjectHandlers && doubanSubjectHandlers.length > 0) {
var result = doubanSubjectHandlers.map(h => h.parseText(extract, settings));
let result = doubanSubjectHandlers.map(h => h.parseText(extract, settings));
if(result && result.length > 0) {
return result[0];
}else {

@ -46,17 +46,17 @@ export class DoubanTeleplayLoadHandler extends DoubanAbstractLoadHandler<DoubanT
.get()
.filter(scd => "application/ld+json" == data(scd).attr("type"))
.map(i => {
var item = data(i).text();
let item = data(i).text();
item = super.html_decode(item);
var obj = JSON.parse(item.replace(/[\r\n\s+]/g, ''));
var idPattern = /(\d){5,10}/g;
var id = idPattern.exec(obj.url);
var name = obj.name;
var titleExec = /[\u4e00-\u9fa5]{2,20}/g.exec(name);
var title = titleExec?titleExec[0]:name;
let obj = JSON.parse(item.replace(/[\r\n\s+]/g, ''));
let idPattern = /(\d){5,10}/g;
let id = idPattern.exec(obj.url);
let name = obj.name;
let titleExec = /[\u4e00-\u9fa5]{2,20}/g.exec(name);
let title = titleExec?titleExec[0]:name;
var originalTitleExec = /[a-zA-Z.\s\-]{2,50}/g.exec(name);
var originalTitle = originalTitleExec?originalTitleExec[0]:name;
let originalTitleExec = /[a-zA-Z.\s\-]{2,50}/g.exec(name);
let originalTitle = originalTitleExec?originalTitleExec[0]:name;
const result:DoubanTeleplaySubject = {
id: id?id[0]:'',

@ -17,13 +17,13 @@ export class DoubanSearchModal extends Modal {
onOpen() {
let { contentEl } = this;
contentEl.createEl("h2", { text: i18nHelper.getMessage('110003') });
contentEl.createEl("h3", { text: i18nHelper.getMessage('110003') });
const inputs = contentEl.createDiv("inputs");
const searchInput = new TextComponent(inputs).onChange((searchTerm) => {
this.searchTerm = searchTerm;
});
searchInput.inputEl.addClass("search_input");
searchInput.inputEl.addClass("obsidian_douban_search_input");
searchInput.inputEl.focus();
searchInput.inputEl.addEventListener("keydown", (event) => {
@ -42,12 +42,12 @@ export class DoubanSearchModal extends Modal {
autofocus: true,
},
});
searchButton.addClass("search_button");
searchButton.addClass("obsidian_douban_search_button");
searchButton.addEventListener("click", this.close.bind(this));
const cancelButton = controls.createEl("button", { text: i18nHelper.getMessage('110005') });
cancelButton.addEventListener("click", this.close.bind(this));
cancelButton.addClass("search_button");
cancelButton.addClass("obsidian_douban_search_button");
}

@ -7,12 +7,12 @@ export default class SearchParserHandler {
.get()
.map((i:any) => {
const item = dataHtml(i);
var idPattern = /(\d){5,10}/g;
var urlPattern = /(https%3A%2F%2F)\S+(\d){5,10}/g;
var linkValue = item.find("div.content > div > h3 > a").attr("href");
var ececResult = idPattern.exec(linkValue);
var urlResult = urlPattern.exec(linkValue);
var cast = item.find(".subject-cast").text();
let idPattern = /(\d){5,10}/g;
let urlPattern = /(https%3A%2F%2F)\S+(\d){5,10}/g;
let linkValue = item.find("div.content > div > h3 > a").attr("href");
let ececResult = idPattern.exec(linkValue);
let urlResult = urlPattern.exec(linkValue);
let cast = item.find(".subject-cast").text();
const result:DoubanSearchResultSubject = {
id: ececResult?ececResult[0]:'',
title: item.find("div.content > div > h3 > a").text(),

@ -15,19 +15,19 @@ class Logger {
}
public info(e:any):any {
console.log(`Douban Plugin info:` + `${typeof e == 'string' ? e : JSON.stringify(e)}`);
// console.log(`Douban Plugin info:` + `${typeof e == 'string' ? e : JSON.stringify(e)}`);
return e;
}
public trace(e:any):any {
// return e;
console.log(`Douban Plugin trace:` + `${typeof e == 'string' ? e : JSON.stringify(e)}`);
// console.log(`Douban Plugin trace:` + `${typeof e == 'string' ? e : JSON.stringify(e)}`);
return e;
}
public traceN(notion:string, e:any):any {
// return e;
console.log(`${notion} ${typeof e == 'string' ? e : JSON.stringify(e)}`);
// console.log(`${notion} ${typeof e == 'string' ? e : JSON.stringify(e)}`);
return e;
}
}

@ -1,27 +1,27 @@
.settings_area {
.obsidian_douban_settings_area {
margin-left: 5px;
margin-right: 5px;
font-size: 14px;
width: 100%;
}
.settings_textField {
.obsidian_douban_settings_textField {
margin-left: 5px;
margin-right: 5px;
font-size: 14px;
width: 100%;
}
.search_input {
.obsidian_douban_search_input {
margin-left: 5px;
margin-right: 5px;
font-size: 14px;
width: 90%;
}
.search_button {
.obsidian_douban_search_button {
margin-top: 10px;
margin-left: 10px;
margin-left: 5px;
margin-right: 5px;
font-size: 14px;
}