mirror of https://github.com/stashapp/stash.git
95 lines
2.9 KiB
Go
95 lines
2.9 KiB
Go
package models
|
|
|
|
import (
|
|
"fmt"
|
|
"io"
|
|
"strconv"
|
|
)
|
|
|
|
type GenerateMetadataOptions struct {
|
|
Covers bool `json:"covers"`
|
|
Sprites bool `json:"sprites"`
|
|
Previews bool `json:"previews"`
|
|
ImagePreviews bool `json:"imagePreviews"`
|
|
PreviewOptions *GeneratePreviewOptions `json:"previewOptions"`
|
|
Markers bool `json:"markers"`
|
|
MarkerImagePreviews bool `json:"markerImagePreviews"`
|
|
MarkerScreenshots bool `json:"markerScreenshots"`
|
|
Transcodes bool `json:"transcodes"`
|
|
Phashes bool `json:"phashes"`
|
|
InteractiveHeatmapsSpeeds bool `json:"interactiveHeatmapsSpeeds"`
|
|
ImageThumbnails bool `json:"imageThumbnails"`
|
|
ClipPreviews bool `json:"clipPreviews"`
|
|
}
|
|
|
|
type GeneratePreviewOptions struct {
|
|
// Number of segments in a preview file
|
|
PreviewSegments *int `json:"previewSegments"`
|
|
// Preview segment duration, in seconds
|
|
PreviewSegmentDuration *float64 `json:"previewSegmentDuration"`
|
|
// Duration of start of video to exclude when generating previews
|
|
PreviewExcludeStart *string `json:"previewExcludeStart"`
|
|
// Duration of end of video to exclude when generating previews
|
|
PreviewExcludeEnd *string `json:"previewExcludeEnd"`
|
|
// Preset when generating preview
|
|
PreviewPreset *PreviewPreset `json:"previewPreset"`
|
|
}
|
|
|
|
type PreviewPreset string
|
|
|
|
const (
|
|
// X264_ULTRAFAST
|
|
PreviewPresetUltrafast PreviewPreset = "ultrafast"
|
|
// X264_VERYFAST
|
|
PreviewPresetVeryfast PreviewPreset = "veryfast"
|
|
// X264_FAST
|
|
PreviewPresetFast PreviewPreset = "fast"
|
|
// X264_MEDIUM
|
|
PreviewPresetMedium PreviewPreset = "medium"
|
|
// X264_SLOW
|
|
PreviewPresetSlow PreviewPreset = "slow"
|
|
// X264_SLOWER
|
|
PreviewPresetSlower PreviewPreset = "slower"
|
|
// X264_VERYSLOW
|
|
PreviewPresetVeryslow PreviewPreset = "veryslow"
|
|
)
|
|
|
|
var AllPreviewPreset = []PreviewPreset{
|
|
PreviewPresetUltrafast,
|
|
PreviewPresetVeryfast,
|
|
PreviewPresetFast,
|
|
PreviewPresetMedium,
|
|
PreviewPresetSlow,
|
|
PreviewPresetSlower,
|
|
PreviewPresetVeryslow,
|
|
}
|
|
|
|
func (e PreviewPreset) IsValid() bool {
|
|
switch e {
|
|
case PreviewPresetUltrafast, PreviewPresetVeryfast, PreviewPresetFast, PreviewPresetMedium, PreviewPresetSlow, PreviewPresetSlower, PreviewPresetVeryslow:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (e PreviewPreset) String() string {
|
|
return string(e)
|
|
}
|
|
|
|
func (e *PreviewPreset) UnmarshalGQL(v interface{}) error {
|
|
str, ok := v.(string)
|
|
if !ok {
|
|
return fmt.Errorf("enums must be strings")
|
|
}
|
|
|
|
*e = PreviewPreset(str)
|
|
if !e.IsValid() {
|
|
return fmt.Errorf("%s is not a valid PreviewPreset", str)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (e PreviewPreset) MarshalGQL(w io.Writer) {
|
|
fmt.Fprint(w, strconv.Quote(e.String()))
|
|
}
|