mirror of
https://github.com/Wanxp/obsidian-douban.git
synced 2026-04-04 16:48:44 +08:00
optimize code and settings
This commit is contained in:
parent
16aacc680b
commit
cd9c300cb7
@ -3,6 +3,9 @@ import {PersonNameMode} from "./Constsant";
|
|||||||
import {doubanHeaders} from "./Douban";
|
import {doubanHeaders} from "./Douban";
|
||||||
|
|
||||||
export const DEFAULT_SETTINGS: DoubanPluginSetting = {
|
export const DEFAULT_SETTINGS: DoubanPluginSetting = {
|
||||||
|
//以后会被移除
|
||||||
|
bookTemplate: "", gameTemplate: "", movieTemplate: "", musicTemplate: "", noteTemplate: "", teleplayTemplate: "",
|
||||||
|
|
||||||
movieTemplateFile: ``,
|
movieTemplateFile: ``,
|
||||||
bookTemplateFile: ``,
|
bookTemplateFile: ``,
|
||||||
musicTemplateFile: ``,
|
musicTemplateFile: ``,
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import HandleContext from "@App/data/model/HandleContext";
|
|||||||
import HandleResult from "@App/data/model/HandleResult";
|
import HandleResult from "@App/data/model/HandleResult";
|
||||||
import {DEFAULT_TEMPLATE_CONTENT} from "../../../constant/DefaultTemplateContent";
|
import {DEFAULT_TEMPLATE_CONTENT} from "../../../constant/DefaultTemplateContent";
|
||||||
import FileHandler from "../../../file/FileHandler";
|
import FileHandler from "../../../file/FileHandler";
|
||||||
|
import StringUtil from "../../../utils/StringUtil";
|
||||||
|
|
||||||
export default abstract class DoubanAbstractLoadHandler<T extends DoubanSubject> implements DoubanSubjectLoadHandler<T> {
|
export default abstract class DoubanAbstractLoadHandler<T extends DoubanSubject> implements DoubanSubjectLoadHandler<T> {
|
||||||
|
|
||||||
@ -205,17 +206,26 @@ export default abstract class DoubanAbstractLoadHandler<T extends DoubanSubject>
|
|||||||
|
|
||||||
private async getTemplate(context: HandleContext):Promise<string> {
|
private async getTemplate(context: HandleContext):Promise<string> {
|
||||||
const tempKey:TemplateKey = this.getTemplateKey(context);
|
const tempKey:TemplateKey = this.getTemplateKey(context);
|
||||||
|
|
||||||
|
// @ts-ignore
|
||||||
|
const oldTemplate:string = context.settings[tempKey.replace('File', '')]
|
||||||
|
if (oldTemplate && oldTemplate.length > 0) {
|
||||||
|
return oldTemplate;
|
||||||
|
}
|
||||||
const templatePath:string = context.settings[tempKey];
|
const templatePath:string = context.settings[tempKey];
|
||||||
let firstLinkpathDest:TFile = this.doubanPlugin.app.metadataCache.getFirstLinkpathDest(templatePath, '');
|
|
||||||
|
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
const defaultContent = DEFAULT_TEMPLATE_CONTENT[tempKey + 'Content'];
|
const defaultContent = DEFAULT_TEMPLATE_CONTENT[tempKey + 'Content'];
|
||||||
|
|
||||||
|
if (!templatePath || StringUtil.isBlank(templatePath)) {
|
||||||
|
return defaultContent;
|
||||||
|
}
|
||||||
|
let firstLinkpathDest:TFile = this.doubanPlugin.app.metadataCache.getFirstLinkpathDest(templatePath, '');
|
||||||
if (!firstLinkpathDest) {
|
if (!firstLinkpathDest) {
|
||||||
return defaultContent;
|
return defaultContent;
|
||||||
}else {
|
}else {
|
||||||
// return firstLinkpathDest.
|
// return firstLinkpathDest.
|
||||||
const val = await new FileHandler(this.doubanPlugin.app).getFileContent(firstLinkpathDest.path);
|
const val = await this.doubanPlugin.fileHandler.getFileContent(firstLinkpathDest.path);
|
||||||
return val?val:defaultContent;
|
return val?val:defaultContent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,7 +14,7 @@ export default class DoubanBookLoadHandler extends DoubanAbstractLoadHandler<Dou
|
|||||||
}
|
}
|
||||||
|
|
||||||
getTemplateKey(context: HandleContext): TemplateKey {
|
getTemplateKey(context: HandleContext): TemplateKey {
|
||||||
return TemplateKey.bookTemplate;
|
return TemplateKey.bookTemplateFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
parseText(beforeContent: string, extract: DoubanBookSubject, context: HandleContext, textMode: TemplateTextMode): string {
|
parseText(beforeContent: string, extract: DoubanBookSubject, context: HandleContext, textMode: TemplateTextMode): string {
|
||||||
|
|||||||
@ -14,7 +14,7 @@ export default class DoubanGameLoadHandler extends DoubanAbstractLoadHandler<Dou
|
|||||||
}
|
}
|
||||||
|
|
||||||
getTemplateKey(context: HandleContext): TemplateKey {
|
getTemplateKey(context: HandleContext): TemplateKey {
|
||||||
return TemplateKey.gameTemplate;
|
return TemplateKey.gameTemplateFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
parseText(beforeContent: string, extract: DoubanGameSubject, context: HandleContext): string {
|
parseText(beforeContent: string, extract: DoubanGameSubject, context: HandleContext): string {
|
||||||
|
|||||||
@ -15,7 +15,7 @@ export default class DoubanMovieLoadHandler extends DoubanAbstractLoadHandler<Do
|
|||||||
}
|
}
|
||||||
|
|
||||||
getTemplateKey(context: HandleContext): TemplateKey {
|
getTemplateKey(context: HandleContext): TemplateKey {
|
||||||
return TemplateKey.movieTemplate;
|
return TemplateKey.movieTemplateFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
parseText(beforeContent: string, extract: DoubanMovieSubject, context: HandleContext): string {
|
parseText(beforeContent: string, extract: DoubanMovieSubject, context: HandleContext): string {
|
||||||
|
|||||||
@ -13,7 +13,7 @@ export default class DoubanMusicLoadHandler extends DoubanAbstractLoadHandler<Do
|
|||||||
}
|
}
|
||||||
|
|
||||||
getTemplateKey(context: HandleContext): TemplateKey {
|
getTemplateKey(context: HandleContext): TemplateKey {
|
||||||
return TemplateKey.musicTemplate;
|
return TemplateKey.musicTemplateFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
parseText(beforeContent: string, extract: DoubanMusicSubject, context: HandleContext): string {
|
parseText(beforeContent: string, extract: DoubanMusicSubject, context: HandleContext): string {
|
||||||
|
|||||||
@ -14,7 +14,7 @@ export default class DoubanNoteLoadHandler extends DoubanAbstractLoadHandler<Dou
|
|||||||
}
|
}
|
||||||
|
|
||||||
getTemplateKey(context: HandleContext): TemplateKey {
|
getTemplateKey(context: HandleContext): TemplateKey {
|
||||||
return TemplateKey.noteTemplate;
|
return TemplateKey.noteTemplateFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
parseText(beforeContent: string, extract: DoubanNoteSubject, context: HandleContext): string {
|
parseText(beforeContent: string, extract: DoubanNoteSubject, context: HandleContext): string {
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import {TemplateKey} from "../../../constant/Constsant";
|
|||||||
*/
|
*/
|
||||||
export default class DoubanOtherLoadHandler extends DoubanAbstractLoadHandler<DoubanSubject> {
|
export default class DoubanOtherLoadHandler extends DoubanAbstractLoadHandler<DoubanSubject> {
|
||||||
getTemplateKey(context: HandleContext): TemplateKey {
|
getTemplateKey(context: HandleContext): TemplateKey {
|
||||||
return TemplateKey.bookTemplate
|
return TemplateKey.bookTemplateFile
|
||||||
}
|
}
|
||||||
|
|
||||||
parseText(beforeContent: string, extract: DoubanSubject, context: HandleContext): string {
|
parseText(beforeContent: string, extract: DoubanSubject, context: HandleContext): string {
|
||||||
|
|||||||
@ -17,7 +17,7 @@ export class DoubanTeleplayLoadHandler extends DoubanAbstractLoadHandler<DoubanT
|
|||||||
}
|
}
|
||||||
|
|
||||||
getTemplateKey(context: HandleContext): TemplateKey {
|
getTemplateKey(context: HandleContext): TemplateKey {
|
||||||
return TemplateKey.teleplayTemplate
|
return TemplateKey.teleplayTemplateFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
parseText(beforeContent: string, extract: DoubanTeleplaySubject, context: HandleContext): string {
|
parseText(beforeContent: string, extract: DoubanTeleplaySubject, context: HandleContext): string {
|
||||||
|
|||||||
@ -2,6 +2,7 @@ import {i18nHelper} from "../../lang/helper";
|
|||||||
import {CreateTemplateSelectParams} from "@App/setting/model/CreateTemplateSelectParams";
|
import {CreateTemplateSelectParams} from "@App/setting/model/CreateTemplateSelectParams";
|
||||||
import { FileSuggest } from "./model/FileSuggest";
|
import { FileSuggest } from "./model/FileSuggest";
|
||||||
import {SearchComponent, Setting} from "obsidian";
|
import {SearchComponent, Setting} from "obsidian";
|
||||||
|
import { log } from "src/utils/Logutil";
|
||||||
|
|
||||||
|
|
||||||
export function createFileSelectionSetting({
|
export function createFileSelectionSetting({
|
||||||
@ -10,23 +11,27 @@ export function createFileSelectionSetting({
|
|||||||
return (setting: Setting) => {
|
return (setting: Setting) => {
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
setting.setName( i18nHelper.getMessage(name));
|
setting.setName( i18nHelper.getMessage(name));
|
||||||
|
|
||||||
|
const templateDesc = new DocumentFragment();
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
setting.setDesc( i18nHelper.getMessage(desc));
|
templateDesc.createDiv().innerHTML = i18nHelper.getMessage(desc) + `<br> <text class="obsidian_douban_settings_desc has_error" >不存在文件夹</> `;
|
||||||
|
setting.setDesc(templateDesc);
|
||||||
setting.addSearch(async (search: SearchComponent) => {
|
setting.addSearch(async (search: SearchComponent) => {
|
||||||
const [oldValue, defaultVal] = manager.getSetting(key);
|
const [oldValue, defaultVal] = manager.getSetting(key);
|
||||||
let v = defaultVal;
|
let v = defaultVal;
|
||||||
if (oldValue) {
|
if (oldValue) {
|
||||||
v = oldValue;
|
v = oldValue;
|
||||||
}
|
}
|
||||||
new FileSuggest(manager.app, search.inputEl);
|
const fs = new FileSuggest(manager.app, search.inputEl);
|
||||||
search.setValue(v);
|
search.setValue(v);
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
search.setPlaceholder(i18nHelper.getMessage());
|
search.setPlaceholder(i18nHelper.getMessage(placeholder));
|
||||||
search.onChange(async (value: string) => {
|
search.onChange(async (value: string) => {
|
||||||
|
log.trace(`hange to : ${value} `)
|
||||||
manager.updateSetting(key, value);
|
manager.updateSetting(key, value);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
});
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,13 @@
|
|||||||
|
|
||||||
export interface DoubanPluginSetting {
|
export interface DoubanPluginSetting {
|
||||||
|
//==兼容之前的配置
|
||||||
|
movieTemplate: string,
|
||||||
|
bookTemplate: string,
|
||||||
|
musicTemplate: string,
|
||||||
|
noteTemplate: string,
|
||||||
|
gameTemplate: string,
|
||||||
|
teleplayTemplate: string,
|
||||||
|
//一段时间后会被删除,以上
|
||||||
movieTemplateFile: string,
|
movieTemplateFile: string,
|
||||||
bookTemplateFile: string,
|
bookTemplateFile: string,
|
||||||
musicTemplateFile: string,
|
musicTemplateFile: string,
|
||||||
|
|||||||
15
styles.css
15
styles.css
@ -1,21 +1,18 @@
|
|||||||
.obsidian_douban_settings_area {
|
.obsidian_douban_settings_area {
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
margin-right: 5px;
|
margin-right: 5px;
|
||||||
font-size: 14px;
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.obsidian_douban_settings_textField {
|
.obsidian_douban_settings_textField {
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
margin-right: 5px;
|
margin-right: 5px;
|
||||||
font-size: 14px;
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.obsidian_douban_search_input {
|
.obsidian_douban_search_input {
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
margin-right: 5px;
|
margin-right: 5px;
|
||||||
font-size: 14px;
|
|
||||||
width: 90%;
|
width: 90%;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -23,5 +20,15 @@
|
|||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
margin-right: 5px;
|
margin-right: 5px;
|
||||||
font-size: 14px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.obsidian_douban_settings_desc.has_error {
|
||||||
|
color: #fb464c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.obsidian_douban_settings_input.has-error {
|
||||||
|
color: #fb464c;
|
||||||
|
border-color: #fb464c;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user