Movies Section (#338)

Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
This commit is contained in:
caustico
2020-03-10 04:28:15 +01:00
committed by GitHub
parent b3fab3cfef
commit 5fb8bbf768
79 changed files with 2278 additions and 27 deletions

View File

@@ -19,6 +19,7 @@ type PathMapping struct {
type Mappings struct {
Performers []NameMapping `json:"performers"`
Studios []NameMapping `json:"studios"`
Movies []NameMapping `json:"movies"`
Galleries []PathMapping `json:"galleries"`
Scenes []PathMapping `json:"scenes"`
}

View File

@@ -0,0 +1,46 @@
package jsonschema
import (
"encoding/json"
"fmt"
"os"
"github.com/stashapp/stash/pkg/models"
)
type Movie struct {
Name string `json:"name,omitempty"`
Aliases string `json:"aliases,omitempty"`
Duration string `json:"duration,omitempty"`
Date string `json:"date,omitempty"`
Rating string `json:"rating,omitempty"`
Director string `json:"director,omitempty"`
Synopsis string `json:"sypnopsis,omitempty"`
FrontImage string `json:"front_image,omitempty"`
BackImage string `json:"back_image,omitempty"`
URL string `json:"url,omitempty"`
CreatedAt models.JSONTime `json:"created_at,omitempty"`
UpdatedAt models.JSONTime `json:"updated_at,omitempty"`
}
func LoadMovieFile(filePath string) (*Movie, error) {
var movie Movie
file, err := os.Open(filePath)
defer file.Close()
if err != nil {
return nil, err
}
jsonParser := json.NewDecoder(file)
err = jsonParser.Decode(&movie)
if err != nil {
return nil, err
}
return &movie, nil
}
func SaveMovieFile(filePath string, movie *Movie) error {
if movie == nil {
return fmt.Errorf("movie must not be nil")
}
return marshalToFile(filePath, movie)
}

View File

@@ -3,8 +3,9 @@ package jsonschema
import (
"encoding/json"
"fmt"
"github.com/stashapp/stash/pkg/models"
"os"
"github.com/stashapp/stash/pkg/models"
)
type SceneMarker struct {
@@ -27,6 +28,11 @@ type SceneFile struct {
Bitrate int `json:"bitrate"`
}
type SceneMovie struct {
MovieName string `json:"movieName,omitempty"`
SceneIndex string `json:"scene_index,omitempty"`
}
type Scene struct {
Title string `json:"title,omitempty"`
Studio string `json:"studio,omitempty"`
@@ -36,6 +42,7 @@ type Scene struct {
Details string `json:"details,omitempty"`
Gallery string `json:"gallery,omitempty"`
Performers []string `json:"performers,omitempty"`
Movies []SceneMovie `json:"movies,omitempty"`
Tags []string `json:"tags,omitempty"`
Markers []SceneMarker `json:"markers,omitempty"`
File *SceneFile `json:"file,omitempty"`