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 }