mirror of
https://github.com/stashapp/stash.git
synced 2025-12-17 20:34:37 +03:00
Bug fixes
This commit is contained in:
@@ -19,6 +19,7 @@ type ExportTask struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (t *ExportTask) Start(wg *sync.WaitGroup) {
|
func (t *ExportTask) Start(wg *sync.WaitGroup) {
|
||||||
|
defer wg.Done()
|
||||||
// @manager.total = Scene.count + Gallery.count + Performer.count + Studio.count
|
// @manager.total = Scene.count + Gallery.count + Performer.count + Studio.count
|
||||||
|
|
||||||
t.Mappings = &jsonschema.Mappings{}
|
t.Mappings = &jsonschema.Mappings{}
|
||||||
@@ -36,8 +37,6 @@ func (t *ExportTask) Start(wg *sync.WaitGroup) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
t.ExportScrapedItems(ctx)
|
t.ExportScrapedItems(ctx)
|
||||||
|
|
||||||
wg.Done()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *ExportTask) ExportScenes(ctx context.Context) {
|
func (t *ExportTask) ExportScenes(ctx context.Context) {
|
||||||
|
|||||||
@@ -16,18 +16,18 @@ type GenerateMarkersTask struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (t *GenerateMarkersTask) Start(wg *sync.WaitGroup) {
|
func (t *GenerateMarkersTask) Start(wg *sync.WaitGroup) {
|
||||||
|
defer wg.Done()
|
||||||
|
|
||||||
instance.Paths.Generated.EmptyTmpDir()
|
instance.Paths.Generated.EmptyTmpDir()
|
||||||
qb := models.NewSceneMarkerQueryBuilder()
|
qb := models.NewSceneMarkerQueryBuilder()
|
||||||
sceneMarkers, _ := qb.FindBySceneID(t.Scene.ID, nil)
|
sceneMarkers, _ := qb.FindBySceneID(t.Scene.ID, nil)
|
||||||
if len(sceneMarkers) == 0 {
|
if len(sceneMarkers) == 0 {
|
||||||
wg.Done()
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
videoFile, err := ffmpeg.NewVideoFile(instance.Paths.FixedPaths.FFProbe, t.Scene.Path)
|
videoFile, err := ffmpeg.NewVideoFile(instance.Paths.FixedPaths.FFProbe, t.Scene.Path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Errorf("error reading video file: %s", err.Error())
|
logger.Errorf("error reading video file: %s", err.Error())
|
||||||
wg.Done()
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -74,6 +74,4 @@ func (t *GenerateMarkersTask) Start(wg *sync.WaitGroup) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
wg.Done()
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,39 +13,35 @@ type GeneratePreviewTask struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (t *GeneratePreviewTask) Start(wg *sync.WaitGroup) {
|
func (t *GeneratePreviewTask) Start(wg *sync.WaitGroup) {
|
||||||
|
defer wg.Done()
|
||||||
|
|
||||||
videoFilename := t.videoFilename()
|
videoFilename := t.videoFilename()
|
||||||
imageFilename := t.imageFilename()
|
imageFilename := t.imageFilename()
|
||||||
if t.doesPreviewExist(videoFilename, imageFilename) {
|
if t.doesPreviewExist(t.Scene.Checksum) {
|
||||||
wg.Done()
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
videoFile, err := ffmpeg.NewVideoFile(instance.Paths.FixedPaths.FFProbe, t.Scene.Path)
|
videoFile, err := ffmpeg.NewVideoFile(instance.Paths.FixedPaths.FFProbe, t.Scene.Path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Errorf("error reading video file: %s", err.Error())
|
logger.Errorf("error reading video file: %s", err.Error())
|
||||||
wg.Done()
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
generator, err := NewPreviewGenerator(*videoFile, videoFilename, imageFilename, instance.Paths.Generated.Screenshots)
|
generator, err := NewPreviewGenerator(*videoFile, videoFilename, imageFilename, instance.Paths.Generated.Screenshots)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Errorf("error creating preview generator: %s", err.Error())
|
logger.Errorf("error creating preview generator: %s", err.Error())
|
||||||
wg.Done()
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := generator.Generate(); err != nil {
|
if err := generator.Generate(); err != nil {
|
||||||
logger.Errorf("error generating preview: %s", err.Error())
|
logger.Errorf("error generating preview: %s", err.Error())
|
||||||
wg.Done()
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
wg.Done()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *GeneratePreviewTask) doesPreviewExist(videoFilename string, imageFilename string) bool {
|
func (t *GeneratePreviewTask) doesPreviewExist(sceneChecksum string) bool {
|
||||||
videoExists, _ := utils.FileExists(instance.Paths.Scene.GetStreamPreviewPath(videoFilename))
|
videoExists, _ := utils.FileExists(instance.Paths.Scene.GetStreamPreviewPath(sceneChecksum))
|
||||||
imageExists, _ := utils.FileExists(instance.Paths.Scene.GetStreamPreviewImagePath(imageFilename))
|
imageExists, _ := utils.FileExists(instance.Paths.Scene.GetStreamPreviewImagePath(sceneChecksum))
|
||||||
return videoExists && imageExists
|
return videoExists && imageExists
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -13,15 +13,15 @@ type GenerateSpriteTask struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (t *GenerateSpriteTask) Start(wg *sync.WaitGroup) {
|
func (t *GenerateSpriteTask) Start(wg *sync.WaitGroup) {
|
||||||
|
defer wg.Done()
|
||||||
|
|
||||||
if t.doesSpriteExist(t.Scene.Checksum) {
|
if t.doesSpriteExist(t.Scene.Checksum) {
|
||||||
wg.Done()
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
videoFile, err := ffmpeg.NewVideoFile(instance.Paths.FixedPaths.FFProbe, t.Scene.Path)
|
videoFile, err := ffmpeg.NewVideoFile(instance.Paths.FixedPaths.FFProbe, t.Scene.Path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Errorf("error reading video file: %s", err.Error())
|
logger.Errorf("error reading video file: %s", err.Error())
|
||||||
wg.Done()
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -30,17 +30,13 @@ func (t *GenerateSpriteTask) Start(wg *sync.WaitGroup) {
|
|||||||
generator, err := NewSpriteGenerator(*videoFile, imagePath, vttPath, 9, 9)
|
generator, err := NewSpriteGenerator(*videoFile, imagePath, vttPath, 9, 9)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Errorf("error creating sprite generator: %s", err.Error())
|
logger.Errorf("error creating sprite generator: %s", err.Error())
|
||||||
wg.Done()
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := generator.Generate(); err != nil {
|
if err := generator.Generate(); err != nil {
|
||||||
logger.Errorf("error generating sprite: %s", err.Error())
|
logger.Errorf("error generating sprite: %s", err.Error())
|
||||||
wg.Done()
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
wg.Done()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *GenerateSpriteTask) doesSpriteExist(sceneChecksum string) bool {
|
func (t *GenerateSpriteTask) doesSpriteExist(sceneChecksum string) bool {
|
||||||
|
|||||||
@@ -20,9 +20,12 @@ type ImportTask struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (t *ImportTask) Start(wg *sync.WaitGroup) {
|
func (t *ImportTask) Start(wg *sync.WaitGroup) {
|
||||||
|
defer wg.Done()
|
||||||
|
|
||||||
t.Mappings, _ = instance.JSON.getMappings()
|
t.Mappings, _ = instance.JSON.getMappings()
|
||||||
if t.Mappings == nil {
|
if t.Mappings == nil {
|
||||||
panic("missing mappings json")
|
logger.Error("missing mappings json")
|
||||||
|
return
|
||||||
}
|
}
|
||||||
scraped, _ := instance.JSON.getScraped()
|
scraped, _ := instance.JSON.getScraped()
|
||||||
if scraped == nil {
|
if scraped == nil {
|
||||||
@@ -41,8 +44,6 @@ func (t *ImportTask) Start(wg *sync.WaitGroup) {
|
|||||||
|
|
||||||
t.ImportScrapedItems(ctx)
|
t.ImportScrapedItems(ctx)
|
||||||
t.ImportScenes(ctx)
|
t.ImportScenes(ctx)
|
||||||
|
|
||||||
wg.Done()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *ImportTask) ImportPerformers(ctx context.Context) {
|
func (t *ImportTask) ImportPerformers(ctx context.Context) {
|
||||||
@@ -231,6 +232,7 @@ func (t *ImportTask) ImportTags(ctx context.Context) {
|
|||||||
for i, mappingJSON := range t.Mappings.Scenes {
|
for i, mappingJSON := range t.Mappings.Scenes {
|
||||||
index := i + 1
|
index := i + 1
|
||||||
if mappingJSON.Checksum == "" || mappingJSON.Path == "" {
|
if mappingJSON.Checksum == "" || mappingJSON.Path == "" {
|
||||||
|
_ = tx.Rollback()
|
||||||
logger.Warn("[tags] scene mapping without checksum or path: ", mappingJSON)
|
logger.Warn("[tags] scene mapping without checksum or path: ", mappingJSON)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -350,6 +352,7 @@ func (t *ImportTask) ImportScenes(ctx context.Context) {
|
|||||||
for i, mappingJSON := range t.Mappings.Scenes {
|
for i, mappingJSON := range t.Mappings.Scenes {
|
||||||
index := i + 1
|
index := i + 1
|
||||||
if mappingJSON.Checksum == "" || mappingJSON.Path == "" {
|
if mappingJSON.Checksum == "" || mappingJSON.Path == "" {
|
||||||
|
_ = tx.Rollback()
|
||||||
logger.Warn("[scenes] scene mapping without checksum or path: ", mappingJSON)
|
logger.Warn("[scenes] scene mapping without checksum or path: ", mappingJSON)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,6 @@ func EnsureDir(path string) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO test
|
|
||||||
func RemoveDir(path string) error {
|
func RemoveDir(path string) error {
|
||||||
return os.RemoveAll(path)
|
return os.RemoveAll(path)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user