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