mirror of
https://github.com/Wanxp/obsidian-douban.git
synced 2026-04-04 16:48:44 +08:00
1. add array spilt , start, end
This commit is contained in:
parent
230733aa49
commit
0dd68ff8cb
@ -13,7 +13,9 @@ export const DEFAULT_SETTINGS: DoubanPluginSetting = {
|
||||
searchUrl: 'https://www.douban.com/search?q=',
|
||||
dateFormat: "yyyy-MM-DD",
|
||||
timeFormat: "HH:mm:ss",
|
||||
arrayStart: "[",
|
||||
arraySpilt: ", ",
|
||||
arrayEnd: "]",
|
||||
personNameMode: PersonNameMode.CH_NAME,
|
||||
dataFilePath: "",
|
||||
dataFileNamePath: "/{{type}}/{{title}}",
|
||||
|
||||
@ -112,7 +112,7 @@ export default abstract class DoubanAbstractLoadHandler<T extends DoubanSubject>
|
||||
// result = array.map(YamlUtil.handleText).join(', ');
|
||||
// break;
|
||||
default:
|
||||
result = array.join(context.settings.arraySpilt);
|
||||
result = this.handleArray(array, context);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@ -535,4 +535,11 @@ export default abstract class DoubanAbstractLoadHandler<T extends DoubanSubject>
|
||||
protected getPropertyValue(html: CheerioAPI, name: PropertyName): string {
|
||||
return HtmlUtil.getHtmlText(html, this.doubanPlugin.settingsManager.getSelector(this.getSupportType(), name));
|
||||
}
|
||||
|
||||
protected handleArray(arr: string[], context: HandleContext): string {
|
||||
const {settings} = context;
|
||||
let content :string = arr ? arr.join(settings.arraySpilt) : "";
|
||||
content = settings.arrayStart + content + settings.arrayEnd;
|
||||
return content;
|
||||
}
|
||||
}
|
||||
|
||||
@ -25,8 +25,8 @@ export default class DoubanGameLoadHandler extends DoubanAbstractLoadHandler<Dou
|
||||
parseText(beforeContent: string, extract: DoubanGameSubject, context: HandleContext): string {
|
||||
const {settings} = context;
|
||||
return beforeContent
|
||||
.replaceAll("{{platform}}", extract.platform ? extract.platform.join(settings.arraySpilt) : "")
|
||||
.replaceAll("{{aliases}}", extract.aliases ? extract.aliases.join(settings.arraySpilt) : "")
|
||||
.replaceAll("{{platform}}", this.handleArray(extract.platform, context))
|
||||
.replaceAll("{{aliases}}", this.handleArray(extract.aliases, context))
|
||||
.replaceAll("{{developer}}", extract.developer ? extract.developer : "");
|
||||
}
|
||||
|
||||
|
||||
@ -28,15 +28,15 @@ export default class DoubanMovieLoadHandler extends DoubanAbstractLoadHandler<Do
|
||||
parseText(beforeContent: string, extract: DoubanMovieSubject, context: HandleContext): string {
|
||||
const {settings} = context;
|
||||
return beforeContent
|
||||
.replaceAll("{{originalTitle}}", extract.originalTitle ? extract.originalTitle : "")
|
||||
.replaceAll("{{director}}", extract.director ? extract.director.map(SchemaOrg.getPersonName).map(name => super.getPersonName(name, context)).filter(c => c).join(settings.arraySpilt) : "")
|
||||
.replaceAll("{{actor}}", extract.actor ? extract.actor.map(SchemaOrg.getPersonName).map(name => super.getPersonName(name, context)).filter(c => c).join(settings.arraySpilt) : "")
|
||||
.replaceAll("{{author}}", extract.author ? extract.author.map(SchemaOrg.getPersonName).map(name => super.getPersonName(name, context)).filter(c => c).join(settings.arraySpilt) : "")
|
||||
.replaceAll("{{aliases}}", extract.aliases ? extract.aliases.map(a=>a.replace(TITLE_ALIASES_SPECIAL_CHAR_REG_G, '_')).join(settings.arraySpilt) : "")
|
||||
.replaceAll("{{country}}", extract.country ? extract.country.join(settings.arraySpilt) : "")
|
||||
.replaceAll("{{language}}", extract.language ? extract.language.join(settings.arraySpilt) : "")
|
||||
.replaceAll("{{IMDb}}", extract.IMDb ? extract.IMDb : "")
|
||||
.replaceAll("{{time}}", extract.time ? extract.time : "")
|
||||
.replaceAll("{{originalTitle}}", extract.originalTitle ?? "")
|
||||
.replaceAll("{{director}}", this.handleArray(extract.director.map(SchemaOrg.getPersonName).map(name => super.getPersonName(name, context)).filter(c => c), context))
|
||||
.replaceAll("{{actor}}", this.handleArray( extract.actor.map(SchemaOrg.getPersonName).map(name => super.getPersonName(name, context)).filter(c => c), context))
|
||||
.replaceAll("{{author}}", this.handleArray(extract.author.map(SchemaOrg.getPersonName).map(name => super.getPersonName(name, context)).filter(c => c), context))
|
||||
.replaceAll("{{aliases}}", this.handleArray(extract.aliases.map(a=>a.replace(TITLE_ALIASES_SPECIAL_CHAR_REG_G, '_')), context))
|
||||
.replaceAll("{{country}}", this.handleArray( extract.country, context))
|
||||
.replaceAll("{{language}}",this.handleArray( extract.language, context))
|
||||
.replaceAll("{{IMDb}}", extract.IMDb ??"")
|
||||
.replaceAll("{{time}}", extract.time ??"")
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
@ -25,7 +25,7 @@ export default class DoubanMusicLoadHandler extends DoubanAbstractLoadHandler<Do
|
||||
parseText(beforeContent: string, extract: DoubanMusicSubject, context: HandleContext): string {
|
||||
const {settings} = context;
|
||||
return beforeContent
|
||||
.replaceAll("{{actor}}", extract.actor ? extract.actor.join(settings.arraySpilt) : "")
|
||||
.replaceAll("{{actor}}", this.handleArray(extract.actor, context ))
|
||||
.replaceAll("{{barcode}}", extract.barcode ? extract.barcode : "")
|
||||
.replaceAll("{{medium}}", extract.medium ? extract.medium : "")
|
||||
.replaceAll("{{albumType}}", extract.albumType ? extract.albumType : "")
|
||||
|
||||
@ -27,16 +27,16 @@ export class DoubanTeleplayLoadHandler extends DoubanAbstractLoadHandler<DoubanT
|
||||
parseText(beforeContent: string, extract: DoubanTeleplaySubject, context: HandleContext): string {
|
||||
const {settings} = context;
|
||||
return beforeContent
|
||||
.replaceAll("{{originalTitle}}", extract.originalTitle ? extract.originalTitle : "")
|
||||
.replaceAll("{{director}}", extract.director ? extract.director.map(SchemaOrg.getPersonName).map(name => super.getPersonName(name, context)).filter(c => c).join(settings.arraySpilt) : "")
|
||||
.replaceAll("{{actor}}", extract.actor ? extract.actor.map(SchemaOrg.getPersonName).map(name => super.getPersonName(name, context)).filter(c => c).join(settings.arraySpilt) : "")
|
||||
.replaceAll("{{author}}", extract.author ? extract.author.map(SchemaOrg.getPersonName).map(name => super.getPersonName(name, context)).filter(c => c).join(settings.arraySpilt) : "")
|
||||
.replaceAll("{{aliases}}", extract.aliases ? extract.aliases.map(a=>a.replace(TITLE_ALIASES_SPECIAL_CHAR_REG_G, '_')).join(settings.arraySpilt) : "")
|
||||
.replaceAll("{{country}}", extract.country ? extract.country.join(settings.arraySpilt) : "")
|
||||
.replaceAll("{{language}}", extract.language ? extract.language.join(settings.arraySpilt) : "")
|
||||
.replaceAll("{{IMDb}}", extract.IMDb ? extract.IMDb : "")
|
||||
.replaceAll("{{time}}", extract.time ? extract.time : "")
|
||||
.replaceAll("{{episode}}", extract.episode ? extract.episode : "")
|
||||
.replaceAll("{{originalTitle}}", extract.originalTitle ?? "")
|
||||
.replaceAll("{{director}}", this.handleArray( extract.director.map(SchemaOrg.getPersonName).map(name => super.getPersonName(name, context)).filter(c => c), context))
|
||||
.replaceAll("{{actor}}", this.handleArray( extract.actor.map(SchemaOrg.getPersonName).map(name => super.getPersonName(name, context)).filter(c => c), context))
|
||||
.replaceAll("{{author}}", this.handleArray( extract.author.map(SchemaOrg.getPersonName).map(name => super.getPersonName(name, context)).filter(c => c), context))
|
||||
.replaceAll("{{aliases}}", this.handleArray( extract.aliases.map(a=>a.replace(TITLE_ALIASES_SPECIAL_CHAR_REG_G, '_')), context))
|
||||
.replaceAll("{{country}}", this.handleArray( extract.country, context))
|
||||
.replaceAll("{{language}}", this.handleArray(extract.language, context))
|
||||
.replaceAll("{{IMDb}}", extract.IMDb?? "")
|
||||
.replaceAll("{{time}}", extract.time ?? "")
|
||||
.replaceAll("{{episode}}", extract.episode ?? "")
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
@ -30,14 +30,14 @@ export default class DoubanTheaterLoadHandler extends DoubanAbstractLoadHandler<
|
||||
const {settings} = context;
|
||||
return beforeContent
|
||||
.replaceAll("{{originalTitle}}", extract.originalTitle ? extract.originalTitle : "")
|
||||
.replaceAll("{{director}}", extract.director ? extract.director.map(SchemaOrg.getPersonName).map(name => super.getPersonName(name, context)).filter(c => c).join(settings.arraySpilt) : "")
|
||||
.replaceAll("{{actor}}", extract.actor ? extract.actor.map(SchemaOrg.getPersonName).map(name => super.getPersonName(name, context)).filter(c => c).join(settings.arraySpilt) : "")
|
||||
.replaceAll("{{author}}", extract.author ? extract.author.map(SchemaOrg.getPersonName).map(name => super.getPersonName(name, context)).filter(c => c).join(settings.arraySpilt) : "")
|
||||
.replaceAll("{{aliases}}", extract.aliases ? extract.aliases.map(a=>a.replace(TITLE_ALIASES_SPECIAL_CHAR_REG_G, '_')).join(settings.arraySpilt) : "")
|
||||
.replaceAll("{{country}}", extract.country ? extract.country.join(settings.arraySpilt) : "")
|
||||
.replaceAll("{{language}}", extract.language ? extract.language.join(settings.arraySpilt) : "")
|
||||
.replaceAll("{{IMDb}}", extract.IMDb ? extract.IMDb : "")
|
||||
.replaceAll("{{time}}", extract.time ? extract.time : "")
|
||||
.replaceAll("{{director}}", this.handleArray( extract.director.map(SchemaOrg.getPersonName).map(name => super.getPersonName(name, context)).filter(c => c), context))
|
||||
.replaceAll("{{actor}}", this.handleArray( extract.actor.map(SchemaOrg.getPersonName).map(name => super.getPersonName(name, context)).filter(c => c), context))
|
||||
.replaceAll("{{author}}", this.handleArray( extract.author.map(SchemaOrg.getPersonName).map(name => super.getPersonName(name, context)).filter(c => c), context))
|
||||
.replaceAll("{{aliases}}", this.handleArray( extract.aliases.map(a=>a.replace(TITLE_ALIASES_SPECIAL_CHAR_REG_G, '_')), context))
|
||||
.replaceAll("{{country}}",this.handleArray( extract.country, context))
|
||||
.replaceAll("{{language}}",this.handleArray( extract.language, context))
|
||||
.replaceAll("{{IMDb}}", extract.IMDb ?? "")
|
||||
.replaceAll("{{time}}", extract.time ?? "")
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
@ -20,6 +20,14 @@ export function constructOutUI(containerEl: HTMLElement, manager: SettingsManage
|
||||
new Setting(containerEl)
|
||||
.setName(i18nHelper.getMessage('120601'))
|
||||
.setDesc(i18nHelper.getMessage('120602'))
|
||||
.addText((textField) => {
|
||||
textField.setPlaceholder(DEFAULT_SETTINGS.arrayStart)
|
||||
.setValue(manager.plugin.settings.arrayStart)
|
||||
.onChange(async (value) => {
|
||||
manager.plugin.settings.arrayStart = value;
|
||||
await manager.plugin.saveSettings();
|
||||
});
|
||||
})
|
||||
.addText((textField) => {
|
||||
textField.setPlaceholder(DEFAULT_SETTINGS.arraySpilt)
|
||||
.setValue(manager.plugin.settings.arraySpilt)
|
||||
@ -27,7 +35,16 @@ export function constructOutUI(containerEl: HTMLElement, manager: SettingsManage
|
||||
manager.plugin.settings.arraySpilt = value;
|
||||
await manager.plugin.saveSettings();
|
||||
});
|
||||
});
|
||||
})
|
||||
.addText((textField) => {
|
||||
textField.setPlaceholder(DEFAULT_SETTINGS.arrayEnd)
|
||||
.setValue(manager.plugin.settings.arrayEnd)
|
||||
.onChange(async (value) => {
|
||||
manager.plugin.settings.arrayEnd = value;
|
||||
await manager.plugin.saveSettings();
|
||||
});
|
||||
})
|
||||
;
|
||||
|
||||
new Setting(containerEl).setName(i18nHelper.getMessage('121201')).then((setting) => {
|
||||
setting.addDropdown((dropdwon) => {
|
||||
|
||||
@ -13,7 +13,9 @@ export interface DoubanPluginSetting {
|
||||
dateFormat: string,
|
||||
timeFormat: string,
|
||||
searchUrl: string,
|
||||
arrayStart: string,
|
||||
arraySpilt: string,
|
||||
arrayEnd: string,
|
||||
personNameMode: string,
|
||||
dataFilePath: string,
|
||||
dataFileNamePath: string,
|
||||
|
||||
@ -178,9 +178,9 @@ PS: This file could be delete if you want to.
|
||||
'120507': `Your current syntax looks like this`,
|
||||
'120508': `format reference`,
|
||||
'120601': `Array Spilt String`,
|
||||
'120602': `string to join between array type, such as authors, actors.
|
||||
example: ','
|
||||
the list of actor's name will be shown as: 'actor1,actor2,actor3'`,
|
||||
'120602': `string to join between array type, start、end string for array, such as authors, actors. .
|
||||
example: start:'[' spilt:',' end:']'
|
||||
the list of actor's name will be shown as: '[actor1,actor2,actor3]'`,
|
||||
'120701': `Douban Request Headers`,
|
||||
'120801': `This type of import is not supported temporarily, please go to github to submit issues for help`,
|
||||
'120901': `Douban`,
|
||||
|
||||
@ -185,9 +185,10 @@ export default {
|
||||
'120507': `时间参数时间格式预览`,
|
||||
'120508': `格式参考`,
|
||||
'120601': `数组分割字符串`,
|
||||
'120602': `当模板中的变量存在数组, 则需要设定数组元素中的分割符号,比如演员列表等.
|
||||
举例: ','
|
||||
则演员表将会显示为: '演员1,演员2,演员3'`,
|
||||
'120602': `当模板中的变量存在数组, 则需要设定数组元素中的分割符号以及起始与结束符号,比如演员列表等.
|
||||
举例: 开始字符'[', 分隔符',', 结束字符']',
|
||||
则演员表将会显示为: '[演员1,演员2,演员3]'`,
|
||||
|
||||
'120701': `豆瓣HTTP请求头`,
|
||||
'120702': `如果豆瓣搜索或者获取数据失败,请尝试修改这个参数,\n
|
||||
参数获取方式为:\n
|
||||
|
||||
Loading…
Reference in New Issue
Block a user