diff --git a/src/org/wanxp/douban/data/handler/DoubanAbstractLoadHandler.ts b/src/org/wanxp/douban/data/handler/DoubanAbstractLoadHandler.ts index 9c0f7b5..d200211 100644 --- a/src/org/wanxp/douban/data/handler/DoubanAbstractLoadHandler.ts +++ b/src/org/wanxp/douban/data/handler/DoubanAbstractLoadHandler.ts @@ -71,12 +71,15 @@ export default abstract class DoubanAbstractLoadHandler } else { result = this.parsePartText(template, extract, context); } + let filePath = ''; + if (SearchHandleMode.FOR_CREATE == context.mode) { + filePath = this.parsePartText(this.getFilePath(context), extract, context); + } let fileName = ''; if (SearchHandleMode.FOR_CREATE == context.mode) { fileName = this.parsePartText(this.getFileName(context), extract, context); } - - return {content: result, fileName: fileName, subject:extract}; + return {content: result,filePath: filePath, fileName: fileName, subject:extract}; } private getFileName(context: HandleContext): string { @@ -88,6 +91,15 @@ export default abstract class DoubanAbstractLoadHandler return dataFileNamePath ? dataFileNamePath : DEFAULT_SETTINGS.dataFileNamePath; } + private getFilePath(context: HandleContext): string { + const {syncConfig} = context; + if (syncConfig) { + return syncConfig.dataFilePath; + } + const {dataFilePath} = context.settings; + return dataFilePath ? dataFilePath : DEFAULT_SETTINGS.dataFilePath; + } + diff --git a/src/org/wanxp/main.ts b/src/org/wanxp/main.ts index 19f3158..5690ea1 100644 --- a/src/org/wanxp/main.ts +++ b/src/org/wanxp/main.ts @@ -105,12 +105,7 @@ export default class DoubanPlugin extends Plugin { } async createFile(context: HandleContext, result: HandleResult) { - let filePath = this.settings.dataFilePath; - const {syncConfig} = context; - if (syncConfig) { - filePath = syncConfig.dataFilePath; - } - filePath = filePath?filePath:DEFAULT_SETTINGS.dataFilePath; + let filePath = result.filePath?result.filePath:DEFAULT_SETTINGS.dataFilePath; filePath = FileUtil.join(filePath, result.fileName); const syncStatus = context.syncStatusHolder && context.syncStatusHolder.syncStatus ? context.syncStatusHolder.syncStatus : null; const {subject} = result;