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