diff options
| author | Xe Iaso <me@xeiaso.net> | 2024-07-26 10:54:24 -0400 |
|---|---|---|
| committer | Xe Iaso <me@xeiaso.net> | 2024-07-26 10:54:24 -0400 |
| commit | 7b9862f9410b2ca7d952d6665be02330f63c7174 (patch) | |
| tree | c94bed582e9518322a4dff5563bd5823a9b48d9b /cmd/x | |
| parent | 3773fbdc51ee368589c18b4365dcc4c473e4ddd5 (diff) | |
| download | x-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.go | 1 | ||||
| -rw-r--r-- | cmd/x/mi.go | 41 |
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 +} |
