diff options
| author | Paul Buetow <paul@buetow.org> | 2024-10-09 23:28:21 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2024-10-09 23:28:21 +0300 |
| commit | 8e23c12025fac69c6c08aa37e690ee24978c6eed (patch) | |
| tree | a1b5aaba1c73169b1fd1c4d38a639881ded9e15a | |
| parent | a69e38e109f44b85ac068acabe639f48939f1525 (diff) | |
can abort
| -rw-r--r-- | internal/platforms/linkedin/linkedin.go | 4 | ||||
| -rw-r--r-- | internal/platforms/mastodon/mastodon.go | 4 | ||||
| -rw-r--r-- | internal/run.go | 9 |
3 files changed, 17 insertions, 0 deletions
diff --git a/internal/platforms/linkedin/linkedin.go b/internal/platforms/linkedin/linkedin.go index ad70af0..3addd46 100644 --- a/internal/platforms/linkedin/linkedin.go +++ b/internal/platforms/linkedin/linkedin.go @@ -13,6 +13,7 @@ import ( "codeberg.org/snonux/gos/internal/config" "codeberg.org/snonux/gos/internal/entry" "codeberg.org/snonux/gos/internal/platforms/linkedin/oauth2" + "codeberg.org/snonux/gos/internal/prompt" ) var errUnauthorized = errors.New("unauthorized access, refresh or create token?") @@ -61,6 +62,9 @@ func callLinkedInAPI(personID, accessToken, message string) error { if err != nil { return fmt.Errorf("Error encoding JSON:%w", err) } + if !prompt.Yes(fmt.Sprintf("%s\nDo you want to post this message to LinkedIn?", string(payload))) { + return prompt.ErrAborted + } req, err := http.NewRequest("POST", url, bytes.NewBuffer(payload)) if err != nil { diff --git a/internal/platforms/mastodon/mastodon.go b/internal/platforms/mastodon/mastodon.go index a933ea6..361d1a5 100644 --- a/internal/platforms/mastodon/mastodon.go +++ b/internal/platforms/mastodon/mastodon.go @@ -9,6 +9,7 @@ import ( "codeberg.org/snonux/gos/internal/config" "codeberg.org/snonux/gos/internal/entry" + "codeberg.org/snonux/gos/internal/prompt" ) func Post(ctx context.Context, args config.Args, ent entry.Entry) error { @@ -21,6 +22,9 @@ func Post(ctx context.Context, args config.Args, ent entry.Entry) error { if err != nil { return fmt.Errorf("failed to marshal payload: %w", err) } + if !prompt.Yes(fmt.Sprintf("%s\nDo you want to post this message to Mastodon?", string(payloadBytes))) { + return prompt.ErrAborted + } req, err := http.NewRequest("POST", args.Secrets.MastodonURL, bytes.NewBuffer(payloadBytes)) if err != nil { diff --git a/internal/run.go b/internal/run.go index b628d9c..0457f36 100644 --- a/internal/run.go +++ b/internal/run.go @@ -9,6 +9,7 @@ import ( "codeberg.org/snonux/gos/internal/config" "codeberg.org/snonux/gos/internal/platforms/linkedin" "codeberg.org/snonux/gos/internal/platforms/mastodon" + "codeberg.org/snonux/gos/internal/prompt" "codeberg.org/snonux/gos/internal/queue" "codeberg.org/snonux/gos/internal/schedule" ) @@ -39,6 +40,10 @@ func Run(ctx context.Context, args config.Args) error { continue } if err := mastodon.Post(ctx, args, ent); err != nil { + if errors.Is(err, prompt.ErrAborted) { + log.Println("Aborted posting to", platform) + continue + } return err } if err := ent.MarkPosted(); err != nil { @@ -51,6 +56,10 @@ func Run(ctx context.Context, args config.Args) error { continue } if err := linkedin.Post(ctx, args, ent); err != nil { + if errors.Is(err, prompt.ErrAborted) { + log.Println("Aborted posting to", platform) + continue + } return err } if err := ent.MarkPosted(); err != nil { |
