mirror of
https://github.com/stashapp/stash.git
synced 2025-12-18 04:44:37 +03:00
Support image clips/gifs (#3583)
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
This commit is contained in:
@@ -241,7 +241,7 @@ func (qb *ImageStore) Update(ctx context.Context, updatedObject *models.Image) e
|
||||
if updatedObject.Files.Loaded() {
|
||||
fileIDs := make([]file.ID, len(updatedObject.Files.List()))
|
||||
for i, f := range updatedObject.Files.List() {
|
||||
fileIDs[i] = f.ID
|
||||
fileIDs[i] = f.Base().ID
|
||||
}
|
||||
|
||||
if err := imagesFilesTableMgr.replaceJoins(ctx, updatedObject.ID, fileIDs); err != nil {
|
||||
@@ -360,7 +360,7 @@ func (qb *ImageStore) getMany(ctx context.Context, q *goqu.SelectDataset) ([]*mo
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
func (qb *ImageStore) GetFiles(ctx context.Context, id int) ([]*file.ImageFile, error) {
|
||||
func (qb *ImageStore) GetFiles(ctx context.Context, id int) ([]file.File, error) {
|
||||
fileIDs, err := qb.filesRepository().get(ctx, id)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -372,16 +372,7 @@ func (qb *ImageStore) GetFiles(ctx context.Context, id int) ([]*file.ImageFile,
|
||||
return nil, err
|
||||
}
|
||||
|
||||
ret := make([]*file.ImageFile, len(files))
|
||||
for i, f := range files {
|
||||
var ok bool
|
||||
ret[i], ok = f.(*file.ImageFile)
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("expected file to be *file.ImageFile not %T", f)
|
||||
}
|
||||
}
|
||||
|
||||
return ret, nil
|
||||
return files, nil
|
||||
}
|
||||
|
||||
func (qb *ImageStore) GetManyFileIDs(ctx context.Context, ids []int) ([][]file.ID, error) {
|
||||
|
||||
@@ -97,7 +97,7 @@ func Test_imageQueryBuilder_Create(t *testing.T) {
|
||||
Organized: true,
|
||||
OCounter: ocounter,
|
||||
StudioID: &studioIDs[studioIdxWithImage],
|
||||
Files: models.NewRelatedImageFiles([]*file.ImageFile{
|
||||
Files: models.NewRelatedFiles([]file.File{
|
||||
imageFile.(*file.ImageFile),
|
||||
}),
|
||||
PrimaryFileID: &imageFile.Base().ID,
|
||||
@@ -149,7 +149,7 @@ func Test_imageQueryBuilder_Create(t *testing.T) {
|
||||
var fileIDs []file.ID
|
||||
if tt.newObject.Files.Loaded() {
|
||||
for _, f := range tt.newObject.Files.List() {
|
||||
fileIDs = append(fileIDs, f.ID)
|
||||
fileIDs = append(fileIDs, f.Base().ID)
|
||||
}
|
||||
}
|
||||
s := tt.newObject
|
||||
@@ -444,7 +444,7 @@ func Test_imageQueryBuilder_UpdatePartial(t *testing.T) {
|
||||
Organized: true,
|
||||
OCounter: ocounter,
|
||||
StudioID: &studioIDs[studioIdxWithImage],
|
||||
Files: models.NewRelatedImageFiles([]*file.ImageFile{
|
||||
Files: models.NewRelatedFiles([]file.File{
|
||||
makeImageFile(imageIdx1WithGallery),
|
||||
}),
|
||||
CreatedAt: createdAt,
|
||||
@@ -462,7 +462,7 @@ func Test_imageQueryBuilder_UpdatePartial(t *testing.T) {
|
||||
models.Image{
|
||||
ID: imageIDs[imageIdx1WithGallery],
|
||||
OCounter: getOCounter(imageIdx1WithGallery),
|
||||
Files: models.NewRelatedImageFiles([]*file.ImageFile{
|
||||
Files: models.NewRelatedFiles([]file.File{
|
||||
makeImageFile(imageIdx1WithGallery),
|
||||
}),
|
||||
GalleryIDs: models.NewRelatedIDs([]int{}),
|
||||
@@ -965,7 +965,7 @@ func makeImageWithID(index int) *models.Image {
|
||||
ret := makeImage(index, true)
|
||||
ret.ID = imageIDs[index]
|
||||
|
||||
ret.Files = models.NewRelatedImageFiles([]*file.ImageFile{makeImageFile(index)})
|
||||
ret.Files = models.NewRelatedFiles([]file.File{makeImageFile(index)})
|
||||
|
||||
return ret
|
||||
}
|
||||
@@ -1868,8 +1868,11 @@ func verifyImagesResolution(t *testing.T, resolution models.ResolutionEnum) {
|
||||
t.Errorf("Error loading primary file: %s", err.Error())
|
||||
return nil
|
||||
}
|
||||
|
||||
verifyImageResolution(t, image.Files.Primary().Height, resolution)
|
||||
asFrame, ok := image.Files.Primary().(file.VisualFile)
|
||||
if !ok {
|
||||
t.Errorf("Error: Associated primary file of image is not of type VisualFile")
|
||||
}
|
||||
verifyImageResolution(t, asFrame.GetHeight(), resolution)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
Reference in New Issue
Block a user