mirror of
https://github.com/Wanxp/obsidian-douban.git
synced 2026-04-05 01:28:46 +08:00
1. 增加游戏同步功能 2. 修复自定义参数配置问题 3. 增加搜索默认类型 4. 增加全部搜索为空时的提示
This commit is contained in:
parent
a7b81bd189
commit
c09f96d3b8
@ -101,15 +101,34 @@ export enum TemplateKey {
|
||||
}
|
||||
|
||||
export enum SupportType {
|
||||
ALL = "all",
|
||||
MOVIE = 'movie',
|
||||
BOOK = 'book',
|
||||
MUSIC = 'music',
|
||||
NOTE = 'note',
|
||||
GAME = 'game',
|
||||
TELEPLAY = 'teleplay',
|
||||
THEATER = 'theater',
|
||||
all = "all",
|
||||
movie = 'movie',
|
||||
book = 'book',
|
||||
music = 'music',
|
||||
note = 'note',
|
||||
game = 'game',
|
||||
teleplay = 'teleplay',
|
||||
theater = 'theater',
|
||||
}
|
||||
export const SupportTypeMap:object = {
|
||||
"all": SupportType.all,
|
||||
"movie": SupportType.movie,
|
||||
"book": SupportType.book,
|
||||
"music": SupportType.music,
|
||||
"note": SupportType.note,
|
||||
"game": SupportType.game,
|
||||
"teleplay": SupportType.teleplay,
|
||||
"theater": SupportType.theater,
|
||||
"ALL": SupportType.all,
|
||||
"MOVIE": SupportType.movie,
|
||||
"BOOK": SupportType.book,
|
||||
"MUSIC": SupportType.music,
|
||||
"NOTE": SupportType.note,
|
||||
"GAME": SupportType.game,
|
||||
"TELEPLAY": SupportType.teleplay,
|
||||
"THEATER": SupportType.theater,
|
||||
}
|
||||
|
||||
|
||||
export enum PropertyName {
|
||||
//base
|
||||
@ -183,12 +202,12 @@ export enum PropertyName {
|
||||
*/
|
||||
// @ts-ignore
|
||||
export const SearchTypeRecords: { [key in SupportType]: string } = {
|
||||
[SupportType.ALL]: i18nHelper.getMessage('ALL'),
|
||||
[SupportType.MOVIE]: i18nHelper.getMessage('MOVIE_AND_TELEPLAY'),
|
||||
[SupportType.BOOK]: i18nHelper.getMessage('BOOK'),
|
||||
[SupportType.MUSIC]: i18nHelper.getMessage('MUSIC'),
|
||||
[SupportType.NOTE]: i18nHelper.getMessage('NOTE'),
|
||||
[SupportType.GAME]: i18nHelper.getMessage('GAME'),
|
||||
[SupportType.all]: i18nHelper.getMessage('ALL'),
|
||||
[SupportType.movie]: i18nHelper.getMessage('MOVIE_AND_TELEPLAY'),
|
||||
[SupportType.book]: i18nHelper.getMessage('BOOK'),
|
||||
[SupportType.music]: i18nHelper.getMessage('MUSIC'),
|
||||
[SupportType.note]: i18nHelper.getMessage('NOTE'),
|
||||
[SupportType.game]: i18nHelper.getMessage('GAME'),
|
||||
// [SupportType.THEATER]: i18nHelper.getMessage('THEATER'),
|
||||
}
|
||||
|
||||
@ -233,7 +252,7 @@ export const SyncTypeRecords: { [key in SyncType | string]: string } = {
|
||||
// [SyncType.broadcast]: i18nHelper.getMessage('504104'),
|
||||
// [SyncType.note]: i18nHelper.getMessage('504105'),
|
||||
[SyncType.music]: i18nHelper.getMessage('504106'),
|
||||
// [SyncType.game]: i18nHelper.getMessage('504108'),
|
||||
[SyncType.game]: i18nHelper.getMessage('504108'),
|
||||
}
|
||||
|
||||
/**
|
||||
@ -376,13 +395,13 @@ sec-ch-ua-platform: "Windows"
|
||||
export const ONLINE_SETTING_DEFAULT: DoubanPluginOnlineSettings = {
|
||||
properties: [
|
||||
{
|
||||
type: SupportType.BOOK,
|
||||
type: SupportType.book,
|
||||
name: PropertyName.comment,
|
||||
selectors: ['#interest_sect_level > div > span:nth-child(7)'
|
||||
]
|
||||
},
|
||||
{
|
||||
type: SupportType.MOVIE,
|
||||
type: SupportType.movie,
|
||||
name: PropertyName.comment,
|
||||
selectors: ['#interest_sect_level > div > span:nth-child(8)',
|
||||
'#interest_sect_level > div > span:nth-child(7)',
|
||||
@ -497,4 +516,35 @@ export const SyncConditionTypeRecords: { [key in SyncConditionType|string]: stri
|
||||
[SyncConditionType.CUSTOM_ITEM]: i18nHelper.getMessage('110076'),
|
||||
[SyncConditionType.CUSTOM_TIME]: i18nHelper.getMessage('110074'),
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export const DoubanSearchResultSubject_EMPTY: DoubanSearchResultSubject = {
|
||||
id: '',
|
||||
title: i18nHelper.getMessage('150107'),
|
||||
score: null,
|
||||
cast: '',
|
||||
type: 'navigate',
|
||||
desc: '-',
|
||||
url: 'https://www.douban.com',
|
||||
image: "",
|
||||
imageUrl: "",
|
||||
publisher: "",
|
||||
datePublished: undefined,
|
||||
genre: []
|
||||
};
|
||||
|
||||
export const DoubanSearchResultSubject_TIP_EMPTY: DoubanSearchResultSubject = {
|
||||
id: '',
|
||||
title: i18nHelper.getMessage('150108'),
|
||||
score: null,
|
||||
cast: '',
|
||||
type: 'navigate',
|
||||
desc: '-',
|
||||
url: 'https://www.douban.com',
|
||||
image: "",
|
||||
imageUrl: "",
|
||||
publisher: "",
|
||||
datePublished: undefined,
|
||||
genre: []
|
||||
};
|
||||
@ -38,12 +38,12 @@ export const DEFAULT_SETTINGS: DoubanPluginSetting = {
|
||||
statusBar: true,
|
||||
debugMode: false,
|
||||
customProperties: [
|
||||
{name: 'myType', value: 'movie', field: SupportType.MOVIE},
|
||||
{name: 'myType', value: 'book', field: SupportType.BOOK},
|
||||
{name: 'myType', value: 'music', field: SupportType.MUSIC},
|
||||
{name: 'myType', value: 'note', field: SupportType.NOTE},
|
||||
{name: 'myType', value: 'game', field: SupportType.GAME},
|
||||
{name: 'myType', value: 'teleplay', field: SupportType.TELEPLAY},
|
||||
{name: 'myType', value: 'movie', field: SupportType.movie},
|
||||
{name: 'myType', value: 'book', field: SupportType.book},
|
||||
{name: 'myType', value: 'music', field: SupportType.music},
|
||||
{name: 'myType', value: 'note', field: SupportType.note},
|
||||
{name: 'myType', value: 'game', field: SupportType.game},
|
||||
{name: 'myType', value: 'teleplay', field: SupportType.teleplay},
|
||||
],
|
||||
loginCookiesContent: '',
|
||||
loginHeadersContent: '',
|
||||
@ -57,7 +57,8 @@ export const DEFAULT_SETTINGS: DoubanPluginSetting = {
|
||||
starEmpty: '☆',
|
||||
displayStarEmpty: false,
|
||||
maxStar: 5,
|
||||
}
|
||||
},
|
||||
searchDefaultType: SupportType.all,
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -66,14 +66,14 @@ export const DoubanSubjectStateRecords_THEATER: { [key in DoubanSubjectState]: s
|
||||
}
|
||||
|
||||
export const DoubanSubjectStateRecords: { [key in SupportType]: Record<DoubanSubjectState, string> } = {
|
||||
[SupportType.ALL]:DoubanSubjectStateRecords_ALL,
|
||||
[SupportType.MOVIE]:DoubanSubjectStateRecords_MOVIE,
|
||||
[SupportType.BOOK]:DoubanSubjectStateRecords_BOOK,
|
||||
[SupportType.MUSIC]:DoubanSubjectStateRecords_MUSIC,
|
||||
[SupportType.NOTE]:DoubanSubjectStateRecords_NOTE,
|
||||
[SupportType.GAME]:DoubanSubjectStateRecords_GAME,
|
||||
[SupportType.TELEPLAY]:DoubanSubjectStateRecords_TELEPLAY,
|
||||
[SupportType.THEATER]:DoubanSubjectStateRecords_THEATER,
|
||||
[SupportType.all]:DoubanSubjectStateRecords_ALL,
|
||||
[SupportType.movie]:DoubanSubjectStateRecords_MOVIE,
|
||||
[SupportType.book]:DoubanSubjectStateRecords_BOOK,
|
||||
[SupportType.music]:DoubanSubjectStateRecords_MUSIC,
|
||||
[SupportType.note]:DoubanSubjectStateRecords_NOTE,
|
||||
[SupportType.game]:DoubanSubjectStateRecords_GAME,
|
||||
[SupportType.teleplay]:DoubanSubjectStateRecords_TELEPLAY,
|
||||
[SupportType.theater]:DoubanSubjectStateRecords_THEATER,
|
||||
|
||||
}
|
||||
|
||||
@ -109,7 +109,7 @@ export const DoubanSubjectStateRecords_BOOK_SYNC: { [key in DoubanSubjectState]:
|
||||
// @ts-ignore
|
||||
export const DoubanSubjectStateRecords_GAME_SYNC: { [key in DoubanSubjectState]: string } = {
|
||||
// @ts-ignore
|
||||
[ALL]: i18nHelper.getMessage('500004'),
|
||||
// [ALL]: i18nHelper.getMessage('500004'),
|
||||
[DoubanSubjectState.wish]: i18nHelper.getMessage('500602'),
|
||||
[DoubanSubjectState.do]: i18nHelper.getMessage('500603'),
|
||||
[DoubanSubjectState.collect]: i18nHelper.getMessage('500604'),
|
||||
@ -146,32 +146,32 @@ export const DoubanSubjectStateRecords_SYNC: { [key in SyncType]: Record<DoubanS
|
||||
|
||||
|
||||
export const DoubanSubjectStateRecords_KEY_WORD_TYPE: Map<string, SupportType> = new Map<string, SupportType> (
|
||||
[['我看过这部电视剧', SupportType.TELEPLAY],
|
||||
['我最近看过这部电视剧', SupportType.TELEPLAY],
|
||||
['我想看这部电视剧', SupportType.TELEPLAY],
|
||||
['我在看这部电视剧', SupportType.TELEPLAY],
|
||||
['我最近在看这部电视剧', SupportType.TELEPLAY],
|
||||
[['我看过这部电视剧', SupportType.teleplay],
|
||||
['我最近看过这部电视剧', SupportType.teleplay],
|
||||
['我想看这部电视剧', SupportType.teleplay],
|
||||
['我在看这部电视剧', SupportType.teleplay],
|
||||
['我最近在看这部电视剧', SupportType.teleplay],
|
||||
|
||||
['我最近看过这部电影', SupportType.MOVIE],
|
||||
['我看过这部电影', SupportType.MOVIE],
|
||||
['我想看这部电影', SupportType.MOVIE],
|
||||
['我最近看过这部电影', SupportType.movie],
|
||||
['我看过这部电影', SupportType.movie],
|
||||
['我想看这部电影', SupportType.movie],
|
||||
|
||||
['我读过这本书', SupportType.BOOK],
|
||||
['我想读这本书', SupportType.BOOK],
|
||||
['我在读这本书', SupportType.BOOK],
|
||||
['我最近在读这本书', SupportType.BOOK],
|
||||
['我读过这本书', SupportType.book],
|
||||
['我想读这本书', SupportType.book],
|
||||
['我在读这本书', SupportType.book],
|
||||
['我最近在读这本书', SupportType.book],
|
||||
|
||||
['我最近听过这张唱片', SupportType.MUSIC],
|
||||
['我听过这张唱片', SupportType.MUSIC],
|
||||
['我想听这张唱片', SupportType.MUSIC],
|
||||
['我在听这张唱片', SupportType.MUSIC],
|
||||
['我最近在听这张唱片', SupportType.MUSIC],
|
||||
['我最近听过这张唱片', SupportType.music],
|
||||
['我听过这张唱片', SupportType.music],
|
||||
['我想听这张唱片', SupportType.music],
|
||||
['我在听这张唱片', SupportType.music],
|
||||
['我最近在听这张唱片', SupportType.music],
|
||||
|
||||
['我最近玩过这个游戏', SupportType.GAME],
|
||||
['我玩过这个游戏', SupportType.GAME],
|
||||
['我想玩这个游戏', SupportType.GAME],
|
||||
['我在玩这个游戏', SupportType.GAME],
|
||||
['我最近在玩这个游戏', SupportType.GAME],]
|
||||
['我最近玩过这个游戏', SupportType.game],
|
||||
['我玩过这个游戏', SupportType.game],
|
||||
['我想玩这个游戏', SupportType.game],
|
||||
['我在玩这个游戏', SupportType.game],
|
||||
['我最近在玩这个游戏', SupportType.game],]
|
||||
)
|
||||
|
||||
|
||||
|
||||
@ -235,6 +235,7 @@ ${syncStatus.getHandle() == 0? '...' : i18nHelper.getMessage('110042') + ':' + T
|
||||
this.showScopeDropdown(contentEl, DoubanSubjectStateRecords_TELEPLAY_SYNC, config, disable);
|
||||
break;
|
||||
case SyncType.game:
|
||||
config.scope = DoubanSubjectState.collect;
|
||||
this.showScopeDropdown(contentEl, DoubanSubjectStateRecords_GAME_SYNC, config, disable);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -389,22 +389,22 @@ export default abstract class DoubanAbstractLoadHandler<T extends DoubanSubject>
|
||||
private getTemplateKey():TemplateKey {
|
||||
let templateKey: TemplateKey;
|
||||
switch (this.getSupportType()) {
|
||||
case SupportType.MOVIE:
|
||||
case SupportType.movie:
|
||||
templateKey = TemplateKey.movieTemplateFile;
|
||||
break;
|
||||
case SupportType.BOOK:
|
||||
case SupportType.book:
|
||||
templateKey = TemplateKey.bookTemplateFile;
|
||||
break;
|
||||
case SupportType.MUSIC:
|
||||
case SupportType.music:
|
||||
templateKey = TemplateKey.musicTemplateFile;
|
||||
break;
|
||||
case SupportType.TELEPLAY:
|
||||
case SupportType.teleplay:
|
||||
templateKey = TemplateKey.teleplayTemplateFile;
|
||||
break;
|
||||
case SupportType.GAME:
|
||||
case SupportType.game:
|
||||
templateKey = TemplateKey.gameTemplateFile;
|
||||
break;
|
||||
case SupportType.NOTE:
|
||||
case SupportType.note:
|
||||
templateKey = TemplateKey.noteTemplateFile;
|
||||
break;
|
||||
default:
|
||||
|
||||
@ -17,7 +17,7 @@ export default class DoubanBookLoadHandler extends DoubanAbstractLoadHandler<Dou
|
||||
}
|
||||
|
||||
getSupportType(): SupportType {
|
||||
return SupportType.BOOK;
|
||||
return SupportType.book;
|
||||
}
|
||||
|
||||
getHighQuantityImageUrl(fileName:string):string{
|
||||
|
||||
@ -17,7 +17,7 @@ export default class DoubanGameLoadHandler extends DoubanAbstractLoadHandler<Dou
|
||||
}
|
||||
|
||||
getSupportType(): SupportType {
|
||||
return SupportType.GAME;
|
||||
return SupportType.game;
|
||||
}
|
||||
getHighQuantityImageUrl(fileName:string):string{
|
||||
return `https://img9.doubanio.com/lpic/${fileName}`;
|
||||
|
||||
@ -19,7 +19,7 @@ export default class DoubanMovieLoadHandler extends DoubanAbstractLoadHandler<Do
|
||||
}
|
||||
|
||||
getSupportType(): SupportType {
|
||||
return SupportType.MOVIE;
|
||||
return SupportType.movie;
|
||||
}
|
||||
|
||||
getHighQuantityImageUrl(fileName:string):string{
|
||||
|
||||
@ -16,7 +16,7 @@ export default class DoubanMusicLoadHandler extends DoubanAbstractLoadHandler<Do
|
||||
}
|
||||
|
||||
getSupportType(): SupportType {
|
||||
return SupportType.MUSIC;
|
||||
return SupportType.music;
|
||||
}
|
||||
|
||||
getHighQuantityImageUrl(fileName:string):string{
|
||||
|
||||
@ -16,7 +16,7 @@ export default class DoubanNoteLoadHandler extends DoubanAbstractLoadHandler<Dou
|
||||
}
|
||||
|
||||
getSupportType(): SupportType {
|
||||
return SupportType.NOTE;
|
||||
return SupportType.note;
|
||||
}
|
||||
|
||||
getHighQuantityImageUrl(fileName:string):string{
|
||||
|
||||
@ -12,8 +12,8 @@ import {DataField} from "../../../utils/model/DataField";
|
||||
* 默认的处理器
|
||||
*/
|
||||
export default class DoubanOtherLoadHandler extends DoubanAbstractLoadHandler<DoubanSubject> {
|
||||
getSupportType(): SupportType.ALL {
|
||||
return SupportType.ALL;
|
||||
getSupportType(): SupportType.all {
|
||||
return SupportType.all;
|
||||
}
|
||||
|
||||
parseVariable(beforeContent: string, variableMap:Map<string, DataField>, extract: DoubanSubject, context: HandleContext): void {
|
||||
|
||||
@ -21,7 +21,7 @@ export class DoubanTeleplayLoadHandler extends DoubanAbstractLoadHandler<DoubanT
|
||||
}
|
||||
|
||||
getSupportType(): SupportType {
|
||||
return SupportType.TELEPLAY;
|
||||
return SupportType.teleplay;
|
||||
}
|
||||
|
||||
parseVariable(beforeContent: string, variableMap:Map<string, DataField>, extract: DoubanTeleplaySubject, context: HandleContext): void {
|
||||
|
||||
@ -17,7 +17,7 @@ export default class DoubanTheaterLoadHandler extends DoubanAbstractLoadHandler<
|
||||
}
|
||||
|
||||
getSupportType(): SupportType {
|
||||
return SupportType.THEATER;
|
||||
return SupportType.theater;
|
||||
}
|
||||
|
||||
getHighQuantityImageUrl(fileName: string): string {
|
||||
|
||||
@ -5,10 +5,10 @@ import {SearchPageTypeOf} from "./SearchPageTypeOf";
|
||||
export class SearchPage extends SearchPageTypeOf<any> {
|
||||
|
||||
public static empty(type: SupportType): SearchPage {
|
||||
return new SearchPage(0, 0, 0, type, []);
|
||||
return new SearchPage(0, 1, 0, type, []);
|
||||
}
|
||||
|
||||
static emptyWithNoType() {
|
||||
return new SearchPage(0, 0, 0, null, []);
|
||||
return new SearchPage(0, 1, 0, null, []);
|
||||
}
|
||||
}
|
||||
|
||||
@ -77,7 +77,7 @@ export class SearchPageInfo {
|
||||
return this;
|
||||
}
|
||||
return new SearchPageInfo(this.total, this._pageNum - 1,
|
||||
this._pageSize, SupportType.ALL);
|
||||
this._pageSize, SupportType.all);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -20,10 +20,10 @@ export class SearchPageTypeOf<T> extends SearchPageInfo {
|
||||
}
|
||||
|
||||
public static empty(type: SupportType): SearchPageTypeOf<any> {
|
||||
return new SearchPageTypeOf(0, 0, 0, type, []);
|
||||
return new SearchPageTypeOf(0, 1, 0, type, []);
|
||||
}
|
||||
|
||||
static emptyWithNoType() {
|
||||
return new SearchPageTypeOf(0, 0, 0, null, []);
|
||||
return new SearchPageTypeOf(0, 1, 0, null, []);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,9 +1,13 @@
|
||||
import {
|
||||
DoubanSearchGroupPublishResultSubjectNextPage, DoubanSearchGroupPublishResultSubjectPreviousPage,
|
||||
DoubanSearchGroupPublishResultSubjectNextPage,
|
||||
DoubanSearchGroupPublishResultSubjectPreviousPage,
|
||||
DoubanSearchResultSubject_EMPTY, DoubanSearchResultSubject_TIP_EMPTY,
|
||||
DoubanSearchResultSubjectNextPage,
|
||||
DoubanSearchResultSubjectNextPageNeedLogin,
|
||||
DoubanSearchResultSubjectPreviousPage,
|
||||
NavigateType, SEARCH_ITEM_PAGE_SIZE, SupportType
|
||||
NavigateType,
|
||||
SEARCH_ITEM_PAGE_SIZE,
|
||||
SupportType
|
||||
} from "../../../constant/Constsant";
|
||||
import {FuzzySuggestModal, RequestUrlParam, request} from "obsidian";
|
||||
|
||||
@ -106,9 +110,18 @@ class DoubanFuzzySuggester extends FuzzySuggestModal<DoubanSearchResultSubject>
|
||||
|
||||
private initItems(searchPage: SearchPage) {
|
||||
const doubanList: DoubanSearchResultSubject[] = searchPage.list;
|
||||
|
||||
if (searchPage.type == SupportType.all && searchPage.pageNum == 1) {
|
||||
if (doubanList.length == 0) {
|
||||
// if (searchPage.list.length > 0) {
|
||||
doubanList.push(DoubanSearchResultSubject_EMPTY);
|
||||
}else if (searchPage.list.length < SEARCH_ITEM_PAGE_SIZE) {
|
||||
doubanList.push(DoubanSearchResultSubject_TIP_EMPTY);
|
||||
}
|
||||
}
|
||||
if (searchPage.hasNext) {
|
||||
if (this.plugin.userComponent.isLogin()) {
|
||||
if (searchPage.type == SupportType.ALL && searchPage.pageNum == 1) {
|
||||
if (searchPage.type == SupportType.all && searchPage.pageNum == 1) {
|
||||
doubanList.push(DoubanSearchGroupPublishResultSubjectNextPage)
|
||||
}else {
|
||||
doubanList.push(DoubanSearchResultSubjectNextPage)
|
||||
@ -118,7 +131,7 @@ class DoubanFuzzySuggester extends FuzzySuggestModal<DoubanSearchResultSubject>
|
||||
}
|
||||
}
|
||||
if (searchPage.hasPrevious) {
|
||||
if (searchPage.type == SupportType.ALL && searchPage.pageNum == 2) {
|
||||
if (searchPage.type == SupportType.all && searchPage.pageNum == 2) {
|
||||
doubanList.unshift(DoubanSearchGroupPublishResultSubjectPreviousPage)
|
||||
}else {
|
||||
doubanList.unshift(DoubanSearchResultSubjectPreviousPage);
|
||||
|
||||
@ -8,16 +8,19 @@ import {sleep} from "../../../utils/TimeUtil";
|
||||
|
||||
export class DoubanSearchModal extends Modal {
|
||||
searchTerm: string;
|
||||
searchType: SupportType = SupportType.ALL;
|
||||
searchType: SupportType = SupportType.all;
|
||||
plugin: DoubanPlugin;
|
||||
context: HandleContext
|
||||
|
||||
constructor(app: App, plugin: DoubanPlugin, context: HandleContext) {
|
||||
constructor(app: App, plugin: DoubanPlugin, context: HandleContext, type: SupportType) {
|
||||
super(app);
|
||||
this.plugin = plugin;
|
||||
this.context = context;
|
||||
this.searchType = type??SupportType.all;
|
||||
}
|
||||
|
||||
|
||||
|
||||
onOpen() {
|
||||
let {contentEl} = this;
|
||||
|
||||
@ -42,7 +45,7 @@ export class DoubanSearchModal extends Modal {
|
||||
const typeSelect = content.createDiv("type-select");
|
||||
const typeSelectInput = new DropdownComponent(typeSelect)
|
||||
.addOptions(SearchTypeRecords)
|
||||
.setValue(SupportType.ALL)
|
||||
.setValue(this.searchType)
|
||||
.onChange((value:SupportType) => {
|
||||
this.searchType = value;
|
||||
});
|
||||
|
||||
@ -1,4 +1,6 @@
|
||||
import {SupportType} from "../../../../constant/Constsant";
|
||||
import {
|
||||
SupportType
|
||||
} from "../../../../constant/Constsant";
|
||||
import {SearchResultPageParserInterface} from "./SearchResultPageParserInterface";
|
||||
import {SearchPage} from "../../model/SearchPage";
|
||||
import SearchParserHandlerV2 from "../SearchParserV2";
|
||||
@ -7,7 +9,7 @@ import {log} from "../../../../utils/Logutil";
|
||||
|
||||
export class AllFirstPageSearchResultPageParser implements SearchResultPageParserInterface {
|
||||
support(type:SupportType, pageNum:number):boolean {
|
||||
return pageNum == 1 && type == SupportType.ALL;
|
||||
return pageNum == 1 && type == SupportType.all;
|
||||
}
|
||||
parse(source:string, type:SupportType, pageNum:number, pageSize:number):SearchPage {
|
||||
if (!source || StringUtil.notJsonString(source)) {
|
||||
|
||||
@ -6,7 +6,7 @@ import SearchParserHandler from "../SearchParser";
|
||||
|
||||
export class NotAllPageSearchResultPageParser implements SearchResultPageParserInterface {
|
||||
support(type:SupportType, pageNum:number):boolean {
|
||||
return type != SupportType.ALL && !(pageNum ==1 && type == SupportType.NOTE);
|
||||
return type != SupportType.all && !(pageNum ==1 && type == SupportType.note);
|
||||
}
|
||||
parse(source:string, type:SupportType, pageNum:number, pageSize:number):SearchPage {
|
||||
log.debug("解析给多页面结果");
|
||||
|
||||
@ -7,7 +7,7 @@ import DoubanSearchResultSubject from "../../model/DoubanSearchResultSubject";
|
||||
|
||||
export class NoteFirstPageSearchResultPageParser implements SearchResultPageParserInterface {
|
||||
support(type:SupportType, pageNum:number):boolean {
|
||||
return pageNum == 1 && type == SupportType.NOTE;
|
||||
return pageNum == 1 && type == SupportType.note;
|
||||
}
|
||||
parse(source:string, type:SupportType, pageNum:number, pageSize:number):SearchPage {
|
||||
const pageData = load(source);
|
||||
|
||||
@ -6,7 +6,7 @@ import SearchParserHandlerV2 from "../SearchParserV2";
|
||||
|
||||
export class OtherAllPageSearchResultPageParser implements SearchResultPageParserInterface {
|
||||
support(type:SupportType, pageNum:number):boolean {
|
||||
return pageNum > 1 && type == SupportType.ALL;
|
||||
return pageNum > 1 && type == SupportType.all;
|
||||
}
|
||||
parse(source:string, type:SupportType, pageNum:number, pageSize:number):SearchPage {
|
||||
log.debug("解析给多页面结果");
|
||||
|
||||
@ -17,8 +17,9 @@ export abstract class AbstractSearchPageFetcher implements SearchPageFetcherInte
|
||||
|
||||
support(type: SupportType, pageNum?:number): boolean {
|
||||
throw new Error("Method not implemented.");
|
||||
}
|
||||
fetch(keyword: string, pageNum: number, pageSize: number): Promise<string> {
|
||||
}
|
||||
|
||||
fetch(keyword: string, pageNum: number, pageSize: number): Promise<string> {
|
||||
const start:number = Math.floor((pageNum - 1) * pageSize);
|
||||
const url:string = this.getSearchUrl(keyword, start, pageSize);
|
||||
if (!url) {
|
||||
@ -27,7 +28,8 @@ export abstract class AbstractSearchPageFetcher implements SearchPageFetcherInte
|
||||
return DoubanHttpUtil.httpRequestGet(url, this.settingsManager.getHeaders(), this.settingsManager)
|
||||
.catch(e => {
|
||||
throw log.error(i18nHelper.getMessage('130101').replace('{0}', e.toString()), e);
|
||||
}); }
|
||||
});
|
||||
}
|
||||
|
||||
getSearchUrl(keyword: string, start: number, pageSize: number):string {
|
||||
keyword = keyword.trim();
|
||||
|
||||
@ -6,7 +6,7 @@ export class AllPageSearchPageFetcher extends AbstractSearchPageFetcher {
|
||||
return `https://m.douban.com/rexxar/api/v2/search?q=${keyword}&start=${pageNum}&count=${pageSize}`;
|
||||
}
|
||||
support(type: SupportType): boolean {
|
||||
return type == SupportType.ALL;
|
||||
return type == SupportType.all;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@ export class BookPageSearchPageFetcher extends AbstractSearchPageFetcher {
|
||||
return `https://www.douban.com/j/search?q=${keyword}&start=${start}&cat=1001`;
|
||||
}
|
||||
support(type: SupportType): boolean {
|
||||
return type == SupportType.BOOK;
|
||||
return type == SupportType.book;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@ export class GamePageSearchPageFetcher extends AbstractSearchPageFetcher {
|
||||
return `https://www.douban.com/j/search?q=${keyword}&start=${start}&cat=3114`;
|
||||
}
|
||||
support(type: SupportType): boolean {
|
||||
return type == SupportType.GAME;
|
||||
return type == SupportType.game;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@ export class MoviePageSearchPageFetcher extends AbstractSearchPageFetcher {
|
||||
return `https://www.douban.com/j/search?q=${keyword}&start=${start}&cat=1002`;
|
||||
}
|
||||
support(type: SupportType): boolean {
|
||||
return type == SupportType.MOVIE;
|
||||
return type == SupportType.movie;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@ export class MusicPageSearchPageFetcher extends AbstractSearchPageFetcher {
|
||||
return `https://www.douban.com/j/search?q=${keyword}&start=${start}&cat=1003`;
|
||||
}
|
||||
support(type: SupportType): boolean {
|
||||
return type == SupportType.MUSIC;
|
||||
return type == SupportType.music;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@ export class NoteFirstPageSearchPageFetcher extends AbstractSearchPageFetcher {
|
||||
return `https://www.douban.com/search?cat=1015&q=${keyword}`;
|
||||
}
|
||||
support(type: SupportType, pageNum:number): boolean {
|
||||
return type == SupportType.NOTE && pageNum == 1;
|
||||
return type == SupportType.note && pageNum == 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@ export class NotePageSearchPageFetcher extends AbstractSearchPageFetcher {
|
||||
return `https://www.douban.com/j/search?q=${keyword}&start=${start}&cat=1015`;
|
||||
}
|
||||
support(type: SupportType, pageNum:number): boolean {
|
||||
return type == SupportType.NOTE && pageNum > 1;
|
||||
return type == SupportType.note && pageNum > 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@ export class TheaterPageSearchPageFetcher extends AbstractSearchPageFetcher {
|
||||
return `https://www.douban.com/j/search?q=${keyword}&start=${start}&cat=3069`;
|
||||
}
|
||||
support(type: SupportType): boolean {
|
||||
return type == SupportType.THEATER;
|
||||
return type == SupportType.theater;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -9,6 +9,7 @@ import {createFolderSelectionSetting} from "./TemplateSettingHelper";
|
||||
import StringUtil from "../../utils/StringUtil";
|
||||
import {log} from "../../utils/Logutil";
|
||||
import DoubanPlugin from "../../main";
|
||||
import {SearchTypeRecords, SupportType, SupportTypeMap} from "../../constant/Constsant";
|
||||
|
||||
export function constructBasicUI(containerEl: HTMLElement, manager: SettingsManager) {
|
||||
// containerEl.createEl('h3', { text: i18nHelper.getMessage('1210') });
|
||||
@ -97,6 +98,19 @@ export function constructBasicUI(containerEl: HTMLElement, manager: SettingsMana
|
||||
});
|
||||
});
|
||||
|
||||
new Setting(containerEl)
|
||||
.setName(i18nHelper.getMessage('121410'))
|
||||
.setDesc(i18nHelper.getMessage('121411'))
|
||||
.addDropdown((dropdown) => {
|
||||
dropdown
|
||||
.addOptions(SearchTypeRecords)
|
||||
.setValue(manager.plugin.settings.searchDefaultType)
|
||||
.onChange(async (value) => {
|
||||
// @ts-ignore
|
||||
manager.plugin.settings.searchDefaultType = SupportTypeMap[value];
|
||||
await manager.plugin.saveSettings();
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@ import {i18nHelper} from "../../lang/helper";
|
||||
import SettingsManager from "./SettingsManager";
|
||||
import {CustomProperty} from "./model/CustomProperty";
|
||||
import {ButtonComponent, DropdownComponent, ExtraButtonComponent, Setting, TextComponent} from "obsidian";
|
||||
import {SupportType} from "../../constant/Constsant";
|
||||
import {SupportType, SupportTypeMap} from "../../constant/Constsant";
|
||||
import DoubanPlugin from "../../main";
|
||||
|
||||
export function constructCustomPropertySettingsUI(containerEl: HTMLElement, manager: SettingsManager) {
|
||||
@ -16,7 +16,7 @@ export function constructCustomPropertySettingsUI(containerEl: HTMLElement, mana
|
||||
button.setTooltip(i18nHelper.getMessage('124101'));
|
||||
button.setIcon('plus');
|
||||
button.onClick(async () => {
|
||||
customProperties.push({name: '', value: '', field: SupportType.ALL});
|
||||
customProperties.push({name: '', value: '', field: SupportType.all});
|
||||
constructCustomPropertyUI(list, customProperties, manager);
|
||||
});
|
||||
});
|
||||
@ -68,11 +68,15 @@ function addFilterInput(data: CustomProperty, el: HTMLElement, customProperties:
|
||||
|
||||
const fieldsDropdown = new DropdownComponent(el);
|
||||
for (const fieldSelect in SupportType) {
|
||||
// @ts-ignore
|
||||
fieldsDropdown.addOption(fieldSelect, i18nHelper.getMessage(fieldSelect));
|
||||
}
|
||||
item.createEl('span', { text: i18nHelper.getMessage('124106') });
|
||||
fieldsDropdown.setValue(data.field)
|
||||
let dataFieldValue = data.field;
|
||||
if(typeof dataFieldValue === 'string') {
|
||||
// @ts-ignore
|
||||
dataFieldValue = SupportTypeMap[dataFieldValue];
|
||||
}
|
||||
fieldsDropdown.setValue(dataFieldValue)
|
||||
.onChange(async (value: SupportType) => {
|
||||
customProperties[idx].field = value;
|
||||
await manager.plugin.saveSettings();
|
||||
|
||||
@ -33,7 +33,7 @@ export function showFileExample(containerEl: HTMLElement, manager: SettingsManag
|
||||
const document = new DocumentFragment();
|
||||
document.createDiv('file-path-example')
|
||||
.innerHTML = `${i18nHelper.getMessage('121604')}<a href="https://book.douban.com/subject/2253379/">《简爱》</a>: ${VariableUtil.replaceSubject(EXAMPLE_SUBJECT_MAP,
|
||||
FileUtil.join(manager.plugin.settings.dataFilePath, manager.plugin.settings.dataFileNamePath + ".md"), SupportType.BOOK,
|
||||
FileUtil.join(manager.plugin.settings.dataFilePath, manager.plugin.settings.dataFileNamePath + ".md"), SupportType.book,
|
||||
manager)}`;
|
||||
|
||||
new Setting(containerEl)
|
||||
|
||||
@ -3,6 +3,7 @@ import {SyncHandledData} from "./SyncHandledData";
|
||||
import {ArraySetting} from "./ArraySetting";
|
||||
import {ScoreSetting} from "./ScoreSetting";
|
||||
import PictureBedSetting from "./PictureBedSetting";
|
||||
import {SupportType} from "../../../constant/Constsant";
|
||||
|
||||
export interface DoubanPluginSetting {
|
||||
onlineSettingsFileName: string;
|
||||
@ -39,4 +40,5 @@ export interface DoubanPluginSetting {
|
||||
// syncLastUpdateTime: Map<string, string>,
|
||||
arraySettings: ArraySetting[],
|
||||
scoreSetting: ScoreSetting,
|
||||
searchDefaultType: SupportType,
|
||||
}
|
||||
|
||||
@ -40,7 +40,7 @@ export abstract class DoubanGameListHandler extends DoubanAbstractListHandler {
|
||||
.find("div.title > a")
|
||||
.text()
|
||||
.trim();
|
||||
const updateDateStr: string = item.find("div.date").text().trim();
|
||||
const updateDateStr: string = item.find("span.date").text().trim();
|
||||
let updateDate = null;
|
||||
try {
|
||||
updateDate = new Date(updateDateStr);
|
||||
@ -73,11 +73,10 @@ export abstract class DoubanGameListHandler extends DoubanAbstractListHandler {
|
||||
});
|
||||
const {syncConfig} = context;
|
||||
const {scope} = syncConfig;
|
||||
const pattern = /(\d+)/g;
|
||||
|
||||
const wishCount = this.getCount(countDescs, '想玩', pattern);
|
||||
const collectCount = this.getCount(countDescs, '玩过', pattern);
|
||||
const doCount = this.getCount(countDescs, '在玩', pattern);
|
||||
const wishCount = this.getCount(countDescs, '想玩');
|
||||
const collectCount = this.getCount(countDescs, '玩过');
|
||||
const doCount = this.getCount(countDescs, '在玩');
|
||||
|
||||
|
||||
switch (scope) {
|
||||
@ -94,8 +93,9 @@ export abstract class DoubanGameListHandler extends DoubanAbstractListHandler {
|
||||
|
||||
}
|
||||
|
||||
private getCount(countDescs:string[], keyword:string, pattern:RegExp):number {
|
||||
private getCount(countDescs:string[], keyword:string):number {
|
||||
return countDescs.filter(desc => desc.includes(keyword)).map(desc => {
|
||||
const pattern = /(\d+)/g;
|
||||
const result = pattern.exec(desc);
|
||||
return result ? parseInt(result[0], 10) : 0;
|
||||
})[0];
|
||||
|
||||
@ -1,13 +1,18 @@
|
||||
//简体中文
|
||||
export default {
|
||||
//main.ts
|
||||
'110001': 'search douban by current file name',
|
||||
'110002': 'search douban and import to current file',
|
||||
'110001': 'search by current file name',
|
||||
'110002': 'search and import to current file',
|
||||
'110003': `Enter Search Term:`,
|
||||
'110004': `Search`,
|
||||
'110005': `Cancel`,
|
||||
'110006': `sync douban personal book-movie-music to Obsidian`,
|
||||
'110101': 'search douban and create file',
|
||||
'110006': `sync personal book-movie-music to Obsidian`,
|
||||
'110101': 'search and create file',
|
||||
'110102': 'search movie or tv and create ',
|
||||
'110104': 'search book and create',
|
||||
'110105': 'search music and create ',
|
||||
'110106': 'search game and create ',
|
||||
|
||||
'110201': `{0} already exists`,
|
||||
'110202': `{0} template can not read`,
|
||||
'110103': 'sync personal data from douban',
|
||||
@ -240,6 +245,9 @@ PS: This file could be delete if you want to.
|
||||
'121401': `Status Bar`,
|
||||
'121402': `Display status bar when import data ?`,
|
||||
|
||||
'121410': `Search Default Type`,
|
||||
'121411': `Search defuault type when open command palette 'search douban and create file'`,
|
||||
|
||||
'121430': `Save Attachment File`,
|
||||
'121431': `Save attachment file to local disk, such as image ? If you do not enable this feature, it will not show cover image in note`,
|
||||
'121432': `Attachment folder`,
|
||||
@ -349,6 +357,8 @@ PS: This file could be delete if you want to.
|
||||
'150103': `[Next Page]...`,
|
||||
'150105': `[Next Page (Group Post)]...`,
|
||||
'150104': `[Next Page (Please Login First)]...`,
|
||||
'150107': `Result is empty. Please choose type before search`,
|
||||
'150108': `If you can't find what you want, try changing the keyword or search type`,
|
||||
|
||||
|
||||
|
||||
@ -648,6 +658,18 @@ PS: This file could be delete if you want to.
|
||||
|
||||
'MOVIE_AND_TELEPLAY': `movie&tv`,
|
||||
|
||||
'all': `all`,
|
||||
'movie': `movie`,
|
||||
'book': `book`,
|
||||
'music': `music`,
|
||||
'note': `note`,
|
||||
'game': `game`,
|
||||
'teleplay': `teleplay`,
|
||||
'theater': `theater`,
|
||||
|
||||
'movie_and_teleplay': `movie&tv`,
|
||||
|
||||
|
||||
|
||||
'DAY': `D`,
|
||||
'HOUR': `H`,
|
||||
|
||||
@ -4,14 +4,22 @@ import {SyncItemStatus} from "../../constant/Constsant";
|
||||
|
||||
export default {
|
||||
//main.ts
|
||||
'110001': '搜索豆瓣当前文档名并写入',
|
||||
'110002': '搜索豆瓣并写入当前文档',
|
||||
'110001': '搜索当前文档名并写入',
|
||||
'110002': '搜索并写入当前文档',
|
||||
'110003': `输入搜索内容:`,
|
||||
'110004': `搜索`,
|
||||
'110005': `取消`,
|
||||
'110006': `同步豆瓣广播至Obsidian`,
|
||||
'110101': '搜索豆瓣并创建文档',
|
||||
'110103': '同步豆瓣个人书影音广播记录',
|
||||
'110006': `同步广播至Obsidian`,
|
||||
'110101': '搜索并创建文档',
|
||||
'110103': '同步个人书影音广播记录',
|
||||
//'110102': 'search douban and create movie or tv',
|
||||
'110102': '搜索电影或电视剧并创建',
|
||||
// '110104': 'search douban and create book',
|
||||
'110104': '搜索书籍并创建',
|
||||
//'110105': 'search douban and create music',
|
||||
'110105': '搜索音乐并创建',
|
||||
//'110106': 'search douban and create game',
|
||||
'110106': '搜索游戏并创建',
|
||||
'110007': `开始同步`,
|
||||
'110009': `停止同步`,
|
||||
'110010': `后台运行`,
|
||||
@ -61,7 +69,7 @@ export default {
|
||||
{1}
|
||||
|
||||
### 同步结果明细
|
||||
{1}
|
||||
{2}
|
||||
|
||||
---
|
||||
注:此文档可删除
|
||||
@ -284,6 +292,14 @@ export default {
|
||||
'121401': `状态栏`,
|
||||
'121402': `当在导入数据时, 是否需要在状态栏显示处理状态? `,
|
||||
|
||||
// '121410': `Search Default Type`,
|
||||
// '121411': `Search defuault type for open command palette 'search douban and create file'`,
|
||||
'121410': `默认搜索类型`,
|
||||
'121411': `在打开"搜索豆瓣并创建文件"时默认搜索的类型`,
|
||||
|
||||
|
||||
|
||||
|
||||
'121430': `保存图片附件`,
|
||||
'121431': `导入数据会同步保存图片附件到本地文件夹, 如电影封面,书籍封面。如果需要显示封面,请保持开启该功能。`,
|
||||
'121432': `附件存放位置`,
|
||||
@ -355,6 +371,9 @@ export default {
|
||||
'150103': `[下一页]...`,
|
||||
'150105': `[下一页]...(小组帖子结果)`,
|
||||
'150104': `[下一页]...(请先在插件中登录才能使用此功能)`,
|
||||
// '150107': `Result is empty. Please choose type before search`,
|
||||
'150107': `结果为空,请先选择类型再搜索`,
|
||||
'150108': `如果没有找到你想要的内容, 请尝试更换关键字或者更换搜索类型`,
|
||||
|
||||
//content
|
||||
'200101': `。`,
|
||||
@ -655,6 +674,16 @@ export default {
|
||||
'MOVIE_AND_TELEPLAY': `影视剧`,
|
||||
|
||||
|
||||
'all': `全部类型`,
|
||||
'movie': `电影`,
|
||||
'book': `书籍`,
|
||||
'music': `音乐`,
|
||||
'note': `笔记`,
|
||||
'game': `游戏`,
|
||||
'teleplay': `电视剧`,
|
||||
'theater': `戏剧`,
|
||||
'movie_and_teleplay': `影视剧`,
|
||||
|
||||
'DAY': `天`,
|
||||
'HOUR': `时`,
|
||||
'MINUTE': `分`,
|
||||
|
||||
@ -151,17 +151,21 @@ export default class DoubanPlugin extends Plugin {
|
||||
if (activeFile) {
|
||||
const searchTerm = activeFile.basename;
|
||||
if (searchTerm) {
|
||||
await this.search(searchTerm, SupportType.ALL, context);
|
||||
await this.search(searchTerm, SupportType.all, context);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async getDoubanTextForCreateNewNote(context: HandleContext) {
|
||||
new DoubanSearchModal(this.app, this, context).open();
|
||||
new DoubanSearchModal(this.app, this, context, null).open();
|
||||
}
|
||||
|
||||
async getDoubanTextForCreateNewNoteForType(context: HandleContext, type: SupportType) {
|
||||
new DoubanSearchModal(this.app, this, context, type).open();
|
||||
}
|
||||
|
||||
async getDoubanTextForSearchTerm(context: HandleContext) {
|
||||
new DoubanSearchModal(this.app, this, context).open();
|
||||
new DoubanSearchModal(this.app, this, context, null).open();
|
||||
}
|
||||
|
||||
async showSyncModal(context: HandleContext) {
|
||||
@ -180,13 +184,13 @@ export default class DoubanPlugin extends Plugin {
|
||||
id: "searcher-douban-import-and-create-file",
|
||||
name: i18nHelper.getMessage("110101"),
|
||||
callback: () =>
|
||||
this.getDoubanTextForCreateNewNote({plugin: this,
|
||||
this.getDoubanTextForCreateNewNoteForType({plugin: this,
|
||||
mode: SearchHandleMode.FOR_CREATE,
|
||||
settings: this.settings,
|
||||
userComponent: this.userComponent,
|
||||
netFileHandler: this.netFileHandler,
|
||||
showAfterCreate:true,
|
||||
action: Action.SearchAndCrate}),
|
||||
action: Action.SearchAndCrate}, this.settings.searchDefaultType),
|
||||
});
|
||||
|
||||
this.addCommand({
|
||||
@ -228,6 +232,61 @@ export default class DoubanPlugin extends Plugin {
|
||||
syncStatusHolder: this.statusHolder}),
|
||||
});
|
||||
|
||||
this.addCommand({
|
||||
id: "searcher-douban-import-and-create-file-movie-tv",
|
||||
name: i18nHelper.getMessage("110102"),
|
||||
callback: () =>
|
||||
this.getDoubanTextForCreateNewNoteForType({plugin: this,
|
||||
mode: SearchHandleMode.FOR_CREATE,
|
||||
settings: this.settings,
|
||||
userComponent: this.userComponent,
|
||||
netFileHandler: this.netFileHandler,
|
||||
showAfterCreate:true,
|
||||
action: Action.SearchAndCrate}, SupportType.movie),
|
||||
});
|
||||
|
||||
this.addCommand({
|
||||
id: "searcher-douban-import-and-create-file-book",
|
||||
name: i18nHelper.getMessage("110104"),
|
||||
callback: () =>
|
||||
this.getDoubanTextForCreateNewNoteForType({plugin: this,
|
||||
mode: SearchHandleMode.FOR_CREATE,
|
||||
settings: this.settings,
|
||||
userComponent: this.userComponent,
|
||||
netFileHandler: this.netFileHandler,
|
||||
showAfterCreate:true,
|
||||
action: Action.SearchAndCrate}, SupportType.book),
|
||||
});
|
||||
|
||||
this.addCommand({
|
||||
id: "searcher-douban-import-and-create-file-music",
|
||||
name: i18nHelper.getMessage("110105"),
|
||||
callback: () =>
|
||||
this.getDoubanTextForCreateNewNoteForType({plugin: this,
|
||||
mode: SearchHandleMode.FOR_CREATE,
|
||||
settings: this.settings,
|
||||
userComponent: this.userComponent,
|
||||
netFileHandler: this.netFileHandler,
|
||||
showAfterCreate:true,
|
||||
action: Action.SearchAndCrate}, SupportType.music),
|
||||
});
|
||||
|
||||
this.addCommand({
|
||||
id: "searcher-douban-import-and-create-file-game",
|
||||
name: i18nHelper.getMessage("110106"),
|
||||
callback: () =>
|
||||
this.getDoubanTextForCreateNewNoteForType({plugin: this,
|
||||
mode: SearchHandleMode.FOR_CREATE,
|
||||
settings: this.settings,
|
||||
userComponent: this.userComponent,
|
||||
netFileHandler: this.netFileHandler,
|
||||
showAfterCreate:true,
|
||||
action: Action.SearchAndCrate}, SupportType.game),
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
this.settingsManager = new SettingsManager(app, this);
|
||||
// this.fetchOnlineData(this.settingsManager);
|
||||
this.userComponent = new UserComponent(this.settingsManager);
|
||||
|
||||
@ -244,7 +244,7 @@ export class VariableUtil {
|
||||
const customPropertiesMap= new Map();
|
||||
customProperties.filter(customProperty => customProperty.name &&
|
||||
customProperty.field
|
||||
&& (customProperty.field.toLowerCase() == SupportType.ALL ||
|
||||
&& (customProperty.field.toLowerCase() == SupportType.all ||
|
||||
customProperty.field.toLowerCase() == subjectType)).forEach(customProperty => {
|
||||
customPropertiesMap.set(customProperty.name, customProperty.value);
|
||||
});
|
||||
|
||||
Loading…
Reference in New Issue
Block a user