Skip to content

Commit

Permalink
[App Plugin] Fix the issue that user directories is not being indexed
Browse files Browse the repository at this point in the history
  • Loading branch information
qianlifeng committed Nov 14, 2024
1 parent 6461d2f commit 780668a
Showing 1 changed file with 32 additions and 13 deletions.
45 changes: 32 additions & 13 deletions Wox/plugin/system/app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -91,17 +91,6 @@ func (a *ApplicationPlugin) GetMetadata() plugin.Metadata {
"Linux",
},
SettingDefinitions: []definition.PluginSettingDefinitionItem{
{
Type: definition.PluginSettingDefinitionTypeCheckBox,
Value: &definition.PluginSettingValueCheckBox{
Key: "UsePinYin",
Label: "Use pinyin to search",
DefaultValue: "false",
},
},
{
Type: definition.PluginSettingDefinitionTypeNewLine,
},
{
Type: definition.PluginSettingDefinitionTypeTable,
Value: &definition.PluginSettingValueTable{
Expand Down Expand Up @@ -143,6 +132,12 @@ func (a *ApplicationPlugin) Init(ctx context.Context, initParams plugin.InitPara
}
}
})

a.api.OnSettingChanged(ctx, func(key string, value string) {
if key == "AppDirectories" {
a.indexApps(ctx)
}
})
}

func (a *ApplicationPlugin) Query(ctx context.Context, query plugin.Query) []plugin.QueryResult {
Expand Down Expand Up @@ -263,7 +258,7 @@ func (a *ApplicationPlugin) getRetriever(ctx context.Context) Retriever {
}

func (a *ApplicationPlugin) watchAppChanges(ctx context.Context) {
var appDirectories = a.retriever.GetAppDirectories(ctx)
var appDirectories = a.getAppDirectories(ctx)
var appExtensions = a.retriever.GetAppExtensions(ctx)
for _, d := range appDirectories {
var directory = d
Expand Down Expand Up @@ -338,8 +333,32 @@ func (a *ApplicationPlugin) indexApps(ctx context.Context) {
a.api.Log(ctx, plugin.LogLevelInfo, fmt.Sprintf("indexed %d apps, cost %d ms", len(a.apps), util.GetSystemTimestamp()-startTimestamp))
}

func (a *ApplicationPlugin) getUserAddedPaths(ctx context.Context) []appDirectory {
userAddedPaths := a.api.GetSetting(ctx, "AppDirectories")
if userAddedPaths == "" {
return []appDirectory{}
}

var appDirectories []appDirectory
unmarshalErr := json.Unmarshal([]byte(userAddedPaths), &appDirectories)
if unmarshalErr != nil {
return []appDirectory{}
}

for i := range appDirectories {
appDirectories[i].Recursive = true
appDirectories[i].RecursiveDepth = 3
}

return appDirectories
}

func (a *ApplicationPlugin) getAppDirectories(ctx context.Context) []appDirectory {
return append(a.getUserAddedPaths(ctx), a.getRetriever(ctx).GetAppDirectories(ctx)...)
}

func (a *ApplicationPlugin) indexAppsByDirectory(ctx context.Context) []appInfo {
appDirectories := a.getRetriever(ctx).GetAppDirectories(ctx)
appDirectories := a.getAppDirectories(ctx)
appPaths := a.getAppPaths(ctx, appDirectories)

// split into groups, so we can index apps in parallel
Expand Down

0 comments on commit 780668a

Please sign in to comment.