Plugin API improvements (#4603)

* Accept plain map for runPluginTask
* Support running plugin task without task name
* Add interface to run plugin operations
* Update RunPluginTask client mutation
This commit is contained in:
WithoutPants
2024-02-22 11:20:21 +11:00
committed by GitHub
parent a8c909e0c9
commit 0c2a2190e5
13 changed files with 229 additions and 105 deletions

View File

@@ -9,7 +9,13 @@ import (
"github.com/stashapp/stash/pkg/plugin"
)
func (s *Manager) RunPluginTask(ctx context.Context, pluginID string, taskName string, args []*plugin.PluginArgInput) int {
func (s *Manager) RunPluginTask(
ctx context.Context,
pluginID string,
taskName *string,
description *string,
args plugin.OperationInput,
) int {
j := job.MakeJobExec(func(jobCtx context.Context, progress *job.Progress) {
pluginProgress := make(chan float64)
task, err := s.PluginCache.CreateTask(ctx, pluginID, taskName, args, pluginProgress)
@@ -56,5 +62,12 @@ func (s *Manager) RunPluginTask(ctx context.Context, pluginID string, taskName s
}
})
return s.JobManager.Add(ctx, fmt.Sprintf("Running plugin task: %s", taskName), j)
displayName := pluginID
if taskName != nil {
displayName = *taskName
}
if description != nil {
displayName = *description
}
return s.JobManager.Add(ctx, fmt.Sprintf("Running plugin task: %s", displayName), j)
}