Skip to content

Commit

Permalink
Optimize chatgpt plugin
Browse files Browse the repository at this point in the history
  • Loading branch information
qianlifeng committed Dec 12, 2023
1 parent 0809b90 commit fa9d49d
Show file tree
Hide file tree
Showing 7 changed files with 369 additions and 180 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/stale.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,12 @@ jobs:
steps:
- uses: actions/stale@v8
with:
stale-issue-message: 'This issue is stale because it has been open 45 days with no activity. Remove stale label or comment or this will be closed in 5 days.'
days-before-stale: 15
days-before-close: 7
stale-issue-message: 'This issue is stale because it has been open 7 days with no activity. Remove stale label or comment or this will be closed in 3 days.'
days-before-stale: 7
days-before-close: 3
days-before-pr-close: -1
exempt-all-milestones: true
close-issue-message: 'This issue was closed because it has been stale for 7 days with no activity. If you feel this issue still needs attention please feel free to reopen.'
close-issue-message: 'This issue was closed because it has been stale for 10 days with no activity. If you feel this issue still needs attention please feel free to reopen.'
stale-pr-label: 'no-pr-activity'
exempt-issue-labels: 'keep-fresh'
exempt-pr-labels: 'keep-fresh,awaiting-approval,work-in-progress'
Expand Down
1 change: 1 addition & 0 deletions Wox/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ require (
github.com/saracen/zipextra v0.0.0-20220303013732-0187cb0159ea // indirect
github.com/tidwall/match v1.1.1 // indirect
github.com/vcaesar/keycode v0.10.1 // indirect
github.com/xeonx/timeago v1.0.0-rc5 // indirect
go.uber.org/multierr v1.10.0 // indirect
golang.design/x/mainthread v0.3.0 // indirect
golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect
Expand Down
2 changes: 2 additions & 0 deletions Wox/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,8 @@ github.com/vcaesar/tt v0.20.0 h1:9t2Ycb9RNHcP0WgQgIaRKJBB+FrRdejuaL6uWIHuoBA=
github.com/vcaesar/tt v0.20.0/go.mod h1:GHPxQYhn+7OgKakRusH7KJ0M5MhywoeLb8Fcffs/Gtg=
github.com/wissance/stringFormatter v1.1.1 h1:QZY8odMe92WgY3aweV3+/y1gMm94gNBY6Ba1mpHLUsQ=
github.com/wissance/stringFormatter v1.1.1/go.mod h1:H7Mz15+5i8ypmv6bLknM/uD+U1teUW99PlW0DNCNscA=
github.com/xeonx/timeago v1.0.0-rc5 h1:pwcQGpaH3eLfPtXeyPA4DmHWjoQt0Ea7/++FwpxqLxg=
github.com/xeonx/timeago v1.0.0-rc5/go.mod h1:qDLrYEFynLO7y5Ho7w3GwgtYgpy5UfhcXIIQvMKVDkA=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
go.uber.org/goleak v1.2.0 h1:xqgm/S+aQvhWFTtR0XK3Jvg7z8kGV8P4X14IzwN3Eqk=
go.uber.org/goleak v1.2.0/go.mod h1:XJYK+MuIchqpmGmUSAzotztawfKvYLUIgg7guXrwVUo=
Expand Down
39 changes: 23 additions & 16 deletions Wox/plugin/manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -157,25 +157,27 @@ func (m *Manager) loadHostPlugin(ctx context.Context, host Host, metadata Metada
}
loadFinishTimestamp := util.GetSystemTimestamp()

pluginSetting, settingErr := setting.GetSettingManager().LoadPluginSetting(ctx, metadata.Metadata.Id, metadata.Metadata.SettingDefinitions)
if settingErr != nil {
return settingErr
}

instance := &Instance{
Metadata: metadata.Metadata,
PluginDirectory: metadata.Directory,
Plugin: plugin,
Host: host,
Setting: pluginSetting,
LoadStartTimestamp: loadStartTimestamp,
LoadFinishedTimestamp: loadFinishTimestamp,
}
instance.API = NewAPI(instance)
pluginSetting, settingErr := setting.GetSettingManager().LoadPluginSetting(ctx, metadata.Metadata.Id, metadata.Metadata.SettingDefinitions)
if settingErr != nil {
instance.API.Log(ctx, fmt.Errorf("[SYS] failed to load plugin[%s] setting: %w", metadata.Metadata.Name, settingErr).Error())
return settingErr
}
instance.Setting = pluginSetting

m.instances = append(m.instances, instance)

if pluginSetting.Disabled {
logger.Info(ctx, fmt.Errorf("[%s HOST] plugin is disabled by user, skip init: %s", host.GetRuntime(ctx), metadata.Metadata.Name).Error())
instance.API.Log(ctx, fmt.Sprintf("[SYS] plugin is disabled by user, skip init: %s", metadata.Metadata.Name))
return nil
}

Expand Down Expand Up @@ -224,24 +226,27 @@ func (m *Manager) loadSystemPlugins(ctx context.Context) {

for _, plugin := range AllSystemPlugin {
metadata := plugin.GetMetadata()
pluginSetting, settingErr := setting.GetSettingManager().LoadPluginSetting(ctx, metadata.Id, metadata.SettingDefinitions)
if settingErr != nil {
logger.Error(ctx, fmt.Errorf("failed to load system plugin[%s] setting, use default plugin setting: %w", metadata.Name, settingErr).Error())
pluginSetting = &setting.PluginSetting{
Settings: util.NewHashMap[string, string](),
}
}

instance := &Instance{
Metadata: plugin.GetMetadata(),
Metadata: metadata,
Plugin: plugin,
Host: nil,
Setting: pluginSetting,
IsSystemPlugin: true,
LoadStartTimestamp: util.GetSystemTimestamp(),
LoadFinishedTimestamp: util.GetSystemTimestamp(),
}
instance.API = NewAPI(instance)

pluginSetting, settingErr := setting.GetSettingManager().LoadPluginSetting(ctx, metadata.Id, metadata.SettingDefinitions)
if settingErr != nil {
errMsg := fmt.Sprintf("failed to load system plugin[%s] setting, use default plugin setting. err: %s", metadata.Name, settingErr.Error())
logger.Error(ctx, errMsg)
instance.API.Log(ctx, fmt.Sprintf("[SYS] %s", errMsg))
pluginSetting = &setting.PluginSetting{
Settings: util.NewHashMap[string, string](),
}
}
instance.Setting = pluginSetting

m.instances = append(m.instances, instance)

util.Go(ctx, fmt.Sprintf("[%s] init system plugin", plugin.GetMetadata().Name), func() {
Expand All @@ -252,13 +257,15 @@ func (m *Manager) loadSystemPlugins(ctx context.Context) {

func (m *Manager) initPlugin(ctx context.Context, instance *Instance) {
logger.Info(ctx, fmt.Sprintf("[%s] init plugin", instance.Metadata.Name))
instance.API.Log(ctx, fmt.Sprintf("[SYS] init plugin"))
instance.InitStartTimestamp = util.GetSystemTimestamp()
instance.Plugin.Init(ctx, InitParams{
API: instance.API,
PluginDirectory: instance.PluginDirectory,
})
instance.InitFinishedTimestamp = util.GetSystemTimestamp()
logger.Info(ctx, fmt.Sprintf("[%s] init plugin finished, cost %d ms", instance.Metadata.Name, instance.InitFinishedTimestamp-instance.InitStartTimestamp))
instance.API.Log(ctx, fmt.Sprintf("[SYS] init plugin finished, cost %d ms", instance.InitFinishedTimestamp-instance.InitStartTimestamp))
}

func (m *Manager) parseMetadata(ctx context.Context, pluginDirectory string) (Metadata, error) {
Expand Down
Loading

0 comments on commit fa9d49d

Please sign in to comment.