From 9f3d9a0f0cab75f38e9b7b04bf4e8df462c25731 Mon Sep 17 00:00:00 2001 From: celogeek <65178+celogeek@users.noreply.github.com> Date: Thu, 23 Dec 2021 19:32:55 +0100 Subject: [PATCH] add category for file upload --- internal/piwigo/files.go | 8 ++++++-- internal/piwigocli/images_upload.go | 7 ++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/internal/piwigo/files.go b/internal/piwigo/files.go index eceff2c..ce9c5cf 100644 --- a/internal/piwigo/files.go +++ b/internal/piwigo/files.go @@ -5,6 +5,7 @@ import ( "fmt" "net/url" "os" + "path/filepath" "sync" "github.com/schollz/progressbar/v3" @@ -27,7 +28,7 @@ func (p *Piwigo) FileExists(md5 string) bool { return resp[md5] != nil } -func (p *Piwigo) UploadChunks(filename string, nbJobs int) (*FileUploadResult, error) { +func (p *Piwigo) UploadChunks(filename string, nbJobs int, categoryId int) (*FileUploadResult, error) { md5, err := Md5File(filename) if err != nil { return nil, err @@ -71,11 +72,14 @@ func (p *Piwigo) UploadChunks(filename string, nbJobs int) (*FileUploadResult, e var resp *FileUploadResult data := &url.Values{} data.Set("original_sum", md5) - data.Set("original_filename", filename) + data.Set("original_filename", filepath.Base(filename)) data.Set("check_uniqueness", "true") if exif != nil && exif.CreatedAt != nil { data.Set("date_creation", exif.CreatedAt.String()) } + if categoryId > 0 { + data.Set("categories", fmt.Sprint(categoryId)) + } err = p.Post("pwg.images.add", data, &resp) if err != nil { return nil, err diff --git a/internal/piwigocli/images_upload.go b/internal/piwigocli/images_upload.go index a1e6367..4df9896 100644 --- a/internal/piwigocli/images_upload.go +++ b/internal/piwigocli/images_upload.go @@ -10,8 +10,9 @@ import ( ) type ImagesUploadCommand struct { - Filename string `short:"f" long:"filename" description:"File to upload"` - NBJobs int `short:"j" long:"jobs" description:"Number of jobs" default:"1"` + Filename string `short:"f" long:"filename" description:"File to upload"` + NbJobs int `short:"j" long:"jobs" description:"Number of jobs" default:"1"` + CategoryId int `short:"c" long:"category" description:"Category to upload the file"` } func (c *ImagesUploadCommand) Execute(args []string) error { @@ -30,7 +31,7 @@ func (c *ImagesUploadCommand) Execute(args []string) error { return errors.New("unsupported file extension") } - resp, err := p.UploadChunks(c.Filename, c.NBJobs) + resp, err := p.UploadChunks(c.Filename, c.NbJobs, c.CategoryId) if err != nil { return err }