mirror of
https://github.com/Wanxp/obsidian-douban.git
synced 2026-04-04 16:48:44 +08:00
Optimize internationalized text and remove some dependencies
This commit is contained in:
parent
f651a851c9
commit
a97688481d
8
main.ts
8
main.ts
@ -16,7 +16,7 @@ export default class DoubanPlugin extends Plugin {
|
|||||||
|
|
||||||
async putToEditor(editor:Editor, extract:DoubanSubject) {
|
async putToEditor(editor:Editor, extract:DoubanSubject) {
|
||||||
if(!editor || !extract) {
|
if(!editor || !extract) {
|
||||||
log.warn(`Not support for current type. You can add Issues at Github:Wanxp/obsidian-douban`);
|
log.warn(i18nHelper.getMessage('140101'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
log.trace(`you choose item load data success: ${JSON.stringify(extract)}`);
|
log.trace(`you choose item load data success: ${JSON.stringify(extract)}`);
|
||||||
@ -53,7 +53,7 @@ export default class DoubanPlugin extends Plugin {
|
|||||||
|
|
||||||
this.addCommand({
|
this.addCommand({
|
||||||
id: "search-douban-by-current-file-name",
|
id: "search-douban-by-current-file-name",
|
||||||
name: i18nHelper.getMessage("search douban by current file name"),
|
name: i18nHelper.getMessage("110001"),
|
||||||
editorCallback: (editor: Editor) =>
|
editorCallback: (editor: Editor) =>
|
||||||
this.getDoubanTextForActiveFile(editor),
|
this.getDoubanTextForActiveFile(editor),
|
||||||
});
|
});
|
||||||
@ -61,14 +61,14 @@ export default class DoubanPlugin extends Plugin {
|
|||||||
|
|
||||||
this.addCommand({
|
this.addCommand({
|
||||||
id: "search-douban-and-input-current-file",
|
id: "search-douban-and-input-current-file",
|
||||||
name: i18nHelper.getMessage("search douban and import to current file"),
|
name: i18nHelper.getMessage("110002"),
|
||||||
editorCallback: (editor: Editor) =>
|
editorCallback: (editor: Editor) =>
|
||||||
this.geDoubanTextForSearchTerm(editor),
|
this.geDoubanTextForSearchTerm(editor),
|
||||||
});
|
});
|
||||||
|
|
||||||
this.addCommand({
|
this.addCommand({
|
||||||
id: "sync-douban-broadcast-by-user-id",
|
id: "sync-douban-broadcast-by-user-id",
|
||||||
name: i18nHelper.getMessage("sync douban broadcast by douban user id"),
|
name: i18nHelper.getMessage('110006'),
|
||||||
editorCallback: (editor: Editor) =>
|
editorCallback: (editor: Editor) =>
|
||||||
this.geDoubanTextForSearchTerm(editor),
|
this.geDoubanTextForSearchTerm(editor),
|
||||||
});
|
});
|
||||||
|
|||||||
70
package.json
70
package.json
@ -1,37 +1,33 @@
|
|||||||
{
|
{
|
||||||
"name": "obsidian-sample-plugin",
|
"name": "obsidian-sample-plugin",
|
||||||
"version": "v1.4.3",
|
"version": "v1.4.3",
|
||||||
"description": "This is a sample plugin for Obsidian (https://obsidian.md)",
|
"description": "This is a sample plugin for Obsidian (https://obsidian.md)",
|
||||||
"main": "main.js",
|
"main": "main.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "node esbuild.config.mjs",
|
"dev": "node esbuild.config.mjs",
|
||||||
"build": "tsc -noEmit -skipLibCheck && node esbuild.config.mjs production",
|
"build": "tsc -noEmit -skipLibCheck && node esbuild.config.mjs production",
|
||||||
"version": "node version-bump.mjs && git add manifest.json versions.json",
|
"version": "node version-bump.mjs && git add manifest.json versions.json",
|
||||||
"test": "jest"
|
"test": "jest"
|
||||||
},
|
},
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
"author": "",
|
"author": "",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jest": "^28.1.4",
|
"@types/jest": "^28.1.4",
|
||||||
"@types/node": "^16.11.6",
|
"@types/node": "^16.11.6",
|
||||||
"@typescript-eslint/eslint-plugin": "^5.2.0",
|
"@typescript-eslint/eslint-plugin": "^5.2.0",
|
||||||
"@typescript-eslint/parser": "^5.2.0",
|
"@typescript-eslint/parser": "^5.2.0",
|
||||||
"builtin-modules": "^3.2.0",
|
"builtin-modules": "^3.2.0",
|
||||||
"esbuild": "0.13.12",
|
"esbuild": "0.13.12",
|
||||||
"jest": "^28.1.2",
|
"jest": "^28.1.2",
|
||||||
"obsidian": "latest",
|
"obsidian": "latest",
|
||||||
"ts-jest": "^28.0.5",
|
"ts-jest": "^28.0.5",
|
||||||
"tslib": "2.3.1",
|
"tslib": "2.3.1",
|
||||||
"typescript": "^4.7.2"
|
"typescript": "^4.7.2"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@notable/html2markdown": "^1.1.3",
|
"@notable/html2markdown": "^1.1.3",
|
||||||
"axios": "^0.27.2",
|
"cheerio": "^1.0.0-rc.11",
|
||||||
"cheerio": "^1.0.0-rc.11",
|
"schema-dts": "^1.1.0"
|
||||||
"douban-search-crack": "^1.0.6",
|
}
|
||||||
"node-fetch": "^2.6.1",
|
}
|
||||||
"schema-dts": "^1.1.0",
|
|
||||||
"tiny-network": "0.0.6"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -1,124 +1,124 @@
|
|||||||
import { i18nHelper } from "src/lang/helper";
|
import { i18nHelper } from "src/lang/helper";
|
||||||
import { type } from "os";
|
import { type } from "os";
|
||||||
|
|
||||||
export interface DoubanPluginSettings {
|
export interface DoubanPluginSettings {
|
||||||
movieTemplate:string,
|
movieTemplate:string,
|
||||||
bookTemplate:string,
|
bookTemplate:string,
|
||||||
musicTemplate:string,
|
musicTemplate:string,
|
||||||
noteTemplate:string
|
noteTemplate:string
|
||||||
dateFormat:string,
|
dateFormat:string,
|
||||||
dateTimeFormat:string,
|
dateTimeFormat:string,
|
||||||
searchUrl:string,
|
searchUrl:string,
|
||||||
arraySpilt:string,
|
arraySpilt:string,
|
||||||
searchHeaders?:string,
|
searchHeaders?:string,
|
||||||
personNameMode:PersonNameMode,
|
personNameMode:PersonNameMode,
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum PersonNameMode {
|
export enum PersonNameMode {
|
||||||
CH_NAME = "CH",
|
CH_NAME = "CH",
|
||||||
EN_NAME = "EN",
|
EN_NAME = "EN",
|
||||||
CH_EN_NAME = "CH_EN",
|
CH_EN_NAME = "CH_EN",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
export const doubanHeadrs = {
|
export const doubanHeadrs = {
|
||||||
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
|
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
|
||||||
"Accept-Language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7",
|
"Accept-Language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7",
|
||||||
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36",
|
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36",
|
||||||
};
|
};
|
||||||
|
|
||||||
export const DEFAULT_SETTINGS:DoubanPluginSettings = {
|
export const DEFAULT_SETTINGS:DoubanPluginSettings = {
|
||||||
movieTemplate:
|
movieTemplate:
|
||||||
`---
|
`---
|
||||||
doubanId: {{id}}
|
doubanId: {{id}}
|
||||||
title: {{title}}
|
title: {{title}}
|
||||||
originalTitle: {{originalTitle}}
|
originalTitle: {{originalTitle}}
|
||||||
type: {{type}}
|
type: {{type}}
|
||||||
score: {{score}}
|
score: {{score}}
|
||||||
genre: {{genre}}
|
genre: {{genre}}
|
||||||
datePublished: {{datePublished}}
|
datePublished: {{datePublished}}
|
||||||
director: {{director}}
|
director: {{director}}
|
||||||
actor: {{actor}}
|
actor: {{actor}}
|
||||||
author: {{author}}
|
author: {{author}}
|
||||||
url: {{url}}
|
url: {{url}}
|
||||||
desc: {{desc}}
|
desc: {{desc}}
|
||||||
---
|
---
|
||||||
|
|
||||||

|

|
||||||
`,
|
`,
|
||||||
bookTemplate:
|
bookTemplate:
|
||||||
`---
|
`---
|
||||||
doubanId: {{id}}
|
doubanId: {{id}}
|
||||||
title: {{title}}
|
title: {{title}}
|
||||||
subTitle: {{subTitle}}
|
subTitle: {{subTitle}}
|
||||||
originalTitle: {{originalTitle}}
|
originalTitle: {{originalTitle}}
|
||||||
type: {{type}}
|
type: {{type}}
|
||||||
author: {{author}}
|
author: {{author}}
|
||||||
score: {{score}}
|
score: {{score}}
|
||||||
datePublished: {{datePublished}}
|
datePublished: {{datePublished}}
|
||||||
translator: {{translator}}
|
translator: {{translator}}
|
||||||
publish: {{publish}}
|
publish: {{publish}}
|
||||||
isbn: {{isbn}}
|
isbn: {{isbn}}
|
||||||
url: {{url}}
|
url: {{url}}
|
||||||
totalPage: {{totalPage}}
|
totalPage: {{totalPage}}
|
||||||
price: {{price}}
|
price: {{price}}
|
||||||
tags: Book
|
tags: Book
|
||||||
desc: {{desc}}
|
desc: {{desc}}
|
||||||
---
|
---
|
||||||
|
|
||||||

|

|
||||||
`,
|
`,
|
||||||
musicTemplate:
|
musicTemplate:
|
||||||
`---
|
`---
|
||||||
doubanId: {{id}}
|
doubanId: {{id}}
|
||||||
title: {{title}}
|
title: {{title}}
|
||||||
type: {{type}}
|
type: {{type}}
|
||||||
actor: {{actor}}
|
actor: {{actor}}
|
||||||
score: {{score}}
|
score: {{score}}
|
||||||
genre: {{genre}}
|
genre: {{genre}}
|
||||||
medium: {{medium}}
|
medium: {{medium}}
|
||||||
albumType: {{albumType}}
|
albumType: {{albumType}}
|
||||||
datePublished: {{datePublished}}
|
datePublished: {{datePublished}}
|
||||||
publish: {{publish}}
|
publish: {{publish}}
|
||||||
barcode: {{barcode}}
|
barcode: {{barcode}}
|
||||||
url: {{url}}
|
url: {{url}}
|
||||||
numberOfRecords: {{numberOfRecords}}
|
numberOfRecords: {{numberOfRecords}}
|
||||||
tags: Music
|
tags: Music
|
||||||
desc: {{desc}}
|
desc: {{desc}}
|
||||||
---
|
---
|
||||||
|
|
||||||

|

|
||||||
`,
|
`,
|
||||||
noteTemplate:
|
noteTemplate:
|
||||||
`---
|
`---
|
||||||
doubanId: {{id}}
|
doubanId: {{id}}
|
||||||
title: {{title}}
|
title: {{title}}
|
||||||
type: {{type}}
|
type: {{type}}
|
||||||
author: [{{author}}]({{authorUrl}})
|
author: [{{author}}]({{authorUrl}})
|
||||||
timePublished: {{timePublished}}
|
timePublished: {{timePublished}}
|
||||||
url: {{url}}
|
url: {{url}}
|
||||||
tags: Article
|
tags: Article
|
||||||
desc: {{desc}}
|
desc: {{desc}}
|
||||||
---
|
---
|
||||||
|
|
||||||
- content
|
- content
|
||||||
{{content}}
|
{{content}}
|
||||||
`,
|
`,
|
||||||
// totalWord: {{totalWord}}
|
// totalWord: {{totalWord}}
|
||||||
|
|
||||||
searchUrl: 'https://www.douban.com/search?q=',
|
searchUrl: 'https://www.douban.com/search?q=',
|
||||||
searchHeaders: JSON.stringify(doubanHeadrs),
|
searchHeaders: JSON.stringify(doubanHeadrs),
|
||||||
dateFormat: "yyyy-MM-DD",
|
dateFormat: "yyyy-MM-DD",
|
||||||
dateTimeFormat: "yyyy-MM-DD HH:mm:ss",
|
dateTimeFormat: "yyyy-MM-DD HH:mm:ss",
|
||||||
arraySpilt: ", ",
|
arraySpilt: ", ",
|
||||||
personNameMode: PersonNameMode.CH_NAME
|
personNameMode: PersonNameMode.CH_NAME
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export const personNameModeRecords: {[key in PersonNameMode]: string} = {
|
export const personNameModeRecords: {[key in PersonNameMode]: string} = {
|
||||||
[PersonNameMode.CH_NAME]: i18nHelper.getMessage("Chinese Name"),
|
[PersonNameMode.CH_NAME]: i18nHelper.getMessage('121206'),
|
||||||
[PersonNameMode.EN_NAME]: i18nHelper.getMessage("English Name"),
|
[PersonNameMode.EN_NAME]: i18nHelper.getMessage('121207'),
|
||||||
[PersonNameMode.CH_EN_NAME]: i18nHelper.getMessage("Chinese And English Name"),
|
[PersonNameMode.CH_EN_NAME]: i18nHelper.getMessage('121208'),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,6 @@ import { DEFAULT_SETTINGS, PersonNameMode, personNameModeRecords } from "./Douba
|
|||||||
|
|
||||||
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 DoubanSettingTab extends PluginSettingTab {
|
export class DoubanSettingTab extends PluginSettingTab {
|
||||||
plugin: DoubanPlugin;
|
plugin: DoubanPlugin;
|
||||||
@ -18,20 +17,20 @@ export class DoubanSettingTab extends PluginSettingTab {
|
|||||||
|
|
||||||
containerEl.empty();
|
containerEl.empty();
|
||||||
|
|
||||||
containerEl.createEl("h2", { text: "Obsidian Douban" });
|
containerEl.createEl("h2", { text: '1201' });
|
||||||
|
|
||||||
new Setting(containerEl).setName(i18nHelper.getMessage('douban search url'))
|
new Setting(containerEl).setName(i18nHelper.getMessage('120001'))
|
||||||
.then((setting) => {
|
.then((setting) => {
|
||||||
setting.addText((textField) => {
|
setting.addText((textField) => {
|
||||||
setting.descEl.appendChild(
|
setting.descEl.appendChild(
|
||||||
createFragment((frag) => {
|
createFragment((frag) => {
|
||||||
frag.appendText(i18nHelper.getMessage('douban search url desc 1'));
|
frag.appendText(i18nHelper.getMessage('120002'));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
frag.appendText(i18nHelper.getMessage('douban search url desc 2'));
|
frag.appendText(i18nHelper.getMessage('120003'));
|
||||||
frag.createEl(
|
frag.createEl(
|
||||||
'a',
|
'a',
|
||||||
{
|
{
|
||||||
text: i18nHelper.getMessage('Douban'),
|
text: i18nHelper.getMessage('120901'),
|
||||||
href: 'https://www.douban.com',
|
href: 'https://www.douban.com',
|
||||||
},
|
},
|
||||||
(a) => {
|
(a) => {
|
||||||
@ -39,11 +38,11 @@ export class DoubanSettingTab extends PluginSettingTab {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
frag.appendText(i18nHelper.getMessage('douban search url desc 3'));
|
frag.appendText(i18nHelper.getMessage('120004'));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
frag.appendText(i18nHelper.getMessage('douban search url desc 4'));
|
frag.appendText(i18nHelper.getMessage('120005'));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
frag.appendText(i18nHelper.getMessage('douban search url desc 5'));
|
frag.appendText(i18nHelper.getMessage('120006'));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
@ -59,21 +58,21 @@ export class DoubanSettingTab extends PluginSettingTab {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
new Setting(containerEl).setName(i18nHelper.getMessage("movie content template")).then((setting) => {
|
new Setting(containerEl).setName(i18nHelper.getMessage('120101')).then((setting) => {
|
||||||
setting.addTextArea((textarea) => {
|
setting.addTextArea((textarea) => {
|
||||||
setting.descEl.appendChild(
|
setting.descEl.appendChild(
|
||||||
createFragment((frag) => {
|
createFragment((frag) => {
|
||||||
frag.appendText(i18nHelper.getMessage('movie content template desc 1'));
|
frag.appendText(i18nHelper.getMessage('120102'));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
frag.appendText(i18nHelper.getMessage('movie content template desc 2'));
|
frag.appendText(i18nHelper.getMessage('120103'));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
frag.appendText(i18nHelper.getMessage('movie content template desc 3'));
|
frag.appendText(i18nHelper.getMessage('120104'));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
frag.appendText(i18nHelper.getMessage('movie content template desc 4'));
|
frag.appendText(i18nHelper.getMessage('120105'));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
frag.appendText(i18nHelper.getMessage('movie content template desc 5'));
|
frag.appendText(i18nHelper.getMessage('120106'));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
frag.appendText(i18nHelper.getMessage('movie content template desc 6'));
|
frag.appendText(i18nHelper.getMessage('120107'));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
@ -88,21 +87,21 @@ export class DoubanSettingTab extends PluginSettingTab {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
new Setting(containerEl).setName(i18nHelper.getMessage("book content template")).then((setting) => {
|
new Setting(containerEl).setName(i18nHelper.getMessage('120201')).then((setting) => {
|
||||||
setting.addTextArea((textarea) => {
|
setting.addTextArea((textarea) => {
|
||||||
setting.descEl.appendChild(
|
setting.descEl.appendChild(
|
||||||
createFragment((frag) => {
|
createFragment((frag) => {
|
||||||
frag.appendText(i18nHelper.getMessage('book content template desc 1'));
|
frag.appendText(i18nHelper.getMessage('120202'));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
frag.appendText(i18nHelper.getMessage('book content template desc 2'));
|
frag.appendText(i18nHelper.getMessage('120203'));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
frag.appendText(i18nHelper.getMessage('book content template desc 3'));
|
frag.appendText(i18nHelper.getMessage('120204'));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
frag.appendText(i18nHelper.getMessage('book content template desc 4'));
|
frag.appendText(i18nHelper.getMessage('120205'));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
frag.appendText(i18nHelper.getMessage('book content template desc 5'));
|
frag.appendText(i18nHelper.getMessage('120206'));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
frag.appendText(i18nHelper.getMessage('book content template desc 6'));
|
frag.appendText(i18nHelper.getMessage('120207'));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
@ -117,21 +116,21 @@ export class DoubanSettingTab extends PluginSettingTab {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
new Setting(containerEl).setName(i18nHelper.getMessage("music content template")).then((setting) => {
|
new Setting(containerEl).setName(i18nHelper.getMessage('120201')).then((setting) => {
|
||||||
setting.addTextArea((textarea) => {
|
setting.addTextArea((textarea) => {
|
||||||
setting.descEl.appendChild(
|
setting.descEl.appendChild(
|
||||||
createFragment((frag) => {
|
createFragment((frag) => {
|
||||||
frag.appendText(i18nHelper.getMessage('music content template desc 1'));
|
frag.appendText(i18nHelper.getMessage('120302'));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
frag.appendText(i18nHelper.getMessage('music content template desc 2'));
|
frag.appendText(i18nHelper.getMessage('120303'));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
frag.appendText(i18nHelper.getMessage('music content template desc 3'));
|
frag.appendText(i18nHelper.getMessage('120304'));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
frag.appendText(i18nHelper.getMessage('music content template desc 4'));
|
frag.appendText(i18nHelper.getMessage('120305'));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
frag.appendText(i18nHelper.getMessage('music content template desc 5'));
|
frag.appendText(i18nHelper.getMessage('120306'));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
frag.appendText(i18nHelper.getMessage('music content template desc 6'));
|
frag.appendText(i18nHelper.getMessage('120307'));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
@ -146,19 +145,19 @@ export class DoubanSettingTab extends PluginSettingTab {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
new Setting(containerEl).setName(i18nHelper.getMessage("note content template")).then((setting) => {
|
new Setting(containerEl).setName(i18nHelper.getMessage("120401")).then((setting) => {
|
||||||
setting.addTextArea((textarea) => {
|
setting.addTextArea((textarea) => {
|
||||||
setting.descEl.appendChild(
|
setting.descEl.appendChild(
|
||||||
createFragment((frag) => {
|
createFragment((frag) => {
|
||||||
frag.appendText(i18nHelper.getMessage('note content template desc 1'));
|
frag.appendText(i18nHelper.getMessage('120402'));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
frag.appendText(i18nHelper.getMessage('note content template desc 2'));
|
frag.appendText(i18nHelper.getMessage('120403'));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
frag.appendText(i18nHelper.getMessage('note content template desc 3'));
|
frag.appendText(i18nHelper.getMessage('120404'));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
frag.appendText(i18nHelper.getMessage('note content template desc 4'));
|
frag.appendText(i18nHelper.getMessage('120405'));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
frag.appendText(i18nHelper.getMessage('note content template desc 5'));
|
frag.appendText(i18nHelper.getMessage('120406'));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
|
|
||||||
})
|
})
|
||||||
@ -174,17 +173,17 @@ export class DoubanSettingTab extends PluginSettingTab {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
new Setting(containerEl).setName(i18nHelper.getMessage("Person Name Language Mode")).then((setting) => {
|
new Setting(containerEl).setName(i18nHelper.getMessage('121201')).then((setting) => {
|
||||||
setting.addDropdown((dropdwon) => {
|
setting.addDropdown((dropdwon) => {
|
||||||
setting.descEl.appendChild(
|
setting.descEl.appendChild(
|
||||||
createFragment((frag) => {
|
createFragment((frag) => {
|
||||||
frag.appendText(i18nHelper.getMessage('options:'));
|
frag.appendText(i18nHelper.getMessage('121202'));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
frag.appendText(i18nHelper.getMessage('Chinese Name mode, only show Chinese name'));
|
frag.appendText(i18nHelper.getMessage('121203'));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
frag.appendText(i18nHelper.getMessage('English Name mode, only show English name'));
|
frag.appendText(i18nHelper.getMessage('121204'));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
frag.appendText(i18nHelper.getMessage('Chinese English Name mode, show Chinese English name both'));
|
frag.appendText(i18nHelper.getMessage('121205'));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
@ -204,19 +203,19 @@ export class DoubanSettingTab extends PluginSettingTab {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
new Setting(containerEl).setName(i18nHelper.getMessage('Date format')).then((setting) => {
|
new Setting(containerEl).setName(i18nHelper.getMessage('120501')).then((setting) => {
|
||||||
setting.addMomentFormat((mf) => {
|
setting.addMomentFormat((mf) => {
|
||||||
setting.descEl.appendChild(
|
setting.descEl.appendChild(
|
||||||
createFragment((frag) => {
|
createFragment((frag) => {
|
||||||
frag.appendText(
|
frag.appendText(
|
||||||
i18nHelper.getMessage('This format will be used when available template variables contain date.')
|
i18nHelper.getMessage('120503')
|
||||||
);
|
);
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
frag.appendText(i18nHelper.getMessage('For more syntax, refer to') + ' ');
|
frag.appendText(i18nHelper.getMessage('120506') + ' ');
|
||||||
frag.createEl(
|
frag.createEl(
|
||||||
'a',
|
'a',
|
||||||
{
|
{
|
||||||
text: i18nHelper.getMessage('format reference'),
|
text: i18nHelper.getMessage('120508'),
|
||||||
href: 'https://momentjs.com/docs/#/displaying/format/',
|
href: 'https://momentjs.com/docs/#/displaying/format/',
|
||||||
},
|
},
|
||||||
(a) => {
|
(a) => {
|
||||||
@ -224,7 +223,7 @@ export class DoubanSettingTab extends PluginSettingTab {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
frag.appendText(i18nHelper.getMessage('Your current syntax looks like this') + ': ');
|
frag.appendText(i18nHelper.getMessage('120507') + ': ');
|
||||||
mf.setSampleEl(frag.createEl('b', { cls: 'u-pop' }));
|
mf.setSampleEl(frag.createEl('b', { cls: 'u-pop' }));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
})
|
})
|
||||||
@ -239,19 +238,19 @@ export class DoubanSettingTab extends PluginSettingTab {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
new Setting(containerEl).setName(i18nHelper.getMessage('DateTime format')).then((setting) => {
|
new Setting(containerEl).setName(i18nHelper.getMessage('120502')).then((setting) => {
|
||||||
setting.addMomentFormat((mf) => {
|
setting.addMomentFormat((mf) => {
|
||||||
setting.descEl.appendChild(
|
setting.descEl.appendChild(
|
||||||
createFragment((frag) => {
|
createFragment((frag) => {
|
||||||
frag.appendText(
|
frag.appendText(
|
||||||
i18nHelper.getMessage('This format will be used when available template variables contain dateTime.')
|
i18nHelper.getMessage('120503')
|
||||||
);
|
);
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
frag.appendText(i18nHelper.getMessage('For more syntax, refer to') + ' ');
|
frag.appendText(i18nHelper.getMessage('120506') + ' ');
|
||||||
frag.createEl(
|
frag.createEl(
|
||||||
'a',
|
'a',
|
||||||
{
|
{
|
||||||
text: i18nHelper.getMessage('format reference'),
|
text: i18nHelper.getMessage('120508'),
|
||||||
href: 'https://momentjs.com/docs/#/displaying/format/',
|
href: 'https://momentjs.com/docs/#/displaying/format/',
|
||||||
},
|
},
|
||||||
(a) => {
|
(a) => {
|
||||||
@ -259,7 +258,7 @@ export class DoubanSettingTab extends PluginSettingTab {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
frag.appendText(i18nHelper.getMessage('Your current syntax looks like this') + ': ');
|
frag.appendText(i18nHelper.getMessage('120507') + ': ');
|
||||||
mf.setSampleEl(frag.createEl('b', { cls: 'u-pop' }));
|
mf.setSampleEl(frag.createEl('b', { cls: 'u-pop' }));
|
||||||
frag.createEl('br');
|
frag.createEl('br');
|
||||||
})
|
})
|
||||||
@ -276,8 +275,8 @@ export class DoubanSettingTab extends PluginSettingTab {
|
|||||||
|
|
||||||
|
|
||||||
new Setting(containerEl)
|
new Setting(containerEl)
|
||||||
.setName(i18nHelper.getMessage("Array Spilt String"))
|
.setName(i18nHelper.getMessage('120601'))
|
||||||
.setDesc(i18nHelper.getMessage(`string to join between array type, such as author, actor`))
|
.setDesc(i18nHelper.getMessage('120602'))
|
||||||
.addText((textField) => {
|
.addText((textField) => {
|
||||||
textField.setPlaceholder(DEFAULT_SETTINGS.arraySpilt)
|
textField.setPlaceholder(DEFAULT_SETTINGS.arraySpilt)
|
||||||
.setValue(this.plugin.settings.arraySpilt)
|
.setValue(this.plugin.settings.arraySpilt)
|
||||||
@ -288,4 +287,4 @@ export class DoubanSettingTab extends PluginSettingTab {
|
|||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,13 +1,12 @@
|
|||||||
import { CheerioAPI, load } from 'cheerio';
|
|
||||||
import { DoubanPluginSettings, PersonNameMode } from "src/douban/Douban";
|
import { DoubanPluginSettings, PersonNameMode } from "src/douban/Douban";
|
||||||
import { get, readStream } from "tiny-network";
|
|
||||||
|
|
||||||
import DoubanPlugin from "main";
|
import DoubanPlugin from "main";
|
||||||
import DoubanSubject from '../model/DoubanSubject';
|
import DoubanSubject from '../model/DoubanSubject';
|
||||||
import DoubanSubjectLoadHandler from "./DoubanSubjectLoadHandler";
|
import DoubanSubjectLoadHandler from "./DoubanSubjectLoadHandler";
|
||||||
import { Editor } from "obsidian";
|
import {Editor, request, requestUrl, RequestUrlParam, sanitizeHTMLToDom} from "obsidian";
|
||||||
import { i18nHelper } from 'src/lang/helper';
|
import { i18nHelper } from 'src/lang/helper';
|
||||||
import { log } from "src/utils/Logutil";
|
import { log } from "src/utils/Logutil";
|
||||||
|
import {CheerioAPI, load} from "cheerio";
|
||||||
|
|
||||||
export default abstract class DoubanAbstractLoadHandler<T extends DoubanSubject> implements DoubanSubjectLoadHandler<T> {
|
export default abstract class DoubanAbstractLoadHandler<T extends DoubanSubject> implements DoubanSubjectLoadHandler<T> {
|
||||||
|
|
||||||
@ -23,14 +22,19 @@ export default abstract class DoubanAbstractLoadHandler<T extends DoubanSubject>
|
|||||||
abstract support(extract: DoubanSubject): boolean;
|
abstract support(extract: DoubanSubject): boolean;
|
||||||
|
|
||||||
handle(url:string, editor:Editor):void {
|
handle(url:string, editor:Editor):void {
|
||||||
Promise.resolve().then(() => get(log.traceN("GET URL", url + "/"), log.traceN("GET HEAD", JSON.parse(this.doubanPlugin.settings.searchHeaders))))
|
let requestUrlParam:RequestUrlParam = {
|
||||||
.then(readStream)
|
url: url,
|
||||||
|
method: "GET",
|
||||||
|
headers: JSON.parse(this.doubanPlugin.settings.searchHeaders),
|
||||||
|
throw: true
|
||||||
|
};
|
||||||
|
request(requestUrlParam)
|
||||||
.then(a => {log.trace(a.toString()); return a;})
|
.then(a => {log.trace(a.toString()); return a;})
|
||||||
.then(load)
|
.then(load)
|
||||||
.then(this.parseSubjectFromHtml)
|
.then(this.parseSubjectFromHtml)
|
||||||
.then(content => this.toEditor(editor, content))
|
.then(content => this.toEditor(editor, content))
|
||||||
// .then(content => content ? editor.replaceSelection(content) : content)
|
// .then(content => content ? editor.replaceSelection(content) : content)
|
||||||
.catch(e => log.error(i18nHelper.getMessage("Fetch Data Error")))
|
.catch(e => log.error(i18nHelper.getMessage('130101')))
|
||||||
;
|
;
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -90,4 +94,4 @@ export default abstract class DoubanAbstractLoadHandler<T extends DoubanSubject>
|
|||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,7 +12,7 @@ import { log } from "src/utils/Logutil";
|
|||||||
*/
|
*/
|
||||||
export default class DoubanOtherLoadHandler extends DoubanAbstractLoadHandler<DoubanSubject> {
|
export default class DoubanOtherLoadHandler extends DoubanAbstractLoadHandler<DoubanSubject> {
|
||||||
parseText(extract: DoubanSubject, settings:DoubanPluginSettings): string {
|
parseText(extract: DoubanSubject, settings:DoubanPluginSettings): string {
|
||||||
log.warn(i18nHelper.getMessage('current version not support type'));
|
log.warn(i18nHelper.getMessage('140101'));
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
support(extract: DoubanSubject): boolean {
|
support(extract: DoubanSubject): boolean {
|
||||||
@ -26,4 +26,4 @@ export default class DoubanOtherLoadHandler extends DoubanAbstractLoadHandler<Do
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,7 +17,7 @@ export class DoubanSearchModal extends Modal {
|
|||||||
onOpen() {
|
onOpen() {
|
||||||
let { contentEl } = this;
|
let { contentEl } = this;
|
||||||
|
|
||||||
contentEl.createEl("h2", { text: i18nHelper.getMessage('Enter Search Term:') });
|
contentEl.createEl("h2", { text: i18nHelper.getMessage('110003') });
|
||||||
|
|
||||||
const inputs = contentEl.createDiv("inputs");
|
const inputs = contentEl.createDiv("inputs");
|
||||||
const searchInput = new TextComponent(inputs).onChange((searchTerm) => {
|
const searchInput = new TextComponent(inputs).onChange((searchTerm) => {
|
||||||
@ -36,7 +36,7 @@ export class DoubanSearchModal extends Modal {
|
|||||||
|
|
||||||
const controls = contentEl.createDiv("controls");
|
const controls = contentEl.createDiv("controls");
|
||||||
const searchButton = controls.createEl("button", {
|
const searchButton = controls.createEl("button", {
|
||||||
text: i18nHelper.getMessage('Search'),
|
text: i18nHelper.getMessage('110004'),
|
||||||
cls: "mod-cta",
|
cls: "mod-cta",
|
||||||
attr: {
|
attr: {
|
||||||
autofocus: true,
|
autofocus: true,
|
||||||
@ -45,7 +45,7 @@ export class DoubanSearchModal extends Modal {
|
|||||||
searchButton.addClass("search_button");
|
searchButton.addClass("search_button");
|
||||||
|
|
||||||
searchButton.addEventListener("click", this.close.bind(this));
|
searchButton.addEventListener("click", this.close.bind(this));
|
||||||
const cancelButton = controls.createEl("button", { text: i18nHelper.getMessage('Cancel') });
|
const cancelButton = controls.createEl("button", { text: i18nHelper.getMessage('110005') });
|
||||||
cancelButton.addEventListener("click", this.close.bind(this));
|
cancelButton.addEventListener("click", this.close.bind(this));
|
||||||
cancelButton.addClass("search_button");
|
cancelButton.addClass("search_button");
|
||||||
|
|
||||||
@ -61,4 +61,4 @@ export class DoubanSearchModal extends Modal {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,24 +1,26 @@
|
|||||||
import { DoubanPluginSettings, doubanHeadrs } from 'src/douban/Douban';
|
import { DoubanPluginSettings, doubanHeadrs } from 'src/douban/Douban';
|
||||||
import cheerio, { load } from 'cheerio';
|
|
||||||
import { get, readStream } from 'tiny-network';
|
|
||||||
|
|
||||||
import DoubanSearchResultSubject from '../model/DoubanSearchResultSubject';
|
import DoubanSearchResultSubject from '../model/DoubanSearchResultSubject';
|
||||||
import SearchParserHandler from './SearchParser';
|
import SearchParserHandler from './SearchParser';
|
||||||
import { ensureStatusCode } from 'src/douban/ResponseHandle';
|
|
||||||
import { log } from 'src/utils/Logutil';
|
import { log } from 'src/utils/Logutil';
|
||||||
|
import {request, RequestUrlParam} from "obsidian";
|
||||||
|
import {i18nHelper} from "../../../lang/helper";
|
||||||
|
import { load } from 'cheerio';
|
||||||
|
|
||||||
export default class Searcher {
|
export default class Searcher {
|
||||||
static search(searchItem:string, doubanSettings:DoubanPluginSettings):Promise<DoubanSearchResultSubject[]> {
|
static search(searchItem:string, doubanSettings:DoubanPluginSettings):Promise<DoubanSearchResultSubject[]> {
|
||||||
// getData();
|
let requestUrlParam:RequestUrlParam = {
|
||||||
// getData2();
|
url: doubanSettings.searchUrl + searchItem,
|
||||||
// return Promise.resolve();
|
method: "GET",
|
||||||
return Promise
|
headers: JSON.parse(doubanSettings.searchHeaders),
|
||||||
.resolve()
|
throw: true
|
||||||
.then(() => get(log.traceN("GET", doubanSettings.searchUrl + searchItem), JSON.parse(doubanSettings.searchHeaders)))
|
};
|
||||||
.then(ensureStatusCode(200))
|
return request(requestUrlParam)
|
||||||
.then(readStream)
|
.then(a => {log.trace(a.toString()); return a;})
|
||||||
.then(load)
|
.then(load)
|
||||||
.then(SearchParserHandler.parseSearch)
|
.then(SearchParserHandler.parseSearch)
|
||||||
.then(log.trace);
|
.catch(e => log.error(i18nHelper.getMessage('130101')))
|
||||||
|
;
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,79 +1,80 @@
|
|||||||
//简体中文
|
//简体中文
|
||||||
export default {
|
export default {
|
||||||
//main.ts
|
//main.ts
|
||||||
'search douban by current file name':'search douban by current file name',
|
'110001': 'search douban by current file name',
|
||||||
'search douban and import to current file':'search douban and import to current file',
|
'110002': 'search douban and import to current file',
|
||||||
'Enter Search Term:':`Enter Search Term:`,
|
'110003': `Enter Search Term:`,
|
||||||
'Search':`Search`,
|
'110004': `Search`,
|
||||||
'Cancel':`Cancel`,
|
'110005': `Cancel`,
|
||||||
"sync douban broadcast by douban user id": `sync douban broadcast ot Obsidian`,
|
'110006': `sync douban broadcast ot Obsidian`,
|
||||||
|
|
||||||
//DoubanSettingTab
|
//DoubanSettingTab
|
||||||
'douban search url': `Douban Search Url`,
|
'1201' : `Obsidian Douban`,
|
||||||
'douban search url desc 1': `Douban search page request address. `,
|
'120001': `Douban Search Url`,
|
||||||
'douban search url desc 2': `First go to:`,
|
'120002': `Douban search page request address. `,
|
||||||
'douban search url desc 3': `Don't enter anything in the search input box, just click Search,`,
|
'120003': `First go to:`,
|
||||||
'douban search url desc 4': `The redirected web page address is the search address,`,
|
'120004': `Don't enter anything in the search input box, just click Search,`,
|
||||||
'douban search url desc 5': `Just copy the web address to the current input box.`,
|
'120005': `The redirected web page address is the search address,`,
|
||||||
|
'120006': `Just copy the web address to the current input box.`,
|
||||||
'movie content template': `Movie Content Template`,
|
|
||||||
'movie content template desc 1': `Set markdown Movie template for extract to be inserted.`,
|
'120101': `Movie Content Template`,
|
||||||
'movie content template desc 2': `Available template variables are :`,
|
'120102': `Set markdown Movie template for extract to be inserted.`,
|
||||||
'movie content template desc 3': `{{id}}, {{type}}, {{title}}, {{originalTitle}},`,
|
'120103': `Available template variables are :`,
|
||||||
'movie content template desc 4': `{{score}}, {{datePublished}}, {{director}},`,
|
'120104': `{{id}}, {{type}}, {{title}}, {{originalTitle}},`,
|
||||||
'movie content template desc 5': `{{author}}, {{actor}}, {{desc}}, {{genre}},`,
|
'120105': `{{score}}, {{datePublished}}, {{director}},`,
|
||||||
'movie content template desc 6': `{{image}}, {{url}}`,
|
'120106': `{{author}}, {{actor}}, {{desc}}, {{genre}},`,
|
||||||
|
'120107': `{{image}}, {{url}}`,
|
||||||
'book content template': `Book Content Template`,
|
|
||||||
'book content template desc 1': `Set markdown Book template for extract to be inserted.`,
|
'120201': `Book Content Template`,
|
||||||
'book content template desc 2': `Available Book template variables are :`,
|
'120202': `Set markdown Book template for extract to be inserted.`,
|
||||||
'book content template desc 3': `{{id}}, {{title}}, {{originalTitle}}, {{subTitle}},`,
|
'120203': `Available Book template variables are :`,
|
||||||
'book content template desc 4': `{{score}}, {{author}}, {{datePublished}}, {{type}},`,
|
'120204': `{{id}}, {{title}}, {{originalTitle}}, {{subTitle}},`,
|
||||||
'book content template desc 5': `{{publish}}, {{desc}}, {{translator}}, {{isbn}},`,
|
'120205': `{{score}}, {{author}}, {{datePublished}}, {{type}},`,
|
||||||
'book content template desc 6': `{{image}}, {{url}}, {{price}}, {{desc}}, {{totalPage}}`,
|
'120206': `{{publish}}, {{desc}}, {{translator}}, {{isbn}},`,
|
||||||
|
'120207': `{{image}}, {{url}}, {{price}}, {{desc}}, {{totalPage}}`,
|
||||||
'music content template': `Music Content Template`,
|
|
||||||
'music content template desc 1': `Set markdown Music template for extract to be inserted.`,
|
'120301': `Music Content Template`,
|
||||||
'music content template desc 2': `Available Music template variables are :`,
|
'120302': `Set markdown Music template for extract to be inserted.`,
|
||||||
'music content template desc 3': `{{id}}, {{title}}, {{actor}}, {{genre}},`,
|
'120303': `Available Music template variables are :`,
|
||||||
'music content template desc 4': `{{score}}, {{medium}}, {{datePublished}}, {{type}},`,
|
'120304': `{{id}}, {{title}}, {{actor}}, {{genre}},`,
|
||||||
'music content template desc 5': `{{publish}}, {{desc}}, {{albumType}}, {{barcode}},`,
|
'120305': `{{score}}, {{medium}}, {{datePublished}}, {{type}},`,
|
||||||
'music content template desc 6': `{{image}}, {{url}}, {{numberOfRecords}}, {{desc}}`,
|
'120306': `{{publish}}, {{desc}}, {{albumType}}, {{barcode}},`,
|
||||||
|
'120307': `{{image}}, {{url}}, {{numberOfRecords}}, {{desc}}`,
|
||||||
'note content template': `Article Content Template`,
|
|
||||||
'note content template desc 1': `Set markdown Article template for extract to be inserted.`,
|
'120401': `Article Content Template`,
|
||||||
'note content template desc 2': `Available Article template variables are :`,
|
'120402': `Set markdown Article template for extract to be inserted.`,
|
||||||
'note content template desc 3': `{{id}}, {{title}}, {{author}}, {{authorUrl}},`,
|
'120403': `Available Article template variables are :`,
|
||||||
'note content template desc 4': `{{timePublished}}, {{url}}, {{desc}}, {{type}},`,
|
'120404': `{{id}}, {{title}}, {{author}}, {{authorUrl}},`,
|
||||||
'note content template desc 5': `{{content}}`,
|
'120405': `{{timePublished}}, {{url}}, {{desc}}, {{type}},`,
|
||||||
|
'120406': `{{content}}`,
|
||||||
'Date format': `Date Format`,
|
|
||||||
'DateTime format': `DateTime Format`,
|
'120501': `Date Format`,
|
||||||
|
'120502': `DateTime Format`,
|
||||||
'This format will be used when available template variables contain date.':
|
|
||||||
`This format will be used when available template variables contain date.`,
|
'120503': `This format will be used when available template variables contain date.`,
|
||||||
'This format will be used when available template variables contain dateTime.':
|
'120504': `This format will be used when available template variables contain dateTime.`,
|
||||||
`This format will be used when available template variables contain dateTime.`,
|
'120506': `For more syntax, refer to`,
|
||||||
'For more syntax, refer to': `For more syntax, refer to`,
|
'120507': `Your current syntax looks like this`,
|
||||||
'Your current syntax looks like this':`Your current syntax looks like this`,
|
'120508': `format reference`,
|
||||||
'format reference': `format reference`,
|
'120601': `Array Spilt String`,
|
||||||
'Array Spilt String':`Array Spilt String`,
|
'120602': `string to join between array type, such as author, actor`,
|
||||||
'string to join between array type, such as author, actor':`string to join between array type, such as author, actor`,
|
'120701': `Douban Request Headers`,
|
||||||
'Douban Request Headers':`Douban Request Headers`,
|
'120801': `This type of import is not supported temporarily, please go to github to submit issues for help`,
|
||||||
'current version not support type': `This type of import is not supported temporarily, please go to github to submit issues for help`,
|
'120901': `Douban`,
|
||||||
'Douban': `Douban`,
|
'121201': `Person Name Language Mode`,
|
||||||
'Person Name Language Mode':'Person Name Language Mode',
|
'121202': `options:`,
|
||||||
'options:':"options:",
|
'121203': `Chinese Name mode, person name only show Chinese name`,
|
||||||
'Chinese Name mode, only show Chinese name':'Chinese Name mode, person name only show Chinese name',
|
'121204': `English Name mode, person name only show English name`,
|
||||||
'English Name mode, only show English name':'English Name mode, person name only show English name',
|
'121205': `Chinese English Name mode, show Chinese and English name both`,
|
||||||
'Chinese English Name mode, show Chinese English name both':'Chinese English Name mode, show Chinese and English name both',
|
'121206': `Chinese Name`,
|
||||||
'Chinese Name': 'Chinese Name',
|
'121207': `English Name`,
|
||||||
'English Name': 'English Name',
|
'121208': `Chinese And English Name`,
|
||||||
'Chinese And English Name': 'Chinese And English Name',
|
|
||||||
|
|
||||||
|
//error
|
||||||
//error
|
'130101': `Fetch Data Error, You can go to Github add Issues`,
|
||||||
"Fetch Data Error": "Fetch Data Error, You can go to Github add Issues",
|
'130201': `Obsidian Douban Plugin Error: `,
|
||||||
"Obsidian Douban Plugin Error:": "Obsidian Douban Plugin Error: ",
|
'130301': `Obsidian Douban Plugin Warn: `,
|
||||||
"Obsidian Douban Plugin Warn:": "Obsidian Douban Plugin Warn: ",
|
'140101': `Not support for current type. You can add Issues at Github:Wanxp/obsidian-douban`,
|
||||||
}
|
|
||||||
|
}
|
||||||
|
|||||||
@ -1,84 +1,84 @@
|
|||||||
//简体中文
|
//简体中文
|
||||||
export default {
|
export default {
|
||||||
//main.ts
|
//main.ts
|
||||||
'search douban by current file name':'用当前文档名搜索豆瓣并写入当前文档',
|
'110001': '用当前文档名搜索豆瓣并写入当前文档',
|
||||||
'search douban and import to current file':'在豆瓣搜索并写入到当前文档',
|
'110002': '在豆瓣搜索并写入到当前文档',
|
||||||
'Enter Search Term:':`输入搜索内容:`,
|
'110003': `输入搜索内容:`,
|
||||||
'Search':`搜索`,
|
'110004': `搜索`,
|
||||||
'Cancel':`取消`,
|
'110005': `取消`,
|
||||||
"sync douban broadcast by douban user id": `同步豆瓣广播至Obsidian`,
|
'110006': `同步豆瓣广播至Obsidian`,
|
||||||
|
|
||||||
//DoubanSettingTab
|
//DoubanSettingTab
|
||||||
'douban search url': `豆瓣搜索地址`,
|
'1201' : `Obsidian-豆瓣`,
|
||||||
'douban search url desc 1': `豆瓣搜索页面请求地址, 通常是网页搜索的地址. `,
|
'120001': `豆瓣搜索地址`,
|
||||||
'douban search url desc 2': `先访问:`,
|
'120002': `豆瓣搜索页面请求地址, 通常是网页搜索的地址. `,
|
||||||
'douban search url desc 3': `然后在搜索输入框不输入任何内容,直接点击搜索,`,
|
'120003': `先访问:`,
|
||||||
'douban search url desc 4': `所跳转的网页地址即是搜索地址,`,
|
'120004': `然后在搜索输入框不输入任何内容,直接点击搜索,`,
|
||||||
'douban search url desc 5': `将网页地址复制到当前输入框即可,`,
|
'120005': `所跳转的网页地址即是搜索地址,`,
|
||||||
|
'120006': `将网页地址复制到当前输入框即可,`,
|
||||||
'movie content template': `电影文本模板`,
|
|
||||||
'movie content template desc 1': `设置选择电影后导入的文本内容模板,`,
|
'120101': `电影文本模板`,
|
||||||
'movie content template desc 2': `支持以下参数名称 :`,
|
'120102': `设置选择电影后导入的文本内容模板,`,
|
||||||
'movie content template desc 3': `{{id}}, {{type}}, {{title}}, {{originalTitle}},`,
|
'120103': `支持以下参数名称 :`,
|
||||||
'movie content template desc 4': `{{score}}, {{datePublished}}, {{director}},`,
|
'120104': `{{id}}, {{type}}, {{title}}, {{originalTitle}},`,
|
||||||
'movie content template desc 5': `{{author}}, {{actor}}, {{desc}}, {{genre}},`,
|
'120105': `{{score}}, {{datePublished}}, {{director}},`,
|
||||||
'movie content template desc 6': `{{image}}, {{url}}`,
|
'120106': `{{author}}, {{actor}}, {{desc}}, {{genre}},`,
|
||||||
|
'120107': `{{image}}, {{url}}`,
|
||||||
'book content template': `书籍文本模板`,
|
|
||||||
'book content template desc 1': `设置选择书籍后导入的文本内容模板,`,
|
'120201': `书籍文本模板`,
|
||||||
'book content template desc 2': `支持以下参数名称 :`,
|
'120202': `设置选择书籍后导入的文本内容模板,`,
|
||||||
'book content template desc 3': `{{id}}, {{title}}, {{originalTitle}}, {{subTitle}},`,
|
'120203': `支持以下参数名称 :`,
|
||||||
'book content template desc 4': `{{score}}, {{author}}, {{datePublished}}, {{type}},`,
|
'120204': `{{id}}, {{title}}, {{originalTitle}}, {{subTitle}},`,
|
||||||
'book content template desc 5': `{{publish}}, {{desc}}, {{translator}}, {{isbn}},`,
|
'120205': `{{score}}, {{author}}, {{datePublished}}, {{type}},`,
|
||||||
'book content template desc 6': `{{image}}, {{url}}, {{price}}, {{desc}}, {{totalPage}}`,
|
'120206': `{{publish}}, {{desc}}, {{translator}}, {{isbn}},`,
|
||||||
|
'120207': `{{image}}, {{url}}, {{price}}, {{desc}}, {{totalPage}}`,
|
||||||
'music content template': `音乐文本模板`,
|
|
||||||
'music content template desc 1': `设置选择音乐后导入的文本内容模板,`,
|
'120301': `音乐文本模板`,
|
||||||
'music content template desc 2': `支持以下参数名称 :`,
|
'120302': `设置选择音乐后导入的文本内容模板,`,
|
||||||
'music content template desc 3': `{{id}}, {{title}}, {{actor}}, {{genre}},`,
|
'120303': `支持以下参数名称 :`,
|
||||||
'music content template desc 4': `{{score}}, {{medium}}, {{datePublished}}, {{type}},`,
|
'120304': `{{id}}, {{title}}, {{actor}}, {{genre}},`,
|
||||||
'music content template desc 5': `{{publish}}, {{desc}}, {{albumType}}, {{barcode}},`,
|
'120305': `{{score}}, {{medium}}, {{datePublished}}, {{type}},`,
|
||||||
'music content template desc 6': `{{image}}, {{url}}, {{numberOfRecords}}, {{desc}}`,
|
'120306': `{{publish}}, {{desc}}, {{albumType}}, {{barcode}},`,
|
||||||
|
'120307': `{{image}}, {{url}}, {{numberOfRecords}}, {{desc}}`,
|
||||||
'note content template': `日记文本模板`,
|
|
||||||
'note content template desc 1': `设置选择日记后导入的文本内容模板,`,
|
'120401': `日记文本模板`,
|
||||||
'note content template desc 2': `支持以下参数名称 :`,
|
'120402': `设置选择日记后导入的文本内容模板,`,
|
||||||
'note content template desc 3': `{{id}}, {{title}}, {{author}}, {{authorUrl}},`,
|
'120403': `支持以下参数名称 :`,
|
||||||
'note content template desc 4': `{{timePublished}}, {{url}}, {{desc}}, {{type}},`,
|
'120404': `{{id}}, {{title}}, {{author}}, {{authorUrl}},`,
|
||||||
'note content template desc 5': `{{content}}`,
|
'120405': `{{timePublished}}, {{url}}, {{desc}}, {{type}},`,
|
||||||
|
'120406': `{{content}}`,
|
||||||
|
|
||||||
'Date format': `参数日期格式`,
|
|
||||||
'This format will be used when available template variables contain date.':
|
'120501': `参数日期格式`,
|
||||||
`这个格式是给上面获取到的参数进行格式化日期时显示的内容 .`,
|
'120503': `这个格式是给上面获取到的参数进行格式化日期时显示的内容 .`,
|
||||||
|
'120502': `参数时间格式`,
|
||||||
'DateTime format': `参数时间格式`,
|
'120504': `这个格式是给上面获取到的参数进行格式化时间时显示的内容 .`,
|
||||||
'This format will be used when available template variables contain dateTime.':
|
'120506': `详细介绍请参考`,
|
||||||
`这个格式是给上面获取到的参数进行格式化时间时显示的内容 .`,
|
'120507': `时间参数时间格式预览`,
|
||||||
'For more syntax, refer to': `详细介绍请参考`,
|
'120508': `格式参考`,
|
||||||
'Your current syntax looks like this':`时间参数时间格式预览`,
|
'120601': `数组分割字符串`,
|
||||||
'format reference': `格式参考`,
|
'120602': `当模板中的变量存在数组, 则需要设定数组元素中的分割符号,比如 演员列表等`,
|
||||||
'Array Spilt String':`数组分割字符串`,
|
'120701': `豆瓣HTTP请求头`,
|
||||||
'string to join between array type, such as author, actor':`当模板中的变量存在数组, 则需要设定数组元素中的分割符号,比如 演员列表等`,
|
'120702': `如果豆瓣搜索或者获取数据失败,请尝试修改这个参数,\n
|
||||||
'Douban Request Headers':`豆瓣HTTP请求头`,
|
参数获取方式为:\n
|
||||||
'Douban Request Headers Desc': `如果豆瓣搜索或者获取数据失败,请尝试修改这个参数,\n
|
1. 访问http://www.douban.com
|
||||||
参数获取方式为:\n
|
2. 复制请求头,仅复制以下请求头 `,
|
||||||
1. 访问http://www.douban.com
|
'120801': `暂时不支持该类型导入,请至github提交issuess获取帮助`,
|
||||||
2. 复制请求头,仅复制以下请求头 `,
|
'120901': `豆瓣网`,
|
||||||
'current version not support type': `暂时不支持该类型导入,请至github提交issuess获取帮助`,
|
|
||||||
'Douban': `豆瓣网`,
|
'121201': `人名显示模式`,
|
||||||
|
'121202': `可选项:`,
|
||||||
'Person Name Language Mode':'人名显示模式',
|
'121203': `中文名称模式, 人名只显示中文名`,
|
||||||
'options:':"可选项:",
|
'121204': `英文名称模式, 人名只显示英文名`,
|
||||||
'Chinese Name mode, only show Chinese name':'中文名称模式, 人名只显示中文名',
|
'121205': `中文和英文名称模式, 人名同时显示中文和英文名`,
|
||||||
'English Name mode, only show English name':'英文名称模式, 人名只显示英文名',
|
'121206': `中文名`,
|
||||||
'Chinese English Name mode, show Chinese English name both':'中文和英文名称模式, 人名同时显示中文和英文名',
|
'121207': `英文名`,
|
||||||
'Chinese Name': '中文名',
|
'121208': `中文名和英文名`,
|
||||||
'English Name': '英文名',
|
|
||||||
'Chinese And English Name': '中文名和英文名',
|
'130101': `获取数据失败,您如有需要请至Github提交Issues`,
|
||||||
|
'130102': `Obsidian Douban插件错误提示:`,
|
||||||
"Fetch Data Error": "获取数据失败,您如有需要请至Github提交Issues",
|
'130103': `Obsidian Douban插件异常提示:`,
|
||||||
"Obsidian Douban Plugin Error: ": "Obsidian Douban插件错误提示:",
|
'140101': `当前版本暂不支持该类型导入,请升级Obsidian Douban或至github提交issuess获取帮助`,
|
||||||
"Obsidian Douban Plugin Warn: ": "Obsidian Douban插件异常提示:",
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
6
src/typings/tiny-network.d.ts
vendored
6
src/typings/tiny-network.d.ts
vendored
@ -1,6 +0,0 @@
|
|||||||
declare module 'tiny-network' {
|
|
||||||
export function get(url:string, headers:any): any;
|
|
||||||
export function get(url:string): any;
|
|
||||||
export function readStream(param:any): any;
|
|
||||||
export function ensureStatusCode(code:number): any;
|
|
||||||
}
|
|
||||||
@ -1,34 +0,0 @@
|
|||||||
import * as https from 'https';
|
|
||||||
|
|
||||||
import { get } from 'tiny-network';
|
|
||||||
import { log } from './Logutil';
|
|
||||||
|
|
||||||
export default class HttpUtil {
|
|
||||||
|
|
||||||
static getHttps(url:string, options:any):Promise<any> {
|
|
||||||
return new Promise<any>(
|
|
||||||
function (resolve, reject) {
|
|
||||||
https.get(url + '/', options, (response) => {
|
|
||||||
console.log('url:', url + '/');
|
|
||||||
console.log('statusCode:', response.statusCode);
|
|
||||||
console.log('headers:', response.headers);
|
|
||||||
if (response.statusCode === 200) {
|
|
||||||
response.on('data', (d) => {
|
|
||||||
resolve(d);
|
|
||||||
});
|
|
||||||
} if (response.statusCode === 301 || response.statusCode === 302 || response.statusCode == 303) {
|
|
||||||
resolve(response.headers.location);
|
|
||||||
} else {
|
|
||||||
reject(new Error(response.statusMessage));
|
|
||||||
}
|
|
||||||
response.on('data', (d) => {
|
|
||||||
process.stdout.write(d);
|
|
||||||
});
|
|
||||||
|
|
||||||
}).on('error', (e) => {
|
|
||||||
reject(new Error('XMLHttpRequest Error: ' + e.message));
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,35 +1,35 @@
|
|||||||
import { Notice } from "obsidian";
|
import { Notice } from "obsidian";
|
||||||
import SchemaOrg from "./SchemaOrg";
|
import SchemaOrg from "./SchemaOrg";
|
||||||
import { i18nHelper } from "src/lang/helper";
|
import { i18nHelper } from "src/lang/helper";
|
||||||
|
|
||||||
class Logger {
|
class Logger {
|
||||||
|
|
||||||
public error(e:any):any {
|
public error(e:any):any {
|
||||||
new Notice(i18nHelper.getMessage("Obsidian Douban Plugin Error:") + e);
|
new Notice(i18nHelper.getMessage('130201') + e);
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
|
||||||
public warn(e:any):any {
|
public warn(e:any):any {
|
||||||
new Notice(i18nHelper.getMessage("Obsidian Douban Plugin Warn:") + e);
|
new Notice(i18nHelper.getMessage('130301') + e);
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
|
||||||
public info(e:any):any {
|
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;
|
return e;
|
||||||
}
|
}
|
||||||
|
|
||||||
public trace(e:any):any {
|
public trace(e:any):any {
|
||||||
// return e;
|
// 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;
|
return e;
|
||||||
}
|
}
|
||||||
|
|
||||||
public traceN(notion:string, e:any):any {
|
public traceN(notion:string, e:any):any {
|
||||||
// return e;
|
// return e;
|
||||||
// console.log(`${notion} ${typeof e == 'string' ? e : JSON.stringify(e)}`);
|
console.log(`${notion} ${typeof e == 'string' ? e : JSON.stringify(e)}`);
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const log:Logger = new Logger();
|
export const log:Logger = new Logger();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user