From 043745a84f563756f8c29ccb7c08a11313d4594d Mon Sep 17 00:00:00 2001 From: WithoutPants <53250216+WithoutPants@users.noreply.github.com> Date: Wed, 18 Dec 2019 04:28:44 +1100 Subject: [PATCH] Add cache breaker for screenshot using modtime (#271) --- pkg/api/resolver_model_scene.go | 3 ++- pkg/api/urlbuilders/scene.go | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/pkg/api/resolver_model_scene.go b/pkg/api/resolver_model_scene.go index 6831b9316..892fe6112 100644 --- a/pkg/api/resolver_model_scene.go +++ b/pkg/api/resolver_model_scene.go @@ -2,6 +2,7 @@ package api import ( "context" + "github.com/stashapp/stash/pkg/api/urlbuilders" "github.com/stashapp/stash/pkg/manager" "github.com/stashapp/stash/pkg/models" @@ -64,7 +65,7 @@ func (r *sceneResolver) File(ctx context.Context, obj *models.Scene) (*models.Sc func (r *sceneResolver) Paths(ctx context.Context, obj *models.Scene) (*models.ScenePathsType, error) { baseURL, _ := ctx.Value(BaseURLCtxKey).(string) builder := urlbuilders.NewSceneURLBuilder(baseURL, obj.ID) - screenshotPath := builder.GetScreenshotURL() + screenshotPath := builder.GetScreenshotURL(obj.UpdatedAt.Timestamp) previewPath := builder.GetStreamPreviewURL() streamPath := builder.GetStreamURL() webpPath := builder.GetStreamPreviewImageURL() diff --git a/pkg/api/urlbuilders/scene.go b/pkg/api/urlbuilders/scene.go index 0c3f768b3..b211793ca 100644 --- a/pkg/api/urlbuilders/scene.go +++ b/pkg/api/urlbuilders/scene.go @@ -1,6 +1,9 @@ package urlbuilders -import "strconv" +import ( + "strconv" + "time" +) type SceneURLBuilder struct { BaseURL string @@ -30,8 +33,8 @@ func (b SceneURLBuilder) GetSpriteVTTURL() string { return b.BaseURL + "/scene/" + b.SceneID + "_thumbs.vtt" } -func (b SceneURLBuilder) GetScreenshotURL() string { - return b.BaseURL + "/scene/" + b.SceneID + "/screenshot" +func (b SceneURLBuilder) GetScreenshotURL(updateTime time.Time) string { + return b.BaseURL + "/scene/" + b.SceneID + "/screenshot?" + strconv.FormatInt(updateTime.Unix(), 10) } func (b SceneURLBuilder) GetChaptersVTTURL() string {