mirror of
https://github.com/stashapp/stash.git
synced 2025-12-17 04:14:39 +03:00
Plugin hooks (#1452)
* Refactor session and plugin code * Add context to job tasks * Show hooks in plugins page * Refactor session management
This commit is contained in:
125
pkg/plugin/hooks.go
Normal file
125
pkg/plugin/hooks.go
Normal file
@@ -0,0 +1,125 @@
|
||||
package plugin
|
||||
|
||||
import (
|
||||
"github.com/stashapp/stash/pkg/plugin/common"
|
||||
)
|
||||
|
||||
type HookTriggerEnum string
|
||||
|
||||
// Scan-related hooks are current disabled until post-hook execution is
|
||||
// integrated.
|
||||
|
||||
const (
|
||||
SceneMarkerCreatePost HookTriggerEnum = "SceneMarker.Create.Post"
|
||||
SceneMarkerUpdatePost HookTriggerEnum = "SceneMarker.Update.Post"
|
||||
SceneMarkerDestroyPost HookTriggerEnum = "SceneMarker.Destroy.Post"
|
||||
|
||||
SceneCreatePost HookTriggerEnum = "Scene.Create.Post"
|
||||
SceneUpdatePost HookTriggerEnum = "Scene.Update.Post"
|
||||
SceneDestroyPost HookTriggerEnum = "Scene.Destroy.Post"
|
||||
|
||||
ImageCreatePost HookTriggerEnum = "Image.Create.Post"
|
||||
ImageUpdatePost HookTriggerEnum = "Image.Update.Post"
|
||||
ImageDestroyPost HookTriggerEnum = "Image.Destroy.Post"
|
||||
|
||||
GalleryCreatePost HookTriggerEnum = "Gallery.Create.Post"
|
||||
GalleryUpdatePost HookTriggerEnum = "Gallery.Update.Post"
|
||||
GalleryDestroyPost HookTriggerEnum = "Gallery.Destroy.Post"
|
||||
|
||||
MovieCreatePost HookTriggerEnum = "Movie.Create.Post"
|
||||
MovieUpdatePost HookTriggerEnum = "Movie.Update.Post"
|
||||
MovieDestroyPost HookTriggerEnum = "Movie.Destroy.Post"
|
||||
|
||||
PerformerCreatePost HookTriggerEnum = "Performer.Create.Post"
|
||||
PerformerUpdatePost HookTriggerEnum = "Performer.Update.Post"
|
||||
PerformerDestroyPost HookTriggerEnum = "Performer.Destroy.Post"
|
||||
|
||||
StudioCreatePost HookTriggerEnum = "Studio.Create.Post"
|
||||
StudioUpdatePost HookTriggerEnum = "Studio.Update.Post"
|
||||
StudioDestroyPost HookTriggerEnum = "Studio.Destroy.Post"
|
||||
|
||||
TagCreatePost HookTriggerEnum = "Tag.Create.Post"
|
||||
TagUpdatePost HookTriggerEnum = "Tag.Update.Post"
|
||||
TagDestroyPost HookTriggerEnum = "Tag.Destroy.Post"
|
||||
)
|
||||
|
||||
var AllHookTriggerEnum = []HookTriggerEnum{
|
||||
SceneMarkerCreatePost,
|
||||
SceneMarkerUpdatePost,
|
||||
SceneMarkerDestroyPost,
|
||||
|
||||
SceneCreatePost,
|
||||
SceneUpdatePost,
|
||||
SceneDestroyPost,
|
||||
|
||||
ImageCreatePost,
|
||||
ImageUpdatePost,
|
||||
ImageDestroyPost,
|
||||
|
||||
GalleryCreatePost,
|
||||
GalleryUpdatePost,
|
||||
GalleryDestroyPost,
|
||||
|
||||
MovieCreatePost,
|
||||
MovieUpdatePost,
|
||||
MovieDestroyPost,
|
||||
|
||||
PerformerCreatePost,
|
||||
PerformerUpdatePost,
|
||||
PerformerDestroyPost,
|
||||
|
||||
StudioCreatePost,
|
||||
StudioUpdatePost,
|
||||
StudioDestroyPost,
|
||||
|
||||
TagCreatePost,
|
||||
TagUpdatePost,
|
||||
TagDestroyPost,
|
||||
}
|
||||
|
||||
func (e HookTriggerEnum) IsValid() bool {
|
||||
|
||||
switch e {
|
||||
case SceneMarkerCreatePost,
|
||||
SceneMarkerUpdatePost,
|
||||
SceneMarkerDestroyPost,
|
||||
|
||||
SceneCreatePost,
|
||||
SceneUpdatePost,
|
||||
SceneDestroyPost,
|
||||
|
||||
ImageCreatePost,
|
||||
ImageUpdatePost,
|
||||
ImageDestroyPost,
|
||||
|
||||
GalleryCreatePost,
|
||||
GalleryUpdatePost,
|
||||
GalleryDestroyPost,
|
||||
|
||||
MovieCreatePost,
|
||||
MovieUpdatePost,
|
||||
MovieDestroyPost,
|
||||
|
||||
PerformerCreatePost,
|
||||
PerformerUpdatePost,
|
||||
PerformerDestroyPost,
|
||||
|
||||
StudioCreatePost,
|
||||
StudioUpdatePost,
|
||||
StudioDestroyPost,
|
||||
|
||||
TagCreatePost,
|
||||
TagUpdatePost,
|
||||
TagDestroyPost:
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (e HookTriggerEnum) String() string {
|
||||
return string(e)
|
||||
}
|
||||
|
||||
func addHookContext(argsMap common.ArgsMap, hookContext common.HookContext) {
|
||||
argsMap[common.HookContextKey] = hookContext
|
||||
}
|
||||
Reference in New Issue
Block a user