mirror of
https://github.com/celogeek/piwigo-cli.git
synced 2025-05-25 18:22:37 +02:00
reorg project
This commit is contained in:
parent
326fe8d919
commit
8a4002c3b2
9
cmd/piwigo-cli/main.go
Normal file
9
cmd/piwigo-cli/main.go
Normal file
@ -0,0 +1,9 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/celogeek/piwigo-cli/internal/piwigocli"
|
||||
)
|
||||
|
||||
func main() {
|
||||
piwigocli.Run()
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package main
|
||||
package piwigocli
|
||||
|
||||
import (
|
||||
"os"
|
||||
@ -12,7 +12,7 @@ var options Options
|
||||
|
||||
var parser = flags.NewParser(&options, flags.Default)
|
||||
|
||||
func main() {
|
||||
func Run() {
|
||||
if _, err := parser.Parse(); err != nil {
|
||||
switch flagsErr := err.(type) {
|
||||
case flags.ErrorType:
|
12
internal/piwigocli/session.go
Normal file
12
internal/piwigocli/session.go
Normal file
@ -0,0 +1,12 @@
|
||||
package piwigocli
|
||||
|
||||
type SessionGroup struct {
|
||||
Login LoginCommand `command:"login" description:"Initialize a connection to a piwigo instance"`
|
||||
Status StatusCommand `command:"status" description:"Get the status of your session"`
|
||||
}
|
||||
|
||||
var sessionGroup SessionGroup
|
||||
|
||||
func init() {
|
||||
parser.AddCommand("session", "Session management", "", &sessionGroup)
|
||||
}
|
41
internal/piwigocli/session_login.go
Normal file
41
internal/piwigocli/session_login.go
Normal file
@ -0,0 +1,41 @@
|
||||
package piwigocli
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/url"
|
||||
|
||||
"github.com/celogeek/piwigo-cli/internal/piwigo"
|
||||
)
|
||||
|
||||
type LoginCommand struct {
|
||||
Url string `short:"u" long:"url" description:"Url of the instance"`
|
||||
Login string `short:"l" long:"login" description:"Login"`
|
||||
Password string `short:"p" long:"password" description:"Password"`
|
||||
}
|
||||
|
||||
func (c *LoginCommand) Execute(args []string) error {
|
||||
fmt.Printf("Login on %s...\n", c.Url)
|
||||
|
||||
Piwigo := piwigo.Piwigo{
|
||||
Url: c.Url,
|
||||
}
|
||||
|
||||
result := false
|
||||
|
||||
err := Piwigo.Post("pwg.session.login", &url.Values{
|
||||
"username": []string{c.Login},
|
||||
"password": []string{c.Password},
|
||||
}, &result)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = Piwigo.SaveConfig()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
fmt.Println("Login succeed!")
|
||||
|
||||
return nil
|
||||
}
|
36
internal/piwigocli/session_status.go
Normal file
36
internal/piwigocli/session_status.go
Normal file
@ -0,0 +1,36 @@
|
||||
package piwigocli
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/url"
|
||||
|
||||
"github.com/celogeek/piwigo-cli/internal/piwigo"
|
||||
)
|
||||
|
||||
type StatusCommand struct {
|
||||
}
|
||||
|
||||
type StatusResponse struct {
|
||||
User string `json:"username"`
|
||||
Role string `json:"status"`
|
||||
Version string `json:"version"`
|
||||
}
|
||||
|
||||
func (c *StatusCommand) Execute(args []string) error {
|
||||
fmt.Println("Status:")
|
||||
|
||||
Piwigo := piwigo.Piwigo{}
|
||||
if err := Piwigo.LoadConfig(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
resp := &StatusResponse{}
|
||||
|
||||
if err := Piwigo.Post("pwg.session.getStatus", &url.Values{}, &resp); err != nil {
|
||||
return err
|
||||
}
|
||||
fmt.Printf(" Version: %s\n", resp.Version)
|
||||
fmt.Printf(" User : %s\n", resp.User)
|
||||
fmt.Printf(" Role : %s\n", resp.Role)
|
||||
return nil
|
||||
}
|
80
session.go
80
session.go
@ -1,80 +0,0 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/url"
|
||||
|
||||
"github.com/celogeek/piwigo-cli/internal/piwigo"
|
||||
)
|
||||
|
||||
type LoginCommand struct {
|
||||
Url string `short:"u" long:"url" description:"Url of the instance"`
|
||||
Login string `short:"l" long:"login" description:"Login"`
|
||||
Password string `short:"p" long:"password" description:"Password"`
|
||||
}
|
||||
|
||||
type StatusCommand struct {
|
||||
}
|
||||
|
||||
type SessionGroup struct {
|
||||
Login LoginCommand `command:"login" description:"Initialize a connection to a piwigo instance"`
|
||||
Status StatusCommand `command:"status" description:"Get the status of your session"`
|
||||
}
|
||||
|
||||
var sessionGroup SessionGroup
|
||||
|
||||
func (c *LoginCommand) Execute(args []string) error {
|
||||
fmt.Printf("Login on %s...\n", c.Url)
|
||||
|
||||
Piwigo := piwigo.Piwigo{
|
||||
Url: c.Url,
|
||||
}
|
||||
|
||||
result := false
|
||||
|
||||
err := Piwigo.Post("pwg.session.login", &url.Values{
|
||||
"username": []string{c.Login},
|
||||
"password": []string{c.Password},
|
||||
}, &result)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = Piwigo.SaveConfig()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
fmt.Println("Login succeed!")
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
type StatusResponse struct {
|
||||
User string `json:"username"`
|
||||
Role string `json:"status"`
|
||||
Version string `json:"version"`
|
||||
}
|
||||
|
||||
func (c *StatusCommand) Execute(args []string) error {
|
||||
fmt.Println("Status:")
|
||||
|
||||
Piwigo := piwigo.Piwigo{}
|
||||
if err := Piwigo.LoadConfig(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
resp := &StatusResponse{}
|
||||
|
||||
if err := Piwigo.Post("pwg.session.getStatus", &url.Values{}, &resp); err != nil {
|
||||
return err
|
||||
}
|
||||
fmt.Printf(" Version: %s\n", resp.Version)
|
||||
fmt.Printf(" User : %s\n", resp.User)
|
||||
fmt.Printf(" Role : %s\n", resp.Role)
|
||||
return nil
|
||||
}
|
||||
|
||||
func init() {
|
||||
parser.AddCommand("session", "Session management", "", &sessionGroup)
|
||||
}
|
22
tags.go
22
tags.go
@ -1,22 +0,0 @@
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
type TagsCommand struct {
|
||||
All bool `short:"a" long:"all" description:"Get all available tags"`
|
||||
}
|
||||
|
||||
var tagsCommand TagsCommand
|
||||
|
||||
func (c *TagsCommand) Execute(args []string) error {
|
||||
fmt.Printf("List tags %v\n", c.All)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func init() {
|
||||
parser.AddCommand("tags",
|
||||
"List tags",
|
||||
"List tags",
|
||||
&tagsCommand)
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user