aboutsummaryrefslogtreecommitdiff
path: root/cmd/x
diff options
context:
space:
mode:
authorXe Iaso <me@xeiaso.net>2024-07-26 10:54:24 -0400
committerXe Iaso <me@xeiaso.net>2024-07-26 10:54:24 -0400
commit7b9862f9410b2ca7d952d6665be02330f63c7174 (patch)
treec94bed582e9518322a4dff5563bd5823a9b48d9b /cmd/x
parent3773fbdc51ee368589c18b4365dcc4c473e4ddd5 (diff)
downloadx-7b9862f9410b2ca7d952d6665be02330f63c7174.tar.xz
x-7b9862f9410b2ca7d952d6665be02330f63c7174.zip
cmd/mi: remove event support
Signed-off-by: Xe Iaso <me@xeiaso.net>
Diffstat (limited to 'cmd/x')
-rw-r--r--cmd/x/main.go1
-rw-r--r--cmd/x/mi.go41
2 files changed, 42 insertions, 0 deletions
diff --git a/cmd/x/main.go b/cmd/x/main.go
index 71a6670..d8658d1 100644
--- a/cmd/x/main.go
+++ b/cmd/x/main.go
@@ -21,6 +21,7 @@ func main() {
// Events
subcommands.Register(&miListEvents{}, "events")
subcommands.Register(&miAddEvent{}, "events")
+ subcommands.Register(&miRemoveEvent{}, "events")
// Sanguisuga
subcommands.Register(&sanguisugaAnimeList{}, "sanguisuga")
diff --git a/cmd/x/mi.go b/cmd/x/mi.go
index 71bd57f..681be6b 100644
--- a/cmd/x/mi.go
+++ b/cmd/x/mi.go
@@ -6,6 +6,7 @@ import (
"fmt"
"log/slog"
"net/http"
+ "strconv"
"time"
"github.com/c-bata/go-prompt"
@@ -307,3 +308,43 @@ func (ae *miAddEvent) Execute(ctx context.Context, f *flag.FlagSet, _ ...interfa
return subcommands.ExitSuccess
}
+
+type miRemoveEvent struct {
+ id int
+}
+
+func (*miRemoveEvent) Name() string { return "remove-event" }
+func (*miRemoveEvent) Synopsis() string { return "Remove an event to be attended by ID." }
+func (*miRemoveEvent) Usage() string {
+ return `remove-event [--id]:
+
+Remove an event to be attended by ID.
+`
+}
+func (re *miRemoveEvent) SetFlags(f *flag.FlagSet) {
+ f.IntVar(&re.id, "id", -1, "ID of the event to remove.")
+}
+
+func (re *miRemoveEvent) Execute(ctx context.Context, f *flag.FlagSet, _ ...interface{}) subcommands.ExitStatus {
+ if re.id == -1 {
+ idStr := prompt.Input("Event ID: ", func(d prompt.Document) []prompt.Suggest {
+ return nil
+ })
+ id, err := strconv.Atoi(idStr)
+ if err != nil {
+ fmt.Printf("error parsing ID: %v\n", err)
+ return subcommands.ExitFailure
+ }
+ re.id = id
+ }
+
+ cli := mi.NewEventsProtobufClient(*miURL, http.DefaultClient)
+
+ _, err := cli.Remove(ctx, &mi.Event{Id: int32(re.id)})
+ if err != nil {
+ fmt.Printf("error: %v\n", err)
+ return subcommands.ExitFailure
+ }
+
+ return subcommands.ExitSuccess
+}