From f31739a59b6b00c5253b502142541bab30b09ae9 Mon Sep 17 00:00:00 2001 From: atridadl Date: Fri, 19 Jan 2024 14:33:37 -0700 Subject: [PATCH] Fixed S3 upload names --- lib/replicate.go | 13 +++++++++++-- main.go | 11 +++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/lib/replicate.go b/lib/replicate.go index b8670df..001c6a9 100644 --- a/lib/replicate.go +++ b/lib/replicate.go @@ -54,7 +54,7 @@ func ReplicateTextGeneration(prompt string) (string, error) { return result, nil } -func ReplicateImageGeneration(prompt string) (*bytes.Buffer, error) { +func ReplicateImageGeneration(prompt string, filename string) (*bytes.Buffer, error) { client, clientError := replicate.NewClient(replicate.WithTokenFromEnv()) if clientError != nil { return nil, clientError @@ -102,10 +102,19 @@ func ReplicateImageGeneration(prompt string) (*bytes.Buffer, error) { } // Save image to a temporary file - tmpfile, err := os.CreateTemp("", "image.*.jpg") + var tmpfile *os.File + var err error + + if filename != "" { + tmpfile, err = os.CreateTemp("", filename) + } else { + tmpfile, err = os.CreateTemp("", "image.*.jpg") + } + if err != nil { log.Fatal(err) } + defer os.Remove(tmpfile.Name()) if _, err := tmpfile.Write(imageBytes); err != nil { diff --git a/main.go b/main.go index 7afd4ba..7a3b950 100644 --- a/main.go +++ b/main.go @@ -10,6 +10,7 @@ import ( "net" "os" "os/signal" + "strconv" "time" "github.com/diamondburned/arikawa/v3/api" @@ -183,7 +184,13 @@ func (h *handler) cmdPic(ctx context.Context, data cmdroute.CommandData) *api.In return errorResponse(err) } - imageFile, err := lib.ReplicateImageGeneration(options.Prompt) + // Get current epoch timestamp + timestamp := strconv.FormatInt(time.Now().Unix(), 10) + + // Concatenate clean username and timestamp to form filename + filename := data.Event.Sender().Username + "_" + timestamp + ".jpg" + + imageFile, err := lib.ReplicateImageGeneration(options.Prompt, filename) if err != nil { lib.CancelCooldown(data.Event.User.ID.String(), "pic") @@ -191,7 +198,7 @@ func (h *handler) cmdPic(ctx context.Context, data cmdroute.CommandData) *api.In } file := sendpart.File{ - Name: "himbot_response.png", + Name: filename, Reader: imageFile, }