mirror of
https://github.com/stashapp/stash.git
synced 2025-12-17 12:24:38 +03:00
Add Chapters for Galleries (#3289)
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
This commit is contained in:
@@ -146,6 +146,7 @@ const (
|
||||
|
||||
const (
|
||||
galleryIdxWithScene = iota
|
||||
galleryIdxWithChapters
|
||||
galleryIdxWithImage
|
||||
galleryIdx1WithImage
|
||||
galleryIdx2WithImage
|
||||
@@ -236,6 +237,11 @@ const (
|
||||
totalMarkers
|
||||
)
|
||||
|
||||
const (
|
||||
chapterIdxWithGallery = iota
|
||||
totalChapters
|
||||
)
|
||||
|
||||
const (
|
||||
savedFilterIdxDefaultScene = iota
|
||||
savedFilterIdxDefaultImage
|
||||
@@ -261,6 +267,7 @@ var (
|
||||
sceneFileIDs []file.ID
|
||||
imageFileIDs []file.ID
|
||||
galleryFileIDs []file.ID
|
||||
chapterIDs []int
|
||||
|
||||
sceneIDs []int
|
||||
imageIDs []int
|
||||
@@ -372,6 +379,19 @@ var (
|
||||
}
|
||||
)
|
||||
|
||||
type chapterSpec struct {
|
||||
galleryIdx int
|
||||
title string
|
||||
imageIndex int
|
||||
}
|
||||
|
||||
var (
|
||||
// indexed by chapter
|
||||
chapterSpecs = []chapterSpec{
|
||||
{galleryIdxWithChapters, "Test1", 10},
|
||||
}
|
||||
)
|
||||
|
||||
var (
|
||||
imageGalleries = linkMap{
|
||||
imageIdxWithGallery: {galleryIdxWithImage},
|
||||
@@ -599,6 +619,11 @@ func populateDB() error {
|
||||
return fmt.Errorf("error creating scene marker: %s", err.Error())
|
||||
}
|
||||
}
|
||||
for _, cs := range chapterSpecs {
|
||||
if err := createChapter(ctx, sqlite.GalleryChapterReaderWriter, cs); err != nil {
|
||||
return fmt.Errorf("error creating gallery chapter: %s", err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}); err != nil {
|
||||
@@ -1580,6 +1605,24 @@ func createMarker(ctx context.Context, mqb models.SceneMarkerReaderWriter, marke
|
||||
return nil
|
||||
}
|
||||
|
||||
func createChapter(ctx context.Context, mqb models.GalleryChapterReaderWriter, chapterSpec chapterSpec) error {
|
||||
chapter := models.GalleryChapter{
|
||||
GalleryID: sql.NullInt64{Int64: int64(sceneIDs[chapterSpec.galleryIdx]), Valid: true},
|
||||
Title: chapterSpec.title,
|
||||
ImageIndex: chapterSpec.imageIndex,
|
||||
}
|
||||
|
||||
created, err := mqb.Create(ctx, chapter)
|
||||
|
||||
if err != nil {
|
||||
return fmt.Errorf("error creating chapter %v+: %w", chapter, err)
|
||||
}
|
||||
|
||||
chapterIDs = append(chapterIDs, created.ID)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func getSavedFilterMode(index int) models.FilterMode {
|
||||
switch index {
|
||||
case savedFilterIdxScene, savedFilterIdxDefaultScene:
|
||||
|
||||
Reference in New Issue
Block a user