From bfbc1a18ecbe9114b1ef375ce853dfa9fc342c6f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 22:55:14 +0000 Subject: [PATCH 01/33] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index db87955..d8c6752 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 117 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-d40c57a05527faf060d21c0e013729f371d88017b10680cea7c8fd6780ffaef5.yml openapi_spec_hash: 597ebc460cf86740b9f6f7c95478dece -config_hash: 30ce23c9cfbf8fb8be9e5dd28a2124fa +config_hash: e48b11ffdd2d30680081d5436848066d From 18449523545c5d25fe5654b4fa7c5c019aa19e18 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 22:55:31 +0000 Subject: [PATCH 02/33] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index d8c6752..69e18b5 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 117 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-d40c57a05527faf060d21c0e013729f371d88017b10680cea7c8fd6780ffaef5.yml openapi_spec_hash: 597ebc460cf86740b9f6f7c95478dece -config_hash: e48b11ffdd2d30680081d5436848066d +config_hash: 8cbd97884d5d3c1bbff50ac0a9a19595 From 0835904aa8b2db88fa24a234afe7190f8c2f6a72 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 22:55:49 +0000 Subject: [PATCH 03/33] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 69e18b5..d8c6752 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 117 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-d40c57a05527faf060d21c0e013729f371d88017b10680cea7c8fd6780ffaef5.yml openapi_spec_hash: 597ebc460cf86740b9f6f7c95478dece -config_hash: 8cbd97884d5d3c1bbff50ac0a9a19595 +config_hash: e48b11ffdd2d30680081d5436848066d From 4d5878cb252ad68083683a327f8d61dce978b353 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 22:56:06 +0000 Subject: [PATCH 04/33] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index d8c6752..69e18b5 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 117 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-d40c57a05527faf060d21c0e013729f371d88017b10680cea7c8fd6780ffaef5.yml openapi_spec_hash: 597ebc460cf86740b9f6f7c95478dece -config_hash: e48b11ffdd2d30680081d5436848066d +config_hash: 8cbd97884d5d3c1bbff50ac0a9a19595 From 5375791a86a02e0405defff656444f17cd1123d9 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 23:01:06 +0000 Subject: [PATCH 05/33] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 69e18b5..d8c6752 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 117 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-d40c57a05527faf060d21c0e013729f371d88017b10680cea7c8fd6780ffaef5.yml openapi_spec_hash: 597ebc460cf86740b9f6f7c95478dece -config_hash: 8cbd97884d5d3c1bbff50ac0a9a19595 +config_hash: e48b11ffdd2d30680081d5436848066d From 7197e8f7ae0b37957eec880dd03a9786eb23caa8 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 23:17:14 +0000 Subject: [PATCH 06/33] feat(api): api update --- .github/workflows/ci.yml | 2 +- .github/workflows/release-doctor.yml | 2 +- .stats.yml | 2 +- README.md | 6 +----- cmd/x-twitter-scraper/main.go | 4 ++-- go.mod | 4 +--- go.sum | 5 ----- pkg/cmd/account.go | 8 ++++---- pkg/cmd/account_test.go | 2 +- pkg/cmd/apikey.go | 8 ++++---- pkg/cmd/apikey_test.go | 2 +- pkg/cmd/cmd.go | 4 ++-- pkg/cmd/cmdutil.go | 4 ++-- pkg/cmd/compose.go | 8 ++++---- pkg/cmd/compose_test.go | 2 +- pkg/cmd/credit.go | 8 ++++---- pkg/cmd/credit_test.go | 2 +- pkg/cmd/draft.go | 8 ++++---- pkg/cmd/draft_test.go | 2 +- pkg/cmd/draw.go | 8 ++++---- pkg/cmd/draw_test.go | 2 +- pkg/cmd/event.go | 8 ++++---- pkg/cmd/event_test.go | 2 +- pkg/cmd/extraction.go | 8 ++++---- pkg/cmd/extraction_test.go | 2 +- pkg/cmd/flagoptions.go | 10 +++++----- pkg/cmd/integration.go | 8 ++++---- pkg/cmd/integration_test.go | 4 ++-- pkg/cmd/monitor.go | 8 ++++---- pkg/cmd/monitor_test.go | 2 +- pkg/cmd/radar.go | 8 ++++---- pkg/cmd/radar_test.go | 2 +- pkg/cmd/style.go | 8 ++++---- pkg/cmd/style_test.go | 4 ++-- pkg/cmd/subscribe.go | 6 +++--- pkg/cmd/subscribe_test.go | 2 +- pkg/cmd/supportticket.go | 8 ++++---- pkg/cmd/supportticket_test.go | 2 +- pkg/cmd/trend.go | 8 ++++---- pkg/cmd/trend_test.go | 2 +- pkg/cmd/version.go | 2 +- pkg/cmd/webhook.go | 8 ++++---- pkg/cmd/webhook_test.go | 2 +- pkg/cmd/x.go | 8 ++++---- pkg/cmd/x_test.go | 2 +- pkg/cmd/xaccount.go | 8 ++++---- pkg/cmd/xaccount_test.go | 2 +- pkg/cmd/xbookmark.go | 8 ++++---- pkg/cmd/xbookmark_test.go | 2 +- pkg/cmd/xcommunity.go | 8 ++++---- pkg/cmd/xcommunity_test.go | 2 +- pkg/cmd/xcommunityjoin.go | 8 ++++---- pkg/cmd/xcommunityjoin_test.go | 2 +- pkg/cmd/xcommunitytweet.go | 8 ++++---- pkg/cmd/xcommunitytweet_test.go | 2 +- pkg/cmd/xdm.go | 8 ++++---- pkg/cmd/xdm_test.go | 2 +- pkg/cmd/xfollower.go | 8 ++++---- pkg/cmd/xfollower_test.go | 2 +- pkg/cmd/xlist.go | 8 ++++---- pkg/cmd/xlist_test.go | 2 +- pkg/cmd/xmedia.go | 8 ++++---- pkg/cmd/xmedia_test.go | 2 +- pkg/cmd/xprofile.go | 8 ++++---- pkg/cmd/xprofile_test.go | 2 +- pkg/cmd/xtweet.go | 8 ++++---- pkg/cmd/xtweet_test.go | 2 +- pkg/cmd/xtweetlike.go | 8 ++++---- pkg/cmd/xtweetlike_test.go | 2 +- pkg/cmd/xtweetretweet.go | 8 ++++---- pkg/cmd/xtweetretweet_test.go | 2 +- pkg/cmd/xuser.go | 8 ++++---- pkg/cmd/xuser_test.go | 2 +- pkg/cmd/xuserfollow.go | 8 ++++---- pkg/cmd/xuserfollow_test.go | 2 +- scripts/build | 2 +- scripts/link | 4 ++-- scripts/lint | 2 +- scripts/run | 2 +- scripts/test | 2 +- scripts/unlink | 2 +- 81 files changed, 185 insertions(+), 196 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c8510da..119467f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ on: - 'stl-preview-base/**' env: - GOPRIVATE: github.com/Xquik-dev/x-twitter-scraper-go,github.com/stainless-sdks/x-twitter-scraper-go + GOPRIVATE: github.com/stainless-sdks/x-twitter-scraper-go jobs: lint: diff --git a/.github/workflows/release-doctor.yml b/.github/workflows/release-doctor.yml index efbb4d4..d713fda 100644 --- a/.github/workflows/release-doctor.yml +++ b/.github/workflows/release-doctor.yml @@ -9,7 +9,7 @@ jobs: release_doctor: name: release doctor runs-on: ubuntu-latest - if: github.repository == 'Xquik-dev/x-twitter-scraper-cli' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || startsWith(github.head_ref, 'release-please') || github.head_ref == 'next') + if: github.repository == 'stainless-sdks/x-twitter-scraper-cli' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || startsWith(github.head_ref, 'release-please') || github.head_ref == 'next') steps: - uses: actions/checkout@v6 diff --git a/.stats.yml b/.stats.yml index d8c6752..34bb698 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 117 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-d40c57a05527faf060d21c0e013729f371d88017b10680cea7c8fd6780ffaef5.yml openapi_spec_hash: 597ebc460cf86740b9f6f7c95478dece -config_hash: e48b11ffdd2d30680081d5436848066d +config_hash: 911c2f86777f1fa01b0b28ff75adf849 diff --git a/README.md b/README.md index 51e8893..0ed9b3c 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,6 @@ The official CLI for the [X Twitter Scraper REST API](https://xquik.com). It is generated with [Stainless](https://www.stainless.com/). - - ## Installation ### Installing with Go @@ -13,7 +11,7 @@ It is generated with [Stainless](https://www.stainless.com/). To test or install the CLI locally, you need [Go](https://go.dev/doc/install) version 1.22 or later installed. ```sh -go install 'github.com/Xquik-dev/x-twitter-scraper-cli/cmd/x-twitter-scraper@latest' +go install 'github.com/stainless-sdks/x-twitter-scraper-cli/cmd/x-twitter-scraper@latest' ``` Once you have run `go install`, the binary is placed in your Go bin directory: @@ -28,8 +26,6 @@ If commands aren't found after installation, add the Go bin directory to your PA export PATH="$PATH:$(go env GOPATH)/bin" ``` - - ### Running Locally After cloning the git repository for this project, you can use the diff --git a/cmd/x-twitter-scraper/main.go b/cmd/x-twitter-scraper/main.go index 783786f..795cd48 100644 --- a/cmd/x-twitter-scraper/main.go +++ b/cmd/x-twitter-scraper/main.go @@ -10,8 +10,8 @@ import ( "os" "slices" - "github.com/Xquik-dev/x-twitter-scraper-cli/pkg/cmd" - "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-cli/pkg/cmd" + "github.com/stainless-sdks/x-twitter-scraper-go" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/go.mod b/go.mod index 6fd30ad..f6fa2e6 100644 --- a/go.mod +++ b/go.mod @@ -1,9 +1,8 @@ -module github.com/Xquik-dev/x-twitter-scraper-cli +module github.com/stainless-sdks/x-twitter-scraper-cli go 1.25 require ( - github.com/Xquik-dev/x-twitter-scraper-go v0.3.0 github.com/charmbracelet/bubbles v0.21.0 github.com/charmbracelet/bubbletea v1.3.6 github.com/charmbracelet/lipgloss v1.1.0 @@ -38,7 +37,6 @@ require ( github.com/rivo/uniseg v0.4.7 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/tidwall/match v1.1.1 // indirect - github.com/tidwall/sjson v1.2.5 // indirect github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect golang.org/x/sync v0.15.0 // indirect golang.org/x/text v0.3.8 // indirect diff --git a/go.sum b/go.sum index f8d633f..4b63f4b 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,3 @@ -github.com/Xquik-dev/x-twitter-scraper-go v0.3.0 h1:Iu2ejXyVKqikAWAlCgfGNeav5Q+3/V6lscdmUKYGB/8= -github.com/Xquik-dev/x-twitter-scraper-go v0.3.0/go.mod h1:OHW3aIR8E3+ANa/mjFTZs1sG7ePzrBEmW0a8JUN+NvI= github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= github.com/aymanbagabas/go-udiff v0.2.0 h1:TK0fH4MteXUDspT88n8CKzvK0X9O2xu9yQjWpi6yML8= @@ -57,7 +55,6 @@ github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/tidwall/gjson v1.14.2/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/gjson v1.18.0 h1:FIDeeyB800efLX89e5a8Y0BNH+LOngJyGrIWxG2FKQY= github.com/tidwall/gjson v1.18.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= @@ -65,8 +62,6 @@ github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JT github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= -github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY= -github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28= github.com/urfave/cli-docs/v3 v3.0.0-alpha6 h1:w/l/N0xw1rO/aHRIGXJ0lDwwYFOzilup1qGvIytP3BI= github.com/urfave/cli-docs/v3 v3.0.0-alpha6/go.mod h1:p7Z4lg8FSTrPB9GTaNyTrK3ygffHZcK3w0cU2VE+mzU= github.com/urfave/cli/v3 v3.3.2 h1:BYFVnhhZ8RqT38DxEYVFPPmGFTEf7tJwySTXsVRrS/o= diff --git a/pkg/cmd/account.go b/pkg/cmd/account.go index 207bb00..3cf4a3c 100644 --- a/pkg/cmd/account.go +++ b/pkg/cmd/account.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/account_test.go b/pkg/cmd/account_test.go index 4933e5a..cb43f50 100644 --- a/pkg/cmd/account_test.go +++ b/pkg/cmd/account_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" ) func TestAccountRetrieve(t *testing.T) { diff --git a/pkg/cmd/apikey.go b/pkg/cmd/apikey.go index 92dae72..a2f446c 100644 --- a/pkg/cmd/apikey.go +++ b/pkg/cmd/apikey.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/apikey_test.go b/pkg/cmd/apikey_test.go index 5ed6b9a..82dd566 100644 --- a/pkg/cmd/apikey_test.go +++ b/pkg/cmd/apikey_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" ) func TestAPIKeysCreate(t *testing.T) { diff --git a/pkg/cmd/cmd.go b/pkg/cmd/cmd.go index 3c4cff4..cfe9095 100644 --- a/pkg/cmd/cmd.go +++ b/pkg/cmd/cmd.go @@ -12,8 +12,8 @@ import ( "slices" "strings" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/autocomplete" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/autocomplete" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" docs "github.com/urfave/cli-docs/v3" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/cmdutil.go b/pkg/cmd/cmdutil.go index 7366efb..652fef4 100644 --- a/pkg/cmd/cmdutil.go +++ b/pkg/cmd/cmdutil.go @@ -16,8 +16,8 @@ import ( "strings" "syscall" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/jsonview" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/jsonview" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/charmbracelet/x/term" "github.com/itchyny/json2yaml" diff --git a/pkg/cmd/compose.go b/pkg/cmd/compose.go index 9114bc1..e273df6 100644 --- a/pkg/cmd/compose.go +++ b/pkg/cmd/compose.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/compose_test.go b/pkg/cmd/compose_test.go index 92a2720..3509f7e 100644 --- a/pkg/cmd/compose_test.go +++ b/pkg/cmd/compose_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" ) func TestComposeCreate(t *testing.T) { diff --git a/pkg/cmd/credit.go b/pkg/cmd/credit.go index a77579b..3fde5c8 100644 --- a/pkg/cmd/credit.go +++ b/pkg/cmd/credit.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/credit_test.go b/pkg/cmd/credit_test.go index dfa396b..267d3bf 100644 --- a/pkg/cmd/credit_test.go +++ b/pkg/cmd/credit_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" ) func TestCreditsRetrieveBalance(t *testing.T) { diff --git a/pkg/cmd/draft.go b/pkg/cmd/draft.go index 5c994eb..0a77714 100644 --- a/pkg/cmd/draft.go +++ b/pkg/cmd/draft.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/draft_test.go b/pkg/cmd/draft_test.go index 053211f..a21cb6a 100644 --- a/pkg/cmd/draft_test.go +++ b/pkg/cmd/draft_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" ) func TestDraftsCreate(t *testing.T) { diff --git a/pkg/cmd/draw.go b/pkg/cmd/draw.go index cd67a03..8b8d21f 100644 --- a/pkg/cmd/draw.go +++ b/pkg/cmd/draw.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/draw_test.go b/pkg/cmd/draw_test.go index bdeb91e..54ea35a 100644 --- a/pkg/cmd/draw_test.go +++ b/pkg/cmd/draw_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" ) func TestDrawsRetrieve(t *testing.T) { diff --git a/pkg/cmd/event.go b/pkg/cmd/event.go index d9a4647..4dabfd3 100644 --- a/pkg/cmd/event.go +++ b/pkg/cmd/event.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/event_test.go b/pkg/cmd/event_test.go index 5bf9e8c..d0f6eda 100644 --- a/pkg/cmd/event_test.go +++ b/pkg/cmd/event_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" ) func TestEventsRetrieve(t *testing.T) { diff --git a/pkg/cmd/extraction.go b/pkg/cmd/extraction.go index 8937188..6acc039 100644 --- a/pkg/cmd/extraction.go +++ b/pkg/cmd/extraction.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/extraction_test.go b/pkg/cmd/extraction_test.go index 4b8da14..55433da 100644 --- a/pkg/cmd/extraction_test.go +++ b/pkg/cmd/extraction_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" ) func TestExtractionsRetrieve(t *testing.T) { diff --git a/pkg/cmd/flagoptions.go b/pkg/cmd/flagoptions.go index 8db0a4d..f4fce93 100644 --- a/pkg/cmd/flagoptions.go +++ b/pkg/cmd/flagoptions.go @@ -14,11 +14,11 @@ import ( "strings" "unicode/utf8" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiform" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/debugmiddleware" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiform" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/debugmiddleware" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/goccy/go-yaml" "github.com/urfave/cli/v3" diff --git a/pkg/cmd/integration.go b/pkg/cmd/integration.go index 1e6fca0..55df6a4 100644 --- a/pkg/cmd/integration.go +++ b/pkg/cmd/integration.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/integration_test.go b/pkg/cmd/integration_test.go index c66dc5f..08c40e5 100644 --- a/pkg/cmd/integration_test.go +++ b/pkg/cmd/integration_test.go @@ -5,8 +5,8 @@ package cmd import ( "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" ) func TestIntegrationsCreate(t *testing.T) { diff --git a/pkg/cmd/monitor.go b/pkg/cmd/monitor.go index f79a39e..6914ddc 100644 --- a/pkg/cmd/monitor.go +++ b/pkg/cmd/monitor.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/monitor_test.go b/pkg/cmd/monitor_test.go index 407774c..d449b46 100644 --- a/pkg/cmd/monitor_test.go +++ b/pkg/cmd/monitor_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" ) func TestMonitorsCreate(t *testing.T) { diff --git a/pkg/cmd/radar.go b/pkg/cmd/radar.go index 284f6ea..00e05c0 100644 --- a/pkg/cmd/radar.go +++ b/pkg/cmd/radar.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/radar_test.go b/pkg/cmd/radar_test.go index 1174b6a..9c464a4 100644 --- a/pkg/cmd/radar_test.go +++ b/pkg/cmd/radar_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" ) func TestRadarRetrieveTrendingTopics(t *testing.T) { diff --git a/pkg/cmd/style.go b/pkg/cmd/style.go index e0b65fe..42cbb91 100644 --- a/pkg/cmd/style.go +++ b/pkg/cmd/style.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/style_test.go b/pkg/cmd/style_test.go index 563dd75..1770e19 100644 --- a/pkg/cmd/style_test.go +++ b/pkg/cmd/style_test.go @@ -5,8 +5,8 @@ package cmd import ( "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" ) func TestStylesRetrieve(t *testing.T) { diff --git a/pkg/cmd/subscribe.go b/pkg/cmd/subscribe.go index 9c913e6..d1a4692 100644 --- a/pkg/cmd/subscribe.go +++ b/pkg/cmd/subscribe.go @@ -7,9 +7,9 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/subscribe_test.go b/pkg/cmd/subscribe_test.go index 7b289c5..2fa47ae 100644 --- a/pkg/cmd/subscribe_test.go +++ b/pkg/cmd/subscribe_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" ) func TestSubscribeCreate(t *testing.T) { diff --git a/pkg/cmd/supportticket.go b/pkg/cmd/supportticket.go index 77d3898..fdc9257 100644 --- a/pkg/cmd/supportticket.go +++ b/pkg/cmd/supportticket.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/supportticket_test.go b/pkg/cmd/supportticket_test.go index 4fbc0cc..1968c50 100644 --- a/pkg/cmd/supportticket_test.go +++ b/pkg/cmd/supportticket_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" ) func TestSupportTicketsCreate(t *testing.T) { diff --git a/pkg/cmd/trend.go b/pkg/cmd/trend.go index 5d2c3bc..8d62fa4 100644 --- a/pkg/cmd/trend.go +++ b/pkg/cmd/trend.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/trend_test.go b/pkg/cmd/trend_test.go index 35e10e6..6ca2a22 100644 --- a/pkg/cmd/trend_test.go +++ b/pkg/cmd/trend_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" ) func TestTrendsList(t *testing.T) { diff --git a/pkg/cmd/version.go b/pkg/cmd/version.go index 5266c84..efbb824 100644 --- a/pkg/cmd/version.go +++ b/pkg/cmd/version.go @@ -2,4 +2,4 @@ package cmd -const Version = "0.3.0" // x-release-please-version +const Version = "0.3.0" diff --git a/pkg/cmd/webhook.go b/pkg/cmd/webhook.go index 1b19419..39283c7 100644 --- a/pkg/cmd/webhook.go +++ b/pkg/cmd/webhook.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/webhook_test.go b/pkg/cmd/webhook_test.go index fc59953..38250f9 100644 --- a/pkg/cmd/webhook_test.go +++ b/pkg/cmd/webhook_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" ) func TestWebhooksCreate(t *testing.T) { diff --git a/pkg/cmd/x.go b/pkg/cmd/x.go index abe0f9a..ded2948 100644 --- a/pkg/cmd/x.go +++ b/pkg/cmd/x.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/x_test.go b/pkg/cmd/x_test.go index 12d6672..ce10a92 100644 --- a/pkg/cmd/x_test.go +++ b/pkg/cmd/x_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" ) func TestXGetArticle(t *testing.T) { diff --git a/pkg/cmd/xaccount.go b/pkg/cmd/xaccount.go index 0a4115d..09aa138 100644 --- a/pkg/cmd/xaccount.go +++ b/pkg/cmd/xaccount.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/xaccount_test.go b/pkg/cmd/xaccount_test.go index 5bf47fe..ff0c1d9 100644 --- a/pkg/cmd/xaccount_test.go +++ b/pkg/cmd/xaccount_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" ) func TestXAccountsCreate(t *testing.T) { diff --git a/pkg/cmd/xbookmark.go b/pkg/cmd/xbookmark.go index 9f50e8c..89c0716 100644 --- a/pkg/cmd/xbookmark.go +++ b/pkg/cmd/xbookmark.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/xbookmark_test.go b/pkg/cmd/xbookmark_test.go index 6a0ae14..20c491b 100644 --- a/pkg/cmd/xbookmark_test.go +++ b/pkg/cmd/xbookmark_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" ) func TestXBookmarksList(t *testing.T) { diff --git a/pkg/cmd/xcommunity.go b/pkg/cmd/xcommunity.go index b4e9091..8b45ff4 100644 --- a/pkg/cmd/xcommunity.go +++ b/pkg/cmd/xcommunity.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/xcommunity_test.go b/pkg/cmd/xcommunity_test.go index b21384c..2833d90 100644 --- a/pkg/cmd/xcommunity_test.go +++ b/pkg/cmd/xcommunity_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" ) func TestXCommunitiesCreate(t *testing.T) { diff --git a/pkg/cmd/xcommunityjoin.go b/pkg/cmd/xcommunityjoin.go index c38c84f..6a27d8d 100644 --- a/pkg/cmd/xcommunityjoin.go +++ b/pkg/cmd/xcommunityjoin.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/xcommunityjoin_test.go b/pkg/cmd/xcommunityjoin_test.go index 97b9d9a..ef9f397 100644 --- a/pkg/cmd/xcommunityjoin_test.go +++ b/pkg/cmd/xcommunityjoin_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" ) func TestXCommunitiesJoinCreate(t *testing.T) { diff --git a/pkg/cmd/xcommunitytweet.go b/pkg/cmd/xcommunitytweet.go index a93bcbc..3aa4bc6 100644 --- a/pkg/cmd/xcommunitytweet.go +++ b/pkg/cmd/xcommunitytweet.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/xcommunitytweet_test.go b/pkg/cmd/xcommunitytweet_test.go index 3432101..d23146a 100644 --- a/pkg/cmd/xcommunitytweet_test.go +++ b/pkg/cmd/xcommunitytweet_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" ) func TestXCommunitiesTweetsList(t *testing.T) { diff --git a/pkg/cmd/xdm.go b/pkg/cmd/xdm.go index 0ab0196..d5ff4c0 100644 --- a/pkg/cmd/xdm.go +++ b/pkg/cmd/xdm.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/xdm_test.go b/pkg/cmd/xdm_test.go index f53bd38..4c64b0e 100644 --- a/pkg/cmd/xdm_test.go +++ b/pkg/cmd/xdm_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" ) func TestXDmRetrieveHistory(t *testing.T) { diff --git a/pkg/cmd/xfollower.go b/pkg/cmd/xfollower.go index 7f4093f..16e1f2a 100644 --- a/pkg/cmd/xfollower.go +++ b/pkg/cmd/xfollower.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/xfollower_test.go b/pkg/cmd/xfollower_test.go index ed7e5f2..eea3224 100644 --- a/pkg/cmd/xfollower_test.go +++ b/pkg/cmd/xfollower_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" ) func TestXFollowersCheck(t *testing.T) { diff --git a/pkg/cmd/xlist.go b/pkg/cmd/xlist.go index 044f6db..552807e 100644 --- a/pkg/cmd/xlist.go +++ b/pkg/cmd/xlist.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/xlist_test.go b/pkg/cmd/xlist_test.go index 4f5aec5..c2f4d1a 100644 --- a/pkg/cmd/xlist_test.go +++ b/pkg/cmd/xlist_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" ) func TestXListsRetrieveFollowers(t *testing.T) { diff --git a/pkg/cmd/xmedia.go b/pkg/cmd/xmedia.go index 4d48df4..8e1f006 100644 --- a/pkg/cmd/xmedia.go +++ b/pkg/cmd/xmedia.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/xmedia_test.go b/pkg/cmd/xmedia_test.go index 675bc23..809cd89 100644 --- a/pkg/cmd/xmedia_test.go +++ b/pkg/cmd/xmedia_test.go @@ -6,7 +6,7 @@ import ( "strings" "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" ) func TestXMediaDownload(t *testing.T) { diff --git a/pkg/cmd/xprofile.go b/pkg/cmd/xprofile.go index 65acfee..fc0712a 100644 --- a/pkg/cmd/xprofile.go +++ b/pkg/cmd/xprofile.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/xprofile_test.go b/pkg/cmd/xprofile_test.go index 8a4ac1a..10b97eb 100644 --- a/pkg/cmd/xprofile_test.go +++ b/pkg/cmd/xprofile_test.go @@ -6,7 +6,7 @@ import ( "strings" "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" ) func TestXProfileUpdate(t *testing.T) { diff --git a/pkg/cmd/xtweet.go b/pkg/cmd/xtweet.go index e6a01a0..408758c 100644 --- a/pkg/cmd/xtweet.go +++ b/pkg/cmd/xtweet.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/xtweet_test.go b/pkg/cmd/xtweet_test.go index 56c57f0..c0acdb0 100644 --- a/pkg/cmd/xtweet_test.go +++ b/pkg/cmd/xtweet_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" ) func TestXTweetsCreate(t *testing.T) { diff --git a/pkg/cmd/xtweetlike.go b/pkg/cmd/xtweetlike.go index 313c0a0..3449202 100644 --- a/pkg/cmd/xtweetlike.go +++ b/pkg/cmd/xtweetlike.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/xtweetlike_test.go b/pkg/cmd/xtweetlike_test.go index 2359908..8ad004c 100644 --- a/pkg/cmd/xtweetlike_test.go +++ b/pkg/cmd/xtweetlike_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" ) func TestXTweetsLikeCreate(t *testing.T) { diff --git a/pkg/cmd/xtweetretweet.go b/pkg/cmd/xtweetretweet.go index afb2217..916fd5d 100644 --- a/pkg/cmd/xtweetretweet.go +++ b/pkg/cmd/xtweetretweet.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/xtweetretweet_test.go b/pkg/cmd/xtweetretweet_test.go index 5dc412e..f58871f 100644 --- a/pkg/cmd/xtweetretweet_test.go +++ b/pkg/cmd/xtweetretweet_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" ) func TestXTweetsRetweetCreate(t *testing.T) { diff --git a/pkg/cmd/xuser.go b/pkg/cmd/xuser.go index ccd0f92..5ff217f 100644 --- a/pkg/cmd/xuser.go +++ b/pkg/cmd/xuser.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/xuser_test.go b/pkg/cmd/xuser_test.go index 2f5ce8a..b771195 100644 --- a/pkg/cmd/xuser_test.go +++ b/pkg/cmd/xuser_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" ) func TestXUsersRetrieve(t *testing.T) { diff --git a/pkg/cmd/xuserfollow.go b/pkg/cmd/xuserfollow.go index feca28c..09c44f8 100644 --- a/pkg/cmd/xuserfollow.go +++ b/pkg/cmd/xuserfollow.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" - "github.com/Xquik-dev/x-twitter-scraper-go" - "github.com/Xquik-dev/x-twitter-scraper-go/option" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/stainless-sdks/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/xuserfollow_test.go b/pkg/cmd/xuserfollow_test.go index 9785107..babe39a 100644 --- a/pkg/cmd/xuserfollow_test.go +++ b/pkg/cmd/xuserfollow_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" ) func TestXUsersFollowCreate(t *testing.T) { diff --git a/scripts/build b/scripts/build index e6940ff..646ac8e 100755 --- a/scripts/build +++ b/scripts/build @@ -5,7 +5,7 @@ set -euo pipefail cd "$(dirname "$0")/.." # Mark the necessary Go modules as private to avoid Go's proxy -export GOPRIVATE="${GOPRIVATE:+$GOPRIVATE,}github.com/Xquik-dev/x-twitter-scraper-go,github.com/stainless-sdks/x-twitter-scraper-go" +export GOPRIVATE="${GOPRIVATE:+$GOPRIVATE,}github.com/stainless-sdks/x-twitter-scraper-go" echo "==> Building x-twitter-scraper" go build ./cmd/x-twitter-scraper diff --git a/scripts/link b/scripts/link index 3666e7a..d2fbc3b 100755 --- a/scripts/link +++ b/scripts/link @@ -5,9 +5,9 @@ set -euo pipefail cd "$(dirname "$0")/.." # Mark the necessary Go modules as private to avoid Go's proxy -export GOPRIVATE="${GOPRIVATE:+$GOPRIVATE,}github.com/Xquik-dev/x-twitter-scraper-go,github.com/stainless-sdks/x-twitter-scraper-go" +export GOPRIVATE="${GOPRIVATE:+$GOPRIVATE,}github.com/stainless-sdks/x-twitter-scraper-go" REPLACEMENT="${1:-"../x-twitter-scraper-go"}" echo "==> Replacing Go SDK with $REPLACEMENT" -go mod edit -replace github.com/Xquik-dev/x-twitter-scraper-go="$REPLACEMENT" +go mod edit -replace github.com/stainless-sdks/x-twitter-scraper-go="$REPLACEMENT" go mod tidy -e diff --git a/scripts/lint b/scripts/lint index c7b9f6c..0942726 100755 --- a/scripts/lint +++ b/scripts/lint @@ -5,7 +5,7 @@ set -euo pipefail cd "$(dirname "$0")/.." # Mark the necessary Go modules as private to avoid Go's proxy -export GOPRIVATE="${GOPRIVATE:+$GOPRIVATE,}github.com/Xquik-dev/x-twitter-scraper-go,github.com/stainless-sdks/x-twitter-scraper-go" +export GOPRIVATE="${GOPRIVATE:+$GOPRIVATE,}github.com/stainless-sdks/x-twitter-scraper-go" echo "==> Running Go build" go build ./... diff --git a/scripts/run b/scripts/run index 04913a7..57ba34b 100755 --- a/scripts/run +++ b/scripts/run @@ -5,6 +5,6 @@ set -euo pipefail cd "$(dirname "$0")/.." # Mark the necessary Go modules as private to avoid Go's proxy -export GOPRIVATE="${GOPRIVATE:+$GOPRIVATE,}github.com/Xquik-dev/x-twitter-scraper-go,github.com/stainless-sdks/x-twitter-scraper-go" +export GOPRIVATE="${GOPRIVATE:+$GOPRIVATE,}github.com/stainless-sdks/x-twitter-scraper-go" go run ./cmd/x-twitter-scraper "$@" diff --git a/scripts/test b/scripts/test index 5b12e37..9f8c52b 100755 --- a/scripts/test +++ b/scripts/test @@ -5,7 +5,7 @@ set -euo pipefail cd "$(dirname "$0")/.." # Mark the necessary Go modules as private to avoid Go's proxy -export GOPRIVATE="${GOPRIVATE:+$GOPRIVATE,}github.com/Xquik-dev/x-twitter-scraper-go,github.com/stainless-sdks/x-twitter-scraper-go" +export GOPRIVATE="${GOPRIVATE:+$GOPRIVATE,}github.com/stainless-sdks/x-twitter-scraper-go" diff --git a/scripts/unlink b/scripts/unlink index f9daf8a..c2a2dc6 100755 --- a/scripts/unlink +++ b/scripts/unlink @@ -5,4 +5,4 @@ set -e cd "$(dirname "$0")/.." echo "==> Unlinking with local directory" -go mod edit -dropreplace github.com/Xquik-dev/x-twitter-scraper-go +go mod edit -dropreplace github.com/stainless-sdks/x-twitter-scraper-go From 0793c190455930b11541bc1e6bb2385fd883c583 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 23:19:52 +0000 Subject: [PATCH 07/33] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 34bb698..98ae7d4 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 117 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-d40c57a05527faf060d21c0e013729f371d88017b10680cea7c8fd6780ffaef5.yml -openapi_spec_hash: 597ebc460cf86740b9f6f7c95478dece +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-edf9cb05ab01ab106416d0c9cf8e32d93c7edd4fe189c3b1691f1020eede9cb7.yml +openapi_spec_hash: 4a82ca40c21a87280b7308fa8b45fcb5 config_hash: 911c2f86777f1fa01b0b28ff75adf849 From b955a4a0aa301502b149a1ba78af21f152fbbd3f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 23:53:56 +0000 Subject: [PATCH 08/33] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 98ae7d4..df7e6af 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 117 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-edf9cb05ab01ab106416d0c9cf8e32d93c7edd4fe189c3b1691f1020eede9cb7.yml openapi_spec_hash: 4a82ca40c21a87280b7308fa8b45fcb5 -config_hash: 911c2f86777f1fa01b0b28ff75adf849 +config_hash: 858d125643c0fca8bbbce07d3a2ce4b5 From e9ca828fbe500fdb378f4859e70d714c95dfbc50 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 9 Apr 2026 00:05:43 +0000 Subject: [PATCH 09/33] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index df7e6af..98ae7d4 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 117 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-edf9cb05ab01ab106416d0c9cf8e32d93c7edd4fe189c3b1691f1020eede9cb7.yml openapi_spec_hash: 4a82ca40c21a87280b7308fa8b45fcb5 -config_hash: 858d125643c0fca8bbbce07d3a2ce4b5 +config_hash: 911c2f86777f1fa01b0b28ff75adf849 From 5a0010abd09ae3e5d51b8a3536a4b662b328bd8e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 9 Apr 2026 05:05:48 +0000 Subject: [PATCH 10/33] chore(cli): let `--format raw` be used in conjunction with `--transform` --- pkg/cmd/cmdutil.go | 4 ++-- pkg/cmd/cmdutil_test.go | 42 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 2 deletions(-) diff --git a/pkg/cmd/cmdutil.go b/pkg/cmd/cmdutil.go index 652fef4..680ee42 100644 --- a/pkg/cmd/cmdutil.go +++ b/pkg/cmd/cmdutil.go @@ -315,7 +315,7 @@ func shouldUseColors(w io.Writer) bool { } func formatJSON(expectedOutput *os.File, title string, res gjson.Result, format string, transform string) ([]byte, error) { - if format != "raw" && transform != "" { + if transform != "" { transformed := res.Get(transform) if transformed.Exists() { res = transformed @@ -359,7 +359,7 @@ func formatJSON(expectedOutput *os.File, title string, res gjson.Result, format // Display JSON to the user in various different formats func ShowJSON(out *os.File, title string, res gjson.Result, format string, transform string) error { - if format != "raw" && transform != "" { + if transform != "" { transformed := res.Get(transform) if transformed.Exists() { res = transformed diff --git a/pkg/cmd/cmdutil_test.go b/pkg/cmd/cmdutil_test.go index 8eca397..5178057 100644 --- a/pkg/cmd/cmdutil_test.go +++ b/pkg/cmd/cmdutil_test.go @@ -10,6 +10,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "github.com/tidwall/gjson" ) func TestStreamOutput(t *testing.T) { @@ -148,3 +149,44 @@ func TestValidateBaseURL(t *testing.T) { assert.Contains(t, err.Error(), "--base-url") }) } + +func TestFormatJSON(t *testing.T) { + t.Parallel() + + t.Run("RawWithTransform", func(t *testing.T) { + t.Parallel() + + res := gjson.Parse(`{"id":"abc123","name":"test"}`) + formatted, err := formatJSON(os.Stdout, "test", res, "raw", "id") + require.NoError(t, err) + require.Equal(t, `"abc123"`+"\n", string(formatted)) + }) + + t.Run("RawWithoutTransform", func(t *testing.T) { + t.Parallel() + + res := gjson.Parse(`{"id":"abc123","name":"test"}`) + formatted, err := formatJSON(os.Stdout, "test", res, "raw", "") + require.NoError(t, err) + require.Equal(t, `{"id":"abc123","name":"test"}`+"\n", string(formatted)) + }) + + t.Run("RawWithNestedTransform", func(t *testing.T) { + t.Parallel() + + res := gjson.Parse(`{"data":{"items":[1,2,3]}}`) + formatted, err := formatJSON(os.Stdout, "test", res, "raw", "data.items") + require.NoError(t, err) + require.Equal(t, "[1,2,3]\n", string(formatted)) + }) + + t.Run("RawWithNonexistentTransform", func(t *testing.T) { + t.Parallel() + + res := gjson.Parse(`{"id":"abc123"}`) + formatted, err := formatJSON(os.Stdout, "test", res, "raw", "missing") + require.NoError(t, err) + // Transform path doesn't exist, so original result is returned + require.Equal(t, `{"id":"abc123"}`+"\n", string(formatted)) + }) +} From 0aa1243abcf9ac89653c387984474a2391723a74 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 9 Apr 2026 09:10:12 +0000 Subject: [PATCH 11/33] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 98ae7d4..df7e6af 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 117 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-edf9cb05ab01ab106416d0c9cf8e32d93c7edd4fe189c3b1691f1020eede9cb7.yml openapi_spec_hash: 4a82ca40c21a87280b7308fa8b45fcb5 -config_hash: 911c2f86777f1fa01b0b28ff75adf849 +config_hash: 858d125643c0fca8bbbce07d3a2ce4b5 From 607c49591bc8d2f0c93a99ba360f46540373b4c4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 9 Apr 2026 20:49:51 +0000 Subject: [PATCH 12/33] feat(api): api update --- .stats.yml | 4 ++-- pkg/cmd/account_test.go | 5 ----- pkg/cmd/apikey_test.go | 4 ---- pkg/cmd/compose_test.go | 2 -- pkg/cmd/credit_test.go | 3 --- pkg/cmd/draft_test.go | 5 ----- pkg/cmd/draw_test.go | 5 ----- pkg/cmd/event_test.go | 2 -- pkg/cmd/extraction_test.go | 7 ------- pkg/cmd/integration_test.go | 10 ---------- pkg/cmd/monitor_test.go | 7 ------- pkg/cmd/radar_test.go | 1 - pkg/cmd/style_test.go | 10 ---------- pkg/cmd/subscribe_test.go | 1 - pkg/cmd/supportticket_test.go | 8 -------- pkg/cmd/trend_test.go | 1 - pkg/cmd/webhook_test.go | 8 -------- pkg/cmd/x.go | 25 ++++++++++++++++++++----- pkg/cmd/x_test.go | 6 ++---- pkg/cmd/xaccount_test.go | 8 -------- pkg/cmd/xbookmark_test.go | 2 -- pkg/cmd/xcommunity_test.go | 8 -------- pkg/cmd/xcommunityjoin_test.go | 4 ---- pkg/cmd/xcommunitytweet_test.go | 2 -- pkg/cmd/xdm_test.go | 3 --- pkg/cmd/xfollower_test.go | 1 - pkg/cmd/xlist_test.go | 3 --- pkg/cmd/xmedia_test.go | 4 ---- pkg/cmd/xprofile_test.go | 6 ------ pkg/cmd/xtweet_test.go | 12 ------------ pkg/cmd/xtweetlike_test.go | 4 ---- pkg/cmd/xtweetretweet_test.go | 4 ---- pkg/cmd/xuser_test.go | 11 ----------- pkg/cmd/xuserfollow_test.go | 4 ---- 34 files changed, 24 insertions(+), 166 deletions(-) diff --git a/.stats.yml b/.stats.yml index df7e6af..6990cbd 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 117 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-edf9cb05ab01ab106416d0c9cf8e32d93c7edd4fe189c3b1691f1020eede9cb7.yml -openapi_spec_hash: 4a82ca40c21a87280b7308fa8b45fcb5 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-2858bb9108d72cf365d38f4c26ea2a4e623e2966d289aa4780e001444947e715.yml +openapi_spec_hash: e12a914dd897caf78790dfe9de61215f config_hash: 858d125643c0fca8bbbce07d3a2ce4b5 diff --git a/pkg/cmd/account_test.go b/pkg/cmd/account_test.go index cb43f50..c578cba 100644 --- a/pkg/cmd/account_test.go +++ b/pkg/cmd/account_test.go @@ -14,7 +14,6 @@ func TestAccountRetrieve(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "account", "retrieve", ) }) @@ -26,7 +25,6 @@ func TestAccountSetXUsername(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "account", "set-x-username", "--username", "elonmusk", ) @@ -38,7 +36,6 @@ func TestAccountSetXUsername(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "account", "set-x-username", ) }) @@ -50,7 +47,6 @@ func TestAccountUpdateLocale(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "account", "update-locale", "--locale", "en", ) @@ -62,7 +58,6 @@ func TestAccountUpdateLocale(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "account", "update-locale", ) }) diff --git a/pkg/cmd/apikey_test.go b/pkg/cmd/apikey_test.go index 82dd566..f0071d1 100644 --- a/pkg/cmd/apikey_test.go +++ b/pkg/cmd/apikey_test.go @@ -14,7 +14,6 @@ func TestAPIKeysCreate(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "api-keys", "create", "--name", "My API Key", ) @@ -26,7 +25,6 @@ func TestAPIKeysCreate(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "api-keys", "create", ) }) @@ -38,7 +36,6 @@ func TestAPIKeysList(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "api-keys", "list", ) }) @@ -50,7 +47,6 @@ func TestAPIKeysRevoke(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "api-keys", "revoke", "--id", "id", ) diff --git a/pkg/cmd/compose_test.go b/pkg/cmd/compose_test.go index 3509f7e..d3d8c89 100644 --- a/pkg/cmd/compose_test.go +++ b/pkg/cmd/compose_test.go @@ -14,7 +14,6 @@ func TestComposeCreate(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "compose", "create", "--step", "compose", "--additional-context", "https://x.com/elonmusk/status/1234567890", @@ -47,7 +46,6 @@ func TestComposeCreate(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "compose", "create", ) }) diff --git a/pkg/cmd/credit_test.go b/pkg/cmd/credit_test.go index 267d3bf..7aa4f02 100644 --- a/pkg/cmd/credit_test.go +++ b/pkg/cmd/credit_test.go @@ -14,7 +14,6 @@ func TestCreditsRetrieveBalance(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "credits", "retrieve-balance", ) }) @@ -26,7 +25,6 @@ func TestCreditsTopupBalance(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "credits", "topup-balance", "--amount", "10000", ) @@ -38,7 +36,6 @@ func TestCreditsTopupBalance(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "credits", "topup-balance", ) }) diff --git a/pkg/cmd/draft_test.go b/pkg/cmd/draft_test.go index a21cb6a..451887e 100644 --- a/pkg/cmd/draft_test.go +++ b/pkg/cmd/draft_test.go @@ -14,7 +14,6 @@ func TestDraftsCreate(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "drafts", "create", "--text", "AI is the future of productivity", "--goal", "engagement", @@ -31,7 +30,6 @@ func TestDraftsCreate(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "drafts", "create", ) }) @@ -43,7 +41,6 @@ func TestDraftsRetrieve(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "drafts", "retrieve", "--id", "id", ) @@ -56,7 +53,6 @@ func TestDraftsList(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "drafts", "list", "--after-cursor", "afterCursor", "--limit", "1", @@ -70,7 +66,6 @@ func TestDraftsDelete(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "drafts", "delete", "--id", "id", ) diff --git a/pkg/cmd/draw_test.go b/pkg/cmd/draw_test.go index 54ea35a..f41eefc 100644 --- a/pkg/cmd/draw_test.go +++ b/pkg/cmd/draw_test.go @@ -14,7 +14,6 @@ func TestDrawsRetrieve(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "draws", "retrieve", "--id", "id", ) @@ -27,7 +26,6 @@ func TestDrawsList(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "draws", "list", "--after", "after", "--limit", "1", @@ -41,7 +39,6 @@ func TestDrawsExport(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "draws", "export", "--id", "id", "--format", "csv", @@ -57,7 +54,6 @@ func TestDrawsRun(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "draws", "run", "--tweet-url", "https://x.com/elonmusk/status/1234567890", "--backup-count", "2", @@ -95,7 +91,6 @@ func TestDrawsRun(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "draws", "run", ) }) diff --git a/pkg/cmd/event_test.go b/pkg/cmd/event_test.go index d0f6eda..56ce246 100644 --- a/pkg/cmd/event_test.go +++ b/pkg/cmd/event_test.go @@ -14,7 +14,6 @@ func TestEventsRetrieve(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "events", "retrieve", "--id", "id", ) @@ -27,7 +26,6 @@ func TestEventsList(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "events", "list", "--after", "after", "--event-type", "tweet.new", diff --git a/pkg/cmd/extraction_test.go b/pkg/cmd/extraction_test.go index 55433da..152a0c1 100644 --- a/pkg/cmd/extraction_test.go +++ b/pkg/cmd/extraction_test.go @@ -14,7 +14,6 @@ func TestExtractionsRetrieve(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "extractions", "retrieve", "--id", "id", "--after", "after", @@ -29,7 +28,6 @@ func TestExtractionsList(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "extractions", "list", "--after", "after", "--limit", "1", @@ -45,7 +43,6 @@ func TestExtractionsEstimateCost(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "extractions", "estimate-cost", "--tool-type", "follower_explorer", "--advanced-query", "min_faves:100", @@ -76,7 +73,6 @@ func TestExtractionsEstimateCost(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "extractions", "estimate-cost", ) }) @@ -88,7 +84,6 @@ func TestExtractionsExportResults(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "extractions", "export-results", "--id", "id", "--format", "csv", @@ -103,7 +98,6 @@ func TestExtractionsRun(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "extractions", "run", "--tool-type", "follower_explorer", "--advanced-query", "min_faves:100", @@ -134,7 +128,6 @@ func TestExtractionsRun(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "extractions", "run", ) }) diff --git a/pkg/cmd/integration_test.go b/pkg/cmd/integration_test.go index 08c40e5..8c4eff8 100644 --- a/pkg/cmd/integration_test.go +++ b/pkg/cmd/integration_test.go @@ -15,7 +15,6 @@ func TestIntegrationsCreate(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "integrations", "create", "--config", "{chatId: '-1001234567890'}", "--event-type", "tweet.new", @@ -33,7 +32,6 @@ func TestIntegrationsCreate(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "integrations", "create", "--config.chat-id", "-1001234567890", "--event-type", "tweet.new", @@ -56,7 +54,6 @@ func TestIntegrationsCreate(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "integrations", "create", ) }) @@ -68,7 +65,6 @@ func TestIntegrationsRetrieve(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "integrations", "retrieve", "--id", "id", ) @@ -81,7 +77,6 @@ func TestIntegrationsUpdate(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "integrations", "update", "--id", "id", "--event-type", "tweet.new", @@ -108,7 +103,6 @@ func TestIntegrationsUpdate(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "integrations", "update", "--id", "id", ) @@ -121,7 +115,6 @@ func TestIntegrationsList(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "integrations", "list", ) }) @@ -133,7 +126,6 @@ func TestIntegrationsDelete(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "integrations", "delete", "--id", "id", ) @@ -146,7 +138,6 @@ func TestIntegrationsListDeliveries(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "integrations", "list-deliveries", "--id", "id", "--limit", "1", @@ -160,7 +151,6 @@ func TestIntegrationsSendTest(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "integrations", "send-test", "--id", "id", ) diff --git a/pkg/cmd/monitor_test.go b/pkg/cmd/monitor_test.go index d449b46..4a365d7 100644 --- a/pkg/cmd/monitor_test.go +++ b/pkg/cmd/monitor_test.go @@ -14,7 +14,6 @@ func TestMonitorsCreate(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "monitors", "create", "--event-type", "tweet.new", "--event-type", "follower.gained", @@ -32,7 +31,6 @@ func TestMonitorsCreate(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "monitors", "create", ) }) @@ -44,7 +42,6 @@ func TestMonitorsRetrieve(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "monitors", "retrieve", "--id", "id", ) @@ -57,7 +54,6 @@ func TestMonitorsUpdate(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "monitors", "update", "--id", "id", "--event-type", "tweet.new", @@ -74,7 +70,6 @@ func TestMonitorsUpdate(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "monitors", "update", "--id", "id", ) @@ -87,7 +82,6 @@ func TestMonitorsList(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "monitors", "list", ) }) @@ -99,7 +93,6 @@ func TestMonitorsDeactivate(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "monitors", "deactivate", "--id", "id", ) diff --git a/pkg/cmd/radar_test.go b/pkg/cmd/radar_test.go index 9c464a4..851cde6 100644 --- a/pkg/cmd/radar_test.go +++ b/pkg/cmd/radar_test.go @@ -14,7 +14,6 @@ func TestRadarRetrieveTrendingTopics(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "radar", "retrieve-trending-topics", "--category", "category", "--count", "0", diff --git a/pkg/cmd/style_test.go b/pkg/cmd/style_test.go index 1770e19..d8fad46 100644 --- a/pkg/cmd/style_test.go +++ b/pkg/cmd/style_test.go @@ -15,7 +15,6 @@ func TestStylesRetrieve(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "styles", "retrieve", "--id", "id", ) @@ -28,7 +27,6 @@ func TestStylesUpdate(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "styles", "update", "--id", "id", "--label", "Professional Voice", @@ -44,7 +42,6 @@ func TestStylesUpdate(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "styles", "update", "--id", "id", "--label", "Professional Voice", @@ -61,7 +58,6 @@ func TestStylesUpdate(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "styles", "update", "--id", "id", ) @@ -74,7 +70,6 @@ func TestStylesList(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "styles", "list", ) }) @@ -86,7 +81,6 @@ func TestStylesDelete(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "styles", "delete", "--id", "id", ) @@ -99,7 +93,6 @@ func TestStylesAnalyze(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "styles", "analyze", "--username", "elonmusk", ) @@ -111,7 +104,6 @@ func TestStylesAnalyze(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "styles", "analyze", ) }) @@ -123,7 +115,6 @@ func TestStylesCompare(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "styles", "compare", "--username1", "username1", "--username2", "username2", @@ -137,7 +128,6 @@ func TestStylesGetPerformance(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "styles", "get-performance", "--id", "id", ) diff --git a/pkg/cmd/subscribe_test.go b/pkg/cmd/subscribe_test.go index 2fa47ae..b980fc5 100644 --- a/pkg/cmd/subscribe_test.go +++ b/pkg/cmd/subscribe_test.go @@ -14,7 +14,6 @@ func TestSubscribeCreate(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "subscribe", "create", ) }) diff --git a/pkg/cmd/supportticket_test.go b/pkg/cmd/supportticket_test.go index 1968c50..c3045cc 100644 --- a/pkg/cmd/supportticket_test.go +++ b/pkg/cmd/supportticket_test.go @@ -14,7 +14,6 @@ func TestSupportTicketsCreate(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "support:tickets", "create", "--body", "I am unable to connect my X account. Please help.", "--subject", "Cannot connect X account", @@ -29,7 +28,6 @@ func TestSupportTicketsCreate(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "support:tickets", "create", ) }) @@ -41,7 +39,6 @@ func TestSupportTicketsRetrieve(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "support:tickets", "retrieve", "--id", "messages_value", ) @@ -54,7 +51,6 @@ func TestSupportTicketsUpdate(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "support:tickets", "update", "--id", "id", "--status", "resolved", @@ -67,7 +63,6 @@ func TestSupportTicketsUpdate(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "support:tickets", "update", "--id", "id", ) @@ -80,7 +75,6 @@ func TestSupportTicketsList(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "support:tickets", "list", ) }) @@ -92,7 +86,6 @@ func TestSupportTicketsReply(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "support:tickets", "reply", "--id", "id", "--body", "Thank you for the update.", @@ -105,7 +98,6 @@ func TestSupportTicketsReply(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "support:tickets", "reply", "--id", "id", ) diff --git a/pkg/cmd/trend_test.go b/pkg/cmd/trend_test.go index 6ca2a22..1dfd665 100644 --- a/pkg/cmd/trend_test.go +++ b/pkg/cmd/trend_test.go @@ -14,7 +14,6 @@ func TestTrendsList(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "trends", "list", "--count", "1", "--woeid", "0", diff --git a/pkg/cmd/webhook_test.go b/pkg/cmd/webhook_test.go index 38250f9..12d36d7 100644 --- a/pkg/cmd/webhook_test.go +++ b/pkg/cmd/webhook_test.go @@ -14,7 +14,6 @@ func TestWebhooksCreate(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "webhooks", "create", "--event-type", "tweet.new", "--event-type", "follower.gained", @@ -32,7 +31,6 @@ func TestWebhooksCreate(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "webhooks", "create", ) }) @@ -44,7 +42,6 @@ func TestWebhooksUpdate(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "webhooks", "update", "--id", "id", "--event-type", "tweet.new", @@ -63,7 +60,6 @@ func TestWebhooksUpdate(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "webhooks", "update", "--id", "id", ) @@ -76,7 +72,6 @@ func TestWebhooksList(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "webhooks", "list", ) }) @@ -88,7 +83,6 @@ func TestWebhooksDeactivate(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "webhooks", "deactivate", "--id", "id", ) @@ -101,7 +95,6 @@ func TestWebhooksListDeliveries(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "webhooks", "list-deliveries", "--id", "id", ) @@ -114,7 +107,6 @@ func TestWebhooksTest(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "webhooks", "test", "--id", "id", ) diff --git a/pkg/cmd/x.go b/pkg/cmd/x.go index ded2948..56f2984 100644 --- a/pkg/cmd/x.go +++ b/pkg/cmd/x.go @@ -71,10 +71,23 @@ var xGetNotifications = cli.Command{ } var xGetTrends = cli.Command{ - Name: "get-trends", - Usage: "Get trending topics", - Suggest: true, - Flags: []cli.Flag{}, + Name: "get-trends", + Usage: "Get trending topics", + Suggest: true, + Flags: []cli.Flag{ + &requestflag.Flag[int64]{ + Name: "count", + Usage: "Number of trending topics to return (1-50, default 30)", + Default: 30, + QueryPath: "count", + }, + &requestflag.Flag[int64]{ + Name: "woeid", + Usage: "Region WOEID (1=Worldwide, 23424977=US, 23424975=UK, 23424969=Turkey)", + Default: 1, + QueryPath: "woeid", + }, + }, Action: handleXGetTrends, HideHelpCommand: true, } @@ -190,6 +203,8 @@ func handleXGetTrends(ctx context.Context, cmd *cli.Command) error { return fmt.Errorf("Unexpected extra arguments: %v", unusedArgs) } + params := xtwitterscraper.XGetTrendsParams{} + options, err := flagOptions( cmd, apiquery.NestedQueryFormatBrackets, @@ -203,7 +218,7 @@ func handleXGetTrends(ctx context.Context, cmd *cli.Command) error { var res []byte options = append(options, option.WithResponseBodyInto(&res)) - _, err = client.X.GetTrends(ctx, options...) + _, err = client.X.GetTrends(ctx, params, options...) if err != nil { return err } diff --git a/pkg/cmd/x_test.go b/pkg/cmd/x_test.go index ce10a92..2716f92 100644 --- a/pkg/cmd/x_test.go +++ b/pkg/cmd/x_test.go @@ -14,7 +14,6 @@ func TestXGetArticle(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x", "get-article", "--tweet-id", "tweetId", ) @@ -27,7 +26,6 @@ func TestXGetHomeTimeline(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x", "get-home-timeline", "--cursor", "cursor", "--seen-tweet-ids", "seenTweetIds", @@ -41,7 +39,6 @@ func TestXGetNotifications(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x", "get-notifications", "--cursor", "cursor", "--type", "All", @@ -55,8 +52,9 @@ func TestXGetTrends(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x", "get-trends", + "--count", "1", + "--woeid", "0", ) }) } diff --git a/pkg/cmd/xaccount_test.go b/pkg/cmd/xaccount_test.go index ff0c1d9..3cf4d43 100644 --- a/pkg/cmd/xaccount_test.go +++ b/pkg/cmd/xaccount_test.go @@ -14,7 +14,6 @@ func TestXAccountsCreate(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:accounts", "create", "--email", "user@example.com", "--password", "s3cur3Pa$$w0rd", @@ -35,7 +34,6 @@ func TestXAccountsCreate(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "x:accounts", "create", ) }) @@ -47,7 +45,6 @@ func TestXAccountsRetrieve(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:accounts", "retrieve", "--id", "id", ) @@ -60,7 +57,6 @@ func TestXAccountsList(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:accounts", "list", ) }) @@ -72,7 +68,6 @@ func TestXAccountsDelete(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:accounts", "delete", "--id", "id", ) @@ -85,7 +80,6 @@ func TestXAccountsBulkRetry(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:accounts", "bulk-retry", ) }) @@ -97,7 +91,6 @@ func TestXAccountsReauth(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:accounts", "reauth", "--id", "id", "--password", "password_value", @@ -113,7 +106,6 @@ func TestXAccountsReauth(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "x:accounts", "reauth", "--id", "id", ) diff --git a/pkg/cmd/xbookmark_test.go b/pkg/cmd/xbookmark_test.go index 20c491b..0b142f0 100644 --- a/pkg/cmd/xbookmark_test.go +++ b/pkg/cmd/xbookmark_test.go @@ -14,7 +14,6 @@ func TestXBookmarksList(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:bookmarks", "list", "--cursor", "folders_value", "--folder-id", "folderId", @@ -28,7 +27,6 @@ func TestXBookmarksRetrieveFolders(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:bookmarks", "retrieve-folders", ) }) diff --git a/pkg/cmd/xcommunity_test.go b/pkg/cmd/xcommunity_test.go index 2833d90..4b2eabb 100644 --- a/pkg/cmd/xcommunity_test.go +++ b/pkg/cmd/xcommunity_test.go @@ -14,7 +14,6 @@ func TestXCommunitiesCreate(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:communities", "create", "--account", "@elonmusk", "--name", "Example Name", @@ -31,7 +30,6 @@ func TestXCommunitiesCreate(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "x:communities", "create", ) }) @@ -43,7 +41,6 @@ func TestXCommunitiesDelete(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:communities", "delete", "--id", "id", "--account", "@elonmusk", @@ -59,7 +56,6 @@ func TestXCommunitiesDelete(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "x:communities", "delete", "--id", "id", ) @@ -72,7 +68,6 @@ func TestXCommunitiesRetrieveInfo(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:communities", "retrieve-info", "--id", "id", ) @@ -85,7 +80,6 @@ func TestXCommunitiesRetrieveMembers(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:communities", "retrieve-members", "--id", "id", "--cursor", "cursor", @@ -99,7 +93,6 @@ func TestXCommunitiesRetrieveModerators(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:communities", "retrieve-moderators", "--id", "id", "--cursor", "cursor", @@ -113,7 +106,6 @@ func TestXCommunitiesRetrieveSearch(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:communities", "retrieve-search", "--q", "q", "--cursor", "cursor", diff --git a/pkg/cmd/xcommunityjoin_test.go b/pkg/cmd/xcommunityjoin_test.go index ef9f397..3156272 100644 --- a/pkg/cmd/xcommunityjoin_test.go +++ b/pkg/cmd/xcommunityjoin_test.go @@ -14,7 +14,6 @@ func TestXCommunitiesJoinCreate(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:communities:join", "create", "--id", "id", "--account", "@elonmusk", @@ -27,7 +26,6 @@ func TestXCommunitiesJoinCreate(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "x:communities:join", "create", "--id", "id", ) @@ -40,7 +38,6 @@ func TestXCommunitiesJoinDeleteAll(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:communities:join", "delete-all", "--id", "id", "--account", "@elonmusk", @@ -53,7 +50,6 @@ func TestXCommunitiesJoinDeleteAll(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "x:communities:join", "delete-all", "--id", "id", ) diff --git a/pkg/cmd/xcommunitytweet_test.go b/pkg/cmd/xcommunitytweet_test.go index d23146a..8478e74 100644 --- a/pkg/cmd/xcommunitytweet_test.go +++ b/pkg/cmd/xcommunitytweet_test.go @@ -14,7 +14,6 @@ func TestXCommunitiesTweetsList(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:communities:tweets", "list", "--q", "q", "--cursor", "cursor", @@ -29,7 +28,6 @@ func TestXCommunitiesTweetsListByCommunity(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:communities:tweets", "list-by-community", "--id", "id", "--cursor", "cursor", diff --git a/pkg/cmd/xdm_test.go b/pkg/cmd/xdm_test.go index 4c64b0e..a8ee16c 100644 --- a/pkg/cmd/xdm_test.go +++ b/pkg/cmd/xdm_test.go @@ -14,7 +14,6 @@ func TestXDmRetrieveHistory(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:dm", "retrieve-history", "--user-id", "userId", "--cursor", "cursor", @@ -29,7 +28,6 @@ func TestXDmSend(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:dm", "send", "--user-id", "userId", "--account", "@elonmusk", @@ -50,7 +48,6 @@ func TestXDmSend(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "x:dm", "send", "--user-id", "userId", ) diff --git a/pkg/cmd/xfollower_test.go b/pkg/cmd/xfollower_test.go index eea3224..cd004e1 100644 --- a/pkg/cmd/xfollower_test.go +++ b/pkg/cmd/xfollower_test.go @@ -14,7 +14,6 @@ func TestXFollowersCheck(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:followers", "check", "--source", "source", "--target", "target", diff --git a/pkg/cmd/xlist_test.go b/pkg/cmd/xlist_test.go index c2f4d1a..0f0c863 100644 --- a/pkg/cmd/xlist_test.go +++ b/pkg/cmd/xlist_test.go @@ -14,7 +14,6 @@ func TestXListsRetrieveFollowers(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:lists", "retrieve-followers", "--id", "id", "--cursor", "cursor", @@ -28,7 +27,6 @@ func TestXListsRetrieveMembers(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:lists", "retrieve-members", "--id", "id", "--cursor", "cursor", @@ -42,7 +40,6 @@ func TestXListsRetrieveTweets(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:lists", "retrieve-tweets", "--id", "id", "--cursor", "cursor", diff --git a/pkg/cmd/xmedia_test.go b/pkg/cmd/xmedia_test.go index 809cd89..d81ea1a 100644 --- a/pkg/cmd/xmedia_test.go +++ b/pkg/cmd/xmedia_test.go @@ -15,7 +15,6 @@ func TestXMediaDownload(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:media", "download", "--tweet-id", "1234567890", "--tweet-id", "1234567891", @@ -33,7 +32,6 @@ func TestXMediaDownload(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "x:media", "download", ) }) @@ -45,7 +43,6 @@ func TestXMediaUpload(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:media", "upload", "--account", "@elonmusk", "--file", mocktest.TestFile(t, "Example data"), @@ -65,7 +62,6 @@ func TestXMediaUpload(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "x:media", "upload", ) }) diff --git a/pkg/cmd/xprofile_test.go b/pkg/cmd/xprofile_test.go index 10b97eb..2d4b78f 100644 --- a/pkg/cmd/xprofile_test.go +++ b/pkg/cmd/xprofile_test.go @@ -15,7 +15,6 @@ func TestXProfileUpdate(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:profile", "update", "--account", "@elonmusk", "--description", "description_value", @@ -36,7 +35,6 @@ func TestXProfileUpdate(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "x:profile", "update", ) }) @@ -48,7 +46,6 @@ func TestXProfileUpdateAvatar(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:profile", "update-avatar", "--account", "@elonmusk", "--file", mocktest.TestFile(t, "Example data"), @@ -66,7 +63,6 @@ func TestXProfileUpdateAvatar(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "x:profile", "update-avatar", ) }) @@ -78,7 +74,6 @@ func TestXProfileUpdateBanner(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:profile", "update-banner", "--account", "@elonmusk", "--file", mocktest.TestFile(t, "Example data"), @@ -96,7 +91,6 @@ func TestXProfileUpdateBanner(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "x:profile", "update-banner", ) }) diff --git a/pkg/cmd/xtweet_test.go b/pkg/cmd/xtweet_test.go index c0acdb0..5478992 100644 --- a/pkg/cmd/xtweet_test.go +++ b/pkg/cmd/xtweet_test.go @@ -14,7 +14,6 @@ func TestXTweetsCreate(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:tweets", "create", "--account", "@elonmusk", "--text", "Just launched our new feature!", @@ -40,7 +39,6 @@ func TestXTweetsCreate(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "x:tweets", "create", ) }) @@ -52,7 +50,6 @@ func TestXTweetsRetrieve(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:tweets", "retrieve", "--id", "id", ) @@ -65,7 +62,6 @@ func TestXTweetsList(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:tweets", "list", "--ids", "ids", ) @@ -78,7 +74,6 @@ func TestXTweetsDelete(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:tweets", "delete", "--id", "id", "--account", "@elonmusk", @@ -91,7 +86,6 @@ func TestXTweetsDelete(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "x:tweets", "delete", "--id", "id", ) @@ -104,7 +98,6 @@ func TestXTweetsGetFavoriters(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:tweets", "get-favoriters", "--id", "id", "--cursor", "cursor", @@ -118,7 +111,6 @@ func TestXTweetsGetQuotes(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:tweets", "get-quotes", "--id", "id", "--cursor", "cursor", @@ -135,7 +127,6 @@ func TestXTweetsGetReplies(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:tweets", "get-replies", "--id", "id", "--cursor", "cursor", @@ -151,7 +142,6 @@ func TestXTweetsGetRetweeters(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:tweets", "get-retweeters", "--id", "id", "--cursor", "cursor", @@ -165,7 +155,6 @@ func TestXTweetsGetThread(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:tweets", "get-thread", "--id", "id", "--cursor", "cursor", @@ -179,7 +168,6 @@ func TestXTweetsSearch(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:tweets", "search", "--q", "q", "--cursor", "cursor", diff --git a/pkg/cmd/xtweetlike_test.go b/pkg/cmd/xtweetlike_test.go index 8ad004c..1d45e2e 100644 --- a/pkg/cmd/xtweetlike_test.go +++ b/pkg/cmd/xtweetlike_test.go @@ -14,7 +14,6 @@ func TestXTweetsLikeCreate(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:tweets:like", "create", "--id", "id", "--account", "@elonmusk", @@ -27,7 +26,6 @@ func TestXTweetsLikeCreate(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "x:tweets:like", "create", "--id", "id", ) @@ -40,7 +38,6 @@ func TestXTweetsLikeDelete(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:tweets:like", "delete", "--id", "id", "--account", "@elonmusk", @@ -53,7 +50,6 @@ func TestXTweetsLikeDelete(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "x:tweets:like", "delete", "--id", "id", ) diff --git a/pkg/cmd/xtweetretweet_test.go b/pkg/cmd/xtweetretweet_test.go index f58871f..f0706d1 100644 --- a/pkg/cmd/xtweetretweet_test.go +++ b/pkg/cmd/xtweetretweet_test.go @@ -14,7 +14,6 @@ func TestXTweetsRetweetCreate(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:tweets:retweet", "create", "--id", "id", "--account", "@elonmusk", @@ -27,7 +26,6 @@ func TestXTweetsRetweetCreate(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "x:tweets:retweet", "create", "--id", "id", ) @@ -40,7 +38,6 @@ func TestXTweetsRetweetDelete(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:tweets:retweet", "delete", "--id", "id", "--account", "@elonmusk", @@ -53,7 +50,6 @@ func TestXTweetsRetweetDelete(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "x:tweets:retweet", "delete", "--id", "id", ) diff --git a/pkg/cmd/xuser_test.go b/pkg/cmd/xuser_test.go index b771195..f95640b 100644 --- a/pkg/cmd/xuser_test.go +++ b/pkg/cmd/xuser_test.go @@ -14,7 +14,6 @@ func TestXUsersRetrieve(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:users", "retrieve", "--id", "id", ) @@ -27,7 +26,6 @@ func TestXUsersRetrieveBatch(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:users", "retrieve-batch", "--ids", "ids", ) @@ -40,7 +38,6 @@ func TestXUsersRetrieveFollowers(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:users", "retrieve-followers", "--id", "id", "--cursor", "cursor", @@ -55,7 +52,6 @@ func TestXUsersRetrieveFollowersYouKnow(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:users", "retrieve-followers-you-know", "--id", "id", "--cursor", "cursor", @@ -69,7 +65,6 @@ func TestXUsersRetrieveFollowing(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:users", "retrieve-following", "--id", "id", "--cursor", "cursor", @@ -84,7 +79,6 @@ func TestXUsersRetrieveLikes(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:users", "retrieve-likes", "--id", "id", "--cursor", "cursor", @@ -98,7 +92,6 @@ func TestXUsersRetrieveMedia(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:users", "retrieve-media", "--id", "id", "--cursor", "cursor", @@ -112,7 +105,6 @@ func TestXUsersRetrieveMentions(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:users", "retrieve-mentions", "--id", "id", "--cursor", "cursor", @@ -128,7 +120,6 @@ func TestXUsersRetrieveSearch(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:users", "retrieve-search", "--q", "q", "--cursor", "cursor", @@ -142,7 +133,6 @@ func TestXUsersRetrieveTweets(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:users", "retrieve-tweets", "--id", "id", "--cursor", "cursor", @@ -158,7 +148,6 @@ func TestXUsersRetrieveVerifiedFollowers(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:users", "retrieve-verified-followers", "--id", "id", "--cursor", "cursor", diff --git a/pkg/cmd/xuserfollow_test.go b/pkg/cmd/xuserfollow_test.go index babe39a..e6f6b89 100644 --- a/pkg/cmd/xuserfollow_test.go +++ b/pkg/cmd/xuserfollow_test.go @@ -14,7 +14,6 @@ func TestXUsersFollowCreate(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:users:follow", "create", "--id", "id", "--account", "@elonmusk", @@ -27,7 +26,6 @@ func TestXUsersFollowCreate(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "x:users:follow", "create", "--id", "id", ) @@ -40,7 +38,6 @@ func TestXUsersFollowDeleteAll(t *testing.T) { mocktest.TestRunMockTestWithFlags( t, "--api-key", "string", - "--bearer-token", "string", "x:users:follow", "delete-all", "--id", "id", "--account", "@elonmusk", @@ -53,7 +50,6 @@ func TestXUsersFollowDeleteAll(t *testing.T) { mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", - "--bearer-token", "string", "x:users:follow", "delete-all", "--id", "id", ) From 6090962cac6b0b11e612fc199ba1b8795f133084 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 10 Apr 2026 00:58:49 +0000 Subject: [PATCH 13/33] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 6990cbd..09cf175 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 117 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-2858bb9108d72cf365d38f4c26ea2a4e623e2966d289aa4780e001444947e715.yml -openapi_spec_hash: e12a914dd897caf78790dfe9de61215f +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-4db406196a46990fa10aec79fa43057730892455c8f98c1a8ba1fdf073c63a4a.yml +openapi_spec_hash: d576fec2de09fbd259489ead289f6139 config_hash: 858d125643c0fca8bbbce07d3a2ce4b5 From e9d6beaf3b434b0c063fb0a25d92da9aebc8c970 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 10 Apr 2026 01:10:58 +0000 Subject: [PATCH 14/33] feat(api): api update --- .stats.yml | 4 ++-- pkg/cmd/trend.go | 2 +- pkg/cmd/x.go | 2 +- pkg/cmd/xcommunity.go | 8 ++++---- pkg/cmd/xcommunitytweet.go | 4 ++-- pkg/cmd/xfollower.go | 2 +- pkg/cmd/xlist.go | 6 +++--- pkg/cmd/xmedia.go | 2 +- pkg/cmd/xtweet.go | 14 +++++++------- pkg/cmd/xuser.go | 20 ++++++++++---------- 10 files changed, 32 insertions(+), 32 deletions(-) diff --git a/.stats.yml b/.stats.yml index 09cf175..9619707 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 117 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-4db406196a46990fa10aec79fa43057730892455c8f98c1a8ba1fdf073c63a4a.yml -openapi_spec_hash: d576fec2de09fbd259489ead289f6139 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-6b4bcecd87f7f923858fa3afb23878738328f0d77665d69a4908be1d785a6f72.yml +openapi_spec_hash: 4390e0241c0a3beb7c758c862a0d17a6 config_hash: 858d125643c0fca8bbbce07d3a2ce4b5 diff --git a/pkg/cmd/trend.go b/pkg/cmd/trend.go index 8d62fa4..10fc227 100644 --- a/pkg/cmd/trend.go +++ b/pkg/cmd/trend.go @@ -17,7 +17,7 @@ import ( var trendsList = cli.Command{ Name: "list", - Usage: "Get regional trending topics", + Usage: "Get trending hashtags & topics by region (alias)", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[int64]{ diff --git a/pkg/cmd/x.go b/pkg/cmd/x.go index 56f2984..c610ab5 100644 --- a/pkg/cmd/x.go +++ b/pkg/cmd/x.go @@ -72,7 +72,7 @@ var xGetNotifications = cli.Command{ var xGetTrends = cli.Command{ Name: "get-trends", - Usage: "Get trending topics", + Usage: "Get trending hashtags & topics from X by region", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[int64]{ diff --git a/pkg/cmd/xcommunity.go b/pkg/cmd/xcommunity.go index 8b45ff4..2dddb93 100644 --- a/pkg/cmd/xcommunity.go +++ b/pkg/cmd/xcommunity.go @@ -70,7 +70,7 @@ var xCommunitiesDelete = cli.Command{ var xCommunitiesRetrieveInfo = cli.Command{ Name: "retrieve-info", - Usage: "Get community details", + Usage: "Get community name, description & member count", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[string]{ @@ -84,7 +84,7 @@ var xCommunitiesRetrieveInfo = cli.Command{ var xCommunitiesRetrieveMembers = cli.Command{ Name: "retrieve-members", - Usage: "Get community members", + Usage: "List members of a community", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[string]{ @@ -103,7 +103,7 @@ var xCommunitiesRetrieveMembers = cli.Command{ var xCommunitiesRetrieveModerators = cli.Command{ Name: "retrieve-moderators", - Usage: "Get community moderators", + Usage: "List moderators of a community", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[string]{ @@ -122,7 +122,7 @@ var xCommunitiesRetrieveModerators = cli.Command{ var xCommunitiesRetrieveSearch = cli.Command{ Name: "retrieve-search", - Usage: "Search tweets across communities", + Usage: "Search for communities by keyword", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[string]{ diff --git a/pkg/cmd/xcommunitytweet.go b/pkg/cmd/xcommunitytweet.go index 3aa4bc6..c2a1e7a 100644 --- a/pkg/cmd/xcommunitytweet.go +++ b/pkg/cmd/xcommunitytweet.go @@ -17,7 +17,7 @@ import ( var xCommunitiesTweetsList = cli.Command{ Name: "list", - Usage: "Search tweets across all communities", + Usage: "List tweets across all communities", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[string]{ @@ -43,7 +43,7 @@ var xCommunitiesTweetsList = cli.Command{ var xCommunitiesTweetsListByCommunity = cli.Command{ Name: "list-by-community", - Usage: "Get community tweets", + Usage: "List tweets posted in a community", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[string]{ diff --git a/pkg/cmd/xfollower.go b/pkg/cmd/xfollower.go index 16e1f2a..82871ac 100644 --- a/pkg/cmd/xfollower.go +++ b/pkg/cmd/xfollower.go @@ -17,7 +17,7 @@ import ( var xFollowersCheck = cli.Command{ Name: "check", - Usage: "Check follow relationship", + Usage: "Check if one user follows another", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[string]{ diff --git a/pkg/cmd/xlist.go b/pkg/cmd/xlist.go index 552807e..2cc4b34 100644 --- a/pkg/cmd/xlist.go +++ b/pkg/cmd/xlist.go @@ -17,7 +17,7 @@ import ( var xListsRetrieveFollowers = cli.Command{ Name: "retrieve-followers", - Usage: "Get list followers", + Usage: "List followers of an X List", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[string]{ @@ -36,7 +36,7 @@ var xListsRetrieveFollowers = cli.Command{ var xListsRetrieveMembers = cli.Command{ Name: "retrieve-members", - Usage: "Get list members", + Usage: "List members of an X List", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[string]{ @@ -55,7 +55,7 @@ var xListsRetrieveMembers = cli.Command{ var xListsRetrieveTweets = cli.Command{ Name: "retrieve-tweets", - Usage: "Get list tweets", + Usage: "List tweets from an X List", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[string]{ diff --git a/pkg/cmd/xmedia.go b/pkg/cmd/xmedia.go index 8e1f006..3fa5290 100644 --- a/pkg/cmd/xmedia.go +++ b/pkg/cmd/xmedia.go @@ -17,7 +17,7 @@ import ( var xMediaDownload = cli.Command{ Name: "download", - Usage: "Download tweet media", + Usage: "Download images & videos from tweets", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[[]string]{ diff --git a/pkg/cmd/xtweet.go b/pkg/cmd/xtweet.go index 408758c..68b8cb5 100644 --- a/pkg/cmd/xtweet.go +++ b/pkg/cmd/xtweet.go @@ -58,7 +58,7 @@ var xTweetsCreate = cli.Command{ var xTweetsRetrieve = cli.Command{ Name: "retrieve", - Usage: "Look up tweet", + Usage: "Get tweet with full text, author, metrics & media", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[string]{ @@ -108,7 +108,7 @@ var xTweetsDelete = cli.Command{ var xTweetsGetFavoriters = cli.Command{ Name: "get-favoriters", - Usage: "Get users who liked a tweet", + Usage: "List users who liked a tweet", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[string]{ @@ -127,7 +127,7 @@ var xTweetsGetFavoriters = cli.Command{ var xTweetsGetQuotes = cli.Command{ Name: "get-quotes", - Usage: "Get quote tweets of a tweet", + Usage: "List quote tweets of a tweet", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[string]{ @@ -161,7 +161,7 @@ var xTweetsGetQuotes = cli.Command{ var xTweetsGetReplies = cli.Command{ Name: "get-replies", - Usage: "Get replies to a tweet", + Usage: "List replies to a tweet", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[string]{ @@ -190,7 +190,7 @@ var xTweetsGetReplies = cli.Command{ var xTweetsGetRetweeters = cli.Command{ Name: "get-retweeters", - Usage: "Get users who retweeted a tweet", + Usage: "List users who retweeted a tweet", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[string]{ @@ -209,7 +209,7 @@ var xTweetsGetRetweeters = cli.Command{ var xTweetsGetThread = cli.Command{ Name: "get-thread", - Usage: "Get thread context for a tweet", + Usage: "Get full conversation thread for a tweet", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[string]{ @@ -228,7 +228,7 @@ var xTweetsGetThread = cli.Command{ var xTweetsSearch = cli.Command{ Name: "search", - Usage: "Search tweets", + Usage: "Search tweets with X query operators & pagination", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[string]{ diff --git a/pkg/cmd/xuser.go b/pkg/cmd/xuser.go index 5ff217f..8dcafd8 100644 --- a/pkg/cmd/xuser.go +++ b/pkg/cmd/xuser.go @@ -17,7 +17,7 @@ import ( var xUsersRetrieve = cli.Command{ Name: "retrieve", - Usage: "Look up X user", + Usage: "Get user profile with follower counts & verification", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[string]{ @@ -31,7 +31,7 @@ var xUsersRetrieve = cli.Command{ var xUsersRetrieveBatch = cli.Command{ Name: "retrieve-batch", - Usage: "Get multiple users by IDs", + Usage: "Look up multiple users by IDs in one call", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[string]{ @@ -47,7 +47,7 @@ var xUsersRetrieveBatch = cli.Command{ var xUsersRetrieveFollowers = cli.Command{ Name: "retrieve-followers", - Usage: "Get user followers", + Usage: "List followers of a user", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[string]{ @@ -71,7 +71,7 @@ var xUsersRetrieveFollowers = cli.Command{ var xUsersRetrieveFollowersYouKnow = cli.Command{ Name: "retrieve-followers-you-know", - Usage: "Get followers you know for a user", + Usage: "List mutual followers between you and a user", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[string]{ @@ -90,7 +90,7 @@ var xUsersRetrieveFollowersYouKnow = cli.Command{ var xUsersRetrieveFollowing = cli.Command{ Name: "retrieve-following", - Usage: "Get users this user follows", + Usage: "List accounts a user follows", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[string]{ @@ -114,7 +114,7 @@ var xUsersRetrieveFollowing = cli.Command{ var xUsersRetrieveLikes = cli.Command{ Name: "retrieve-likes", - Usage: "Get tweets liked by a user", + Usage: "List tweets liked by a user", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[string]{ @@ -133,7 +133,7 @@ var xUsersRetrieveLikes = cli.Command{ var xUsersRetrieveMedia = cli.Command{ Name: "retrieve-media", - Usage: "Get media tweets by a user", + Usage: "List media tweets posted by a user", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[string]{ @@ -152,7 +152,7 @@ var xUsersRetrieveMedia = cli.Command{ var xUsersRetrieveMentions = cli.Command{ Name: "retrieve-mentions", - Usage: "Get tweets mentioning a user", + Usage: "List tweets mentioning a user", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[string]{ @@ -202,7 +202,7 @@ var xUsersRetrieveSearch = cli.Command{ var xUsersRetrieveTweets = cli.Command{ Name: "retrieve-tweets", - Usage: "Get recent tweets by a user", + Usage: "List recent tweets posted by a user", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[string]{ @@ -233,7 +233,7 @@ var xUsersRetrieveTweets = cli.Command{ var xUsersRetrieveVerifiedFollowers = cli.Command{ Name: "retrieve-verified-followers", - Usage: "Get verified followers", + Usage: "List verified followers of a user", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[string]{ From 691f160fda05c37a066026f511d30f16f93cd8b8 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 10 Apr 2026 04:32:45 +0000 Subject: [PATCH 15/33] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 9619707..17261c6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 117 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-6b4bcecd87f7f923858fa3afb23878738328f0d77665d69a4908be1d785a6f72.yml -openapi_spec_hash: 4390e0241c0a3beb7c758c862a0d17a6 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-d73516284a1ce2bcd4813b30da272e8111a453219aab0b642e1b0e17e68c0fc5.yml +openapi_spec_hash: c068c7b2c358f62d9fa743dc488a6280 config_hash: 858d125643c0fca8bbbce07d3a2ce4b5 From 3d20d69c87f77ece9fb46b3f58da0948fa21f601 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 10 Apr 2026 05:21:16 +0000 Subject: [PATCH 16/33] chore(cli): additional test cases for `ShowJSONIterator` --- pkg/cmd/cmdutil_test.go | 78 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/pkg/cmd/cmdutil_test.go b/pkg/cmd/cmdutil_test.go index 5178057..e077e18 100644 --- a/pkg/cmd/cmdutil_test.go +++ b/pkg/cmd/cmdutil_test.go @@ -11,6 +11,8 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/tidwall/gjson" + + "github.com/stainless-sdks/x-twitter-scraper-cli/internal/jsonview" ) func TestStreamOutput(t *testing.T) { @@ -190,3 +192,79 @@ func TestFormatJSON(t *testing.T) { require.Equal(t, `{"id":"abc123"}`+"\n", string(formatted)) }) } + +func TestShowJSONIterator(t *testing.T) { + t.Parallel() + + t.Run("RawMultipleItems", func(t *testing.T) { + t.Parallel() + + iter := &sliceIterator[map[string]any]{items: []map[string]any{ + {"id": "abc", "name": "first"}, + {"id": "def", "name": "second"}, + }} + captured := captureShowJSONIterator(t, iter, "raw", "", -1) + assert.Equal(t, `{"id":"abc","name":"first"}`+"\n"+`{"id":"def","name":"second"}`+"\n", captured) + }) + + t.Run("RawWithTransform", func(t *testing.T) { + t.Parallel() + + iter := &sliceIterator[map[string]any]{items: []map[string]any{ + {"id": "abc", "name": "first"}, + {"id": "def", "name": "second"}, + }} + captured := captureShowJSONIterator(t, iter, "raw", "id", -1) + assert.Equal(t, `"abc"`+"\n"+`"def"`+"\n", captured) + }) + + t.Run("LimitItems", func(t *testing.T) { + t.Parallel() + + iter := &sliceIterator[map[string]any]{items: []map[string]any{ + {"id": "abc"}, + {"id": "def"}, + {"id": "ghi"}, + }} + captured := captureShowJSONIterator(t, iter, "raw", "", 2) + assert.Equal(t, `{"id":"abc"}`+"\n"+`{"id":"def"}`+"\n", captured) + }) +} + +// sliceIterator is a simple iterator over a slice for testing. +type sliceIterator[T any] struct { + index int + items []T +} + +func (it *sliceIterator[T]) Next() bool { + it.index++ + return it.index <= len(it.items) +} + +func (it *sliceIterator[T]) Current() T { + return it.items[it.index-1] +} + +func (it *sliceIterator[T]) Err() error { + return nil +} + +var _ jsonview.Iterator[any] = (*sliceIterator[any])(nil) + +// captureShowJSONIterator runs ShowJSONIterator and captures the output written to a file. +func captureShowJSONIterator[T any](t *testing.T, iter jsonview.Iterator[T], format, transform string, itemsToDisplay int64) string { + t.Helper() + + r, w, err := os.Pipe() + require.NoError(t, err) + defer r.Close() + + err = ShowJSONIterator(w, "test", iter, format, transform, itemsToDisplay) + w.Close() + require.NoError(t, err) + + var buf bytes.Buffer + _, _ = buf.ReadFrom(r) + return buf.String() +} From a086fafbb77d57fb4b2c1330e526c299b2c8e0de Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 10 Apr 2026 05:24:00 +0000 Subject: [PATCH 17/33] fix: fix for failing to drop invalid module replace in link script --- .github/workflows/ci.yml | 6 +++--- scripts/link | 8 ++++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 119467f..465a5b5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,7 +34,7 @@ jobs: - name: Link staging branch if: github.repository == 'stainless-sdks/x-twitter-scraper-cli' run: | - ./scripts/link 'github.com/stainless-sdks/x-twitter-scraper-go@${{ github.ref_name }}' || go mod edit -dropreplace='github.com/stainless-sdks/x-twitter-scraper-go' + ./scripts/link 'github.com/stainless-sdks/x-twitter-scraper-go@${{ github.ref_name }}' || true - name: Bootstrap run: ./scripts/bootstrap @@ -60,7 +60,7 @@ jobs: - name: Link staging branch if: github.repository == 'stainless-sdks/x-twitter-scraper-cli' run: | - ./scripts/link 'github.com/stainless-sdks/x-twitter-scraper-go@${{ github.ref_name }}' || go mod edit -dropreplace='github.com/stainless-sdks/x-twitter-scraper-go' + ./scripts/link 'github.com/stainless-sdks/x-twitter-scraper-go@${{ github.ref_name }}' || true - name: Bootstrap run: ./scripts/bootstrap @@ -107,7 +107,7 @@ jobs: - name: Link staging branch if: github.repository == 'stainless-sdks/x-twitter-scraper-cli' run: | - ./scripts/link 'github.com/stainless-sdks/x-twitter-scraper-go@${{ github.ref_name }}' || go mod edit -dropreplace='github.com/stainless-sdks/x-twitter-scraper-go' + ./scripts/link 'github.com/stainless-sdks/x-twitter-scraper-go@${{ github.ref_name }}' || true - name: Bootstrap run: ./scripts/bootstrap diff --git a/scripts/link b/scripts/link index d2fbc3b..1977bb2 100755 --- a/scripts/link +++ b/scripts/link @@ -9,5 +9,9 @@ export GOPRIVATE="${GOPRIVATE:+$GOPRIVATE,}github.com/stainless-sdks/x-twitter-s REPLACEMENT="${1:-"../x-twitter-scraper-go"}" echo "==> Replacing Go SDK with $REPLACEMENT" -go mod edit -replace github.com/stainless-sdks/x-twitter-scraper-go="$REPLACEMENT" -go mod tidy -e +if [[ -d "$REPLACEMENT" ]] || go list -m "$REPLACEMENT" >/dev/null; then + go mod edit -replace github.com/stainless-sdks/x-twitter-scraper-go="$REPLACEMENT" + go mod tidy -e +else + echo "Skipping Go SDK replacement (branch may not exist on Go SDK)" +fi From 858c8fa8f075caa0c3fbba38e363d79f822d8361 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 11 Apr 2026 08:48:52 +0000 Subject: [PATCH 18/33] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 17261c6..83964e0 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 117 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-d73516284a1ce2bcd4813b30da272e8111a453219aab0b642e1b0e17e68c0fc5.yml -openapi_spec_hash: c068c7b2c358f62d9fa743dc488a6280 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-1bba21960ade6b851f66bc41d97933b5a6a2732e2036c87c66ee261eb5bf0b92.yml +openapi_spec_hash: a5892dad626d5629b96f56f6a58a7bc9 config_hash: 858d125643c0fca8bbbce07d3a2ce4b5 From 8ebcb7caec09b50f3db093918b380350eb0eb400 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 12 Apr 2026 20:28:38 +0000 Subject: [PATCH 19/33] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 83964e0..8931974 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 117 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-1bba21960ade6b851f66bc41d97933b5a6a2732e2036c87c66ee261eb5bf0b92.yml -openapi_spec_hash: a5892dad626d5629b96f56f6a58a7bc9 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-6836376c178aa95a978c75ea632ac721779088347b17ec0c54a5b406e199f494.yml +openapi_spec_hash: ce42f7f969994d74437c36a3d39232b3 config_hash: 858d125643c0fca8bbbce07d3a2ce4b5 From 1fe38e359d3863fc12c588dcd2db8164a67a10e1 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 14 Apr 2026 03:10:34 +0000 Subject: [PATCH 20/33] chore: add documentation for ./scripts/link --- README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/README.md b/README.md index 0ed9b3c..fe2cc99 100644 --- a/README.md +++ b/README.md @@ -111,3 +111,23 @@ base64-encoding). Note that absolute paths will begin with `@file://` or ```bash x-twitter-scraper --arg @data://file.txt ``` + +## Linking different Go SDK versions + +You can link the CLI against a different version of the X Twitter Scraper Go SDK +for development purposes using the `./scripts/link` script. + +To link to a specific version from a repository (version can be a branch, +git tag, or commit hash): + +```bash +./scripts/link github.com/org/repo@version +``` + +To link to a local copy of the SDK: + +```bash +./scripts/link ../path/to/xtwitterscraper-go +``` + +If you run the link script without any arguments, it will default to `../xtwitterscraper-go`. From f48c1f013e9c850b7780e4d1760dca7ac16f62b8 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 15 Apr 2026 03:08:32 +0000 Subject: [PATCH 21/33] chore(cli): fall back to JSON when using default "explore" with non-TTY --- cmd/x-twitter-scraper/main.go | 2 +- pkg/cmd/account.go | 9 +++-- pkg/cmd/apikey.go | 9 +++-- pkg/cmd/cmdutil.go | 29 ++++++++++++--- pkg/cmd/cmdutil_test.go | 70 ++++++++++++++++++++++++++++++++++- pkg/cmd/compose.go | 3 +- pkg/cmd/credit.go | 6 ++- pkg/cmd/draft.go | 9 +++-- pkg/cmd/draw.go | 9 +++-- pkg/cmd/event.go | 6 ++- pkg/cmd/extraction.go | 12 ++++-- pkg/cmd/integration.go | 21 +++++++---- pkg/cmd/monitor.go | 15 +++++--- pkg/cmd/radar.go | 3 +- pkg/cmd/style.go | 18 ++++++--- pkg/cmd/subscribe.go | 3 +- pkg/cmd/supportticket.go | 15 +++++--- pkg/cmd/trend.go | 3 +- pkg/cmd/webhook.go | 18 ++++++--- pkg/cmd/x.go | 12 ++++-- pkg/cmd/xaccount.go | 18 ++++++--- pkg/cmd/xbookmark.go | 6 ++- pkg/cmd/xcommunity.go | 18 ++++++--- pkg/cmd/xcommunityjoin.go | 6 ++- pkg/cmd/xcommunitytweet.go | 6 ++- pkg/cmd/xdm.go | 6 ++- pkg/cmd/xfollower.go | 3 +- pkg/cmd/xlist.go | 9 +++-- pkg/cmd/xmedia.go | 6 ++- pkg/cmd/xprofile.go | 9 +++-- pkg/cmd/xtweet.go | 30 ++++++++++----- pkg/cmd/xtweetlike.go | 6 ++- pkg/cmd/xtweetretweet.go | 6 ++- pkg/cmd/xuser.go | 33 +++++++++++------ pkg/cmd/xuserfollow.go | 6 ++- 35 files changed, 319 insertions(+), 121 deletions(-) diff --git a/cmd/x-twitter-scraper/main.go b/cmd/x-twitter-scraper/main.go index 795cd48..91ad057 100644 --- a/cmd/x-twitter-scraper/main.go +++ b/cmd/x-twitter-scraper/main.go @@ -43,7 +43,7 @@ func main() { fmt.Fprintf(os.Stderr, "%s %q: %d %s\n", apierr.Request.Method, apierr.Request.URL, apierr.Response.StatusCode, http.StatusText(apierr.Response.StatusCode)) format := app.String("format-error") json := gjson.Parse(apierr.RawJSON()) - show_err := cmd.ShowJSON(os.Stdout, "Error", json, format, app.String("transform-error")) + show_err := cmd.ShowJSON(os.Stdout, os.Stderr, "Error", json, format, app.IsSet("format-error"), app.String("transform-error")) if show_err != nil { // Just print the original error: fmt.Fprintf(os.Stderr, "%s\n", err.Error()) diff --git a/pkg/cmd/account.go b/pkg/cmd/account.go index 3cf4a3c..eb3bc74 100644 --- a/pkg/cmd/account.go +++ b/pkg/cmd/account.go @@ -84,8 +84,9 @@ func handleAccountRetrieve(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "account retrieve", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "account retrieve", obj, format, explicitFormat, transform) } func handleAccountSetXUsername(ctx context.Context, cmd *cli.Command) error { @@ -118,8 +119,9 @@ func handleAccountSetXUsername(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "account set-x-username", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "account set-x-username", obj, format, explicitFormat, transform) } func handleAccountUpdateLocale(ctx context.Context, cmd *cli.Command) error { @@ -152,6 +154,7 @@ func handleAccountUpdateLocale(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "account update-locale", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "account update-locale", obj, format, explicitFormat, transform) } diff --git a/pkg/cmd/apikey.go b/pkg/cmd/apikey.go index a2f446c..cc49793 100644 --- a/pkg/cmd/apikey.go +++ b/pkg/cmd/apikey.go @@ -82,8 +82,9 @@ func handleAPIKeysCreate(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "api-keys create", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "api-keys create", obj, format, explicitFormat, transform) } func handleAPIKeysList(ctx context.Context, cmd *cli.Command) error { @@ -114,8 +115,9 @@ func handleAPIKeysList(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "api-keys list", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "api-keys list", obj, format, explicitFormat, transform) } func handleAPIKeysRevoke(ctx context.Context, cmd *cli.Command) error { @@ -149,6 +151,7 @@ func handleAPIKeysRevoke(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "api-keys revoke", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "api-keys revoke", obj, format, explicitFormat, transform) } diff --git a/pkg/cmd/cmdutil.go b/pkg/cmd/cmdutil.go index 680ee42..0938a27 100644 --- a/pkg/cmd/cmdutil.go +++ b/pkg/cmd/cmdutil.go @@ -357,8 +357,13 @@ func formatJSON(expectedOutput *os.File, title string, res gjson.Result, format } } -// Display JSON to the user in various different formats -func ShowJSON(out *os.File, title string, res gjson.Result, format string, transform string) error { +const warningExploreNotSupported = "Warning: Output format 'explore' not supported for non-terminal output; falling back to 'json'\n" + +// Display JSON to the user in various different formats. The explicitFormat parameter indicates +// whether the format was explicitly set by the user (via --format), which controls whether we +// silently fall back to json when explore is requested on non-terminal output. Warnings are +// written to stderr. +func ShowJSON(out *os.File, stderr io.Writer, title string, res gjson.Result, format string, explicitFormat bool, transform string) error { if transform != "" { transformed := res.Get(transform) if transformed.Exists() { @@ -368,8 +373,14 @@ func ShowJSON(out *os.File, title string, res gjson.Result, format string, trans switch strings.ToLower(format) { case "auto": - return ShowJSON(out, title, res, "json", "") + return ShowJSON(out, stderr, title, res, "json", explicitFormat, "") case "explore": + if !isTerminal(out) { + if explicitFormat { + fmt.Fprint(stderr, warningExploreNotSupported) + } + return ShowJSON(out, stderr, title, res, "json", explicitFormat, transform) + } return jsonview.ExploreJSON(title, res) default: bytes, err := formatJSON(out, title, res, format, transform) @@ -394,9 +405,15 @@ type hasRawJSON interface { // For an iterator over different value types, display its values to the user in // different formats. // -1 is used to signal no limit of items to display -func ShowJSONIterator[T any](stdout *os.File, title string, iter jsonview.Iterator[T], format string, transform string, itemsToDisplay int64) error { +func ShowJSONIterator[T any](stdout *os.File, stderr io.Writer, title string, iter jsonview.Iterator[T], format string, explicitFormat bool, transform string, itemsToDisplay int64) error { if format == "explore" { - return jsonview.ExploreJSONStream(title, iter) + if isTerminal(stdout) { + return jsonview.ExploreJSONStream(title, iter) + } + if explicitFormat { + fmt.Fprint(stderr, warningExploreNotSupported) + } + format = "json" } terminalWidth, terminalHeight, err := term.GetSize(os.Stdout.Fd()) @@ -469,7 +486,7 @@ func ShowJSONIterator[T any](stdout *os.File, title string, iter jsonview.Iterat } obj = gjson.ParseBytes(jsonData) } - if err := ShowJSON(pager, title, obj, format, transform); err != nil { + if err := ShowJSON(pager, stderr, title, obj, format, explicitFormat, transform); err != nil { return err } itemsToDisplay -= 1 diff --git a/pkg/cmd/cmdutil_test.go b/pkg/cmd/cmdutil_test.go index e077e18..dcd95e1 100644 --- a/pkg/cmd/cmdutil_test.go +++ b/pkg/cmd/cmdutil_test.go @@ -231,6 +231,73 @@ func TestShowJSONIterator(t *testing.T) { }) } +func TestExploreFallback(t *testing.T) { + t.Parallel() + + t.Run("ShowJSONFallsBackToJsonOnNonTTY", func(t *testing.T) { + t.Parallel() + + // os.Pipe() produces a *os.File that isn't a terminal, so explore should fall back. + r, w, err := os.Pipe() + require.NoError(t, err) + defer r.Close() + + var stderr bytes.Buffer + res := gjson.Parse(`{"id":"abc"}`) + err = ShowJSON(w, &stderr, "test", res, "explore", false, "") + w.Close() + require.NoError(t, err) + + var buf bytes.Buffer + _, _ = buf.ReadFrom(r) + assert.Contains(t, buf.String(), `"id"`) + assert.Contains(t, buf.String(), `"abc"`) + }) + + t.Run("ShowJSONIteratorFallsBackToJsonOnNonTTY", func(t *testing.T) { + t.Parallel() + + iter := &sliceIterator[map[string]any]{items: []map[string]any{ + {"id": "abc"}, + }} + captured := captureShowJSONIterator(t, iter, "explore", "", -1) + assert.Contains(t, captured, `"id"`) + assert.Contains(t, captured, `"abc"`) + }) + + t.Run("ShowJSONWarnsWhenExplicitFormatOnNonTTY", func(t *testing.T) { + t.Parallel() + + r, w, err := os.Pipe() + require.NoError(t, err) + defer r.Close() + + var stderr bytes.Buffer + res := gjson.Parse(`{"id":"abc"}`) + err = ShowJSON(w, &stderr, "test", res, "explore", true, "") + w.Close() + require.NoError(t, err) + + assert.Equal(t, warningExploreNotSupported, stderr.String()) + }) + + t.Run("ShowJSONSilentWhenDefaultFormatOnNonTTY", func(t *testing.T) { + t.Parallel() + + r, w, err := os.Pipe() + require.NoError(t, err) + defer r.Close() + + var stderr bytes.Buffer + res := gjson.Parse(`{"id":"abc"}`) + err = ShowJSON(w, &stderr, "test", res, "explore", false, "") + w.Close() + require.NoError(t, err) + + assert.Empty(t, stderr.String(), "no warning expected when format was not explicit") + }) +} + // sliceIterator is a simple iterator over a slice for testing. type sliceIterator[T any] struct { index int @@ -260,7 +327,8 @@ func captureShowJSONIterator[T any](t *testing.T, iter jsonview.Iterator[T], for require.NoError(t, err) defer r.Close() - err = ShowJSONIterator(w, "test", iter, format, transform, itemsToDisplay) + var stderr bytes.Buffer + err = ShowJSONIterator(w, &stderr, "test", iter, format, false, transform, itemsToDisplay) w.Close() require.NoError(t, err) diff --git a/pkg/cmd/compose.go b/pkg/cmd/compose.go index e273df6..915f846 100644 --- a/pkg/cmd/compose.go +++ b/pkg/cmd/compose.go @@ -111,6 +111,7 @@ func handleComposeCreate(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "compose create", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "compose create", obj, format, explicitFormat, transform) } diff --git a/pkg/cmd/credit.go b/pkg/cmd/credit.go index 3fde5c8..e3b247c 100644 --- a/pkg/cmd/credit.go +++ b/pkg/cmd/credit.go @@ -68,8 +68,9 @@ func handleCreditsRetrieveBalance(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "credits retrieve-balance", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "credits retrieve-balance", obj, format, explicitFormat, transform) } func handleCreditsTopupBalance(ctx context.Context, cmd *cli.Command) error { @@ -102,6 +103,7 @@ func handleCreditsTopupBalance(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "credits topup-balance", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "credits topup-balance", obj, format, explicitFormat, transform) } diff --git a/pkg/cmd/draft.go b/pkg/cmd/draft.go index 0a77714..a2115c4 100644 --- a/pkg/cmd/draft.go +++ b/pkg/cmd/draft.go @@ -118,8 +118,9 @@ func handleDraftsCreate(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "drafts create", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "drafts create", obj, format, explicitFormat, transform) } func handleDraftsRetrieve(ctx context.Context, cmd *cli.Command) error { @@ -153,8 +154,9 @@ func handleDraftsRetrieve(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "drafts retrieve", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "drafts retrieve", obj, format, explicitFormat, transform) } func handleDraftsList(ctx context.Context, cmd *cli.Command) error { @@ -187,8 +189,9 @@ func handleDraftsList(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "drafts list", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "drafts list", obj, format, explicitFormat, transform) } func handleDraftsDelete(ctx context.Context, cmd *cli.Command) error { diff --git a/pkg/cmd/draw.go b/pkg/cmd/draw.go index 8b8d21f..50fe5d7 100644 --- a/pkg/cmd/draw.go +++ b/pkg/cmd/draw.go @@ -172,8 +172,9 @@ func handleDrawsRetrieve(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "draws retrieve", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "draws retrieve", obj, format, explicitFormat, transform) } func handleDrawsList(ctx context.Context, cmd *cli.Command) error { @@ -206,8 +207,9 @@ func handleDrawsList(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "draws list", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "draws list", obj, format, explicitFormat, transform) } func handleDrawsExport(ctx context.Context, cmd *cli.Command) error { @@ -280,6 +282,7 @@ func handleDrawsRun(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "draws run", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "draws run", obj, format, explicitFormat, transform) } diff --git a/pkg/cmd/event.go b/pkg/cmd/event.go index 4dabfd3..54cf03a 100644 --- a/pkg/cmd/event.go +++ b/pkg/cmd/event.go @@ -91,8 +91,9 @@ func handleEventsRetrieve(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "events retrieve", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "events retrieve", obj, format, explicitFormat, transform) } func handleEventsList(ctx context.Context, cmd *cli.Command) error { @@ -125,6 +126,7 @@ func handleEventsList(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "events list", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "events list", obj, format, explicitFormat, transform) } diff --git a/pkg/cmd/extraction.go b/pkg/cmd/extraction.go index 6acc039..819338a 100644 --- a/pkg/cmd/extraction.go +++ b/pkg/cmd/extraction.go @@ -244,8 +244,9 @@ func handleExtractionsRetrieve(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "extractions retrieve", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "extractions retrieve", obj, format, explicitFormat, transform) } func handleExtractionsList(ctx context.Context, cmd *cli.Command) error { @@ -278,8 +279,9 @@ func handleExtractionsList(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "extractions list", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "extractions list", obj, format, explicitFormat, transform) } func handleExtractionsEstimateCost(ctx context.Context, cmd *cli.Command) error { @@ -312,8 +314,9 @@ func handleExtractionsEstimateCost(ctx context.Context, cmd *cli.Command) error obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "extractions estimate-cost", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "extractions estimate-cost", obj, format, explicitFormat, transform) } func handleExtractionsExportResults(ctx context.Context, cmd *cli.Command) error { @@ -386,6 +389,7 @@ func handleExtractionsRun(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "extractions run", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "extractions run", obj, format, explicitFormat, transform) } diff --git a/pkg/cmd/integration.go b/pkg/cmd/integration.go index 55df6a4..a4fb5f9 100644 --- a/pkg/cmd/integration.go +++ b/pkg/cmd/integration.go @@ -202,8 +202,9 @@ func handleIntegrationsCreate(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "integrations create", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "integrations create", obj, format, explicitFormat, transform) } func handleIntegrationsRetrieve(ctx context.Context, cmd *cli.Command) error { @@ -237,8 +238,9 @@ func handleIntegrationsRetrieve(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "integrations retrieve", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "integrations retrieve", obj, format, explicitFormat, transform) } func handleIntegrationsUpdate(ctx context.Context, cmd *cli.Command) error { @@ -279,8 +281,9 @@ func handleIntegrationsUpdate(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "integrations update", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "integrations update", obj, format, explicitFormat, transform) } func handleIntegrationsList(ctx context.Context, cmd *cli.Command) error { @@ -311,8 +314,9 @@ func handleIntegrationsList(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "integrations list", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "integrations list", obj, format, explicitFormat, transform) } func handleIntegrationsDelete(ctx context.Context, cmd *cli.Command) error { @@ -346,8 +350,9 @@ func handleIntegrationsDelete(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "integrations delete", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "integrations delete", obj, format, explicitFormat, transform) } func handleIntegrationsListDeliveries(ctx context.Context, cmd *cli.Command) error { @@ -388,8 +393,9 @@ func handleIntegrationsListDeliveries(ctx context.Context, cmd *cli.Command) err obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "integrations list-deliveries", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "integrations list-deliveries", obj, format, explicitFormat, transform) } func handleIntegrationsSendTest(ctx context.Context, cmd *cli.Command) error { @@ -423,6 +429,7 @@ func handleIntegrationsSendTest(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "integrations send-test", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "integrations send-test", obj, format, explicitFormat, transform) } diff --git a/pkg/cmd/monitor.go b/pkg/cmd/monitor.go index 6914ddc..8f41405 100644 --- a/pkg/cmd/monitor.go +++ b/pkg/cmd/monitor.go @@ -127,8 +127,9 @@ func handleMonitorsCreate(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "monitors create", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "monitors create", obj, format, explicitFormat, transform) } func handleMonitorsRetrieve(ctx context.Context, cmd *cli.Command) error { @@ -162,8 +163,9 @@ func handleMonitorsRetrieve(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "monitors retrieve", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "monitors retrieve", obj, format, explicitFormat, transform) } func handleMonitorsUpdate(ctx context.Context, cmd *cli.Command) error { @@ -204,8 +206,9 @@ func handleMonitorsUpdate(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "monitors update", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "monitors update", obj, format, explicitFormat, transform) } func handleMonitorsList(ctx context.Context, cmd *cli.Command) error { @@ -236,8 +239,9 @@ func handleMonitorsList(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "monitors list", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "monitors list", obj, format, explicitFormat, transform) } func handleMonitorsDeactivate(ctx context.Context, cmd *cli.Command) error { @@ -271,6 +275,7 @@ func handleMonitorsDeactivate(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "monitors deactivate", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "monitors deactivate", obj, format, explicitFormat, transform) } diff --git a/pkg/cmd/radar.go b/pkg/cmd/radar.go index 00e05c0..625c527 100644 --- a/pkg/cmd/radar.go +++ b/pkg/cmd/radar.go @@ -80,6 +80,7 @@ func handleRadarRetrieveTrendingTopics(ctx context.Context, cmd *cli.Command) er obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "radar retrieve-trending-topics", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "radar retrieve-trending-topics", obj, format, explicitFormat, transform) } diff --git a/pkg/cmd/style.go b/pkg/cmd/style.go index 42cbb91..a152196 100644 --- a/pkg/cmd/style.go +++ b/pkg/cmd/style.go @@ -168,8 +168,9 @@ func handleStylesRetrieve(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "styles retrieve", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "styles retrieve", obj, format, explicitFormat, transform) } func handleStylesUpdate(ctx context.Context, cmd *cli.Command) error { @@ -210,8 +211,9 @@ func handleStylesUpdate(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "styles update", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "styles update", obj, format, explicitFormat, transform) } func handleStylesList(ctx context.Context, cmd *cli.Command) error { @@ -242,8 +244,9 @@ func handleStylesList(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "styles list", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "styles list", obj, format, explicitFormat, transform) } func handleStylesDelete(ctx context.Context, cmd *cli.Command) error { @@ -301,8 +304,9 @@ func handleStylesAnalyze(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "styles analyze", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "styles analyze", obj, format, explicitFormat, transform) } func handleStylesCompare(ctx context.Context, cmd *cli.Command) error { @@ -335,8 +339,9 @@ func handleStylesCompare(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "styles compare", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "styles compare", obj, format, explicitFormat, transform) } func handleStylesGetPerformance(ctx context.Context, cmd *cli.Command) error { @@ -370,6 +375,7 @@ func handleStylesGetPerformance(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "styles get-performance", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "styles get-performance", obj, format, explicitFormat, transform) } diff --git a/pkg/cmd/subscribe.go b/pkg/cmd/subscribe.go index d1a4692..34ba351 100644 --- a/pkg/cmd/subscribe.go +++ b/pkg/cmd/subscribe.go @@ -51,6 +51,7 @@ func handleSubscribeCreate(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "subscribe create", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "subscribe create", obj, format, explicitFormat, transform) } diff --git a/pkg/cmd/supportticket.go b/pkg/cmd/supportticket.go index fdc9257..440b108 100644 --- a/pkg/cmd/supportticket.go +++ b/pkg/cmd/supportticket.go @@ -127,8 +127,9 @@ func handleSupportTicketsCreate(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "support:tickets create", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "support:tickets create", obj, format, explicitFormat, transform) } func handleSupportTicketsRetrieve(ctx context.Context, cmd *cli.Command) error { @@ -162,8 +163,9 @@ func handleSupportTicketsRetrieve(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "support:tickets retrieve", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "support:tickets retrieve", obj, format, explicitFormat, transform) } func handleSupportTicketsUpdate(ctx context.Context, cmd *cli.Command) error { @@ -204,8 +206,9 @@ func handleSupportTicketsUpdate(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "support:tickets update", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "support:tickets update", obj, format, explicitFormat, transform) } func handleSupportTicketsList(ctx context.Context, cmd *cli.Command) error { @@ -236,8 +239,9 @@ func handleSupportTicketsList(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "support:tickets list", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "support:tickets list", obj, format, explicitFormat, transform) } func handleSupportTicketsReply(ctx context.Context, cmd *cli.Command) error { @@ -278,6 +282,7 @@ func handleSupportTicketsReply(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "support:tickets reply", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "support:tickets reply", obj, format, explicitFormat, transform) } diff --git a/pkg/cmd/trend.go b/pkg/cmd/trend.go index 10fc227..d8fb67a 100644 --- a/pkg/cmd/trend.go +++ b/pkg/cmd/trend.go @@ -67,6 +67,7 @@ func handleTrendsList(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "trends list", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "trends list", obj, format, explicitFormat, transform) } diff --git a/pkg/cmd/webhook.go b/pkg/cmd/webhook.go index 39283c7..0e3df79 100644 --- a/pkg/cmd/webhook.go +++ b/pkg/cmd/webhook.go @@ -145,8 +145,9 @@ func handleWebhooksCreate(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "webhooks create", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "webhooks create", obj, format, explicitFormat, transform) } func handleWebhooksUpdate(ctx context.Context, cmd *cli.Command) error { @@ -187,8 +188,9 @@ func handleWebhooksUpdate(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "webhooks update", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "webhooks update", obj, format, explicitFormat, transform) } func handleWebhooksList(ctx context.Context, cmd *cli.Command) error { @@ -219,8 +221,9 @@ func handleWebhooksList(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "webhooks list", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "webhooks list", obj, format, explicitFormat, transform) } func handleWebhooksDeactivate(ctx context.Context, cmd *cli.Command) error { @@ -254,8 +257,9 @@ func handleWebhooksDeactivate(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "webhooks deactivate", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "webhooks deactivate", obj, format, explicitFormat, transform) } func handleWebhooksListDeliveries(ctx context.Context, cmd *cli.Command) error { @@ -289,8 +293,9 @@ func handleWebhooksListDeliveries(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "webhooks list-deliveries", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "webhooks list-deliveries", obj, format, explicitFormat, transform) } func handleWebhooksTest(ctx context.Context, cmd *cli.Command) error { @@ -324,6 +329,7 @@ func handleWebhooksTest(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "webhooks test", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "webhooks test", obj, format, explicitFormat, transform) } diff --git a/pkg/cmd/x.go b/pkg/cmd/x.go index c610ab5..546e8e1 100644 --- a/pkg/cmd/x.go +++ b/pkg/cmd/x.go @@ -123,8 +123,9 @@ func handleXGetArticle(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x get-article", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x get-article", obj, format, explicitFormat, transform) } func handleXGetHomeTimeline(ctx context.Context, cmd *cli.Command) error { @@ -157,8 +158,9 @@ func handleXGetHomeTimeline(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x get-home-timeline", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x get-home-timeline", obj, format, explicitFormat, transform) } func handleXGetNotifications(ctx context.Context, cmd *cli.Command) error { @@ -191,8 +193,9 @@ func handleXGetNotifications(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x get-notifications", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x get-notifications", obj, format, explicitFormat, transform) } func handleXGetTrends(ctx context.Context, cmd *cli.Command) error { @@ -225,6 +228,7 @@ func handleXGetTrends(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x get-trends", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x get-trends", obj, format, explicitFormat, transform) } diff --git a/pkg/cmd/xaccount.go b/pkg/cmd/xaccount.go index 09aa138..ea588f9 100644 --- a/pkg/cmd/xaccount.go +++ b/pkg/cmd/xaccount.go @@ -154,8 +154,9 @@ func handleXAccountsCreate(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:accounts create", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:accounts create", obj, format, explicitFormat, transform) } func handleXAccountsRetrieve(ctx context.Context, cmd *cli.Command) error { @@ -189,8 +190,9 @@ func handleXAccountsRetrieve(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:accounts retrieve", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:accounts retrieve", obj, format, explicitFormat, transform) } func handleXAccountsList(ctx context.Context, cmd *cli.Command) error { @@ -221,8 +223,9 @@ func handleXAccountsList(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:accounts list", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:accounts list", obj, format, explicitFormat, transform) } func handleXAccountsDelete(ctx context.Context, cmd *cli.Command) error { @@ -256,8 +259,9 @@ func handleXAccountsDelete(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:accounts delete", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:accounts delete", obj, format, explicitFormat, transform) } func handleXAccountsBulkRetry(ctx context.Context, cmd *cli.Command) error { @@ -288,8 +292,9 @@ func handleXAccountsBulkRetry(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:accounts bulk-retry", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:accounts bulk-retry", obj, format, explicitFormat, transform) } func handleXAccountsReauth(ctx context.Context, cmd *cli.Command) error { @@ -330,6 +335,7 @@ func handleXAccountsReauth(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:accounts reauth", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:accounts reauth", obj, format, explicitFormat, transform) } diff --git a/pkg/cmd/xbookmark.go b/pkg/cmd/xbookmark.go index 89c0716..cd24169 100644 --- a/pkg/cmd/xbookmark.go +++ b/pkg/cmd/xbookmark.go @@ -74,8 +74,9 @@ func handleXBookmarksList(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:bookmarks list", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:bookmarks list", obj, format, explicitFormat, transform) } func handleXBookmarksRetrieveFolders(ctx context.Context, cmd *cli.Command) error { @@ -106,6 +107,7 @@ func handleXBookmarksRetrieveFolders(ctx context.Context, cmd *cli.Command) erro obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:bookmarks retrieve-folders", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:bookmarks retrieve-folders", obj, format, explicitFormat, transform) } diff --git a/pkg/cmd/xcommunity.go b/pkg/cmd/xcommunity.go index 2dddb93..3914098 100644 --- a/pkg/cmd/xcommunity.go +++ b/pkg/cmd/xcommunity.go @@ -176,8 +176,9 @@ func handleXCommunitiesCreate(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:communities create", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:communities create", obj, format, explicitFormat, transform) } func handleXCommunitiesDelete(ctx context.Context, cmd *cli.Command) error { @@ -218,8 +219,9 @@ func handleXCommunitiesDelete(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:communities delete", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:communities delete", obj, format, explicitFormat, transform) } func handleXCommunitiesRetrieveInfo(ctx context.Context, cmd *cli.Command) error { @@ -253,8 +255,9 @@ func handleXCommunitiesRetrieveInfo(ctx context.Context, cmd *cli.Command) error obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:communities retrieve-info", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:communities retrieve-info", obj, format, explicitFormat, transform) } func handleXCommunitiesRetrieveMembers(ctx context.Context, cmd *cli.Command) error { @@ -295,8 +298,9 @@ func handleXCommunitiesRetrieveMembers(ctx context.Context, cmd *cli.Command) er obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:communities retrieve-members", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:communities retrieve-members", obj, format, explicitFormat, transform) } func handleXCommunitiesRetrieveModerators(ctx context.Context, cmd *cli.Command) error { @@ -337,8 +341,9 @@ func handleXCommunitiesRetrieveModerators(ctx context.Context, cmd *cli.Command) obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:communities retrieve-moderators", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:communities retrieve-moderators", obj, format, explicitFormat, transform) } func handleXCommunitiesRetrieveSearch(ctx context.Context, cmd *cli.Command) error { @@ -371,6 +376,7 @@ func handleXCommunitiesRetrieveSearch(ctx context.Context, cmd *cli.Command) err obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:communities retrieve-search", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:communities retrieve-search", obj, format, explicitFormat, transform) } diff --git a/pkg/cmd/xcommunityjoin.go b/pkg/cmd/xcommunityjoin.go index 6a27d8d..15238a9 100644 --- a/pkg/cmd/xcommunityjoin.go +++ b/pkg/cmd/xcommunityjoin.go @@ -93,8 +93,9 @@ func handleXCommunitiesJoinCreate(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:communities:join create", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:communities:join create", obj, format, explicitFormat, transform) } func handleXCommunitiesJoinDeleteAll(ctx context.Context, cmd *cli.Command) error { @@ -135,6 +136,7 @@ func handleXCommunitiesJoinDeleteAll(ctx context.Context, cmd *cli.Command) erro obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:communities:join delete-all", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:communities:join delete-all", obj, format, explicitFormat, transform) } diff --git a/pkg/cmd/xcommunitytweet.go b/pkg/cmd/xcommunitytweet.go index c2a1e7a..fd36ee6 100644 --- a/pkg/cmd/xcommunitytweet.go +++ b/pkg/cmd/xcommunitytweet.go @@ -90,8 +90,9 @@ func handleXCommunitiesTweetsList(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:communities:tweets list", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:communities:tweets list", obj, format, explicitFormat, transform) } func handleXCommunitiesTweetsListByCommunity(ctx context.Context, cmd *cli.Command) error { @@ -132,6 +133,7 @@ func handleXCommunitiesTweetsListByCommunity(ctx context.Context, cmd *cli.Comma obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:communities:tweets list-by-community", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:communities:tweets list-by-community", obj, format, explicitFormat, transform) } diff --git a/pkg/cmd/xdm.go b/pkg/cmd/xdm.go index d5ff4c0..1e38315 100644 --- a/pkg/cmd/xdm.go +++ b/pkg/cmd/xdm.go @@ -110,8 +110,9 @@ func handleXDmRetrieveHistory(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:dm retrieve-history", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:dm retrieve-history", obj, format, explicitFormat, transform) } func handleXDmSend(ctx context.Context, cmd *cli.Command) error { @@ -152,6 +153,7 @@ func handleXDmSend(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:dm send", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:dm send", obj, format, explicitFormat, transform) } diff --git a/pkg/cmd/xfollower.go b/pkg/cmd/xfollower.go index 82871ac..46726d0 100644 --- a/pkg/cmd/xfollower.go +++ b/pkg/cmd/xfollower.go @@ -67,6 +67,7 @@ func handleXFollowersCheck(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:followers check", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:followers check", obj, format, explicitFormat, transform) } diff --git a/pkg/cmd/xlist.go b/pkg/cmd/xlist.go index 2cc4b34..ef818cf 100644 --- a/pkg/cmd/xlist.go +++ b/pkg/cmd/xlist.go @@ -125,8 +125,9 @@ func handleXListsRetrieveFollowers(ctx context.Context, cmd *cli.Command) error obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:lists retrieve-followers", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:lists retrieve-followers", obj, format, explicitFormat, transform) } func handleXListsRetrieveMembers(ctx context.Context, cmd *cli.Command) error { @@ -167,8 +168,9 @@ func handleXListsRetrieveMembers(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:lists retrieve-members", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:lists retrieve-members", obj, format, explicitFormat, transform) } func handleXListsRetrieveTweets(ctx context.Context, cmd *cli.Command) error { @@ -209,6 +211,7 @@ func handleXListsRetrieveTweets(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:lists retrieve-tweets", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:lists retrieve-tweets", obj, format, explicitFormat, transform) } diff --git a/pkg/cmd/xmedia.go b/pkg/cmd/xmedia.go index 3fa5290..b08fc15 100644 --- a/pkg/cmd/xmedia.go +++ b/pkg/cmd/xmedia.go @@ -92,8 +92,9 @@ func handleXMediaDownload(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:media download", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:media download", obj, format, explicitFormat, transform) } func handleXMediaUpload(ctx context.Context, cmd *cli.Command) error { @@ -126,6 +127,7 @@ func handleXMediaUpload(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:media upload", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:media upload", obj, format, explicitFormat, transform) } diff --git a/pkg/cmd/xprofile.go b/pkg/cmd/xprofile.go index fc0712a..4e2695f 100644 --- a/pkg/cmd/xprofile.go +++ b/pkg/cmd/xprofile.go @@ -126,8 +126,9 @@ func handleXProfileUpdate(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:profile update", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:profile update", obj, format, explicitFormat, transform) } func handleXProfileUpdateAvatar(ctx context.Context, cmd *cli.Command) error { @@ -160,8 +161,9 @@ func handleXProfileUpdateAvatar(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:profile update-avatar", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:profile update-avatar", obj, format, explicitFormat, transform) } func handleXProfileUpdateBanner(ctx context.Context, cmd *cli.Command) error { @@ -194,6 +196,7 @@ func handleXProfileUpdateBanner(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:profile update-banner", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:profile update-banner", obj, format, explicitFormat, transform) } diff --git a/pkg/cmd/xtweet.go b/pkg/cmd/xtweet.go index 68b8cb5..619545b 100644 --- a/pkg/cmd/xtweet.go +++ b/pkg/cmd/xtweet.go @@ -299,8 +299,9 @@ func handleXTweetsCreate(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:tweets create", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:tweets create", obj, format, explicitFormat, transform) } func handleXTweetsRetrieve(ctx context.Context, cmd *cli.Command) error { @@ -334,8 +335,9 @@ func handleXTweetsRetrieve(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:tweets retrieve", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:tweets retrieve", obj, format, explicitFormat, transform) } func handleXTweetsList(ctx context.Context, cmd *cli.Command) error { @@ -368,8 +370,9 @@ func handleXTweetsList(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:tweets list", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:tweets list", obj, format, explicitFormat, transform) } func handleXTweetsDelete(ctx context.Context, cmd *cli.Command) error { @@ -410,8 +413,9 @@ func handleXTweetsDelete(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:tweets delete", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:tweets delete", obj, format, explicitFormat, transform) } func handleXTweetsGetFavoriters(ctx context.Context, cmd *cli.Command) error { @@ -452,8 +456,9 @@ func handleXTweetsGetFavoriters(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:tweets get-favoriters", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:tweets get-favoriters", obj, format, explicitFormat, transform) } func handleXTweetsGetQuotes(ctx context.Context, cmd *cli.Command) error { @@ -494,8 +499,9 @@ func handleXTweetsGetQuotes(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:tweets get-quotes", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:tweets get-quotes", obj, format, explicitFormat, transform) } func handleXTweetsGetReplies(ctx context.Context, cmd *cli.Command) error { @@ -536,8 +542,9 @@ func handleXTweetsGetReplies(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:tweets get-replies", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:tweets get-replies", obj, format, explicitFormat, transform) } func handleXTweetsGetRetweeters(ctx context.Context, cmd *cli.Command) error { @@ -578,8 +585,9 @@ func handleXTweetsGetRetweeters(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:tweets get-retweeters", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:tweets get-retweeters", obj, format, explicitFormat, transform) } func handleXTweetsGetThread(ctx context.Context, cmd *cli.Command) error { @@ -620,8 +628,9 @@ func handleXTweetsGetThread(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:tweets get-thread", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:tweets get-thread", obj, format, explicitFormat, transform) } func handleXTweetsSearch(ctx context.Context, cmd *cli.Command) error { @@ -654,6 +663,7 @@ func handleXTweetsSearch(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:tweets search", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:tweets search", obj, format, explicitFormat, transform) } diff --git a/pkg/cmd/xtweetlike.go b/pkg/cmd/xtweetlike.go index 3449202..f09c508 100644 --- a/pkg/cmd/xtweetlike.go +++ b/pkg/cmd/xtweetlike.go @@ -93,8 +93,9 @@ func handleXTweetsLikeCreate(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:tweets:like create", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:tweets:like create", obj, format, explicitFormat, transform) } func handleXTweetsLikeDelete(ctx context.Context, cmd *cli.Command) error { @@ -135,6 +136,7 @@ func handleXTweetsLikeDelete(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:tweets:like delete", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:tweets:like delete", obj, format, explicitFormat, transform) } diff --git a/pkg/cmd/xtweetretweet.go b/pkg/cmd/xtweetretweet.go index 916fd5d..edb4af2 100644 --- a/pkg/cmd/xtweetretweet.go +++ b/pkg/cmd/xtweetretweet.go @@ -93,8 +93,9 @@ func handleXTweetsRetweetCreate(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:tweets:retweet create", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:tweets:retweet create", obj, format, explicitFormat, transform) } func handleXTweetsRetweetDelete(ctx context.Context, cmd *cli.Command) error { @@ -135,6 +136,7 @@ func handleXTweetsRetweetDelete(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:tweets:retweet delete", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:tweets:retweet delete", obj, format, explicitFormat, transform) } diff --git a/pkg/cmd/xuser.go b/pkg/cmd/xuser.go index 8dcafd8..68e538d 100644 --- a/pkg/cmd/xuser.go +++ b/pkg/cmd/xuser.go @@ -281,8 +281,9 @@ func handleXUsersRetrieve(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:users retrieve", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:users retrieve", obj, format, explicitFormat, transform) } func handleXUsersRetrieveBatch(ctx context.Context, cmd *cli.Command) error { @@ -315,8 +316,9 @@ func handleXUsersRetrieveBatch(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:users retrieve-batch", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:users retrieve-batch", obj, format, explicitFormat, transform) } func handleXUsersRetrieveFollowers(ctx context.Context, cmd *cli.Command) error { @@ -357,8 +359,9 @@ func handleXUsersRetrieveFollowers(ctx context.Context, cmd *cli.Command) error obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:users retrieve-followers", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:users retrieve-followers", obj, format, explicitFormat, transform) } func handleXUsersRetrieveFollowersYouKnow(ctx context.Context, cmd *cli.Command) error { @@ -399,8 +402,9 @@ func handleXUsersRetrieveFollowersYouKnow(ctx context.Context, cmd *cli.Command) obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:users retrieve-followers-you-know", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:users retrieve-followers-you-know", obj, format, explicitFormat, transform) } func handleXUsersRetrieveFollowing(ctx context.Context, cmd *cli.Command) error { @@ -441,8 +445,9 @@ func handleXUsersRetrieveFollowing(ctx context.Context, cmd *cli.Command) error obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:users retrieve-following", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:users retrieve-following", obj, format, explicitFormat, transform) } func handleXUsersRetrieveLikes(ctx context.Context, cmd *cli.Command) error { @@ -483,8 +488,9 @@ func handleXUsersRetrieveLikes(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:users retrieve-likes", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:users retrieve-likes", obj, format, explicitFormat, transform) } func handleXUsersRetrieveMedia(ctx context.Context, cmd *cli.Command) error { @@ -525,8 +531,9 @@ func handleXUsersRetrieveMedia(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:users retrieve-media", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:users retrieve-media", obj, format, explicitFormat, transform) } func handleXUsersRetrieveMentions(ctx context.Context, cmd *cli.Command) error { @@ -567,8 +574,9 @@ func handleXUsersRetrieveMentions(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:users retrieve-mentions", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:users retrieve-mentions", obj, format, explicitFormat, transform) } func handleXUsersRetrieveSearch(ctx context.Context, cmd *cli.Command) error { @@ -601,8 +609,9 @@ func handleXUsersRetrieveSearch(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:users retrieve-search", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:users retrieve-search", obj, format, explicitFormat, transform) } func handleXUsersRetrieveTweets(ctx context.Context, cmd *cli.Command) error { @@ -643,8 +652,9 @@ func handleXUsersRetrieveTweets(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:users retrieve-tweets", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:users retrieve-tweets", obj, format, explicitFormat, transform) } func handleXUsersRetrieveVerifiedFollowers(ctx context.Context, cmd *cli.Command) error { @@ -685,6 +695,7 @@ func handleXUsersRetrieveVerifiedFollowers(ctx context.Context, cmd *cli.Command obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:users retrieve-verified-followers", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:users retrieve-verified-followers", obj, format, explicitFormat, transform) } diff --git a/pkg/cmd/xuserfollow.go b/pkg/cmd/xuserfollow.go index 09c44f8..20f77ac 100644 --- a/pkg/cmd/xuserfollow.go +++ b/pkg/cmd/xuserfollow.go @@ -93,8 +93,9 @@ func handleXUsersFollowCreate(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:users:follow create", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:users:follow create", obj, format, explicitFormat, transform) } func handleXUsersFollowDeleteAll(ctx context.Context, cmd *cli.Command) error { @@ -135,6 +136,7 @@ func handleXUsersFollowDeleteAll(ctx context.Context, cmd *cli.Command) error { obj := gjson.ParseBytes(res) format := cmd.Root().String("format") + explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, "x:users:follow delete-all", obj, format, transform) + return ShowJSON(os.Stdout, os.Stderr, "x:users:follow delete-all", obj, format, explicitFormat, transform) } From 96d1bfca315fcfa3b602b6007e6452efc7ef869b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 15 Apr 2026 03:10:04 +0000 Subject: [PATCH 22/33] feat(cli): alias parameters in data with `x-stainless-cli-data-alias` --- internal/requestflag/innerflag.go | 19 ++++++++++-- internal/requestflag/requestflag.go | 9 ++++++ pkg/cmd/flagoptions.go | 47 +++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+), 2 deletions(-) diff --git a/internal/requestflag/innerflag.go b/internal/requestflag/innerflag.go index 102624f..eeeb8bc 100644 --- a/internal/requestflag/innerflag.go +++ b/internal/requestflag/innerflag.go @@ -22,14 +22,29 @@ type InnerFlag[ Aliases []string // aliases that are allowed for this flag Validator func(T) error // custom function to validate this flag value - OuterFlag cli.Flag // The flag on which this inner flag will set values - InnerField string // The inner field which this flag will set + OuterFlag cli.Flag // The flag on which this inner flag will set values + InnerField string // The inner field which this flag will set + DataAliases []string // alternate names recognized in YAML values passed as the outer flag +} + +// GetDataAliases returns the aliases recognized when parsing inner field keys from piped or flag YAML. +func (f *InnerFlag[T]) GetDataAliases() []string { + return f.DataAliases +} + +// GetInnerField returns the API field name that this inner flag sets on its outer flag's value. +// For example, the flag --parent.foo targeting a parameter whose OpenAPI property name is "foo" +// would return "foo". This is distinct from the flag's CLI name and from any DataAliases entries. +func (f *InnerFlag[T]) GetInnerField() string { + return f.InnerField } type HasOuterFlag interface { cli.Flag SetOuterFlag(cli.Flag) GetOuterFlag() cli.Flag + GetInnerField() string + GetDataAliases() []string } func (f *InnerFlag[T]) SetOuterFlag(flag cli.Flag) { diff --git a/internal/requestflag/requestflag.go b/internal/requestflag/requestflag.go index bdef64f..bfaf064 100644 --- a/internal/requestflag/requestflag.go +++ b/internal/requestflag/requestflag.go @@ -48,6 +48,10 @@ type Flag[ // binary` in the OpenAPI spec. FileInput bool + // DataAliases is a list of alternate names for this parameter recognized when parsing piped YAML/JSON + // input. Values keyed by any alias are translated to the canonical API name before being sent. + DataAliases []string + // unexported fields for internal use count int // number of times the flag has been set hasBeenSet bool // whether the flag has been set from env or file @@ -65,6 +69,7 @@ type InRequest interface { GetBodyPath() string IsBodyRoot() bool IsFileInput() bool + GetDataAliases() []string } func (f Flag[T]) GetQueryPath() string { @@ -87,6 +92,10 @@ func (f Flag[T]) IsFileInput() bool { return f.FileInput } +func (f Flag[T]) GetDataAliases() []string { + return f.DataAliases +} + // The values that will be sent in different parts of a request. type RequestContents struct { Queries map[string]any diff --git a/pkg/cmd/flagoptions.go b/pkg/cmd/flagoptions.go index f4fce93..1ad860c 100644 --- a/pkg/cmd/flagoptions.go +++ b/pkg/cmd/flagoptions.go @@ -309,6 +309,12 @@ func flagOptions( requestContents := requestflag.ExtractRequestContents(cmd) + // Translate inner-field aliases in YAML values that came from flags (e.g. + // `--parent '{"alias": val}'` resolving to the canonical inner field). + if bodyMap, ok := requestContents.Body.(map[string]any); ok { + applyDataAliases(cmd, bodyMap) + } + stdinConsumedByPipe := false if (bodyType == MultipartFormEncoded || bodyType == ApplicationJSON) && !ignoreStdin && isInputPiped() { pipeData, err := io.ReadAll(os.Stdin) @@ -323,6 +329,7 @@ func flagOptions( return nil, fmt.Errorf("Failed to parse piped data as YAML/JSON:\n%w", err) } if bodyMap, ok := bodyData.(map[string]any); ok { + applyDataAliases(cmd, bodyMap) if flagMap, ok := requestContents.Body.(map[string]any); ok { maps.Copy(bodyMap, flagMap) requestContents.Body = bodyMap @@ -485,6 +492,46 @@ func flagOptions( // as a file path without needing the "@" prefix. type FilePathValue string +// applyDataAliases rewrites keys in a body map based on flag `DataAliases` metadata. For top-level flags, +// `{alias: value}` becomes `{canonical: value}`. For inner flags (those registered under an outer flag +// via WithInnerFlags), the alias translation is also applied to the nested map under the outer flag's +// body path, so values like `--parent '{"alias": val}'` resolve to the canonical inner field name. +func applyDataAliases(cmd *cli.Command, bodyMap map[string]any) { + for _, flag := range cmd.Flags { + // Inner flags: rewrite aliases inside the nested map under the outer flag's body path. + if inner, ok := flag.(requestflag.HasOuterFlag); ok { + outer, outerOk := inner.GetOuterFlag().(requestflag.InRequest) + if !outerOk { + continue + } + if nested, ok := bodyMap[outer.GetBodyPath()].(map[string]any); ok && inner.GetInnerField() != "" { + rewriteAliases(nested, inner.GetInnerField(), inner.GetDataAliases()) + } + continue + } + // Top-level flags: rewrite aliases in the body map. + if inReq, ok := flag.(requestflag.InRequest); ok && inReq.GetBodyPath() != "" { + rewriteAliases(bodyMap, inReq.GetBodyPath(), inReq.GetDataAliases()) + } + } +} + +// rewriteAliases replaces each alias key in m with the canonical key, preserving the value. The +// "canonical" key is the name the API itself expects (the OpenAPI property/field name) — e.g. for +// a top-level flag, the parameter's BodyPath; for an inner flag, the inner field name. Aliases are +// the user-facing alternate names declared via x-stainless-cli-data-alias. +func rewriteAliases(m map[string]any, canonical string, aliases []string) { + for _, alias := range aliases { + if alias == "" || alias == canonical { + continue + } + if val, exists := m[alias]; exists { + m[canonical] = val + delete(m, alias) + } + } +} + // wrapFileInputValues replaces string values for FileInput flags (type: string, format: binary) with // FilePathValue sentinel values. embedFilesValue recognizes FilePathValue and reads the file contents // directly, so the user doesn't need to type the "@" prefix. This handles both values set via explicit From 21a0bc997e853879adc640cc2114861ab9f4018a Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 16 Apr 2026 02:51:28 +0000 Subject: [PATCH 23/33] chore(cli): switch long lists of positional args over to param structs --- cmd/x-twitter-scraper/main.go | 7 ++- pkg/cmd/account.go | 22 +++++++-- pkg/cmd/apikey.go | 22 +++++++-- pkg/cmd/cmdutil.go | 84 +++++++++++++++++++++++------------ pkg/cmd/cmdutil_test.go | 31 ++++++++++--- pkg/cmd/compose.go | 8 +++- pkg/cmd/credit.go | 15 +++++-- pkg/cmd/draft.go | 22 +++++++-- pkg/cmd/draw.go | 21 +++++++-- pkg/cmd/event.go | 15 +++++-- pkg/cmd/extraction.go | 28 ++++++++++-- pkg/cmd/integration.go | 50 +++++++++++++++++---- pkg/cmd/monitor.go | 36 ++++++++++++--- pkg/cmd/radar.go | 8 +++- pkg/cmd/style.go | 43 +++++++++++++++--- pkg/cmd/subscribe.go | 8 +++- pkg/cmd/supportticket.go | 36 ++++++++++++--- pkg/cmd/trend.go | 8 +++- pkg/cmd/webhook.go | 43 +++++++++++++++--- pkg/cmd/x.go | 29 +++++++++--- pkg/cmd/xaccount.go | 43 +++++++++++++++--- pkg/cmd/xbookmark.go | 15 +++++-- pkg/cmd/xcommunity.go | 43 +++++++++++++++--- pkg/cmd/xcommunityjoin.go | 15 +++++-- pkg/cmd/xcommunitytweet.go | 15 +++++-- pkg/cmd/xdm.go | 15 +++++-- pkg/cmd/xfollower.go | 8 +++- pkg/cmd/xlist.go | 22 +++++++-- pkg/cmd/xmedia.go | 15 +++++-- pkg/cmd/xprofile.go | 22 +++++++-- pkg/cmd/xtweet.go | 71 ++++++++++++++++++++++++----- pkg/cmd/xtweetlike.go | 15 +++++-- pkg/cmd/xtweetretweet.go | 15 +++++-- pkg/cmd/xuser.go | 78 +++++++++++++++++++++++++++----- pkg/cmd/xuserfollow.go | 15 +++++-- 35 files changed, 765 insertions(+), 178 deletions(-) diff --git a/cmd/x-twitter-scraper/main.go b/cmd/x-twitter-scraper/main.go index 91ad057..e07265e 100644 --- a/cmd/x-twitter-scraper/main.go +++ b/cmd/x-twitter-scraper/main.go @@ -43,7 +43,12 @@ func main() { fmt.Fprintf(os.Stderr, "%s %q: %d %s\n", apierr.Request.Method, apierr.Request.URL, apierr.Response.StatusCode, http.StatusText(apierr.Response.StatusCode)) format := app.String("format-error") json := gjson.Parse(apierr.RawJSON()) - show_err := cmd.ShowJSON(os.Stdout, os.Stderr, "Error", json, format, app.IsSet("format-error"), app.String("transform-error")) + show_err := cmd.ShowJSON(json, cmd.ShowJSONOpts{ + ExplicitFormat: app.IsSet("format-error"), + Format: format, + Title: "Error", + Transform: app.String("transform-error"), + }) if show_err != nil { // Just print the original error: fmt.Fprintf(os.Stderr, "%s\n", err.Error()) diff --git a/pkg/cmd/account.go b/pkg/cmd/account.go index eb3bc74..b88d702 100644 --- a/pkg/cmd/account.go +++ b/pkg/cmd/account.go @@ -5,7 +5,6 @@ package cmd import ( "context" "fmt" - "os" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" @@ -86,7 +85,12 @@ func handleAccountRetrieve(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "account retrieve", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "account retrieve", + Transform: transform, + }) } func handleAccountSetXUsername(ctx context.Context, cmd *cli.Command) error { @@ -121,7 +125,12 @@ func handleAccountSetXUsername(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "account set-x-username", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "account set-x-username", + Transform: transform, + }) } func handleAccountUpdateLocale(ctx context.Context, cmd *cli.Command) error { @@ -156,5 +165,10 @@ func handleAccountUpdateLocale(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "account update-locale", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "account update-locale", + Transform: transform, + }) } diff --git a/pkg/cmd/apikey.go b/pkg/cmd/apikey.go index cc49793..b4dee9c 100644 --- a/pkg/cmd/apikey.go +++ b/pkg/cmd/apikey.go @@ -5,7 +5,6 @@ package cmd import ( "context" "fmt" - "os" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" @@ -84,7 +83,12 @@ func handleAPIKeysCreate(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "api-keys create", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "api-keys create", + Transform: transform, + }) } func handleAPIKeysList(ctx context.Context, cmd *cli.Command) error { @@ -117,7 +121,12 @@ func handleAPIKeysList(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "api-keys list", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "api-keys list", + Transform: transform, + }) } func handleAPIKeysRevoke(ctx context.Context, cmd *cli.Command) error { @@ -153,5 +162,10 @@ func handleAPIKeysRevoke(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "api-keys revoke", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "api-keys revoke", + Transform: transform, + }) } diff --git a/pkg/cmd/cmdutil.go b/pkg/cmd/cmdutil.go index 0938a27..e6f3f85 100644 --- a/pkg/cmd/cmdutil.go +++ b/pkg/cmd/cmdutil.go @@ -359,36 +359,58 @@ func formatJSON(expectedOutput *os.File, title string, res gjson.Result, format const warningExploreNotSupported = "Warning: Output format 'explore' not supported for non-terminal output; falling back to 'json'\n" -// Display JSON to the user in various different formats. The explicitFormat parameter indicates -// whether the format was explicitly set by the user (via --format), which controls whether we -// silently fall back to json when explore is requested on non-terminal output. Warnings are -// written to stderr. -func ShowJSON(out *os.File, stderr io.Writer, title string, res gjson.Result, format string, explicitFormat bool, transform string) error { - if transform != "" { - transformed := res.Get(transform) +// ShowJSONOpts configures how JSON output is displayed. +type ShowJSONOpts struct { + ExplicitFormat bool // true if the user explicitly passed --format + Format string // output format (auto, explore, json, jsonl, pretty, raw, yaml) + Stderr io.Writer // stderr for warnings; injectable for testing; defaults to os.Stderr + Stdout *os.File // stdout (or pager); injectable for testing; defaults to os.Stdout + Title string // display title + Transform string // GJSON path to extract before displaying +} + +func (o *ShowJSONOpts) setDefaults() { + if o.Stderr == nil { + o.Stderr = os.Stderr + } + if o.Stdout == nil { + o.Stdout = os.Stdout + } +} + +// ShowJSON displays a single JSON result to the user. +func ShowJSON(res gjson.Result, opts ShowJSONOpts) error { + opts.setDefaults() + + if opts.Transform != "" { + transformed := res.Get(opts.Transform) if transformed.Exists() { res = transformed } } - switch strings.ToLower(format) { + switch strings.ToLower(opts.Format) { case "auto": - return ShowJSON(out, stderr, title, res, "json", explicitFormat, "") + jsonOpts := opts + jsonOpts.Format = "json" + return ShowJSON(res, jsonOpts) case "explore": - if !isTerminal(out) { - if explicitFormat { - fmt.Fprint(stderr, warningExploreNotSupported) + if !isTerminal(opts.Stdout) { + if opts.ExplicitFormat { + fmt.Fprint(opts.Stderr, warningExploreNotSupported) } - return ShowJSON(out, stderr, title, res, "json", explicitFormat, transform) + jsonOpts := opts + jsonOpts.Format = "json" + return ShowJSON(res, jsonOpts) } - return jsonview.ExploreJSON(title, res) + return jsonview.ExploreJSON(opts.Title, res) default: - bytes, err := formatJSON(out, title, res, format, transform) + bytes, err := formatJSON(opts.Stdout, opts.Title, res, opts.Format, opts.Transform) if err != nil { return err } - _, err = out.Write(bytes) + _, err = opts.Stdout.Write(bytes) return err } } @@ -402,16 +424,17 @@ type hasRawJSON interface { RawJSON() string } -// For an iterator over different value types, display its values to the user in -// different formats. -// -1 is used to signal no limit of items to display -func ShowJSONIterator[T any](stdout *os.File, stderr io.Writer, title string, iter jsonview.Iterator[T], format string, explicitFormat bool, transform string, itemsToDisplay int64) error { +// ShowJSONIterator displays an iterator of values to the user. Use itemsToDisplay = -1 for no limit. +func ShowJSONIterator[T any](iter jsonview.Iterator[T], itemsToDisplay int64, opts ShowJSONOpts) error { + opts.setDefaults() + + format := opts.Format if format == "explore" { - if isTerminal(stdout) { - return jsonview.ExploreJSONStream(title, iter) + if isTerminal(opts.Stdout) { + return jsonview.ExploreJSONStream(opts.Title, iter) } - if explicitFormat { - fmt.Fprint(stderr, warningExploreNotSupported) + if opts.ExplicitFormat { + fmt.Fprint(opts.Stderr, warningExploreNotSupported) } format = "json" } @@ -439,7 +462,7 @@ func ShowJSONIterator[T any](stdout *os.File, stderr io.Writer, title string, it } obj = gjson.ParseBytes(jsonData) } - json, err := formatJSON(stdout, title, obj, format, transform) + json, err := formatJSON(opts.Stdout, opts.Title, obj, format, opts.Transform) if err != nil { return err } @@ -456,7 +479,7 @@ func ShowJSONIterator[T any](stdout *os.File, stderr io.Writer, title string, it } if !usePager { - _, err := stdout.Write(output) + _, err := opts.Stdout.Write(output) if err != nil { return err } @@ -464,13 +487,16 @@ func ShowJSONIterator[T any](stdout *os.File, stderr io.Writer, title string, it return iter.Err() } - return streamOutput(title, func(pager *os.File) error { - // Write the output we used during the initial terminal size computation + return streamOutput(opts.Title, func(pager *os.File) error { _, err := pager.Write(output) if err != nil { return err } + pagerOpts := opts + pagerOpts.Format = format + pagerOpts.Stdout = pager + for iter.Next() { if itemsToDisplay == 0 { break @@ -486,7 +512,7 @@ func ShowJSONIterator[T any](stdout *os.File, stderr io.Writer, title string, it } obj = gjson.ParseBytes(jsonData) } - if err := ShowJSON(pager, stderr, title, obj, format, explicitFormat, transform); err != nil { + if err := ShowJSON(obj, pagerOpts); err != nil { return err } itemsToDisplay -= 1 diff --git a/pkg/cmd/cmdutil_test.go b/pkg/cmd/cmdutil_test.go index dcd95e1..1e38d9c 100644 --- a/pkg/cmd/cmdutil_test.go +++ b/pkg/cmd/cmdutil_test.go @@ -244,7 +244,12 @@ func TestExploreFallback(t *testing.T) { var stderr bytes.Buffer res := gjson.Parse(`{"id":"abc"}`) - err = ShowJSON(w, &stderr, "test", res, "explore", false, "") + err = ShowJSON(res, ShowJSONOpts{ + Format: "explore", + Stderr: &stderr, + Stdout: w, + Title: "test", + }) w.Close() require.NoError(t, err) @@ -274,7 +279,13 @@ func TestExploreFallback(t *testing.T) { var stderr bytes.Buffer res := gjson.Parse(`{"id":"abc"}`) - err = ShowJSON(w, &stderr, "test", res, "explore", true, "") + err = ShowJSON(res, ShowJSONOpts{ + ExplicitFormat: true, + Format: "explore", + Stderr: &stderr, + Stdout: w, + Title: "test", + }) w.Close() require.NoError(t, err) @@ -290,7 +301,12 @@ func TestExploreFallback(t *testing.T) { var stderr bytes.Buffer res := gjson.Parse(`{"id":"abc"}`) - err = ShowJSON(w, &stderr, "test", res, "explore", false, "") + err = ShowJSON(res, ShowJSONOpts{ + Format: "explore", + Stderr: &stderr, + Stdout: w, + Title: "test", + }) w.Close() require.NoError(t, err) @@ -327,8 +343,13 @@ func captureShowJSONIterator[T any](t *testing.T, iter jsonview.Iterator[T], for require.NoError(t, err) defer r.Close() - var stderr bytes.Buffer - err = ShowJSONIterator(w, &stderr, "test", iter, format, false, transform, itemsToDisplay) + err = ShowJSONIterator(iter, itemsToDisplay, ShowJSONOpts{ + Format: format, + Stderr: io.Discard, + Stdout: w, + Title: "test", + Transform: transform, + }) w.Close() require.NoError(t, err) diff --git a/pkg/cmd/compose.go b/pkg/cmd/compose.go index 915f846..a7e48e5 100644 --- a/pkg/cmd/compose.go +++ b/pkg/cmd/compose.go @@ -5,7 +5,6 @@ package cmd import ( "context" "fmt" - "os" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" @@ -113,5 +112,10 @@ func handleComposeCreate(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "compose create", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "compose create", + Transform: transform, + }) } diff --git a/pkg/cmd/credit.go b/pkg/cmd/credit.go index e3b247c..274154c 100644 --- a/pkg/cmd/credit.go +++ b/pkg/cmd/credit.go @@ -5,7 +5,6 @@ package cmd import ( "context" "fmt" - "os" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" @@ -70,7 +69,12 @@ func handleCreditsRetrieveBalance(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "credits retrieve-balance", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "credits retrieve-balance", + Transform: transform, + }) } func handleCreditsTopupBalance(ctx context.Context, cmd *cli.Command) error { @@ -105,5 +109,10 @@ func handleCreditsTopupBalance(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "credits topup-balance", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "credits topup-balance", + Transform: transform, + }) } diff --git a/pkg/cmd/draft.go b/pkg/cmd/draft.go index a2115c4..4dc3263 100644 --- a/pkg/cmd/draft.go +++ b/pkg/cmd/draft.go @@ -5,7 +5,6 @@ package cmd import ( "context" "fmt" - "os" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" @@ -120,7 +119,12 @@ func handleDraftsCreate(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "drafts create", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "drafts create", + Transform: transform, + }) } func handleDraftsRetrieve(ctx context.Context, cmd *cli.Command) error { @@ -156,7 +160,12 @@ func handleDraftsRetrieve(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "drafts retrieve", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "drafts retrieve", + Transform: transform, + }) } func handleDraftsList(ctx context.Context, cmd *cli.Command) error { @@ -191,7 +200,12 @@ func handleDraftsList(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "drafts list", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "drafts list", + Transform: transform, + }) } func handleDraftsDelete(ctx context.Context, cmd *cli.Command) error { diff --git a/pkg/cmd/draw.go b/pkg/cmd/draw.go index 50fe5d7..53d82e8 100644 --- a/pkg/cmd/draw.go +++ b/pkg/cmd/draw.go @@ -174,7 +174,12 @@ func handleDrawsRetrieve(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "draws retrieve", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "draws retrieve", + Transform: transform, + }) } func handleDrawsList(ctx context.Context, cmd *cli.Command) error { @@ -209,7 +214,12 @@ func handleDrawsList(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "draws list", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "draws list", + Transform: transform, + }) } func handleDrawsExport(ctx context.Context, cmd *cli.Command) error { @@ -284,5 +294,10 @@ func handleDrawsRun(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "draws run", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "draws run", + Transform: transform, + }) } diff --git a/pkg/cmd/event.go b/pkg/cmd/event.go index 54cf03a..5662fda 100644 --- a/pkg/cmd/event.go +++ b/pkg/cmd/event.go @@ -5,7 +5,6 @@ package cmd import ( "context" "fmt" - "os" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" @@ -93,7 +92,12 @@ func handleEventsRetrieve(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "events retrieve", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "events retrieve", + Transform: transform, + }) } func handleEventsList(ctx context.Context, cmd *cli.Command) error { @@ -128,5 +132,10 @@ func handleEventsList(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "events list", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "events list", + Transform: transform, + }) } diff --git a/pkg/cmd/extraction.go b/pkg/cmd/extraction.go index 819338a..70b810a 100644 --- a/pkg/cmd/extraction.go +++ b/pkg/cmd/extraction.go @@ -246,7 +246,12 @@ func handleExtractionsRetrieve(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "extractions retrieve", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "extractions retrieve", + Transform: transform, + }) } func handleExtractionsList(ctx context.Context, cmd *cli.Command) error { @@ -281,7 +286,12 @@ func handleExtractionsList(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "extractions list", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "extractions list", + Transform: transform, + }) } func handleExtractionsEstimateCost(ctx context.Context, cmd *cli.Command) error { @@ -316,7 +326,12 @@ func handleExtractionsEstimateCost(ctx context.Context, cmd *cli.Command) error format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "extractions estimate-cost", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "extractions estimate-cost", + Transform: transform, + }) } func handleExtractionsExportResults(ctx context.Context, cmd *cli.Command) error { @@ -391,5 +406,10 @@ func handleExtractionsRun(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "extractions run", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "extractions run", + Transform: transform, + }) } diff --git a/pkg/cmd/integration.go b/pkg/cmd/integration.go index a4fb5f9..565c8f8 100644 --- a/pkg/cmd/integration.go +++ b/pkg/cmd/integration.go @@ -5,7 +5,6 @@ package cmd import ( "context" "fmt" - "os" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" @@ -204,7 +203,12 @@ func handleIntegrationsCreate(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "integrations create", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "integrations create", + Transform: transform, + }) } func handleIntegrationsRetrieve(ctx context.Context, cmd *cli.Command) error { @@ -240,7 +244,12 @@ func handleIntegrationsRetrieve(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "integrations retrieve", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "integrations retrieve", + Transform: transform, + }) } func handleIntegrationsUpdate(ctx context.Context, cmd *cli.Command) error { @@ -283,7 +292,12 @@ func handleIntegrationsUpdate(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "integrations update", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "integrations update", + Transform: transform, + }) } func handleIntegrationsList(ctx context.Context, cmd *cli.Command) error { @@ -316,7 +330,12 @@ func handleIntegrationsList(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "integrations list", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "integrations list", + Transform: transform, + }) } func handleIntegrationsDelete(ctx context.Context, cmd *cli.Command) error { @@ -352,7 +371,12 @@ func handleIntegrationsDelete(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "integrations delete", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "integrations delete", + Transform: transform, + }) } func handleIntegrationsListDeliveries(ctx context.Context, cmd *cli.Command) error { @@ -395,7 +419,12 @@ func handleIntegrationsListDeliveries(ctx context.Context, cmd *cli.Command) err format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "integrations list-deliveries", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "integrations list-deliveries", + Transform: transform, + }) } func handleIntegrationsSendTest(ctx context.Context, cmd *cli.Command) error { @@ -431,5 +460,10 @@ func handleIntegrationsSendTest(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "integrations send-test", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "integrations send-test", + Transform: transform, + }) } diff --git a/pkg/cmd/monitor.go b/pkg/cmd/monitor.go index 8f41405..3bb3715 100644 --- a/pkg/cmd/monitor.go +++ b/pkg/cmd/monitor.go @@ -5,7 +5,6 @@ package cmd import ( "context" "fmt" - "os" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" @@ -129,7 +128,12 @@ func handleMonitorsCreate(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "monitors create", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "monitors create", + Transform: transform, + }) } func handleMonitorsRetrieve(ctx context.Context, cmd *cli.Command) error { @@ -165,7 +169,12 @@ func handleMonitorsRetrieve(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "monitors retrieve", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "monitors retrieve", + Transform: transform, + }) } func handleMonitorsUpdate(ctx context.Context, cmd *cli.Command) error { @@ -208,7 +217,12 @@ func handleMonitorsUpdate(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "monitors update", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "monitors update", + Transform: transform, + }) } func handleMonitorsList(ctx context.Context, cmd *cli.Command) error { @@ -241,7 +255,12 @@ func handleMonitorsList(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "monitors list", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "monitors list", + Transform: transform, + }) } func handleMonitorsDeactivate(ctx context.Context, cmd *cli.Command) error { @@ -277,5 +296,10 @@ func handleMonitorsDeactivate(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "monitors deactivate", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "monitors deactivate", + Transform: transform, + }) } diff --git a/pkg/cmd/radar.go b/pkg/cmd/radar.go index 625c527..d78792a 100644 --- a/pkg/cmd/radar.go +++ b/pkg/cmd/radar.go @@ -5,7 +5,6 @@ package cmd import ( "context" "fmt" - "os" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" @@ -82,5 +81,10 @@ func handleRadarRetrieveTrendingTopics(ctx context.Context, cmd *cli.Command) er format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "radar retrieve-trending-topics", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "radar retrieve-trending-topics", + Transform: transform, + }) } diff --git a/pkg/cmd/style.go b/pkg/cmd/style.go index a152196..4541239 100644 --- a/pkg/cmd/style.go +++ b/pkg/cmd/style.go @@ -5,7 +5,6 @@ package cmd import ( "context" "fmt" - "os" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" @@ -170,7 +169,12 @@ func handleStylesRetrieve(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "styles retrieve", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "styles retrieve", + Transform: transform, + }) } func handleStylesUpdate(ctx context.Context, cmd *cli.Command) error { @@ -213,7 +217,12 @@ func handleStylesUpdate(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "styles update", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "styles update", + Transform: transform, + }) } func handleStylesList(ctx context.Context, cmd *cli.Command) error { @@ -246,7 +255,12 @@ func handleStylesList(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "styles list", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "styles list", + Transform: transform, + }) } func handleStylesDelete(ctx context.Context, cmd *cli.Command) error { @@ -306,7 +320,12 @@ func handleStylesAnalyze(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "styles analyze", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "styles analyze", + Transform: transform, + }) } func handleStylesCompare(ctx context.Context, cmd *cli.Command) error { @@ -341,7 +360,12 @@ func handleStylesCompare(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "styles compare", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "styles compare", + Transform: transform, + }) } func handleStylesGetPerformance(ctx context.Context, cmd *cli.Command) error { @@ -377,5 +401,10 @@ func handleStylesGetPerformance(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "styles get-performance", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "styles get-performance", + Transform: transform, + }) } diff --git a/pkg/cmd/subscribe.go b/pkg/cmd/subscribe.go index 34ba351..bd86f20 100644 --- a/pkg/cmd/subscribe.go +++ b/pkg/cmd/subscribe.go @@ -5,7 +5,6 @@ package cmd import ( "context" "fmt" - "os" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" "github.com/stainless-sdks/x-twitter-scraper-go" @@ -53,5 +52,10 @@ func handleSubscribeCreate(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "subscribe create", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "subscribe create", + Transform: transform, + }) } diff --git a/pkg/cmd/supportticket.go b/pkg/cmd/supportticket.go index 440b108..3a6378f 100644 --- a/pkg/cmd/supportticket.go +++ b/pkg/cmd/supportticket.go @@ -5,7 +5,6 @@ package cmd import ( "context" "fmt" - "os" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" @@ -129,7 +128,12 @@ func handleSupportTicketsCreate(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "support:tickets create", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "support:tickets create", + Transform: transform, + }) } func handleSupportTicketsRetrieve(ctx context.Context, cmd *cli.Command) error { @@ -165,7 +169,12 @@ func handleSupportTicketsRetrieve(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "support:tickets retrieve", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "support:tickets retrieve", + Transform: transform, + }) } func handleSupportTicketsUpdate(ctx context.Context, cmd *cli.Command) error { @@ -208,7 +217,12 @@ func handleSupportTicketsUpdate(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "support:tickets update", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "support:tickets update", + Transform: transform, + }) } func handleSupportTicketsList(ctx context.Context, cmd *cli.Command) error { @@ -241,7 +255,12 @@ func handleSupportTicketsList(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "support:tickets list", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "support:tickets list", + Transform: transform, + }) } func handleSupportTicketsReply(ctx context.Context, cmd *cli.Command) error { @@ -284,5 +303,10 @@ func handleSupportTicketsReply(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "support:tickets reply", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "support:tickets reply", + Transform: transform, + }) } diff --git a/pkg/cmd/trend.go b/pkg/cmd/trend.go index d8fb67a..c832d9a 100644 --- a/pkg/cmd/trend.go +++ b/pkg/cmd/trend.go @@ -5,7 +5,6 @@ package cmd import ( "context" "fmt" - "os" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" @@ -69,5 +68,10 @@ func handleTrendsList(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "trends list", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "trends list", + Transform: transform, + }) } diff --git a/pkg/cmd/webhook.go b/pkg/cmd/webhook.go index 0e3df79..1aaf43b 100644 --- a/pkg/cmd/webhook.go +++ b/pkg/cmd/webhook.go @@ -5,7 +5,6 @@ package cmd import ( "context" "fmt" - "os" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" @@ -147,7 +146,12 @@ func handleWebhooksCreate(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "webhooks create", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "webhooks create", + Transform: transform, + }) } func handleWebhooksUpdate(ctx context.Context, cmd *cli.Command) error { @@ -190,7 +194,12 @@ func handleWebhooksUpdate(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "webhooks update", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "webhooks update", + Transform: transform, + }) } func handleWebhooksList(ctx context.Context, cmd *cli.Command) error { @@ -223,7 +232,12 @@ func handleWebhooksList(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "webhooks list", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "webhooks list", + Transform: transform, + }) } func handleWebhooksDeactivate(ctx context.Context, cmd *cli.Command) error { @@ -259,7 +273,12 @@ func handleWebhooksDeactivate(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "webhooks deactivate", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "webhooks deactivate", + Transform: transform, + }) } func handleWebhooksListDeliveries(ctx context.Context, cmd *cli.Command) error { @@ -295,7 +314,12 @@ func handleWebhooksListDeliveries(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "webhooks list-deliveries", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "webhooks list-deliveries", + Transform: transform, + }) } func handleWebhooksTest(ctx context.Context, cmd *cli.Command) error { @@ -331,5 +355,10 @@ func handleWebhooksTest(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "webhooks test", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "webhooks test", + Transform: transform, + }) } diff --git a/pkg/cmd/x.go b/pkg/cmd/x.go index 546e8e1..51954ef 100644 --- a/pkg/cmd/x.go +++ b/pkg/cmd/x.go @@ -5,7 +5,6 @@ package cmd import ( "context" "fmt" - "os" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" @@ -125,7 +124,12 @@ func handleXGetArticle(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x get-article", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x get-article", + Transform: transform, + }) } func handleXGetHomeTimeline(ctx context.Context, cmd *cli.Command) error { @@ -160,7 +164,12 @@ func handleXGetHomeTimeline(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x get-home-timeline", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x get-home-timeline", + Transform: transform, + }) } func handleXGetNotifications(ctx context.Context, cmd *cli.Command) error { @@ -195,7 +204,12 @@ func handleXGetNotifications(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x get-notifications", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x get-notifications", + Transform: transform, + }) } func handleXGetTrends(ctx context.Context, cmd *cli.Command) error { @@ -230,5 +244,10 @@ func handleXGetTrends(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x get-trends", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x get-trends", + Transform: transform, + }) } diff --git a/pkg/cmd/xaccount.go b/pkg/cmd/xaccount.go index ea588f9..db56cca 100644 --- a/pkg/cmd/xaccount.go +++ b/pkg/cmd/xaccount.go @@ -5,7 +5,6 @@ package cmd import ( "context" "fmt" - "os" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" @@ -156,7 +155,12 @@ func handleXAccountsCreate(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:accounts create", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:accounts create", + Transform: transform, + }) } func handleXAccountsRetrieve(ctx context.Context, cmd *cli.Command) error { @@ -192,7 +196,12 @@ func handleXAccountsRetrieve(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:accounts retrieve", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:accounts retrieve", + Transform: transform, + }) } func handleXAccountsList(ctx context.Context, cmd *cli.Command) error { @@ -225,7 +234,12 @@ func handleXAccountsList(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:accounts list", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:accounts list", + Transform: transform, + }) } func handleXAccountsDelete(ctx context.Context, cmd *cli.Command) error { @@ -261,7 +275,12 @@ func handleXAccountsDelete(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:accounts delete", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:accounts delete", + Transform: transform, + }) } func handleXAccountsBulkRetry(ctx context.Context, cmd *cli.Command) error { @@ -294,7 +313,12 @@ func handleXAccountsBulkRetry(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:accounts bulk-retry", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:accounts bulk-retry", + Transform: transform, + }) } func handleXAccountsReauth(ctx context.Context, cmd *cli.Command) error { @@ -337,5 +361,10 @@ func handleXAccountsReauth(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:accounts reauth", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:accounts reauth", + Transform: transform, + }) } diff --git a/pkg/cmd/xbookmark.go b/pkg/cmd/xbookmark.go index cd24169..628d2f1 100644 --- a/pkg/cmd/xbookmark.go +++ b/pkg/cmd/xbookmark.go @@ -5,7 +5,6 @@ package cmd import ( "context" "fmt" - "os" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" @@ -76,7 +75,12 @@ func handleXBookmarksList(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:bookmarks list", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:bookmarks list", + Transform: transform, + }) } func handleXBookmarksRetrieveFolders(ctx context.Context, cmd *cli.Command) error { @@ -109,5 +113,10 @@ func handleXBookmarksRetrieveFolders(ctx context.Context, cmd *cli.Command) erro format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:bookmarks retrieve-folders", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:bookmarks retrieve-folders", + Transform: transform, + }) } diff --git a/pkg/cmd/xcommunity.go b/pkg/cmd/xcommunity.go index 3914098..4ac0ad8 100644 --- a/pkg/cmd/xcommunity.go +++ b/pkg/cmd/xcommunity.go @@ -5,7 +5,6 @@ package cmd import ( "context" "fmt" - "os" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" @@ -178,7 +177,12 @@ func handleXCommunitiesCreate(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:communities create", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:communities create", + Transform: transform, + }) } func handleXCommunitiesDelete(ctx context.Context, cmd *cli.Command) error { @@ -221,7 +225,12 @@ func handleXCommunitiesDelete(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:communities delete", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:communities delete", + Transform: transform, + }) } func handleXCommunitiesRetrieveInfo(ctx context.Context, cmd *cli.Command) error { @@ -257,7 +266,12 @@ func handleXCommunitiesRetrieveInfo(ctx context.Context, cmd *cli.Command) error format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:communities retrieve-info", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:communities retrieve-info", + Transform: transform, + }) } func handleXCommunitiesRetrieveMembers(ctx context.Context, cmd *cli.Command) error { @@ -300,7 +314,12 @@ func handleXCommunitiesRetrieveMembers(ctx context.Context, cmd *cli.Command) er format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:communities retrieve-members", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:communities retrieve-members", + Transform: transform, + }) } func handleXCommunitiesRetrieveModerators(ctx context.Context, cmd *cli.Command) error { @@ -343,7 +362,12 @@ func handleXCommunitiesRetrieveModerators(ctx context.Context, cmd *cli.Command) format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:communities retrieve-moderators", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:communities retrieve-moderators", + Transform: transform, + }) } func handleXCommunitiesRetrieveSearch(ctx context.Context, cmd *cli.Command) error { @@ -378,5 +402,10 @@ func handleXCommunitiesRetrieveSearch(ctx context.Context, cmd *cli.Command) err format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:communities retrieve-search", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:communities retrieve-search", + Transform: transform, + }) } diff --git a/pkg/cmd/xcommunityjoin.go b/pkg/cmd/xcommunityjoin.go index 15238a9..e324801 100644 --- a/pkg/cmd/xcommunityjoin.go +++ b/pkg/cmd/xcommunityjoin.go @@ -5,7 +5,6 @@ package cmd import ( "context" "fmt" - "os" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" @@ -95,7 +94,12 @@ func handleXCommunitiesJoinCreate(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:communities:join create", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:communities:join create", + Transform: transform, + }) } func handleXCommunitiesJoinDeleteAll(ctx context.Context, cmd *cli.Command) error { @@ -138,5 +142,10 @@ func handleXCommunitiesJoinDeleteAll(ctx context.Context, cmd *cli.Command) erro format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:communities:join delete-all", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:communities:join delete-all", + Transform: transform, + }) } diff --git a/pkg/cmd/xcommunitytweet.go b/pkg/cmd/xcommunitytweet.go index fd36ee6..9a5c64b 100644 --- a/pkg/cmd/xcommunitytweet.go +++ b/pkg/cmd/xcommunitytweet.go @@ -5,7 +5,6 @@ package cmd import ( "context" "fmt" - "os" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" @@ -92,7 +91,12 @@ func handleXCommunitiesTweetsList(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:communities:tweets list", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:communities:tweets list", + Transform: transform, + }) } func handleXCommunitiesTweetsListByCommunity(ctx context.Context, cmd *cli.Command) error { @@ -135,5 +139,10 @@ func handleXCommunitiesTweetsListByCommunity(ctx context.Context, cmd *cli.Comma format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:communities:tweets list-by-community", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:communities:tweets list-by-community", + Transform: transform, + }) } diff --git a/pkg/cmd/xdm.go b/pkg/cmd/xdm.go index 1e38315..6ae9af8 100644 --- a/pkg/cmd/xdm.go +++ b/pkg/cmd/xdm.go @@ -5,7 +5,6 @@ package cmd import ( "context" "fmt" - "os" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" @@ -112,7 +111,12 @@ func handleXDmRetrieveHistory(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:dm retrieve-history", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:dm retrieve-history", + Transform: transform, + }) } func handleXDmSend(ctx context.Context, cmd *cli.Command) error { @@ -155,5 +159,10 @@ func handleXDmSend(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:dm send", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:dm send", + Transform: transform, + }) } diff --git a/pkg/cmd/xfollower.go b/pkg/cmd/xfollower.go index 46726d0..05e1894 100644 --- a/pkg/cmd/xfollower.go +++ b/pkg/cmd/xfollower.go @@ -5,7 +5,6 @@ package cmd import ( "context" "fmt" - "os" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" @@ -69,5 +68,10 @@ func handleXFollowersCheck(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:followers check", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:followers check", + Transform: transform, + }) } diff --git a/pkg/cmd/xlist.go b/pkg/cmd/xlist.go index ef818cf..8e66ad1 100644 --- a/pkg/cmd/xlist.go +++ b/pkg/cmd/xlist.go @@ -5,7 +5,6 @@ package cmd import ( "context" "fmt" - "os" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" @@ -127,7 +126,12 @@ func handleXListsRetrieveFollowers(ctx context.Context, cmd *cli.Command) error format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:lists retrieve-followers", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:lists retrieve-followers", + Transform: transform, + }) } func handleXListsRetrieveMembers(ctx context.Context, cmd *cli.Command) error { @@ -170,7 +174,12 @@ func handleXListsRetrieveMembers(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:lists retrieve-members", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:lists retrieve-members", + Transform: transform, + }) } func handleXListsRetrieveTweets(ctx context.Context, cmd *cli.Command) error { @@ -213,5 +222,10 @@ func handleXListsRetrieveTweets(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:lists retrieve-tweets", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:lists retrieve-tweets", + Transform: transform, + }) } diff --git a/pkg/cmd/xmedia.go b/pkg/cmd/xmedia.go index b08fc15..c18834d 100644 --- a/pkg/cmd/xmedia.go +++ b/pkg/cmd/xmedia.go @@ -5,7 +5,6 @@ package cmd import ( "context" "fmt" - "os" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" @@ -94,7 +93,12 @@ func handleXMediaDownload(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:media download", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:media download", + Transform: transform, + }) } func handleXMediaUpload(ctx context.Context, cmd *cli.Command) error { @@ -129,5 +133,10 @@ func handleXMediaUpload(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:media upload", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:media upload", + Transform: transform, + }) } diff --git a/pkg/cmd/xprofile.go b/pkg/cmd/xprofile.go index 4e2695f..cb25d4f 100644 --- a/pkg/cmd/xprofile.go +++ b/pkg/cmd/xprofile.go @@ -5,7 +5,6 @@ package cmd import ( "context" "fmt" - "os" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" @@ -128,7 +127,12 @@ func handleXProfileUpdate(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:profile update", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:profile update", + Transform: transform, + }) } func handleXProfileUpdateAvatar(ctx context.Context, cmd *cli.Command) error { @@ -163,7 +167,12 @@ func handleXProfileUpdateAvatar(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:profile update-avatar", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:profile update-avatar", + Transform: transform, + }) } func handleXProfileUpdateBanner(ctx context.Context, cmd *cli.Command) error { @@ -198,5 +207,10 @@ func handleXProfileUpdateBanner(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:profile update-banner", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:profile update-banner", + Transform: transform, + }) } diff --git a/pkg/cmd/xtweet.go b/pkg/cmd/xtweet.go index 619545b..f20006f 100644 --- a/pkg/cmd/xtweet.go +++ b/pkg/cmd/xtweet.go @@ -5,7 +5,6 @@ package cmd import ( "context" "fmt" - "os" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" @@ -301,7 +300,12 @@ func handleXTweetsCreate(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:tweets create", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:tweets create", + Transform: transform, + }) } func handleXTweetsRetrieve(ctx context.Context, cmd *cli.Command) error { @@ -337,7 +341,12 @@ func handleXTweetsRetrieve(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:tweets retrieve", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:tweets retrieve", + Transform: transform, + }) } func handleXTweetsList(ctx context.Context, cmd *cli.Command) error { @@ -372,7 +381,12 @@ func handleXTweetsList(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:tweets list", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:tweets list", + Transform: transform, + }) } func handleXTweetsDelete(ctx context.Context, cmd *cli.Command) error { @@ -415,7 +429,12 @@ func handleXTweetsDelete(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:tweets delete", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:tweets delete", + Transform: transform, + }) } func handleXTweetsGetFavoriters(ctx context.Context, cmd *cli.Command) error { @@ -458,7 +477,12 @@ func handleXTweetsGetFavoriters(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:tweets get-favoriters", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:tweets get-favoriters", + Transform: transform, + }) } func handleXTweetsGetQuotes(ctx context.Context, cmd *cli.Command) error { @@ -501,7 +525,12 @@ func handleXTweetsGetQuotes(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:tweets get-quotes", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:tweets get-quotes", + Transform: transform, + }) } func handleXTweetsGetReplies(ctx context.Context, cmd *cli.Command) error { @@ -544,7 +573,12 @@ func handleXTweetsGetReplies(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:tweets get-replies", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:tweets get-replies", + Transform: transform, + }) } func handleXTweetsGetRetweeters(ctx context.Context, cmd *cli.Command) error { @@ -587,7 +621,12 @@ func handleXTweetsGetRetweeters(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:tweets get-retweeters", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:tweets get-retweeters", + Transform: transform, + }) } func handleXTweetsGetThread(ctx context.Context, cmd *cli.Command) error { @@ -630,7 +669,12 @@ func handleXTweetsGetThread(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:tweets get-thread", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:tweets get-thread", + Transform: transform, + }) } func handleXTweetsSearch(ctx context.Context, cmd *cli.Command) error { @@ -665,5 +709,10 @@ func handleXTweetsSearch(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:tweets search", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:tweets search", + Transform: transform, + }) } diff --git a/pkg/cmd/xtweetlike.go b/pkg/cmd/xtweetlike.go index f09c508..a23c290 100644 --- a/pkg/cmd/xtweetlike.go +++ b/pkg/cmd/xtweetlike.go @@ -5,7 +5,6 @@ package cmd import ( "context" "fmt" - "os" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" @@ -95,7 +94,12 @@ func handleXTweetsLikeCreate(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:tweets:like create", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:tweets:like create", + Transform: transform, + }) } func handleXTweetsLikeDelete(ctx context.Context, cmd *cli.Command) error { @@ -138,5 +142,10 @@ func handleXTweetsLikeDelete(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:tweets:like delete", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:tweets:like delete", + Transform: transform, + }) } diff --git a/pkg/cmd/xtweetretweet.go b/pkg/cmd/xtweetretweet.go index edb4af2..ced70bd 100644 --- a/pkg/cmd/xtweetretweet.go +++ b/pkg/cmd/xtweetretweet.go @@ -5,7 +5,6 @@ package cmd import ( "context" "fmt" - "os" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" @@ -95,7 +94,12 @@ func handleXTweetsRetweetCreate(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:tweets:retweet create", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:tweets:retweet create", + Transform: transform, + }) } func handleXTweetsRetweetDelete(ctx context.Context, cmd *cli.Command) error { @@ -138,5 +142,10 @@ func handleXTweetsRetweetDelete(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:tweets:retweet delete", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:tweets:retweet delete", + Transform: transform, + }) } diff --git a/pkg/cmd/xuser.go b/pkg/cmd/xuser.go index 68e538d..65e6cee 100644 --- a/pkg/cmd/xuser.go +++ b/pkg/cmd/xuser.go @@ -5,7 +5,6 @@ package cmd import ( "context" "fmt" - "os" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" @@ -283,7 +282,12 @@ func handleXUsersRetrieve(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:users retrieve", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:users retrieve", + Transform: transform, + }) } func handleXUsersRetrieveBatch(ctx context.Context, cmd *cli.Command) error { @@ -318,7 +322,12 @@ func handleXUsersRetrieveBatch(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:users retrieve-batch", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:users retrieve-batch", + Transform: transform, + }) } func handleXUsersRetrieveFollowers(ctx context.Context, cmd *cli.Command) error { @@ -361,7 +370,12 @@ func handleXUsersRetrieveFollowers(ctx context.Context, cmd *cli.Command) error format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:users retrieve-followers", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:users retrieve-followers", + Transform: transform, + }) } func handleXUsersRetrieveFollowersYouKnow(ctx context.Context, cmd *cli.Command) error { @@ -404,7 +418,12 @@ func handleXUsersRetrieveFollowersYouKnow(ctx context.Context, cmd *cli.Command) format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:users retrieve-followers-you-know", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:users retrieve-followers-you-know", + Transform: transform, + }) } func handleXUsersRetrieveFollowing(ctx context.Context, cmd *cli.Command) error { @@ -447,7 +466,12 @@ func handleXUsersRetrieveFollowing(ctx context.Context, cmd *cli.Command) error format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:users retrieve-following", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:users retrieve-following", + Transform: transform, + }) } func handleXUsersRetrieveLikes(ctx context.Context, cmd *cli.Command) error { @@ -490,7 +514,12 @@ func handleXUsersRetrieveLikes(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:users retrieve-likes", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:users retrieve-likes", + Transform: transform, + }) } func handleXUsersRetrieveMedia(ctx context.Context, cmd *cli.Command) error { @@ -533,7 +562,12 @@ func handleXUsersRetrieveMedia(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:users retrieve-media", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:users retrieve-media", + Transform: transform, + }) } func handleXUsersRetrieveMentions(ctx context.Context, cmd *cli.Command) error { @@ -576,7 +610,12 @@ func handleXUsersRetrieveMentions(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:users retrieve-mentions", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:users retrieve-mentions", + Transform: transform, + }) } func handleXUsersRetrieveSearch(ctx context.Context, cmd *cli.Command) error { @@ -611,7 +650,12 @@ func handleXUsersRetrieveSearch(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:users retrieve-search", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:users retrieve-search", + Transform: transform, + }) } func handleXUsersRetrieveTweets(ctx context.Context, cmd *cli.Command) error { @@ -654,7 +698,12 @@ func handleXUsersRetrieveTweets(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:users retrieve-tweets", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:users retrieve-tweets", + Transform: transform, + }) } func handleXUsersRetrieveVerifiedFollowers(ctx context.Context, cmd *cli.Command) error { @@ -697,5 +746,10 @@ func handleXUsersRetrieveVerifiedFollowers(ctx context.Context, cmd *cli.Command format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:users retrieve-verified-followers", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:users retrieve-verified-followers", + Transform: transform, + }) } diff --git a/pkg/cmd/xuserfollow.go b/pkg/cmd/xuserfollow.go index 20f77ac..20e99c8 100644 --- a/pkg/cmd/xuserfollow.go +++ b/pkg/cmd/xuserfollow.go @@ -5,7 +5,6 @@ package cmd import ( "context" "fmt" - "os" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" @@ -95,7 +94,12 @@ func handleXUsersFollowCreate(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:users:follow create", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:users:follow create", + Transform: transform, + }) } func handleXUsersFollowDeleteAll(ctx context.Context, cmd *cli.Command) error { @@ -138,5 +142,10 @@ func handleXUsersFollowDeleteAll(ctx context.Context, cmd *cli.Command) error { format := cmd.Root().String("format") explicitFormat := cmd.Root().IsSet("format") transform := cmd.Root().String("transform") - return ShowJSON(os.Stdout, os.Stderr, "x:users:follow delete-all", obj, format, explicitFormat, transform) + return ShowJSON(obj, ShowJSONOpts{ + ExplicitFormat: explicitFormat, + Format: format, + Title: "x:users:follow delete-all", + Transform: transform, + }) } From c947c68b51f8141b8ed6030b641f34ef783c53e3 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 17 Apr 2026 04:26:44 +0000 Subject: [PATCH 24/33] chore(ci): support manually triggering release workflow --- .github/workflows/publish-release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index 263859c..0858063 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -10,6 +10,7 @@ on: push: tags: - "v*" + workflow_dispatch: {} jobs: goreleaser: runs-on: ubuntu-latest From 4dc58248eec53b50faf98eb2869e27ddf15618d4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 17 Apr 2026 04:29:09 +0000 Subject: [PATCH 25/33] feat(cli): send filename and content type when reading input from files --- pkg/cmd/flagoptions.go | 65 +++++++++++++++++++++++++++++++++++-- pkg/cmd/flagoptions_test.go | 59 ++++++++++++++++++++++++++++++--- 2 files changed, 117 insertions(+), 7 deletions(-) diff --git a/pkg/cmd/flagoptions.go b/pkg/cmd/flagoptions.go index 1ad860c..d72942b 100644 --- a/pkg/cmd/flagoptions.go +++ b/pkg/cmd/flagoptions.go @@ -7,9 +7,11 @@ import ( "fmt" "io" "maps" + "mime" "mime/multipart" "net/http" "os" + "path/filepath" "reflect" "strings" "unicode/utf8" @@ -36,7 +38,14 @@ const ( type FileEmbedStyle int const ( + // EmbedText reads referenced files fully into memory and substitutes the file's contents back into the + // value as a string. Binary files are base64-encoded. Used for JSON request bodies and for headers and + // query parameters, where the file contents need to be serialized inline. EmbedText FileEmbedStyle = iota + + // EmbedIOReader replaces file references with an io.Reader that streams the file's contents. Used for + // `multipart/form-data` and `application/octet-stream` request bodies, where files are uploaded as binary + // parts rather than embedded into a text value. EmbedIOReader ) @@ -142,6 +151,20 @@ func embedFilesValue(v reflect.Value, embedStyle FileEmbedStyle, stdin *onceStdi if s == "" { return v, nil } + if embedStyle == EmbedIOReader { + if isStdinPath(s) { + r, err := stdin.read() + if err != nil { + return v, err + } + return reflect.ValueOf(io.NopCloser(r)), nil + } + upload, err := openFileUpload(s) + if err != nil { + return v, err + } + return reflect.ValueOf(upload), nil + } if isStdinPath(s) { content, err := stdin.readAll() if err != nil { @@ -250,7 +273,7 @@ func embedFilesValue(v reflect.Value, embedStyle FileEmbedStyle, stdin *onceStdi return reflect.ValueOf(io.NopCloser(r)), nil } - file, err := os.Open(filename) + upload, err := openFileUpload(filename) if err != nil { if !expectsFile { // For strings that start with "@" and don't look like a filename, return the string @@ -258,7 +281,7 @@ func embedFilesValue(v reflect.Value, embedStyle FileEmbedStyle, stdin *onceStdi } return v, err } - return reflect.ValueOf(file), nil + return reflect.ValueOf(upload), nil } } return v, nil @@ -492,6 +515,44 @@ func flagOptions( // as a file path without needing the "@" prefix. type FilePathValue string +// fileUpload wraps an io.Reader with filename and content-type metadata for +// use as a multipart form part. The apiform encoder detects the Filename and +// ContentType methods and uses them to populate the Content-Disposition +// filename and the Content-Type header on the part. +type fileUpload struct { + io.Reader // apiform checks for reader and reads its contents during encode + filename string + contentType string +} + +func (f fileUpload) Filename() string { return f.filename } +func (f fileUpload) ContentType() string { return f.contentType } +func (f fileUpload) Close() error { + if c, ok := f.Reader.(io.Closer); ok { + return c.Close() + } + return nil +} + +// openFileUpload opens the file at path and returns a fileUpload whose filename +// is the path's basename and whose content type is derived from the file +// extension (falling back to application/octet-stream when unknown). +func openFileUpload(path string) (fileUpload, error) { + file, err := os.Open(path) + if err != nil { + return fileUpload{}, err + } + contentType := mime.TypeByExtension(filepath.Ext(path)) + if contentType == "" { + contentType = "application/octet-stream" + } + return fileUpload{ + Reader: file, + filename: filepath.Base(path), + contentType: contentType, + }, nil +} + // applyDataAliases rewrites keys in a body map based on flag `DataAliases` metadata. For top-level flags, // `{alias: value}` becomes `{canonical: value}`. For inner flags (those registered under an outer flag // via WithInnerFlags), the alias translation is also applied to the nested map under the outer flag's diff --git a/pkg/cmd/flagoptions_test.go b/pkg/cmd/flagoptions_test.go index 039b9ff..00734ca 100644 --- a/pkg/cmd/flagoptions_test.go +++ b/pkg/cmd/flagoptions_test.go @@ -8,7 +8,6 @@ import ( "strings" "testing" - "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -31,7 +30,7 @@ func TestIsUTF8TextFile(t *testing.T) { } for _, tt := range tests { - assert.Equal(t, tt.expected, isUTF8TextFile(tt.content)) + require.Equal(t, tt.expected, isUTF8TextFile(tt.content)) } } @@ -226,10 +225,10 @@ func TestEmbedFiles(t *testing.T) { got, err := embedFiles(tt.input, EmbedText, nil) if tt.wantErr { - assert.Error(t, err) + require.Error(t, err) } else { require.NoError(t, err) - assert.Equal(t, tt.want, got) + require.Equal(t, tt.want, got) } }) @@ -238,7 +237,7 @@ func TestEmbedFiles(t *testing.T) { _, err := embedFiles(tt.input, EmbedIOReader, nil) if tt.wantErr { - assert.Error(t, err) + require.Error(t, err) } else { require.NoError(t, err) } @@ -333,6 +332,56 @@ func TestEmbedFilesStdin(t *testing.T) { }) } +// TestEmbedFilesUploadMetadata verifies that EmbedIOReader mode wraps file readers with filename and +// content-type metadata so the multipart encoder populates `Content-Disposition` and `Content-Type` headers. +func TestEmbedFilesUploadMetadata(t *testing.T) { + t.Parallel() + + tmpDir := t.TempDir() + writeTestFile(t, tmpDir, "hello.txt", "hi") + writeTestFile(t, tmpDir, "page.html", "") + writeTestFile(t, tmpDir, "blob.bin", "\x00\x01") + + cases := []struct { + basename string + wantContentType string + }{ + {"hello.txt", "text/plain; charset=utf-8"}, + {"page.html", "text/html; charset=utf-8"}, + {"blob.bin", "application/octet-stream"}, + } + + for _, tc := range cases { + t.Run("AtPrefix_"+tc.basename, func(t *testing.T) { + t.Parallel() + + path := filepath.Join(tmpDir, tc.basename) + withEmbedded, err := embedFiles(map[string]any{"file": "@" + path}, EmbedIOReader, nil) + require.NoError(t, err) + + upload, ok := withEmbedded.(map[string]any)["file"].(fileUpload) + require.True(t, ok, "expected fileUpload, got %T", withEmbedded.(map[string]any)["file"]) + require.Equal(t, tc.basename, upload.Filename()) + require.Equal(t, upload.ContentType(), tc.wantContentType) + require.NoError(t, upload.Close()) + }) + + t.Run("FilePathValue_"+tc.basename, func(t *testing.T) { + t.Parallel() + + path := filepath.Join(tmpDir, tc.basename) + withEmbedded, err := embedFiles(map[string]any{"file": FilePathValue(path)}, EmbedIOReader, nil) + require.NoError(t, err) + + upload, ok := withEmbedded.(map[string]any)["file"].(fileUpload) + require.True(t, ok, "expected fileUpload, got %T", withEmbedded.(map[string]any)["file"]) + require.Equal(t, tc.basename, upload.Filename()) + require.Equal(t, upload.ContentType(), tc.wantContentType) + require.NoError(t, upload.Close()) + }) + } +} + func writeTestFile(t *testing.T, dir, filename, content string) { t.Helper() From 28be4fac015d4fa532e8714b15634baafab111c0 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 17 Apr 2026 04:31:32 +0000 Subject: [PATCH 26/33] feat(cli): add `--raw-output`/`-r` option to print raw (non-JSON) strings --- pkg/cmd/account.go | 3 +++ pkg/cmd/apikey.go | 3 +++ pkg/cmd/cmd.go | 5 +++++ pkg/cmd/cmdutil.go | 14 ++++++++++---- pkg/cmd/cmdutil_test.go | 37 +++++++++++++++++++++++++++++++++---- pkg/cmd/compose.go | 1 + pkg/cmd/credit.go | 2 ++ pkg/cmd/draft.go | 3 +++ pkg/cmd/draw.go | 3 +++ pkg/cmd/event.go | 2 ++ pkg/cmd/extraction.go | 4 ++++ pkg/cmd/integration.go | 7 +++++++ pkg/cmd/monitor.go | 5 +++++ pkg/cmd/radar.go | 1 + pkg/cmd/style.go | 6 ++++++ pkg/cmd/subscribe.go | 1 + pkg/cmd/supportticket.go | 5 +++++ pkg/cmd/trend.go | 1 + pkg/cmd/webhook.go | 6 ++++++ pkg/cmd/x.go | 4 ++++ pkg/cmd/xaccount.go | 6 ++++++ pkg/cmd/xbookmark.go | 2 ++ pkg/cmd/xcommunity.go | 6 ++++++ pkg/cmd/xcommunityjoin.go | 2 ++ pkg/cmd/xcommunitytweet.go | 2 ++ pkg/cmd/xdm.go | 2 ++ pkg/cmd/xfollower.go | 1 + pkg/cmd/xlist.go | 3 +++ pkg/cmd/xmedia.go | 2 ++ pkg/cmd/xprofile.go | 3 +++ pkg/cmd/xtweet.go | 10 ++++++++++ pkg/cmd/xtweetlike.go | 2 ++ pkg/cmd/xtweetretweet.go | 2 ++ pkg/cmd/xuser.go | 11 +++++++++++ pkg/cmd/xuserfollow.go | 2 ++ 35 files changed, 161 insertions(+), 8 deletions(-) diff --git a/pkg/cmd/account.go b/pkg/cmd/account.go index b88d702..16bb4d2 100644 --- a/pkg/cmd/account.go +++ b/pkg/cmd/account.go @@ -88,6 +88,7 @@ func handleAccountRetrieve(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "account retrieve", Transform: transform, }) @@ -128,6 +129,7 @@ func handleAccountSetXUsername(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "account set-x-username", Transform: transform, }) @@ -168,6 +170,7 @@ func handleAccountUpdateLocale(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "account update-locale", Transform: transform, }) diff --git a/pkg/cmd/apikey.go b/pkg/cmd/apikey.go index b4dee9c..fe45882 100644 --- a/pkg/cmd/apikey.go +++ b/pkg/cmd/apikey.go @@ -86,6 +86,7 @@ func handleAPIKeysCreate(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "api-keys create", Transform: transform, }) @@ -124,6 +125,7 @@ func handleAPIKeysList(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "api-keys list", Transform: transform, }) @@ -165,6 +167,7 @@ func handleAPIKeysRevoke(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "api-keys revoke", Transform: transform, }) diff --git a/pkg/cmd/cmd.go b/pkg/cmd/cmd.go index cfe9095..d6a402a 100644 --- a/pkg/cmd/cmd.go +++ b/pkg/cmd/cmd.go @@ -73,6 +73,11 @@ func init() { Name: "transform-error", Usage: "The GJSON transformation for errors.", }, + &cli.BoolFlag{ + Name: "raw-output", + Aliases: []string{"r"}, + Usage: "If the result is a string, print it without JSON quotes. This can be useful for making output transforms talk to non-JSON-based systems.", + }, &requestflag.Flag[string]{ Name: "api-key", Sources: cli.EnvVars("X_TWITTER_SCRAPER_API_KEY"), diff --git a/pkg/cmd/cmdutil.go b/pkg/cmd/cmdutil.go index e6f3f85..8b2e37a 100644 --- a/pkg/cmd/cmdutil.go +++ b/pkg/cmd/cmdutil.go @@ -314,16 +314,21 @@ func shouldUseColors(w io.Writer) bool { return isTerminal(w) } -func formatJSON(expectedOutput *os.File, title string, res gjson.Result, format string, transform string) ([]byte, error) { +func formatJSON(expectedOutput *os.File, title string, res gjson.Result, format string, transform string, rawOutput bool) ([]byte, error) { if transform != "" { transformed := res.Get(transform) if transformed.Exists() { res = transformed } } + // Modeled after `jq -r` (`--raw-output`): if the result is a string, print it without JSON quotes so that + // it's easier to pipe into other programs. + if rawOutput && res.Type == gjson.String { + return []byte(res.Str + "\n"), nil + } switch strings.ToLower(format) { case "auto": - return formatJSON(expectedOutput, title, res, "json", "") + return formatJSON(expectedOutput, title, res, "json", "", rawOutput) case "pretty": return []byte(jsonview.RenderJSON(title, res) + "\n"), nil case "json": @@ -363,6 +368,7 @@ const warningExploreNotSupported = "Warning: Output format 'explore' not support type ShowJSONOpts struct { ExplicitFormat bool // true if the user explicitly passed --format Format string // output format (auto, explore, json, jsonl, pretty, raw, yaml) + RawOutput bool // like jq -r: print strings without JSON quotes Stderr io.Writer // stderr for warnings; injectable for testing; defaults to os.Stderr Stdout *os.File // stdout (or pager); injectable for testing; defaults to os.Stdout Title string // display title @@ -405,7 +411,7 @@ func ShowJSON(res gjson.Result, opts ShowJSONOpts) error { } return jsonview.ExploreJSON(opts.Title, res) default: - bytes, err := formatJSON(opts.Stdout, opts.Title, res, opts.Format, opts.Transform) + bytes, err := formatJSON(opts.Stdout, opts.Title, res, opts.Format, opts.Transform, opts.RawOutput) if err != nil { return err } @@ -462,7 +468,7 @@ func ShowJSONIterator[T any](iter jsonview.Iterator[T], itemsToDisplay int64, op } obj = gjson.ParseBytes(jsonData) } - json, err := formatJSON(opts.Stdout, opts.Title, obj, format, opts.Transform) + json, err := formatJSON(opts.Stdout, opts.Title, obj, format, opts.Transform, opts.RawOutput) if err != nil { return err } diff --git a/pkg/cmd/cmdutil_test.go b/pkg/cmd/cmdutil_test.go index 1e38d9c..78d2d91 100644 --- a/pkg/cmd/cmdutil_test.go +++ b/pkg/cmd/cmdutil_test.go @@ -159,7 +159,7 @@ func TestFormatJSON(t *testing.T) { t.Parallel() res := gjson.Parse(`{"id":"abc123","name":"test"}`) - formatted, err := formatJSON(os.Stdout, "test", res, "raw", "id") + formatted, err := formatJSON(os.Stdout, "test", res, "raw", "id", false) require.NoError(t, err) require.Equal(t, `"abc123"`+"\n", string(formatted)) }) @@ -168,7 +168,7 @@ func TestFormatJSON(t *testing.T) { t.Parallel() res := gjson.Parse(`{"id":"abc123","name":"test"}`) - formatted, err := formatJSON(os.Stdout, "test", res, "raw", "") + formatted, err := formatJSON(os.Stdout, "test", res, "raw", "", false) require.NoError(t, err) require.Equal(t, `{"id":"abc123","name":"test"}`+"\n", string(formatted)) }) @@ -177,7 +177,7 @@ func TestFormatJSON(t *testing.T) { t.Parallel() res := gjson.Parse(`{"data":{"items":[1,2,3]}}`) - formatted, err := formatJSON(os.Stdout, "test", res, "raw", "data.items") + formatted, err := formatJSON(os.Stdout, "test", res, "raw", "data.items", false) require.NoError(t, err) require.Equal(t, "[1,2,3]\n", string(formatted)) }) @@ -186,11 +186,40 @@ func TestFormatJSON(t *testing.T) { t.Parallel() res := gjson.Parse(`{"id":"abc123"}`) - formatted, err := formatJSON(os.Stdout, "test", res, "raw", "missing") + formatted, err := formatJSON(os.Stdout, "test", res, "raw", "missing", false) require.NoError(t, err) // Transform path doesn't exist, so original result is returned require.Equal(t, `{"id":"abc123"}`+"\n", string(formatted)) }) + + t.Run("RawOutputString", func(t *testing.T) { + t.Parallel() + + res := gjson.Parse(`{"id":"abc123","name":"test"}`) + formatted, err := formatJSON(os.Stdout, "test", res, "json", "id", true) + require.NoError(t, err) + require.Equal(t, "abc123\n", string(formatted)) + }) + + t.Run("RawOutputNonString", func(t *testing.T) { + t.Parallel() + + // --raw-output has no effect on non-string values + res := gjson.Parse(`{"count":42}`) + formatted, err := formatJSON(os.Stdout, "test", res, "raw", "count", true) + require.NoError(t, err) + require.Equal(t, "42\n", string(formatted)) + }) + + t.Run("RawOutputObject", func(t *testing.T) { + t.Parallel() + + // --raw-output has no effect on objects + res := gjson.Parse(`{"nested":{"a":1}}`) + formatted, err := formatJSON(os.Stdout, "test", res, "raw", "nested", true) + require.NoError(t, err) + require.Equal(t, `{"a":1}`+"\n", string(formatted)) + }) } func TestShowJSONIterator(t *testing.T) { diff --git a/pkg/cmd/compose.go b/pkg/cmd/compose.go index a7e48e5..5961afa 100644 --- a/pkg/cmd/compose.go +++ b/pkg/cmd/compose.go @@ -115,6 +115,7 @@ func handleComposeCreate(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "compose create", Transform: transform, }) diff --git a/pkg/cmd/credit.go b/pkg/cmd/credit.go index 274154c..43ffdf5 100644 --- a/pkg/cmd/credit.go +++ b/pkg/cmd/credit.go @@ -72,6 +72,7 @@ func handleCreditsRetrieveBalance(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "credits retrieve-balance", Transform: transform, }) @@ -112,6 +113,7 @@ func handleCreditsTopupBalance(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "credits topup-balance", Transform: transform, }) diff --git a/pkg/cmd/draft.go b/pkg/cmd/draft.go index 4dc3263..0203e0d 100644 --- a/pkg/cmd/draft.go +++ b/pkg/cmd/draft.go @@ -122,6 +122,7 @@ func handleDraftsCreate(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "drafts create", Transform: transform, }) @@ -163,6 +164,7 @@ func handleDraftsRetrieve(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "drafts retrieve", Transform: transform, }) @@ -203,6 +205,7 @@ func handleDraftsList(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "drafts list", Transform: transform, }) diff --git a/pkg/cmd/draw.go b/pkg/cmd/draw.go index 53d82e8..1065994 100644 --- a/pkg/cmd/draw.go +++ b/pkg/cmd/draw.go @@ -177,6 +177,7 @@ func handleDrawsRetrieve(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "draws retrieve", Transform: transform, }) @@ -217,6 +218,7 @@ func handleDrawsList(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "draws list", Transform: transform, }) @@ -297,6 +299,7 @@ func handleDrawsRun(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "draws run", Transform: transform, }) diff --git a/pkg/cmd/event.go b/pkg/cmd/event.go index 5662fda..9de8267 100644 --- a/pkg/cmd/event.go +++ b/pkg/cmd/event.go @@ -95,6 +95,7 @@ func handleEventsRetrieve(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "events retrieve", Transform: transform, }) @@ -135,6 +136,7 @@ func handleEventsList(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "events list", Transform: transform, }) diff --git a/pkg/cmd/extraction.go b/pkg/cmd/extraction.go index 70b810a..2571bfc 100644 --- a/pkg/cmd/extraction.go +++ b/pkg/cmd/extraction.go @@ -249,6 +249,7 @@ func handleExtractionsRetrieve(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "extractions retrieve", Transform: transform, }) @@ -289,6 +290,7 @@ func handleExtractionsList(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "extractions list", Transform: transform, }) @@ -329,6 +331,7 @@ func handleExtractionsEstimateCost(ctx context.Context, cmd *cli.Command) error return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "extractions estimate-cost", Transform: transform, }) @@ -409,6 +412,7 @@ func handleExtractionsRun(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "extractions run", Transform: transform, }) diff --git a/pkg/cmd/integration.go b/pkg/cmd/integration.go index 565c8f8..d47ce6e 100644 --- a/pkg/cmd/integration.go +++ b/pkg/cmd/integration.go @@ -206,6 +206,7 @@ func handleIntegrationsCreate(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "integrations create", Transform: transform, }) @@ -247,6 +248,7 @@ func handleIntegrationsRetrieve(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "integrations retrieve", Transform: transform, }) @@ -295,6 +297,7 @@ func handleIntegrationsUpdate(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "integrations update", Transform: transform, }) @@ -333,6 +336,7 @@ func handleIntegrationsList(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "integrations list", Transform: transform, }) @@ -374,6 +378,7 @@ func handleIntegrationsDelete(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "integrations delete", Transform: transform, }) @@ -422,6 +427,7 @@ func handleIntegrationsListDeliveries(ctx context.Context, cmd *cli.Command) err return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "integrations list-deliveries", Transform: transform, }) @@ -463,6 +469,7 @@ func handleIntegrationsSendTest(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "integrations send-test", Transform: transform, }) diff --git a/pkg/cmd/monitor.go b/pkg/cmd/monitor.go index 3bb3715..c6f0cba 100644 --- a/pkg/cmd/monitor.go +++ b/pkg/cmd/monitor.go @@ -131,6 +131,7 @@ func handleMonitorsCreate(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "monitors create", Transform: transform, }) @@ -172,6 +173,7 @@ func handleMonitorsRetrieve(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "monitors retrieve", Transform: transform, }) @@ -220,6 +222,7 @@ func handleMonitorsUpdate(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "monitors update", Transform: transform, }) @@ -258,6 +261,7 @@ func handleMonitorsList(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "monitors list", Transform: transform, }) @@ -299,6 +303,7 @@ func handleMonitorsDeactivate(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "monitors deactivate", Transform: transform, }) diff --git a/pkg/cmd/radar.go b/pkg/cmd/radar.go index d78792a..b786808 100644 --- a/pkg/cmd/radar.go +++ b/pkg/cmd/radar.go @@ -84,6 +84,7 @@ func handleRadarRetrieveTrendingTopics(ctx context.Context, cmd *cli.Command) er return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "radar retrieve-trending-topics", Transform: transform, }) diff --git a/pkg/cmd/style.go b/pkg/cmd/style.go index 4541239..7209aa9 100644 --- a/pkg/cmd/style.go +++ b/pkg/cmd/style.go @@ -172,6 +172,7 @@ func handleStylesRetrieve(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "styles retrieve", Transform: transform, }) @@ -220,6 +221,7 @@ func handleStylesUpdate(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "styles update", Transform: transform, }) @@ -258,6 +260,7 @@ func handleStylesList(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "styles list", Transform: transform, }) @@ -323,6 +326,7 @@ func handleStylesAnalyze(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "styles analyze", Transform: transform, }) @@ -363,6 +367,7 @@ func handleStylesCompare(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "styles compare", Transform: transform, }) @@ -404,6 +409,7 @@ func handleStylesGetPerformance(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "styles get-performance", Transform: transform, }) diff --git a/pkg/cmd/subscribe.go b/pkg/cmd/subscribe.go index bd86f20..8f5f5ae 100644 --- a/pkg/cmd/subscribe.go +++ b/pkg/cmd/subscribe.go @@ -55,6 +55,7 @@ func handleSubscribeCreate(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "subscribe create", Transform: transform, }) diff --git a/pkg/cmd/supportticket.go b/pkg/cmd/supportticket.go index 3a6378f..68f6b01 100644 --- a/pkg/cmd/supportticket.go +++ b/pkg/cmd/supportticket.go @@ -131,6 +131,7 @@ func handleSupportTicketsCreate(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "support:tickets create", Transform: transform, }) @@ -172,6 +173,7 @@ func handleSupportTicketsRetrieve(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "support:tickets retrieve", Transform: transform, }) @@ -220,6 +222,7 @@ func handleSupportTicketsUpdate(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "support:tickets update", Transform: transform, }) @@ -258,6 +261,7 @@ func handleSupportTicketsList(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "support:tickets list", Transform: transform, }) @@ -306,6 +310,7 @@ func handleSupportTicketsReply(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "support:tickets reply", Transform: transform, }) diff --git a/pkg/cmd/trend.go b/pkg/cmd/trend.go index c832d9a..d379ec1 100644 --- a/pkg/cmd/trend.go +++ b/pkg/cmd/trend.go @@ -71,6 +71,7 @@ func handleTrendsList(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "trends list", Transform: transform, }) diff --git a/pkg/cmd/webhook.go b/pkg/cmd/webhook.go index 1aaf43b..5e15284 100644 --- a/pkg/cmd/webhook.go +++ b/pkg/cmd/webhook.go @@ -149,6 +149,7 @@ func handleWebhooksCreate(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "webhooks create", Transform: transform, }) @@ -197,6 +198,7 @@ func handleWebhooksUpdate(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "webhooks update", Transform: transform, }) @@ -235,6 +237,7 @@ func handleWebhooksList(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "webhooks list", Transform: transform, }) @@ -276,6 +279,7 @@ func handleWebhooksDeactivate(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "webhooks deactivate", Transform: transform, }) @@ -317,6 +321,7 @@ func handleWebhooksListDeliveries(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "webhooks list-deliveries", Transform: transform, }) @@ -358,6 +363,7 @@ func handleWebhooksTest(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "webhooks test", Transform: transform, }) diff --git a/pkg/cmd/x.go b/pkg/cmd/x.go index 51954ef..ebd7f78 100644 --- a/pkg/cmd/x.go +++ b/pkg/cmd/x.go @@ -127,6 +127,7 @@ func handleXGetArticle(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x get-article", Transform: transform, }) @@ -167,6 +168,7 @@ func handleXGetHomeTimeline(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x get-home-timeline", Transform: transform, }) @@ -207,6 +209,7 @@ func handleXGetNotifications(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x get-notifications", Transform: transform, }) @@ -247,6 +250,7 @@ func handleXGetTrends(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x get-trends", Transform: transform, }) diff --git a/pkg/cmd/xaccount.go b/pkg/cmd/xaccount.go index db56cca..1614d75 100644 --- a/pkg/cmd/xaccount.go +++ b/pkg/cmd/xaccount.go @@ -158,6 +158,7 @@ func handleXAccountsCreate(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:accounts create", Transform: transform, }) @@ -199,6 +200,7 @@ func handleXAccountsRetrieve(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:accounts retrieve", Transform: transform, }) @@ -237,6 +239,7 @@ func handleXAccountsList(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:accounts list", Transform: transform, }) @@ -278,6 +281,7 @@ func handleXAccountsDelete(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:accounts delete", Transform: transform, }) @@ -316,6 +320,7 @@ func handleXAccountsBulkRetry(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:accounts bulk-retry", Transform: transform, }) @@ -364,6 +369,7 @@ func handleXAccountsReauth(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:accounts reauth", Transform: transform, }) diff --git a/pkg/cmd/xbookmark.go b/pkg/cmd/xbookmark.go index 628d2f1..b1bd203 100644 --- a/pkg/cmd/xbookmark.go +++ b/pkg/cmd/xbookmark.go @@ -78,6 +78,7 @@ func handleXBookmarksList(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:bookmarks list", Transform: transform, }) @@ -116,6 +117,7 @@ func handleXBookmarksRetrieveFolders(ctx context.Context, cmd *cli.Command) erro return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:bookmarks retrieve-folders", Transform: transform, }) diff --git a/pkg/cmd/xcommunity.go b/pkg/cmd/xcommunity.go index 4ac0ad8..dfe67de 100644 --- a/pkg/cmd/xcommunity.go +++ b/pkg/cmd/xcommunity.go @@ -180,6 +180,7 @@ func handleXCommunitiesCreate(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:communities create", Transform: transform, }) @@ -228,6 +229,7 @@ func handleXCommunitiesDelete(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:communities delete", Transform: transform, }) @@ -269,6 +271,7 @@ func handleXCommunitiesRetrieveInfo(ctx context.Context, cmd *cli.Command) error return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:communities retrieve-info", Transform: transform, }) @@ -317,6 +320,7 @@ func handleXCommunitiesRetrieveMembers(ctx context.Context, cmd *cli.Command) er return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:communities retrieve-members", Transform: transform, }) @@ -365,6 +369,7 @@ func handleXCommunitiesRetrieveModerators(ctx context.Context, cmd *cli.Command) return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:communities retrieve-moderators", Transform: transform, }) @@ -405,6 +410,7 @@ func handleXCommunitiesRetrieveSearch(ctx context.Context, cmd *cli.Command) err return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:communities retrieve-search", Transform: transform, }) diff --git a/pkg/cmd/xcommunityjoin.go b/pkg/cmd/xcommunityjoin.go index e324801..d973e65 100644 --- a/pkg/cmd/xcommunityjoin.go +++ b/pkg/cmd/xcommunityjoin.go @@ -97,6 +97,7 @@ func handleXCommunitiesJoinCreate(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:communities:join create", Transform: transform, }) @@ -145,6 +146,7 @@ func handleXCommunitiesJoinDeleteAll(ctx context.Context, cmd *cli.Command) erro return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:communities:join delete-all", Transform: transform, }) diff --git a/pkg/cmd/xcommunitytweet.go b/pkg/cmd/xcommunitytweet.go index 9a5c64b..2c63e08 100644 --- a/pkg/cmd/xcommunitytweet.go +++ b/pkg/cmd/xcommunitytweet.go @@ -94,6 +94,7 @@ func handleXCommunitiesTweetsList(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:communities:tweets list", Transform: transform, }) @@ -142,6 +143,7 @@ func handleXCommunitiesTweetsListByCommunity(ctx context.Context, cmd *cli.Comma return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:communities:tweets list-by-community", Transform: transform, }) diff --git a/pkg/cmd/xdm.go b/pkg/cmd/xdm.go index 6ae9af8..7772871 100644 --- a/pkg/cmd/xdm.go +++ b/pkg/cmd/xdm.go @@ -114,6 +114,7 @@ func handleXDmRetrieveHistory(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:dm retrieve-history", Transform: transform, }) @@ -162,6 +163,7 @@ func handleXDmSend(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:dm send", Transform: transform, }) diff --git a/pkg/cmd/xfollower.go b/pkg/cmd/xfollower.go index 05e1894..2d1ab4b 100644 --- a/pkg/cmd/xfollower.go +++ b/pkg/cmd/xfollower.go @@ -71,6 +71,7 @@ func handleXFollowersCheck(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:followers check", Transform: transform, }) diff --git a/pkg/cmd/xlist.go b/pkg/cmd/xlist.go index 8e66ad1..5d9f097 100644 --- a/pkg/cmd/xlist.go +++ b/pkg/cmd/xlist.go @@ -129,6 +129,7 @@ func handleXListsRetrieveFollowers(ctx context.Context, cmd *cli.Command) error return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:lists retrieve-followers", Transform: transform, }) @@ -177,6 +178,7 @@ func handleXListsRetrieveMembers(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:lists retrieve-members", Transform: transform, }) @@ -225,6 +227,7 @@ func handleXListsRetrieveTweets(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:lists retrieve-tweets", Transform: transform, }) diff --git a/pkg/cmd/xmedia.go b/pkg/cmd/xmedia.go index c18834d..021fcb3 100644 --- a/pkg/cmd/xmedia.go +++ b/pkg/cmd/xmedia.go @@ -96,6 +96,7 @@ func handleXMediaDownload(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:media download", Transform: transform, }) @@ -136,6 +137,7 @@ func handleXMediaUpload(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:media upload", Transform: transform, }) diff --git a/pkg/cmd/xprofile.go b/pkg/cmd/xprofile.go index cb25d4f..4f318ef 100644 --- a/pkg/cmd/xprofile.go +++ b/pkg/cmd/xprofile.go @@ -130,6 +130,7 @@ func handleXProfileUpdate(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:profile update", Transform: transform, }) @@ -170,6 +171,7 @@ func handleXProfileUpdateAvatar(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:profile update-avatar", Transform: transform, }) @@ -210,6 +212,7 @@ func handleXProfileUpdateBanner(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:profile update-banner", Transform: transform, }) diff --git a/pkg/cmd/xtweet.go b/pkg/cmd/xtweet.go index f20006f..c39022f 100644 --- a/pkg/cmd/xtweet.go +++ b/pkg/cmd/xtweet.go @@ -303,6 +303,7 @@ func handleXTweetsCreate(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:tweets create", Transform: transform, }) @@ -344,6 +345,7 @@ func handleXTweetsRetrieve(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:tweets retrieve", Transform: transform, }) @@ -384,6 +386,7 @@ func handleXTweetsList(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:tweets list", Transform: transform, }) @@ -432,6 +435,7 @@ func handleXTweetsDelete(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:tweets delete", Transform: transform, }) @@ -480,6 +484,7 @@ func handleXTweetsGetFavoriters(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:tweets get-favoriters", Transform: transform, }) @@ -528,6 +533,7 @@ func handleXTweetsGetQuotes(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:tweets get-quotes", Transform: transform, }) @@ -576,6 +582,7 @@ func handleXTweetsGetReplies(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:tweets get-replies", Transform: transform, }) @@ -624,6 +631,7 @@ func handleXTweetsGetRetweeters(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:tweets get-retweeters", Transform: transform, }) @@ -672,6 +680,7 @@ func handleXTweetsGetThread(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:tweets get-thread", Transform: transform, }) @@ -712,6 +721,7 @@ func handleXTweetsSearch(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:tweets search", Transform: transform, }) diff --git a/pkg/cmd/xtweetlike.go b/pkg/cmd/xtweetlike.go index a23c290..246ca59 100644 --- a/pkg/cmd/xtweetlike.go +++ b/pkg/cmd/xtweetlike.go @@ -97,6 +97,7 @@ func handleXTweetsLikeCreate(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:tweets:like create", Transform: transform, }) @@ -145,6 +146,7 @@ func handleXTweetsLikeDelete(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:tweets:like delete", Transform: transform, }) diff --git a/pkg/cmd/xtweetretweet.go b/pkg/cmd/xtweetretweet.go index ced70bd..32605ef 100644 --- a/pkg/cmd/xtweetretweet.go +++ b/pkg/cmd/xtweetretweet.go @@ -97,6 +97,7 @@ func handleXTweetsRetweetCreate(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:tweets:retweet create", Transform: transform, }) @@ -145,6 +146,7 @@ func handleXTweetsRetweetDelete(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:tweets:retweet delete", Transform: transform, }) diff --git a/pkg/cmd/xuser.go b/pkg/cmd/xuser.go index 65e6cee..44b6184 100644 --- a/pkg/cmd/xuser.go +++ b/pkg/cmd/xuser.go @@ -285,6 +285,7 @@ func handleXUsersRetrieve(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:users retrieve", Transform: transform, }) @@ -325,6 +326,7 @@ func handleXUsersRetrieveBatch(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:users retrieve-batch", Transform: transform, }) @@ -373,6 +375,7 @@ func handleXUsersRetrieveFollowers(ctx context.Context, cmd *cli.Command) error return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:users retrieve-followers", Transform: transform, }) @@ -421,6 +424,7 @@ func handleXUsersRetrieveFollowersYouKnow(ctx context.Context, cmd *cli.Command) return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:users retrieve-followers-you-know", Transform: transform, }) @@ -469,6 +473,7 @@ func handleXUsersRetrieveFollowing(ctx context.Context, cmd *cli.Command) error return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:users retrieve-following", Transform: transform, }) @@ -517,6 +522,7 @@ func handleXUsersRetrieveLikes(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:users retrieve-likes", Transform: transform, }) @@ -565,6 +571,7 @@ func handleXUsersRetrieveMedia(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:users retrieve-media", Transform: transform, }) @@ -613,6 +620,7 @@ func handleXUsersRetrieveMentions(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:users retrieve-mentions", Transform: transform, }) @@ -653,6 +661,7 @@ func handleXUsersRetrieveSearch(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:users retrieve-search", Transform: transform, }) @@ -701,6 +710,7 @@ func handleXUsersRetrieveTweets(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:users retrieve-tweets", Transform: transform, }) @@ -749,6 +759,7 @@ func handleXUsersRetrieveVerifiedFollowers(ctx context.Context, cmd *cli.Command return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:users retrieve-verified-followers", Transform: transform, }) diff --git a/pkg/cmd/xuserfollow.go b/pkg/cmd/xuserfollow.go index 20e99c8..f425db2 100644 --- a/pkg/cmd/xuserfollow.go +++ b/pkg/cmd/xuserfollow.go @@ -97,6 +97,7 @@ func handleXUsersFollowCreate(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:users:follow create", Transform: transform, }) @@ -145,6 +146,7 @@ func handleXUsersFollowDeleteAll(ctx context.Context, cmd *cli.Command) error { return ShowJSON(obj, ShowJSONOpts{ ExplicitFormat: explicitFormat, Format: format, + RawOutput: cmd.Root().Bool("raw-output"), Title: "x:users:follow delete-all", Transform: transform, }) From 9a344724e7f20169211f27eb1f3d3122a7aa78ca Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 18 Apr 2026 04:31:55 +0000 Subject: [PATCH 27/33] chore(cli): use `ShowJSONOpts` as argument to `formatJSON` instead of many positionals --- pkg/cmd/cmdutil.go | 54 ++++++++++++++++++++--------------------- pkg/cmd/cmdutil_test.go | 14 +++++------ 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/pkg/cmd/cmdutil.go b/pkg/cmd/cmdutil.go index 8b2e37a..f90f876 100644 --- a/pkg/cmd/cmdutil.go +++ b/pkg/cmd/cmdutil.go @@ -314,26 +314,29 @@ func shouldUseColors(w io.Writer) bool { return isTerminal(w) } -func formatJSON(expectedOutput *os.File, title string, res gjson.Result, format string, transform string, rawOutput bool) ([]byte, error) { - if transform != "" { - transformed := res.Get(transform) +func formatJSON(res gjson.Result, opts ShowJSONOpts) ([]byte, error) { + if opts.Transform != "" { + transformed := res.Get(opts.Transform) if transformed.Exists() { res = transformed } } // Modeled after `jq -r` (`--raw-output`): if the result is a string, print it without JSON quotes so that // it's easier to pipe into other programs. - if rawOutput && res.Type == gjson.String { + if opts.RawOutput && res.Type == gjson.String { return []byte(res.Str + "\n"), nil } - switch strings.ToLower(format) { + switch strings.ToLower(opts.Format) { case "auto": - return formatJSON(expectedOutput, title, res, "json", "", rawOutput) + autoOpts := opts + autoOpts.Format = "json" + autoOpts.Transform = "" + return formatJSON(res, autoOpts) case "pretty": - return []byte(jsonview.RenderJSON(title, res) + "\n"), nil + return []byte(jsonview.RenderJSON(opts.Title, res) + "\n"), nil case "json": prettyJSON := pretty.Pretty([]byte(res.Raw)) - if shouldUseColors(expectedOutput) { + if shouldUseColors(opts.Stdout) { return pretty.Color(prettyJSON, pretty.TerminalStyle), nil } else { return prettyJSON, nil @@ -341,7 +344,7 @@ func formatJSON(expectedOutput *os.File, title string, res gjson.Result, format case "jsonl": // @ugly is gjson syntax for "no whitespace", so it fits on one line oneLineJSON := res.Get("@ugly").Raw - if shouldUseColors(expectedOutput) { + if shouldUseColors(opts.Stdout) { bytes := append(pretty.Color([]byte(oneLineJSON), pretty.TerminalStyle), '\n') return bytes, nil } else { @@ -355,10 +358,10 @@ func formatJSON(expectedOutput *os.File, title string, res gjson.Result, format if err := json2yaml.Convert(&yaml, input); err != nil { return nil, err } - _, err := expectedOutput.Write([]byte(yaml.String())) + _, err := opts.Stdout.Write([]byte(yaml.String())) return nil, err default: - return nil, fmt.Errorf("Invalid format: %s, valid formats are: %s", format, strings.Join(OutputFormats, ", ")) + return nil, fmt.Errorf("Invalid format: %s, valid formats are: %s", opts.Format, strings.Join(OutputFormats, ", ")) } } @@ -388,18 +391,11 @@ func (o *ShowJSONOpts) setDefaults() { func ShowJSON(res gjson.Result, opts ShowJSONOpts) error { opts.setDefaults() - if opts.Transform != "" { - transformed := res.Get(opts.Transform) - if transformed.Exists() { - res = transformed - } - } - switch strings.ToLower(opts.Format) { case "auto": - jsonOpts := opts - jsonOpts.Format = "json" - return ShowJSON(res, jsonOpts) + autoOpts := opts + autoOpts.Format = "json" + return ShowJSON(res, autoOpts) case "explore": if !isTerminal(opts.Stdout) { if opts.ExplicitFormat { @@ -409,9 +405,15 @@ func ShowJSON(res gjson.Result, opts ShowJSONOpts) error { jsonOpts.Format = "json" return ShowJSON(res, jsonOpts) } + if opts.Transform != "" { + transformed := res.Get(opts.Transform) + if transformed.Exists() { + res = transformed + } + } return jsonview.ExploreJSON(opts.Title, res) default: - bytes, err := formatJSON(opts.Stdout, opts.Title, res, opts.Format, opts.Transform, opts.RawOutput) + bytes, err := formatJSON(res, opts) if err != nil { return err } @@ -434,15 +436,14 @@ type hasRawJSON interface { func ShowJSONIterator[T any](iter jsonview.Iterator[T], itemsToDisplay int64, opts ShowJSONOpts) error { opts.setDefaults() - format := opts.Format - if format == "explore" { + if opts.Format == "explore" { if isTerminal(opts.Stdout) { return jsonview.ExploreJSONStream(opts.Title, iter) } if opts.ExplicitFormat { fmt.Fprint(opts.Stderr, warningExploreNotSupported) } - format = "json" + opts.Format = "json" } terminalWidth, terminalHeight, err := term.GetSize(os.Stdout.Fd()) @@ -468,7 +469,7 @@ func ShowJSONIterator[T any](iter jsonview.Iterator[T], itemsToDisplay int64, op } obj = gjson.ParseBytes(jsonData) } - json, err := formatJSON(opts.Stdout, opts.Title, obj, format, opts.Transform, opts.RawOutput) + json, err := formatJSON(obj, opts) if err != nil { return err } @@ -500,7 +501,6 @@ func ShowJSONIterator[T any](iter jsonview.Iterator[T], itemsToDisplay int64, op } pagerOpts := opts - pagerOpts.Format = format pagerOpts.Stdout = pager for iter.Next() { diff --git a/pkg/cmd/cmdutil_test.go b/pkg/cmd/cmdutil_test.go index 78d2d91..e31c357 100644 --- a/pkg/cmd/cmdutil_test.go +++ b/pkg/cmd/cmdutil_test.go @@ -159,7 +159,7 @@ func TestFormatJSON(t *testing.T) { t.Parallel() res := gjson.Parse(`{"id":"abc123","name":"test"}`) - formatted, err := formatJSON(os.Stdout, "test", res, "raw", "id", false) + formatted, err := formatJSON(res, ShowJSONOpts{Format: "raw", Stdout: os.Stdout, Transform: "id"}) require.NoError(t, err) require.Equal(t, `"abc123"`+"\n", string(formatted)) }) @@ -168,7 +168,7 @@ func TestFormatJSON(t *testing.T) { t.Parallel() res := gjson.Parse(`{"id":"abc123","name":"test"}`) - formatted, err := formatJSON(os.Stdout, "test", res, "raw", "", false) + formatted, err := formatJSON(res, ShowJSONOpts{Format: "raw", Stdout: os.Stdout}) require.NoError(t, err) require.Equal(t, `{"id":"abc123","name":"test"}`+"\n", string(formatted)) }) @@ -177,7 +177,7 @@ func TestFormatJSON(t *testing.T) { t.Parallel() res := gjson.Parse(`{"data":{"items":[1,2,3]}}`) - formatted, err := formatJSON(os.Stdout, "test", res, "raw", "data.items", false) + formatted, err := formatJSON(res, ShowJSONOpts{Format: "raw", Stdout: os.Stdout, Transform: "data.items"}) require.NoError(t, err) require.Equal(t, "[1,2,3]\n", string(formatted)) }) @@ -186,7 +186,7 @@ func TestFormatJSON(t *testing.T) { t.Parallel() res := gjson.Parse(`{"id":"abc123"}`) - formatted, err := formatJSON(os.Stdout, "test", res, "raw", "missing", false) + formatted, err := formatJSON(res, ShowJSONOpts{Format: "raw", Stdout: os.Stdout, Transform: "missing"}) require.NoError(t, err) // Transform path doesn't exist, so original result is returned require.Equal(t, `{"id":"abc123"}`+"\n", string(formatted)) @@ -196,7 +196,7 @@ func TestFormatJSON(t *testing.T) { t.Parallel() res := gjson.Parse(`{"id":"abc123","name":"test"}`) - formatted, err := formatJSON(os.Stdout, "test", res, "json", "id", true) + formatted, err := formatJSON(res, ShowJSONOpts{Format: "json", Stdout: os.Stdout, Transform: "id", RawOutput: true}) require.NoError(t, err) require.Equal(t, "abc123\n", string(formatted)) }) @@ -206,7 +206,7 @@ func TestFormatJSON(t *testing.T) { // --raw-output has no effect on non-string values res := gjson.Parse(`{"count":42}`) - formatted, err := formatJSON(os.Stdout, "test", res, "raw", "count", true) + formatted, err := formatJSON(res, ShowJSONOpts{Format: "raw", Stdout: os.Stdout, Transform: "count", RawOutput: true}) require.NoError(t, err) require.Equal(t, "42\n", string(formatted)) }) @@ -216,7 +216,7 @@ func TestFormatJSON(t *testing.T) { // --raw-output has no effect on objects res := gjson.Parse(`{"nested":{"a":1}}`) - formatted, err := formatJSON(os.Stdout, "test", res, "raw", "nested", true) + formatted, err := formatJSON(res, ShowJSONOpts{Format: "raw", Stdout: os.Stdout, Transform: "nested", RawOutput: true}) require.NoError(t, err) require.Equal(t, `{"a":1}`+"\n", string(formatted)) }) From 0f0687b9a0ea1e35149eb38d2899c649a1991195 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 22 Apr 2026 20:49:21 +0000 Subject: [PATCH 28/33] chore: sync OpenAPI spec --- .stats.yml | 8 +- pkg/cmd/cmd.go | 14 -- pkg/cmd/integration.go | 476 ------------------------------------ pkg/cmd/integration_test.go | 158 ------------ pkg/cmd/monitor_test.go | 4 +- pkg/cmd/radar.go | 21 +- pkg/cmd/radar_test.go | 7 +- pkg/cmd/webhook_test.go | 4 +- pkg/cmd/xaccount.go | 10 + pkg/cmd/xaccount_test.go | 4 + pkg/cmd/xtweet.go | 16 +- pkg/cmd/xtweet_test.go | 9 +- 12 files changed, 57 insertions(+), 674 deletions(-) delete mode 100644 pkg/cmd/integration.go delete mode 100644 pkg/cmd/integration_test.go diff --git a/.stats.yml b/.stats.yml index 8931974..42a0ecb 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 117 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-6836376c178aa95a978c75ea632ac721779088347b17ec0c54a5b406e199f494.yml -openapi_spec_hash: ce42f7f969994d74437c36a3d39232b3 -config_hash: 858d125643c0fca8bbbce07d3a2ce4b5 +configured_endpoints: 110 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-4a12c672870ee7282ad1d00f262e20fb360a8296b64a774628d1d0252e12694a.yml +openapi_spec_hash: 2e298ff704f550c80c2d07d9adadba6d +config_hash: b832b4936f08acf4994e60fa50f10985 diff --git a/pkg/cmd/cmd.go b/pkg/cmd/cmd.go index d6a402a..f972d10 100644 --- a/pkg/cmd/cmd.go +++ b/pkg/cmd/cmd.go @@ -215,20 +215,6 @@ func init() { &webhooksTest, }, }, - { - Name: "integrations", - Category: "API RESOURCE", - Suggest: true, - Commands: []*cli.Command{ - &integrationsCreate, - &integrationsRetrieve, - &integrationsUpdate, - &integrationsList, - &integrationsDelete, - &integrationsListDeliveries, - &integrationsSendTest, - }, - }, { Name: "x", Category: "API RESOURCE", diff --git a/pkg/cmd/integration.go b/pkg/cmd/integration.go deleted file mode 100644 index d47ce6e..0000000 --- a/pkg/cmd/integration.go +++ /dev/null @@ -1,476 +0,0 @@ -// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -package cmd - -import ( - "context" - "fmt" - - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" - "github.com/tidwall/gjson" - "github.com/urfave/cli/v3" -) - -var integrationsCreate = requestflag.WithInnerFlags(cli.Command{ - Name: "create", - Usage: "Create integration", - Suggest: true, - Flags: []cli.Flag{ - &requestflag.Flag[map[string]any]{ - Name: "config", - Usage: "Integration config (e.g. Telegram chatId)", - Required: true, - BodyPath: "config", - }, - &requestflag.Flag[[]string]{ - Name: "event-type", - Usage: "Array of event types to subscribe to.", - Required: true, - BodyPath: "eventTypes", - }, - &requestflag.Flag[string]{ - Name: "name", - Required: true, - BodyPath: "name", - }, - &requestflag.Flag[string]{ - Name: "type", - Usage: `Allowed values: "telegram".`, - Default: "telegram", - Const: true, - BodyPath: "type", - }, - }, - Action: handleIntegrationsCreate, - HideHelpCommand: true, -}, map[string][]requestflag.HasOuterFlag{ - "config": { - &requestflag.InnerFlag[string]{ - Name: "config.chat-id", - InnerField: "chatId", - }, - }, -}) - -var integrationsRetrieve = cli.Command{ - Name: "retrieve", - Usage: "Get integration details", - Suggest: true, - Flags: []cli.Flag{ - &requestflag.Flag[string]{ - Name: "id", - Required: true, - }, - }, - Action: handleIntegrationsRetrieve, - HideHelpCommand: true, -} - -var integrationsUpdate = cli.Command{ - Name: "update", - Usage: "Update integration", - Suggest: true, - Flags: []cli.Flag{ - &requestflag.Flag[string]{ - Name: "id", - Required: true, - }, - &requestflag.Flag[[]string]{ - Name: "event-type", - Usage: "Array of event types to subscribe to.", - BodyPath: "eventTypes", - }, - &requestflag.Flag[map[string]any]{ - Name: "filters", - Usage: "Event filter rules (JSON)", - BodyPath: "filters", - }, - &requestflag.Flag[bool]{ - Name: "is-active", - BodyPath: "isActive", - }, - &requestflag.Flag[map[string]any]{ - Name: "message-template", - Usage: "Custom message template (JSON)", - BodyPath: "messageTemplate", - }, - &requestflag.Flag[string]{ - Name: "name", - BodyPath: "name", - }, - &requestflag.Flag[bool]{ - Name: "scope-all-monitors", - BodyPath: "scopeAllMonitors", - }, - &requestflag.Flag[bool]{ - Name: "silent-push", - BodyPath: "silentPush", - }, - }, - Action: handleIntegrationsUpdate, - HideHelpCommand: true, -} - -var integrationsList = cli.Command{ - Name: "list", - Usage: "List integrations", - Suggest: true, - Flags: []cli.Flag{}, - Action: handleIntegrationsList, - HideHelpCommand: true, -} - -var integrationsDelete = cli.Command{ - Name: "delete", - Usage: "Delete integration", - Suggest: true, - Flags: []cli.Flag{ - &requestflag.Flag[string]{ - Name: "id", - Required: true, - }, - }, - Action: handleIntegrationsDelete, - HideHelpCommand: true, -} - -var integrationsListDeliveries = cli.Command{ - Name: "list-deliveries", - Usage: "List integration delivery history", - Suggest: true, - Flags: []cli.Flag{ - &requestflag.Flag[string]{ - Name: "id", - Required: true, - }, - &requestflag.Flag[int64]{ - Name: "limit", - Usage: "Maximum number of items to return (1-100, default 50)", - Default: 50, - QueryPath: "limit", - }, - }, - Action: handleIntegrationsListDeliveries, - HideHelpCommand: true, -} - -var integrationsSendTest = cli.Command{ - Name: "send-test", - Usage: "Send test delivery", - Suggest: true, - Flags: []cli.Flag{ - &requestflag.Flag[string]{ - Name: "id", - Required: true, - }, - }, - Action: handleIntegrationsSendTest, - HideHelpCommand: true, -} - -func handleIntegrationsCreate(ctx context.Context, cmd *cli.Command) error { - client := xtwitterscraper.NewClient(getDefaultRequestOptions(cmd)...) - unusedArgs := cmd.Args().Slice() - - if len(unusedArgs) > 0 { - return fmt.Errorf("Unexpected extra arguments: %v", unusedArgs) - } - - params := xtwitterscraper.IntegrationNewParams{} - - options, err := flagOptions( - cmd, - apiquery.NestedQueryFormatBrackets, - apiquery.ArrayQueryFormatComma, - ApplicationJSON, - false, - ) - if err != nil { - return err - } - - var res []byte - options = append(options, option.WithResponseBodyInto(&res)) - _, err = client.Integrations.New(ctx, params, options...) - if err != nil { - return err - } - - obj := gjson.ParseBytes(res) - format := cmd.Root().String("format") - explicitFormat := cmd.Root().IsSet("format") - transform := cmd.Root().String("transform") - return ShowJSON(obj, ShowJSONOpts{ - ExplicitFormat: explicitFormat, - Format: format, - RawOutput: cmd.Root().Bool("raw-output"), - Title: "integrations create", - Transform: transform, - }) -} - -func handleIntegrationsRetrieve(ctx context.Context, cmd *cli.Command) error { - client := xtwitterscraper.NewClient(getDefaultRequestOptions(cmd)...) - unusedArgs := cmd.Args().Slice() - if !cmd.IsSet("id") && len(unusedArgs) > 0 { - cmd.Set("id", unusedArgs[0]) - unusedArgs = unusedArgs[1:] - } - if len(unusedArgs) > 0 { - return fmt.Errorf("Unexpected extra arguments: %v", unusedArgs) - } - - options, err := flagOptions( - cmd, - apiquery.NestedQueryFormatBrackets, - apiquery.ArrayQueryFormatComma, - EmptyBody, - false, - ) - if err != nil { - return err - } - - var res []byte - options = append(options, option.WithResponseBodyInto(&res)) - _, err = client.Integrations.Get(ctx, cmd.Value("id").(string), options...) - if err != nil { - return err - } - - obj := gjson.ParseBytes(res) - format := cmd.Root().String("format") - explicitFormat := cmd.Root().IsSet("format") - transform := cmd.Root().String("transform") - return ShowJSON(obj, ShowJSONOpts{ - ExplicitFormat: explicitFormat, - Format: format, - RawOutput: cmd.Root().Bool("raw-output"), - Title: "integrations retrieve", - Transform: transform, - }) -} - -func handleIntegrationsUpdate(ctx context.Context, cmd *cli.Command) error { - client := xtwitterscraper.NewClient(getDefaultRequestOptions(cmd)...) - unusedArgs := cmd.Args().Slice() - if !cmd.IsSet("id") && len(unusedArgs) > 0 { - cmd.Set("id", unusedArgs[0]) - unusedArgs = unusedArgs[1:] - } - if len(unusedArgs) > 0 { - return fmt.Errorf("Unexpected extra arguments: %v", unusedArgs) - } - - params := xtwitterscraper.IntegrationUpdateParams{} - - options, err := flagOptions( - cmd, - apiquery.NestedQueryFormatBrackets, - apiquery.ArrayQueryFormatComma, - ApplicationJSON, - false, - ) - if err != nil { - return err - } - - var res []byte - options = append(options, option.WithResponseBodyInto(&res)) - _, err = client.Integrations.Update( - ctx, - cmd.Value("id").(string), - params, - options..., - ) - if err != nil { - return err - } - - obj := gjson.ParseBytes(res) - format := cmd.Root().String("format") - explicitFormat := cmd.Root().IsSet("format") - transform := cmd.Root().String("transform") - return ShowJSON(obj, ShowJSONOpts{ - ExplicitFormat: explicitFormat, - Format: format, - RawOutput: cmd.Root().Bool("raw-output"), - Title: "integrations update", - Transform: transform, - }) -} - -func handleIntegrationsList(ctx context.Context, cmd *cli.Command) error { - client := xtwitterscraper.NewClient(getDefaultRequestOptions(cmd)...) - unusedArgs := cmd.Args().Slice() - - if len(unusedArgs) > 0 { - return fmt.Errorf("Unexpected extra arguments: %v", unusedArgs) - } - - options, err := flagOptions( - cmd, - apiquery.NestedQueryFormatBrackets, - apiquery.ArrayQueryFormatComma, - EmptyBody, - false, - ) - if err != nil { - return err - } - - var res []byte - options = append(options, option.WithResponseBodyInto(&res)) - _, err = client.Integrations.List(ctx, options...) - if err != nil { - return err - } - - obj := gjson.ParseBytes(res) - format := cmd.Root().String("format") - explicitFormat := cmd.Root().IsSet("format") - transform := cmd.Root().String("transform") - return ShowJSON(obj, ShowJSONOpts{ - ExplicitFormat: explicitFormat, - Format: format, - RawOutput: cmd.Root().Bool("raw-output"), - Title: "integrations list", - Transform: transform, - }) -} - -func handleIntegrationsDelete(ctx context.Context, cmd *cli.Command) error { - client := xtwitterscraper.NewClient(getDefaultRequestOptions(cmd)...) - unusedArgs := cmd.Args().Slice() - if !cmd.IsSet("id") && len(unusedArgs) > 0 { - cmd.Set("id", unusedArgs[0]) - unusedArgs = unusedArgs[1:] - } - if len(unusedArgs) > 0 { - return fmt.Errorf("Unexpected extra arguments: %v", unusedArgs) - } - - options, err := flagOptions( - cmd, - apiquery.NestedQueryFormatBrackets, - apiquery.ArrayQueryFormatComma, - EmptyBody, - false, - ) - if err != nil { - return err - } - - var res []byte - options = append(options, option.WithResponseBodyInto(&res)) - _, err = client.Integrations.Delete(ctx, cmd.Value("id").(string), options...) - if err != nil { - return err - } - - obj := gjson.ParseBytes(res) - format := cmd.Root().String("format") - explicitFormat := cmd.Root().IsSet("format") - transform := cmd.Root().String("transform") - return ShowJSON(obj, ShowJSONOpts{ - ExplicitFormat: explicitFormat, - Format: format, - RawOutput: cmd.Root().Bool("raw-output"), - Title: "integrations delete", - Transform: transform, - }) -} - -func handleIntegrationsListDeliveries(ctx context.Context, cmd *cli.Command) error { - client := xtwitterscraper.NewClient(getDefaultRequestOptions(cmd)...) - unusedArgs := cmd.Args().Slice() - if !cmd.IsSet("id") && len(unusedArgs) > 0 { - cmd.Set("id", unusedArgs[0]) - unusedArgs = unusedArgs[1:] - } - if len(unusedArgs) > 0 { - return fmt.Errorf("Unexpected extra arguments: %v", unusedArgs) - } - - params := xtwitterscraper.IntegrationListDeliveriesParams{} - - options, err := flagOptions( - cmd, - apiquery.NestedQueryFormatBrackets, - apiquery.ArrayQueryFormatComma, - EmptyBody, - false, - ) - if err != nil { - return err - } - - var res []byte - options = append(options, option.WithResponseBodyInto(&res)) - _, err = client.Integrations.ListDeliveries( - ctx, - cmd.Value("id").(string), - params, - options..., - ) - if err != nil { - return err - } - - obj := gjson.ParseBytes(res) - format := cmd.Root().String("format") - explicitFormat := cmd.Root().IsSet("format") - transform := cmd.Root().String("transform") - return ShowJSON(obj, ShowJSONOpts{ - ExplicitFormat: explicitFormat, - Format: format, - RawOutput: cmd.Root().Bool("raw-output"), - Title: "integrations list-deliveries", - Transform: transform, - }) -} - -func handleIntegrationsSendTest(ctx context.Context, cmd *cli.Command) error { - client := xtwitterscraper.NewClient(getDefaultRequestOptions(cmd)...) - unusedArgs := cmd.Args().Slice() - if !cmd.IsSet("id") && len(unusedArgs) > 0 { - cmd.Set("id", unusedArgs[0]) - unusedArgs = unusedArgs[1:] - } - if len(unusedArgs) > 0 { - return fmt.Errorf("Unexpected extra arguments: %v", unusedArgs) - } - - options, err := flagOptions( - cmd, - apiquery.NestedQueryFormatBrackets, - apiquery.ArrayQueryFormatComma, - EmptyBody, - false, - ) - if err != nil { - return err - } - - var res []byte - options = append(options, option.WithResponseBodyInto(&res)) - _, err = client.Integrations.SendTest(ctx, cmd.Value("id").(string), options...) - if err != nil { - return err - } - - obj := gjson.ParseBytes(res) - format := cmd.Root().String("format") - explicitFormat := cmd.Root().IsSet("format") - transform := cmd.Root().String("transform") - return ShowJSON(obj, ShowJSONOpts{ - ExplicitFormat: explicitFormat, - Format: format, - RawOutput: cmd.Root().Bool("raw-output"), - Title: "integrations send-test", - Transform: transform, - }) -} diff --git a/pkg/cmd/integration_test.go b/pkg/cmd/integration_test.go deleted file mode 100644 index 8c4eff8..0000000 --- a/pkg/cmd/integration_test.go +++ /dev/null @@ -1,158 +0,0 @@ -// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -package cmd - -import ( - "testing" - - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" -) - -func TestIntegrationsCreate(t *testing.T) { - t.Skip("Mock server tests are disabled") - t.Run("regular flags", func(t *testing.T) { - mocktest.TestRunMockTestWithFlags( - t, - "--api-key", "string", - "integrations", "create", - "--config", "{chatId: '-1001234567890'}", - "--event-type", "tweet.new", - "--event-type", "follower.gained", - "--name", "My Telegram Bot", - "--type", "telegram", - ) - }) - - t.Run("inner flags", func(t *testing.T) { - // Check that inner flags have been set up correctly - requestflag.CheckInnerFlags(integrationsCreate) - - // Alternative argument passing style using inner flags - mocktest.TestRunMockTestWithFlags( - t, - "--api-key", "string", - "integrations", "create", - "--config.chat-id", "-1001234567890", - "--event-type", "tweet.new", - "--event-type", "follower.gained", - "--name", "My Telegram Bot", - "--type", "telegram", - ) - }) - - t.Run("piping data", func(t *testing.T) { - // Test piping YAML data over stdin - pipeData := []byte("" + - "config:\n" + - " chatId: '-1001234567890'\n" + - "eventTypes:\n" + - " - tweet.new\n" + - " - follower.gained\n" + - "name: My Telegram Bot\n" + - "type: telegram\n") - mocktest.TestRunMockTestWithPipeAndFlags( - t, pipeData, - "--api-key", "string", - "integrations", "create", - ) - }) -} - -func TestIntegrationsRetrieve(t *testing.T) { - t.Skip("Mock server tests are disabled") - t.Run("regular flags", func(t *testing.T) { - mocktest.TestRunMockTestWithFlags( - t, - "--api-key", "string", - "integrations", "retrieve", - "--id", "id", - ) - }) -} - -func TestIntegrationsUpdate(t *testing.T) { - t.Skip("Mock server tests are disabled") - t.Run("regular flags", func(t *testing.T) { - mocktest.TestRunMockTestWithFlags( - t, - "--api-key", "string", - "integrations", "update", - "--id", "id", - "--event-type", "tweet.new", - "--filters", "{}", - "--is-active=true", - "--message-template", "{}", - "--name", "My Telegram Bot", - "--scope-all-monitors=true", - "--silent-push=false", - ) - }) - - t.Run("piping data", func(t *testing.T) { - // Test piping YAML data over stdin - pipeData := []byte("" + - "eventTypes:\n" + - " - tweet.new\n" + - "filters: {}\n" + - "isActive: true\n" + - "messageTemplate: {}\n" + - "name: My Telegram Bot\n" + - "scopeAllMonitors: true\n" + - "silentPush: false\n") - mocktest.TestRunMockTestWithPipeAndFlags( - t, pipeData, - "--api-key", "string", - "integrations", "update", - "--id", "id", - ) - }) -} - -func TestIntegrationsList(t *testing.T) { - t.Skip("Mock server tests are disabled") - t.Run("regular flags", func(t *testing.T) { - mocktest.TestRunMockTestWithFlags( - t, - "--api-key", "string", - "integrations", "list", - ) - }) -} - -func TestIntegrationsDelete(t *testing.T) { - t.Skip("Mock server tests are disabled") - t.Run("regular flags", func(t *testing.T) { - mocktest.TestRunMockTestWithFlags( - t, - "--api-key", "string", - "integrations", "delete", - "--id", "id", - ) - }) -} - -func TestIntegrationsListDeliveries(t *testing.T) { - t.Skip("Mock server tests are disabled") - t.Run("regular flags", func(t *testing.T) { - mocktest.TestRunMockTestWithFlags( - t, - "--api-key", "string", - "integrations", "list-deliveries", - "--id", "id", - "--limit", "1", - ) - }) -} - -func TestIntegrationsSendTest(t *testing.T) { - t.Skip("Mock server tests are disabled") - t.Run("regular flags", func(t *testing.T) { - mocktest.TestRunMockTestWithFlags( - t, - "--api-key", "string", - "integrations", "send-test", - "--id", "id", - ) - }) -} diff --git a/pkg/cmd/monitor_test.go b/pkg/cmd/monitor_test.go index 4a365d7..e8e733e 100644 --- a/pkg/cmd/monitor_test.go +++ b/pkg/cmd/monitor_test.go @@ -16,7 +16,7 @@ func TestMonitorsCreate(t *testing.T) { "--api-key", "string", "monitors", "create", "--event-type", "tweet.new", - "--event-type", "follower.gained", + "--event-type", "tweet.reply", "--username", "elonmusk", ) }) @@ -26,7 +26,7 @@ func TestMonitorsCreate(t *testing.T) { pipeData := []byte("" + "eventTypes:\n" + " - tweet.new\n" + - " - follower.gained\n" + + " - tweet.reply\n" + "username: elonmusk\n") mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, diff --git a/pkg/cmd/radar.go b/pkg/cmd/radar.go index b786808..3e65750 100644 --- a/pkg/cmd/radar.go +++ b/pkg/cmd/radar.go @@ -19,21 +19,28 @@ var radarRetrieveTrendingTopics = cli.Command{ Usage: "Get trending topics from curated sources", Suggest: true, Flags: []cli.Flag{ + &requestflag.Flag[string]{ + Name: "after", + Usage: "Cursor for pagination (from prior response nextCursor).", + QueryPath: "after", + }, &requestflag.Flag[string]{ Name: "category", - Usage: "Filter by category (general, tech, dev, etc.)", + Usage: "Filter by category.", QueryPath: "category", }, - &requestflag.Flag[int64]{ - Name: "count", - Usage: "Number of items to return", - QueryPath: "count", - }, &requestflag.Flag[int64]{ Name: "hours", - Usage: "Lookback window in hours", + Usage: "Lookback window in hours (1-168, default 24).", + Default: 24, QueryPath: "hours", }, + &requestflag.Flag[int64]{ + Name: "limit", + Usage: "Number of items to return (1-100, default 50).", + Default: 50, + QueryPath: "limit", + }, &requestflag.Flag[string]{ Name: "region", Usage: "Region filter (us, global, etc.)", diff --git a/pkg/cmd/radar_test.go b/pkg/cmd/radar_test.go index 851cde6..db63e09 100644 --- a/pkg/cmd/radar_test.go +++ b/pkg/cmd/radar_test.go @@ -15,9 +15,10 @@ func TestRadarRetrieveTrendingTopics(t *testing.T) { t, "--api-key", "string", "radar", "retrieve-trending-topics", - "--category", "category", - "--count", "0", - "--hours", "0", + "--after", "after", + "--category", "general", + "--hours", "1", + "--limit", "1", "--region", "region", "--source", "github", ) diff --git a/pkg/cmd/webhook_test.go b/pkg/cmd/webhook_test.go index 12d36d7..f047d7f 100644 --- a/pkg/cmd/webhook_test.go +++ b/pkg/cmd/webhook_test.go @@ -16,7 +16,7 @@ func TestWebhooksCreate(t *testing.T) { "--api-key", "string", "webhooks", "create", "--event-type", "tweet.new", - "--event-type", "follower.gained", + "--event-type", "tweet.reply", "--url", "https://example.com/webhook", ) }) @@ -26,7 +26,7 @@ func TestWebhooksCreate(t *testing.T) { pipeData := []byte("" + "eventTypes:\n" + " - tweet.new\n" + - " - follower.gained\n" + + " - tweet.reply\n" + "url: https://example.com/webhook\n") mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, diff --git a/pkg/cmd/xaccount.go b/pkg/cmd/xaccount.go index 1614d75..85fb96a 100644 --- a/pkg/cmd/xaccount.go +++ b/pkg/cmd/xaccount.go @@ -113,6 +113,16 @@ var xAccountsReauth = cli.Command{ Required: true, BodyPath: "password", }, + &requestflag.Flag[string]{ + Name: "email", + Usage: "Email for the X account (updates stored email)", + BodyPath: "email", + }, + &requestflag.Flag[string]{ + Name: "proxy-country", + Usage: "Two-letter country code for login proxy region", + BodyPath: "proxy_country", + }, &requestflag.Flag[string]{ Name: "totp-secret", Usage: "TOTP secret for 2FA re-authentication", diff --git a/pkg/cmd/xaccount_test.go b/pkg/cmd/xaccount_test.go index 3cf4d43..20424af 100644 --- a/pkg/cmd/xaccount_test.go +++ b/pkg/cmd/xaccount_test.go @@ -94,6 +94,8 @@ func TestXAccountsReauth(t *testing.T) { "x:accounts", "reauth", "--id", "id", "--password", "password_value", + "--email", "user@example.com", + "--proxy-country", "US", "--totp-secret", "totp_secret_value", ) }) @@ -102,6 +104,8 @@ func TestXAccountsReauth(t *testing.T) { // Test piping YAML data over stdin pipeData := []byte("" + "password: password_value\n" + + "email: user@example.com\n" + + "proxy_country: US\n" + "totp_secret: totp_secret_value\n") mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, diff --git a/pkg/cmd/xtweet.go b/pkg/cmd/xtweet.go index c39022f..8073c0d 100644 --- a/pkg/cmd/xtweet.go +++ b/pkg/cmd/xtweet.go @@ -25,11 +25,6 @@ var xTweetsCreate = cli.Command{ Required: true, BodyPath: "account", }, - &requestflag.Flag[string]{ - Name: "text", - Required: true, - BodyPath: "text", - }, &requestflag.Flag[string]{ Name: "attachment-url", BodyPath: "attachment_url", @@ -42,14 +37,25 @@ var xTweetsCreate = cli.Command{ Name: "is-note-tweet", BodyPath: "is_note_tweet", }, + &requestflag.Flag[[]string]{ + Name: "media", + Usage: "Array of media URLs to attach (mutually exclusive with media_ids)", + BodyPath: "media", + }, &requestflag.Flag[[]string]{ Name: "media-id", + Usage: "Array of media IDs to attach (mutually exclusive with media)", BodyPath: "media_ids", }, &requestflag.Flag[string]{ Name: "reply-to-tweet-id", BodyPath: "reply_to_tweet_id", }, + &requestflag.Flag[string]{ + Name: "text", + Usage: "Tweet text (optional when media is provided)", + BodyPath: "text", + }, }, Action: handleXTweetsCreate, HideHelpCommand: true, diff --git a/pkg/cmd/xtweet_test.go b/pkg/cmd/xtweet_test.go index 5478992..0280c7a 100644 --- a/pkg/cmd/xtweet_test.go +++ b/pkg/cmd/xtweet_test.go @@ -16,12 +16,13 @@ func TestXTweetsCreate(t *testing.T) { "--api-key", "string", "x:tweets", "create", "--account", "@elonmusk", - "--text", "Just launched our new feature!", "--attachment-url", "https://x.com/elonmusk/status/1234567890", "--community-id", "1500000000000000000", "--is-note-tweet=false", + "--media", "https://example.com/image.jpg", "--media-id", "1234567890123456789", "--reply-to-tweet-id", "1234567890", + "--text", "Just launched our new feature!", ) }) @@ -29,13 +30,15 @@ func TestXTweetsCreate(t *testing.T) { // Test piping YAML data over stdin pipeData := []byte("" + "account: '@elonmusk'\n" + - "text: Just launched our new feature!\n" + "attachment_url: https://x.com/elonmusk/status/1234567890\n" + "community_id: '1500000000000000000'\n" + "is_note_tweet: false\n" + + "media:\n" + + " - https://example.com/image.jpg\n" + "media_ids:\n" + " - '1234567890123456789'\n" + - "reply_to_tweet_id: '1234567890'\n") + "reply_to_tweet_id: '1234567890'\n" + + "text: Just launched our new feature!\n") mocktest.TestRunMockTestWithPipeAndFlags( t, pipeData, "--api-key", "string", From d46e8ecbc08aac3f02d31b6d2674a19f27393662 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 22 Apr 2026 21:16:23 +0000 Subject: [PATCH 29/33] chore: wire production_repo for all targets --- .github/workflows/ci.yml | 2 +- .github/workflows/release-doctor.yml | 2 +- .stats.yml | 2 +- README.md | 6 +++++- cmd/x-twitter-scraper/main.go | 4 ++-- go.mod | 4 +++- go.sum | 5 +++++ pkg/cmd/account.go | 8 ++++---- pkg/cmd/account_test.go | 2 +- pkg/cmd/apikey.go | 8 ++++---- pkg/cmd/apikey_test.go | 2 +- pkg/cmd/cmd.go | 4 ++-- pkg/cmd/cmdutil.go | 4 ++-- pkg/cmd/cmdutil_test.go | 2 +- pkg/cmd/compose.go | 8 ++++---- pkg/cmd/compose_test.go | 2 +- pkg/cmd/credit.go | 8 ++++---- pkg/cmd/credit_test.go | 2 +- pkg/cmd/draft.go | 8 ++++---- pkg/cmd/draft_test.go | 2 +- pkg/cmd/draw.go | 8 ++++---- pkg/cmd/draw_test.go | 2 +- pkg/cmd/event.go | 8 ++++---- pkg/cmd/event_test.go | 2 +- pkg/cmd/extraction.go | 8 ++++---- pkg/cmd/extraction_test.go | 2 +- pkg/cmd/flagoptions.go | 10 +++++----- pkg/cmd/monitor.go | 8 ++++---- pkg/cmd/monitor_test.go | 2 +- pkg/cmd/radar.go | 8 ++++---- pkg/cmd/radar_test.go | 2 +- pkg/cmd/style.go | 8 ++++---- pkg/cmd/style_test.go | 4 ++-- pkg/cmd/subscribe.go | 6 +++--- pkg/cmd/subscribe_test.go | 2 +- pkg/cmd/supportticket.go | 8 ++++---- pkg/cmd/supportticket_test.go | 2 +- pkg/cmd/trend.go | 8 ++++---- pkg/cmd/trend_test.go | 2 +- pkg/cmd/version.go | 2 +- pkg/cmd/webhook.go | 8 ++++---- pkg/cmd/webhook_test.go | 2 +- pkg/cmd/x.go | 8 ++++---- pkg/cmd/x_test.go | 2 +- pkg/cmd/xaccount.go | 8 ++++---- pkg/cmd/xaccount_test.go | 2 +- pkg/cmd/xbookmark.go | 8 ++++---- pkg/cmd/xbookmark_test.go | 2 +- pkg/cmd/xcommunity.go | 8 ++++---- pkg/cmd/xcommunity_test.go | 2 +- pkg/cmd/xcommunityjoin.go | 8 ++++---- pkg/cmd/xcommunityjoin_test.go | 2 +- pkg/cmd/xcommunitytweet.go | 8 ++++---- pkg/cmd/xcommunitytweet_test.go | 2 +- pkg/cmd/xdm.go | 8 ++++---- pkg/cmd/xdm_test.go | 2 +- pkg/cmd/xfollower.go | 8 ++++---- pkg/cmd/xfollower_test.go | 2 +- pkg/cmd/xlist.go | 8 ++++---- pkg/cmd/xlist_test.go | 2 +- pkg/cmd/xmedia.go | 8 ++++---- pkg/cmd/xmedia_test.go | 2 +- pkg/cmd/xprofile.go | 8 ++++---- pkg/cmd/xprofile_test.go | 2 +- pkg/cmd/xtweet.go | 8 ++++---- pkg/cmd/xtweet_test.go | 2 +- pkg/cmd/xtweetlike.go | 8 ++++---- pkg/cmd/xtweetlike_test.go | 2 +- pkg/cmd/xtweetretweet.go | 8 ++++---- pkg/cmd/xtweetretweet_test.go | 2 +- pkg/cmd/xuser.go | 8 ++++---- pkg/cmd/xuser_test.go | 2 +- pkg/cmd/xuserfollow.go | 8 ++++---- pkg/cmd/xuserfollow_test.go | 2 +- scripts/build | 2 +- scripts/link | 4 ++-- scripts/lint | 2 +- scripts/run | 2 +- scripts/test | 2 +- scripts/unlink | 2 +- 80 files changed, 191 insertions(+), 180 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 465a5b5..e857feb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ on: - 'stl-preview-base/**' env: - GOPRIVATE: github.com/stainless-sdks/x-twitter-scraper-go + GOPRIVATE: github.com/Xquik-dev/x-twitter-scraper-go,github.com/stainless-sdks/x-twitter-scraper-go jobs: lint: diff --git a/.github/workflows/release-doctor.yml b/.github/workflows/release-doctor.yml index d713fda..efbb4d4 100644 --- a/.github/workflows/release-doctor.yml +++ b/.github/workflows/release-doctor.yml @@ -9,7 +9,7 @@ jobs: release_doctor: name: release doctor runs-on: ubuntu-latest - if: github.repository == 'stainless-sdks/x-twitter-scraper-cli' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || startsWith(github.head_ref, 'release-please') || github.head_ref == 'next') + if: github.repository == 'Xquik-dev/x-twitter-scraper-cli' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || startsWith(github.head_ref, 'release-please') || github.head_ref == 'next') steps: - uses: actions/checkout@v6 diff --git a/.stats.yml b/.stats.yml index 42a0ecb..cf3227f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 110 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-4a12c672870ee7282ad1d00f262e20fb360a8296b64a774628d1d0252e12694a.yml openapi_spec_hash: 2e298ff704f550c80c2d07d9adadba6d -config_hash: b832b4936f08acf4994e60fa50f10985 +config_hash: 320a9cb2f1293d1a7b73c63ab5865af5 diff --git a/README.md b/README.md index fe2cc99..6d195f2 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,8 @@ The official CLI for the [X Twitter Scraper REST API](https://xquik.com). It is generated with [Stainless](https://www.stainless.com/). + + ## Installation ### Installing with Go @@ -11,7 +13,7 @@ It is generated with [Stainless](https://www.stainless.com/). To test or install the CLI locally, you need [Go](https://go.dev/doc/install) version 1.22 or later installed. ```sh -go install 'github.com/stainless-sdks/x-twitter-scraper-cli/cmd/x-twitter-scraper@latest' +go install 'github.com/Xquik-dev/x-twitter-scraper-cli/cmd/x-twitter-scraper@latest' ``` Once you have run `go install`, the binary is placed in your Go bin directory: @@ -26,6 +28,8 @@ If commands aren't found after installation, add the Go bin directory to your PA export PATH="$PATH:$(go env GOPATH)/bin" ``` + + ### Running Locally After cloning the git repository for this project, you can use the diff --git a/cmd/x-twitter-scraper/main.go b/cmd/x-twitter-scraper/main.go index e07265e..1f83760 100644 --- a/cmd/x-twitter-scraper/main.go +++ b/cmd/x-twitter-scraper/main.go @@ -10,8 +10,8 @@ import ( "os" "slices" - "github.com/stainless-sdks/x-twitter-scraper-cli/pkg/cmd" - "github.com/stainless-sdks/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-cli/pkg/cmd" + "github.com/Xquik-dev/x-twitter-scraper-go" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/go.mod b/go.mod index f6fa2e6..6fd30ad 100644 --- a/go.mod +++ b/go.mod @@ -1,8 +1,9 @@ -module github.com/stainless-sdks/x-twitter-scraper-cli +module github.com/Xquik-dev/x-twitter-scraper-cli go 1.25 require ( + github.com/Xquik-dev/x-twitter-scraper-go v0.3.0 github.com/charmbracelet/bubbles v0.21.0 github.com/charmbracelet/bubbletea v1.3.6 github.com/charmbracelet/lipgloss v1.1.0 @@ -37,6 +38,7 @@ require ( github.com/rivo/uniseg v0.4.7 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/tidwall/match v1.1.1 // indirect + github.com/tidwall/sjson v1.2.5 // indirect github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect golang.org/x/sync v0.15.0 // indirect golang.org/x/text v0.3.8 // indirect diff --git a/go.sum b/go.sum index 4b63f4b..f8d633f 100644 --- a/go.sum +++ b/go.sum @@ -1,3 +1,5 @@ +github.com/Xquik-dev/x-twitter-scraper-go v0.3.0 h1:Iu2ejXyVKqikAWAlCgfGNeav5Q+3/V6lscdmUKYGB/8= +github.com/Xquik-dev/x-twitter-scraper-go v0.3.0/go.mod h1:OHW3aIR8E3+ANa/mjFTZs1sG7ePzrBEmW0a8JUN+NvI= github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= github.com/aymanbagabas/go-udiff v0.2.0 h1:TK0fH4MteXUDspT88n8CKzvK0X9O2xu9yQjWpi6yML8= @@ -55,6 +57,7 @@ github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/tidwall/gjson v1.14.2/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/gjson v1.18.0 h1:FIDeeyB800efLX89e5a8Y0BNH+LOngJyGrIWxG2FKQY= github.com/tidwall/gjson v1.18.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= @@ -62,6 +65,8 @@ github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JT github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY= +github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28= github.com/urfave/cli-docs/v3 v3.0.0-alpha6 h1:w/l/N0xw1rO/aHRIGXJ0lDwwYFOzilup1qGvIytP3BI= github.com/urfave/cli-docs/v3 v3.0.0-alpha6/go.mod h1:p7Z4lg8FSTrPB9GTaNyTrK3ygffHZcK3w0cU2VE+mzU= github.com/urfave/cli/v3 v3.3.2 h1:BYFVnhhZ8RqT38DxEYVFPPmGFTEf7tJwySTXsVRrS/o= diff --git a/pkg/cmd/account.go b/pkg/cmd/account.go index 16bb4d2..537d90e 100644 --- a/pkg/cmd/account.go +++ b/pkg/cmd/account.go @@ -6,10 +6,10 @@ import ( "context" "fmt" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/account_test.go b/pkg/cmd/account_test.go index c578cba..c89541c 100644 --- a/pkg/cmd/account_test.go +++ b/pkg/cmd/account_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" ) func TestAccountRetrieve(t *testing.T) { diff --git a/pkg/cmd/apikey.go b/pkg/cmd/apikey.go index fe45882..5a47f5c 100644 --- a/pkg/cmd/apikey.go +++ b/pkg/cmd/apikey.go @@ -6,10 +6,10 @@ import ( "context" "fmt" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/apikey_test.go b/pkg/cmd/apikey_test.go index f0071d1..a54f91e 100644 --- a/pkg/cmd/apikey_test.go +++ b/pkg/cmd/apikey_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" ) func TestAPIKeysCreate(t *testing.T) { diff --git a/pkg/cmd/cmd.go b/pkg/cmd/cmd.go index f972d10..6ce0d67 100644 --- a/pkg/cmd/cmd.go +++ b/pkg/cmd/cmd.go @@ -12,8 +12,8 @@ import ( "slices" "strings" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/autocomplete" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/autocomplete" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" docs "github.com/urfave/cli-docs/v3" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/cmdutil.go b/pkg/cmd/cmdutil.go index f90f876..1d2ebda 100644 --- a/pkg/cmd/cmdutil.go +++ b/pkg/cmd/cmdutil.go @@ -16,8 +16,8 @@ import ( "strings" "syscall" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/jsonview" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/jsonview" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/charmbracelet/x/term" "github.com/itchyny/json2yaml" diff --git a/pkg/cmd/cmdutil_test.go b/pkg/cmd/cmdutil_test.go index e31c357..4b89694 100644 --- a/pkg/cmd/cmdutil_test.go +++ b/pkg/cmd/cmdutil_test.go @@ -12,7 +12,7 @@ import ( "github.com/stretchr/testify/require" "github.com/tidwall/gjson" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/jsonview" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/jsonview" ) func TestStreamOutput(t *testing.T) { diff --git a/pkg/cmd/compose.go b/pkg/cmd/compose.go index 5961afa..067e836 100644 --- a/pkg/cmd/compose.go +++ b/pkg/cmd/compose.go @@ -6,10 +6,10 @@ import ( "context" "fmt" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/compose_test.go b/pkg/cmd/compose_test.go index d3d8c89..917a458 100644 --- a/pkg/cmd/compose_test.go +++ b/pkg/cmd/compose_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" ) func TestComposeCreate(t *testing.T) { diff --git a/pkg/cmd/credit.go b/pkg/cmd/credit.go index 43ffdf5..dda0d04 100644 --- a/pkg/cmd/credit.go +++ b/pkg/cmd/credit.go @@ -6,10 +6,10 @@ import ( "context" "fmt" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/credit_test.go b/pkg/cmd/credit_test.go index 7aa4f02..b7e55d0 100644 --- a/pkg/cmd/credit_test.go +++ b/pkg/cmd/credit_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" ) func TestCreditsRetrieveBalance(t *testing.T) { diff --git a/pkg/cmd/draft.go b/pkg/cmd/draft.go index 0203e0d..83ace59 100644 --- a/pkg/cmd/draft.go +++ b/pkg/cmd/draft.go @@ -6,10 +6,10 @@ import ( "context" "fmt" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/draft_test.go b/pkg/cmd/draft_test.go index 451887e..4788172 100644 --- a/pkg/cmd/draft_test.go +++ b/pkg/cmd/draft_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" ) func TestDraftsCreate(t *testing.T) { diff --git a/pkg/cmd/draw.go b/pkg/cmd/draw.go index 1065994..5b3ae7e 100644 --- a/pkg/cmd/draw.go +++ b/pkg/cmd/draw.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/draw_test.go b/pkg/cmd/draw_test.go index f41eefc..c2a9d73 100644 --- a/pkg/cmd/draw_test.go +++ b/pkg/cmd/draw_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" ) func TestDrawsRetrieve(t *testing.T) { diff --git a/pkg/cmd/event.go b/pkg/cmd/event.go index 9de8267..c9b951f 100644 --- a/pkg/cmd/event.go +++ b/pkg/cmd/event.go @@ -6,10 +6,10 @@ import ( "context" "fmt" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/event_test.go b/pkg/cmd/event_test.go index 56ce246..0b258a8 100644 --- a/pkg/cmd/event_test.go +++ b/pkg/cmd/event_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" ) func TestEventsRetrieve(t *testing.T) { diff --git a/pkg/cmd/extraction.go b/pkg/cmd/extraction.go index 2571bfc..17626a5 100644 --- a/pkg/cmd/extraction.go +++ b/pkg/cmd/extraction.go @@ -7,10 +7,10 @@ import ( "fmt" "os" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/extraction_test.go b/pkg/cmd/extraction_test.go index 152a0c1..918222c 100644 --- a/pkg/cmd/extraction_test.go +++ b/pkg/cmd/extraction_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" ) func TestExtractionsRetrieve(t *testing.T) { diff --git a/pkg/cmd/flagoptions.go b/pkg/cmd/flagoptions.go index d72942b..623bc8b 100644 --- a/pkg/cmd/flagoptions.go +++ b/pkg/cmd/flagoptions.go @@ -16,11 +16,11 @@ import ( "strings" "unicode/utf8" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiform" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/debugmiddleware" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiform" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/debugmiddleware" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/goccy/go-yaml" "github.com/urfave/cli/v3" diff --git a/pkg/cmd/monitor.go b/pkg/cmd/monitor.go index c6f0cba..f49e203 100644 --- a/pkg/cmd/monitor.go +++ b/pkg/cmd/monitor.go @@ -6,10 +6,10 @@ import ( "context" "fmt" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/monitor_test.go b/pkg/cmd/monitor_test.go index e8e733e..24ae6c9 100644 --- a/pkg/cmd/monitor_test.go +++ b/pkg/cmd/monitor_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" ) func TestMonitorsCreate(t *testing.T) { diff --git a/pkg/cmd/radar.go b/pkg/cmd/radar.go index 3e65750..9df8455 100644 --- a/pkg/cmd/radar.go +++ b/pkg/cmd/radar.go @@ -6,10 +6,10 @@ import ( "context" "fmt" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/radar_test.go b/pkg/cmd/radar_test.go index db63e09..3de36e4 100644 --- a/pkg/cmd/radar_test.go +++ b/pkg/cmd/radar_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" ) func TestRadarRetrieveTrendingTopics(t *testing.T) { diff --git a/pkg/cmd/style.go b/pkg/cmd/style.go index 7209aa9..23f22df 100644 --- a/pkg/cmd/style.go +++ b/pkg/cmd/style.go @@ -6,10 +6,10 @@ import ( "context" "fmt" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/style_test.go b/pkg/cmd/style_test.go index d8fad46..1a97518 100644 --- a/pkg/cmd/style_test.go +++ b/pkg/cmd/style_test.go @@ -5,8 +5,8 @@ package cmd import ( "testing" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" ) func TestStylesRetrieve(t *testing.T) { diff --git a/pkg/cmd/subscribe.go b/pkg/cmd/subscribe.go index 8f5f5ae..6796498 100644 --- a/pkg/cmd/subscribe.go +++ b/pkg/cmd/subscribe.go @@ -6,9 +6,9 @@ import ( "context" "fmt" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/subscribe_test.go b/pkg/cmd/subscribe_test.go index b980fc5..9ddd648 100644 --- a/pkg/cmd/subscribe_test.go +++ b/pkg/cmd/subscribe_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" ) func TestSubscribeCreate(t *testing.T) { diff --git a/pkg/cmd/supportticket.go b/pkg/cmd/supportticket.go index 68f6b01..563cbc5 100644 --- a/pkg/cmd/supportticket.go +++ b/pkg/cmd/supportticket.go @@ -6,10 +6,10 @@ import ( "context" "fmt" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/supportticket_test.go b/pkg/cmd/supportticket_test.go index c3045cc..c623261 100644 --- a/pkg/cmd/supportticket_test.go +++ b/pkg/cmd/supportticket_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" ) func TestSupportTicketsCreate(t *testing.T) { diff --git a/pkg/cmd/trend.go b/pkg/cmd/trend.go index d379ec1..b8c2a2c 100644 --- a/pkg/cmd/trend.go +++ b/pkg/cmd/trend.go @@ -6,10 +6,10 @@ import ( "context" "fmt" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/trend_test.go b/pkg/cmd/trend_test.go index 1dfd665..2896db4 100644 --- a/pkg/cmd/trend_test.go +++ b/pkg/cmd/trend_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" ) func TestTrendsList(t *testing.T) { diff --git a/pkg/cmd/version.go b/pkg/cmd/version.go index efbb824..5266c84 100644 --- a/pkg/cmd/version.go +++ b/pkg/cmd/version.go @@ -2,4 +2,4 @@ package cmd -const Version = "0.3.0" +const Version = "0.3.0" // x-release-please-version diff --git a/pkg/cmd/webhook.go b/pkg/cmd/webhook.go index 5e15284..2dae537 100644 --- a/pkg/cmd/webhook.go +++ b/pkg/cmd/webhook.go @@ -6,10 +6,10 @@ import ( "context" "fmt" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/webhook_test.go b/pkg/cmd/webhook_test.go index f047d7f..0e6438d 100644 --- a/pkg/cmd/webhook_test.go +++ b/pkg/cmd/webhook_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" ) func TestWebhooksCreate(t *testing.T) { diff --git a/pkg/cmd/x.go b/pkg/cmd/x.go index ebd7f78..0c7fb24 100644 --- a/pkg/cmd/x.go +++ b/pkg/cmd/x.go @@ -6,10 +6,10 @@ import ( "context" "fmt" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/x_test.go b/pkg/cmd/x_test.go index 2716f92..6270edb 100644 --- a/pkg/cmd/x_test.go +++ b/pkg/cmd/x_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" ) func TestXGetArticle(t *testing.T) { diff --git a/pkg/cmd/xaccount.go b/pkg/cmd/xaccount.go index 85fb96a..ea2ecaf 100644 --- a/pkg/cmd/xaccount.go +++ b/pkg/cmd/xaccount.go @@ -6,10 +6,10 @@ import ( "context" "fmt" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/xaccount_test.go b/pkg/cmd/xaccount_test.go index 20424af..5025dbe 100644 --- a/pkg/cmd/xaccount_test.go +++ b/pkg/cmd/xaccount_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" ) func TestXAccountsCreate(t *testing.T) { diff --git a/pkg/cmd/xbookmark.go b/pkg/cmd/xbookmark.go index b1bd203..edce2b3 100644 --- a/pkg/cmd/xbookmark.go +++ b/pkg/cmd/xbookmark.go @@ -6,10 +6,10 @@ import ( "context" "fmt" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/xbookmark_test.go b/pkg/cmd/xbookmark_test.go index 0b142f0..a9e7de4 100644 --- a/pkg/cmd/xbookmark_test.go +++ b/pkg/cmd/xbookmark_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" ) func TestXBookmarksList(t *testing.T) { diff --git a/pkg/cmd/xcommunity.go b/pkg/cmd/xcommunity.go index dfe67de..808bd57 100644 --- a/pkg/cmd/xcommunity.go +++ b/pkg/cmd/xcommunity.go @@ -6,10 +6,10 @@ import ( "context" "fmt" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/xcommunity_test.go b/pkg/cmd/xcommunity_test.go index 4b2eabb..28be39d 100644 --- a/pkg/cmd/xcommunity_test.go +++ b/pkg/cmd/xcommunity_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" ) func TestXCommunitiesCreate(t *testing.T) { diff --git a/pkg/cmd/xcommunityjoin.go b/pkg/cmd/xcommunityjoin.go index d973e65..994f75a 100644 --- a/pkg/cmd/xcommunityjoin.go +++ b/pkg/cmd/xcommunityjoin.go @@ -6,10 +6,10 @@ import ( "context" "fmt" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/xcommunityjoin_test.go b/pkg/cmd/xcommunityjoin_test.go index 3156272..26a2982 100644 --- a/pkg/cmd/xcommunityjoin_test.go +++ b/pkg/cmd/xcommunityjoin_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" ) func TestXCommunitiesJoinCreate(t *testing.T) { diff --git a/pkg/cmd/xcommunitytweet.go b/pkg/cmd/xcommunitytweet.go index 2c63e08..af513f8 100644 --- a/pkg/cmd/xcommunitytweet.go +++ b/pkg/cmd/xcommunitytweet.go @@ -6,10 +6,10 @@ import ( "context" "fmt" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/xcommunitytweet_test.go b/pkg/cmd/xcommunitytweet_test.go index 8478e74..e116815 100644 --- a/pkg/cmd/xcommunitytweet_test.go +++ b/pkg/cmd/xcommunitytweet_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" ) func TestXCommunitiesTweetsList(t *testing.T) { diff --git a/pkg/cmd/xdm.go b/pkg/cmd/xdm.go index 7772871..aee7092 100644 --- a/pkg/cmd/xdm.go +++ b/pkg/cmd/xdm.go @@ -6,10 +6,10 @@ import ( "context" "fmt" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/xdm_test.go b/pkg/cmd/xdm_test.go index a8ee16c..176aea1 100644 --- a/pkg/cmd/xdm_test.go +++ b/pkg/cmd/xdm_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" ) func TestXDmRetrieveHistory(t *testing.T) { diff --git a/pkg/cmd/xfollower.go b/pkg/cmd/xfollower.go index 2d1ab4b..3a55af4 100644 --- a/pkg/cmd/xfollower.go +++ b/pkg/cmd/xfollower.go @@ -6,10 +6,10 @@ import ( "context" "fmt" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/xfollower_test.go b/pkg/cmd/xfollower_test.go index cd004e1..a6524b0 100644 --- a/pkg/cmd/xfollower_test.go +++ b/pkg/cmd/xfollower_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" ) func TestXFollowersCheck(t *testing.T) { diff --git a/pkg/cmd/xlist.go b/pkg/cmd/xlist.go index 5d9f097..86b28ec 100644 --- a/pkg/cmd/xlist.go +++ b/pkg/cmd/xlist.go @@ -6,10 +6,10 @@ import ( "context" "fmt" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/xlist_test.go b/pkg/cmd/xlist_test.go index 0f0c863..f57ece1 100644 --- a/pkg/cmd/xlist_test.go +++ b/pkg/cmd/xlist_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" ) func TestXListsRetrieveFollowers(t *testing.T) { diff --git a/pkg/cmd/xmedia.go b/pkg/cmd/xmedia.go index 021fcb3..00f676b 100644 --- a/pkg/cmd/xmedia.go +++ b/pkg/cmd/xmedia.go @@ -6,10 +6,10 @@ import ( "context" "fmt" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/xmedia_test.go b/pkg/cmd/xmedia_test.go index d81ea1a..c8cfb9c 100644 --- a/pkg/cmd/xmedia_test.go +++ b/pkg/cmd/xmedia_test.go @@ -6,7 +6,7 @@ import ( "strings" "testing" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" ) func TestXMediaDownload(t *testing.T) { diff --git a/pkg/cmd/xprofile.go b/pkg/cmd/xprofile.go index 4f318ef..25636db 100644 --- a/pkg/cmd/xprofile.go +++ b/pkg/cmd/xprofile.go @@ -6,10 +6,10 @@ import ( "context" "fmt" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/xprofile_test.go b/pkg/cmd/xprofile_test.go index 2d4b78f..02641ef 100644 --- a/pkg/cmd/xprofile_test.go +++ b/pkg/cmd/xprofile_test.go @@ -6,7 +6,7 @@ import ( "strings" "testing" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" ) func TestXProfileUpdate(t *testing.T) { diff --git a/pkg/cmd/xtweet.go b/pkg/cmd/xtweet.go index 8073c0d..ee1dde0 100644 --- a/pkg/cmd/xtweet.go +++ b/pkg/cmd/xtweet.go @@ -6,10 +6,10 @@ import ( "context" "fmt" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/xtweet_test.go b/pkg/cmd/xtweet_test.go index 0280c7a..7c83b96 100644 --- a/pkg/cmd/xtweet_test.go +++ b/pkg/cmd/xtweet_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" ) func TestXTweetsCreate(t *testing.T) { diff --git a/pkg/cmd/xtweetlike.go b/pkg/cmd/xtweetlike.go index 246ca59..816e17f 100644 --- a/pkg/cmd/xtweetlike.go +++ b/pkg/cmd/xtweetlike.go @@ -6,10 +6,10 @@ import ( "context" "fmt" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/xtweetlike_test.go b/pkg/cmd/xtweetlike_test.go index 1d45e2e..81d2957 100644 --- a/pkg/cmd/xtweetlike_test.go +++ b/pkg/cmd/xtweetlike_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" ) func TestXTweetsLikeCreate(t *testing.T) { diff --git a/pkg/cmd/xtweetretweet.go b/pkg/cmd/xtweetretweet.go index 32605ef..d700ecf 100644 --- a/pkg/cmd/xtweetretweet.go +++ b/pkg/cmd/xtweetretweet.go @@ -6,10 +6,10 @@ import ( "context" "fmt" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/xtweetretweet_test.go b/pkg/cmd/xtweetretweet_test.go index f0706d1..4f4d2e8 100644 --- a/pkg/cmd/xtweetretweet_test.go +++ b/pkg/cmd/xtweetretweet_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" ) func TestXTweetsRetweetCreate(t *testing.T) { diff --git a/pkg/cmd/xuser.go b/pkg/cmd/xuser.go index 44b6184..c63022e 100644 --- a/pkg/cmd/xuser.go +++ b/pkg/cmd/xuser.go @@ -6,10 +6,10 @@ import ( "context" "fmt" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/xuser_test.go b/pkg/cmd/xuser_test.go index f95640b..df51f17 100644 --- a/pkg/cmd/xuser_test.go +++ b/pkg/cmd/xuser_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" ) func TestXUsersRetrieve(t *testing.T) { diff --git a/pkg/cmd/xuserfollow.go b/pkg/cmd/xuserfollow.go index f425db2..057d634 100644 --- a/pkg/cmd/xuserfollow.go +++ b/pkg/cmd/xuserfollow.go @@ -6,10 +6,10 @@ import ( "context" "fmt" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/apiquery" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/requestflag" - "github.com/stainless-sdks/x-twitter-scraper-go" - "github.com/stainless-sdks/x-twitter-scraper-go/option" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/apiquery" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/requestflag" + "github.com/Xquik-dev/x-twitter-scraper-go" + "github.com/Xquik-dev/x-twitter-scraper-go/option" "github.com/tidwall/gjson" "github.com/urfave/cli/v3" ) diff --git a/pkg/cmd/xuserfollow_test.go b/pkg/cmd/xuserfollow_test.go index e6f6b89..ec3b44f 100644 --- a/pkg/cmd/xuserfollow_test.go +++ b/pkg/cmd/xuserfollow_test.go @@ -5,7 +5,7 @@ package cmd import ( "testing" - "github.com/stainless-sdks/x-twitter-scraper-cli/internal/mocktest" + "github.com/Xquik-dev/x-twitter-scraper-cli/internal/mocktest" ) func TestXUsersFollowCreate(t *testing.T) { diff --git a/scripts/build b/scripts/build index 646ac8e..e6940ff 100755 --- a/scripts/build +++ b/scripts/build @@ -5,7 +5,7 @@ set -euo pipefail cd "$(dirname "$0")/.." # Mark the necessary Go modules as private to avoid Go's proxy -export GOPRIVATE="${GOPRIVATE:+$GOPRIVATE,}github.com/stainless-sdks/x-twitter-scraper-go" +export GOPRIVATE="${GOPRIVATE:+$GOPRIVATE,}github.com/Xquik-dev/x-twitter-scraper-go,github.com/stainless-sdks/x-twitter-scraper-go" echo "==> Building x-twitter-scraper" go build ./cmd/x-twitter-scraper diff --git a/scripts/link b/scripts/link index 1977bb2..609474e 100755 --- a/scripts/link +++ b/scripts/link @@ -5,12 +5,12 @@ set -euo pipefail cd "$(dirname "$0")/.." # Mark the necessary Go modules as private to avoid Go's proxy -export GOPRIVATE="${GOPRIVATE:+$GOPRIVATE,}github.com/stainless-sdks/x-twitter-scraper-go" +export GOPRIVATE="${GOPRIVATE:+$GOPRIVATE,}github.com/Xquik-dev/x-twitter-scraper-go,github.com/stainless-sdks/x-twitter-scraper-go" REPLACEMENT="${1:-"../x-twitter-scraper-go"}" echo "==> Replacing Go SDK with $REPLACEMENT" if [[ -d "$REPLACEMENT" ]] || go list -m "$REPLACEMENT" >/dev/null; then - go mod edit -replace github.com/stainless-sdks/x-twitter-scraper-go="$REPLACEMENT" + go mod edit -replace github.com/Xquik-dev/x-twitter-scraper-go="$REPLACEMENT" go mod tidy -e else echo "Skipping Go SDK replacement (branch may not exist on Go SDK)" diff --git a/scripts/lint b/scripts/lint index 0942726..c7b9f6c 100755 --- a/scripts/lint +++ b/scripts/lint @@ -5,7 +5,7 @@ set -euo pipefail cd "$(dirname "$0")/.." # Mark the necessary Go modules as private to avoid Go's proxy -export GOPRIVATE="${GOPRIVATE:+$GOPRIVATE,}github.com/stainless-sdks/x-twitter-scraper-go" +export GOPRIVATE="${GOPRIVATE:+$GOPRIVATE,}github.com/Xquik-dev/x-twitter-scraper-go,github.com/stainless-sdks/x-twitter-scraper-go" echo "==> Running Go build" go build ./... diff --git a/scripts/run b/scripts/run index 57ba34b..04913a7 100755 --- a/scripts/run +++ b/scripts/run @@ -5,6 +5,6 @@ set -euo pipefail cd "$(dirname "$0")/.." # Mark the necessary Go modules as private to avoid Go's proxy -export GOPRIVATE="${GOPRIVATE:+$GOPRIVATE,}github.com/stainless-sdks/x-twitter-scraper-go" +export GOPRIVATE="${GOPRIVATE:+$GOPRIVATE,}github.com/Xquik-dev/x-twitter-scraper-go,github.com/stainless-sdks/x-twitter-scraper-go" go run ./cmd/x-twitter-scraper "$@" diff --git a/scripts/test b/scripts/test index 9f8c52b..5b12e37 100755 --- a/scripts/test +++ b/scripts/test @@ -5,7 +5,7 @@ set -euo pipefail cd "$(dirname "$0")/.." # Mark the necessary Go modules as private to avoid Go's proxy -export GOPRIVATE="${GOPRIVATE:+$GOPRIVATE,}github.com/stainless-sdks/x-twitter-scraper-go" +export GOPRIVATE="${GOPRIVATE:+$GOPRIVATE,}github.com/Xquik-dev/x-twitter-scraper-go,github.com/stainless-sdks/x-twitter-scraper-go" diff --git a/scripts/unlink b/scripts/unlink index c2a2dc6..f9daf8a 100755 --- a/scripts/unlink +++ b/scripts/unlink @@ -5,4 +5,4 @@ set -e cd "$(dirname "$0")/.." echo "==> Unlinking with local directory" -go mod edit -dropreplace github.com/stainless-sdks/x-twitter-scraper-go +go mod edit -dropreplace github.com/Xquik-dev/x-twitter-scraper-go From 6d5da374e3a40fcaf3d31945666770843d537ee5 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 22 Apr 2026 21:26:26 +0000 Subject: [PATCH 30/33] fix: escape ampersand in OpenAPI summaries for C# XML docs --- .stats.yml | 4 ++-- pkg/cmd/trend.go | 2 +- pkg/cmd/x.go | 2 +- pkg/cmd/xcommunity.go | 2 +- pkg/cmd/xmedia.go | 2 +- pkg/cmd/xtweet.go | 4 ++-- pkg/cmd/xuser.go | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.stats.yml b/.stats.yml index cf3227f..d470135 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 110 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-4a12c672870ee7282ad1d00f262e20fb360a8296b64a774628d1d0252e12694a.yml -openapi_spec_hash: 2e298ff704f550c80c2d07d9adadba6d +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/xquik%2Fx-twitter-scraper-2adc33156b4b42a4be18cc20c0205b38f0432d7958da99c65ee9b3f6a555ea0e.yml +openapi_spec_hash: be760f5620a268521d6793f65576a61f config_hash: 320a9cb2f1293d1a7b73c63ab5865af5 diff --git a/pkg/cmd/trend.go b/pkg/cmd/trend.go index b8c2a2c..1c0efbd 100644 --- a/pkg/cmd/trend.go +++ b/pkg/cmd/trend.go @@ -16,7 +16,7 @@ import ( var trendsList = cli.Command{ Name: "list", - Usage: "Get trending hashtags & topics by region (alias)", + Usage: "Get trending hashtags and topics by region (alias)", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[int64]{ diff --git a/pkg/cmd/x.go b/pkg/cmd/x.go index 0c7fb24..30d8b5b 100644 --- a/pkg/cmd/x.go +++ b/pkg/cmd/x.go @@ -71,7 +71,7 @@ var xGetNotifications = cli.Command{ var xGetTrends = cli.Command{ Name: "get-trends", - Usage: "Get trending hashtags & topics from X by region", + Usage: "Get trending hashtags and topics from X by region", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[int64]{ diff --git a/pkg/cmd/xcommunity.go b/pkg/cmd/xcommunity.go index 808bd57..142e6ef 100644 --- a/pkg/cmd/xcommunity.go +++ b/pkg/cmd/xcommunity.go @@ -69,7 +69,7 @@ var xCommunitiesDelete = cli.Command{ var xCommunitiesRetrieveInfo = cli.Command{ Name: "retrieve-info", - Usage: "Get community name, description & member count", + Usage: "Get community name, description and member count", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[string]{ diff --git a/pkg/cmd/xmedia.go b/pkg/cmd/xmedia.go index 00f676b..8f66b33 100644 --- a/pkg/cmd/xmedia.go +++ b/pkg/cmd/xmedia.go @@ -16,7 +16,7 @@ import ( var xMediaDownload = cli.Command{ Name: "download", - Usage: "Download images & videos from tweets", + Usage: "Download images and videos from tweets", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[[]string]{ diff --git a/pkg/cmd/xtweet.go b/pkg/cmd/xtweet.go index ee1dde0..02477dd 100644 --- a/pkg/cmd/xtweet.go +++ b/pkg/cmd/xtweet.go @@ -63,7 +63,7 @@ var xTweetsCreate = cli.Command{ var xTweetsRetrieve = cli.Command{ Name: "retrieve", - Usage: "Get tweet with full text, author, metrics & media", + Usage: "Get tweet with full text, author, metrics and media", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[string]{ @@ -233,7 +233,7 @@ var xTweetsGetThread = cli.Command{ var xTweetsSearch = cli.Command{ Name: "search", - Usage: "Search tweets with X query operators & pagination", + Usage: "Search tweets with X query operators and pagination", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[string]{ diff --git a/pkg/cmd/xuser.go b/pkg/cmd/xuser.go index c63022e..767fd28 100644 --- a/pkg/cmd/xuser.go +++ b/pkg/cmd/xuser.go @@ -16,7 +16,7 @@ import ( var xUsersRetrieve = cli.Command{ Name: "retrieve", - Usage: "Get user profile with follower counts & verification", + Usage: "Get user profile with follower counts and verification", Suggest: true, Flags: []cli.Flag{ &requestflag.Flag[string]{ From f783c028f7ca4fbd5dd87b83488930c007598a8f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 23 Apr 2026 02:43:23 +0000 Subject: [PATCH 31/33] chore(internal): codegen related update --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 6fd30ad..49e11a9 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/Xquik-dev/x-twitter-scraper-cli go 1.25 require ( - github.com/Xquik-dev/x-twitter-scraper-go v0.3.0 + github.com/Xquik-dev/x-twitter-scraper-go v0.4.0 github.com/charmbracelet/bubbles v0.21.0 github.com/charmbracelet/bubbletea v1.3.6 github.com/charmbracelet/lipgloss v1.1.0 diff --git a/go.sum b/go.sum index f8d633f..16352a5 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,5 @@ -github.com/Xquik-dev/x-twitter-scraper-go v0.3.0 h1:Iu2ejXyVKqikAWAlCgfGNeav5Q+3/V6lscdmUKYGB/8= -github.com/Xquik-dev/x-twitter-scraper-go v0.3.0/go.mod h1:OHW3aIR8E3+ANa/mjFTZs1sG7ePzrBEmW0a8JUN+NvI= +github.com/Xquik-dev/x-twitter-scraper-go v0.4.0 h1:np1LceO4i48617H41xpm6kH7e57ZV11RMwCAdeVhTzc= +github.com/Xquik-dev/x-twitter-scraper-go v0.4.0/go.mod h1:OHW3aIR8E3+ANa/mjFTZs1sG7ePzrBEmW0a8JUN+NvI= github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= github.com/aymanbagabas/go-udiff v0.2.0 h1:TK0fH4MteXUDspT88n8CKzvK0X9O2xu9yQjWpi6yML8= From 262e4d3ee4b8d64258ffda8ca1f8d283bdbc35bf Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 23 Apr 2026 02:43:50 +0000 Subject: [PATCH 32/33] chore(internal): more robust bootstrap script --- scripts/bootstrap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/bootstrap b/scripts/bootstrap index 9ebb7d3..bbc786d 100755 --- a/scripts/bootstrap +++ b/scripts/bootstrap @@ -4,7 +4,7 @@ set -e cd "$(dirname "$0")/.." -if [ -f "Brewfile" ] && [ "$(uname -s)" = "Darwin" ] && [ "$SKIP_BREW" != "1" ] && [ -t 0 ]; then +if [ -f "Brewfile" ] && [ "$(uname -s)" = "Darwin" ] && [ "${SKIP_BREW:-}" != "1" ] && [ -t 0 ]; then brew bundle check >/dev/null 2>&1 || { echo -n "==> Install Homebrew dependencies? (y/N): " read -r response From e3afe9bc5e87bc19769d8c9771d83af9e2656356 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 25 Apr 2026 05:27:50 +0000 Subject: [PATCH 33/33] release: 0.4.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 39 +++++++++++++++++++++++++++++++++++ pkg/cmd/version.go | 2 +- 3 files changed, 41 insertions(+), 2 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 6b7b74c..da59f99 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.3.0" + ".": "0.4.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index e4a67cb..ab52538 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,44 @@ # Changelog +## 0.4.0 (2026-04-25) + +Full Changelog: [v0.3.0...v0.4.0](https://github.com/Xquik-dev/x-twitter-scraper-cli/compare/v0.3.0...v0.4.0) + +### Features + +* **api:** api update ([e9d6bea](https://github.com/Xquik-dev/x-twitter-scraper-cli/commit/e9d6beaf3b434b0c063fb0a25d92da9aebc8c970)) +* **api:** api update ([607c495](https://github.com/Xquik-dev/x-twitter-scraper-cli/commit/607c49591bc8d2f0c93a99ba360f46540373b4c4)) +* **api:** api update ([7197e8f](https://github.com/Xquik-dev/x-twitter-scraper-cli/commit/7197e8f7ae0b37957eec880dd03a9786eb23caa8)) +* **cli:** add `--raw-output`/`-r` option to print raw (non-JSON) strings ([28be4fa](https://github.com/Xquik-dev/x-twitter-scraper-cli/commit/28be4fac015d4fa532e8714b15634baafab111c0)) +* **cli:** alias parameters in data with `x-stainless-cli-data-alias` ([96d1bfc](https://github.com/Xquik-dev/x-twitter-scraper-cli/commit/96d1bfca315fcfa3b602b6007e6452efc7ef869b)) +* **cli:** send filename and content type when reading input from files ([4dc5824](https://github.com/Xquik-dev/x-twitter-scraper-cli/commit/4dc58248eec53b50faf98eb2869e27ddf15618d4)) + + +### Bug Fixes + +* escape ampersand in OpenAPI summaries for C# XML docs ([6d5da37](https://github.com/Xquik-dev/x-twitter-scraper-cli/commit/6d5da374e3a40fcaf3d31945666770843d537ee5)) +* fix for failing to drop invalid module replace in link script ([a086faf](https://github.com/Xquik-dev/x-twitter-scraper-cli/commit/a086fafbb77d57fb4b2c1330e526c299b2c8e0de)) + + +### Chores + +* add documentation for ./scripts/link ([1fe38e3](https://github.com/Xquik-dev/x-twitter-scraper-cli/commit/1fe38e359d3863fc12c588dcd2db8164a67a10e1)) +* **ci:** support manually triggering release workflow ([c947c68](https://github.com/Xquik-dev/x-twitter-scraper-cli/commit/c947c68b51f8141b8ed6030b641f34ef783c53e3)) +* **cli:** additional test cases for `ShowJSONIterator` ([3d20d69](https://github.com/Xquik-dev/x-twitter-scraper-cli/commit/3d20d69c87f77ece9fb46b3f58da0948fa21f601)) +* **cli:** fall back to JSON when using default "explore" with non-TTY ([f48c1f0](https://github.com/Xquik-dev/x-twitter-scraper-cli/commit/f48c1f013e9c850b7780e4d1760dca7ac16f62b8)) +* **cli:** let `--format raw` be used in conjunction with `--transform` ([5a0010a](https://github.com/Xquik-dev/x-twitter-scraper-cli/commit/5a0010abd09ae3e5d51b8a3536a4b662b328bd8e)) +* **cli:** switch long lists of positional args over to param structs ([21a0bc9](https://github.com/Xquik-dev/x-twitter-scraper-cli/commit/21a0bc997e853879adc640cc2114861ab9f4018a)) +* **cli:** use `ShowJSONOpts` as argument to `formatJSON` instead of many positionals ([9a34472](https://github.com/Xquik-dev/x-twitter-scraper-cli/commit/9a344724e7f20169211f27eb1f3d3122a7aa78ca)) +* **internal:** codegen related update ([f783c02](https://github.com/Xquik-dev/x-twitter-scraper-cli/commit/f783c028f7ca4fbd5dd87b83488930c007598a8f)) +* **internal:** more robust bootstrap script ([262e4d3](https://github.com/Xquik-dev/x-twitter-scraper-cli/commit/262e4d3ee4b8d64258ffda8ca1f8d283bdbc35bf)) +* sync OpenAPI spec ([0f0687b](https://github.com/Xquik-dev/x-twitter-scraper-cli/commit/0f0687b9a0ea1e35149eb38d2899c649a1991195)) +* wire production_repo for all targets ([d46e8ec](https://github.com/Xquik-dev/x-twitter-scraper-cli/commit/d46e8ecbc08aac3f02d31b6d2674a19f27393662)) + + +### Documentation + +* add Contributor Covenant 2.1 Code of Conduct ([#2192](https://github.com/Xquik-dev/x-twitter-scraper-cli/issues/2192)) ([c253bcb](https://github.com/Xquik-dev/x-twitter-scraper-cli/commit/c253bcbbef2f104a891f63807058763a505162a3)) + ## 0.3.0 (2026-04-08) Full Changelog: [v0.2.0...v0.3.0](https://github.com/Xquik-dev/x-twitter-scraper-cli/compare/v0.2.0...v0.3.0) diff --git a/pkg/cmd/version.go b/pkg/cmd/version.go index 5266c84..b113456 100644 --- a/pkg/cmd/version.go +++ b/pkg/cmd/version.go @@ -2,4 +2,4 @@ package cmd -const Version = "0.3.0" // x-release-please-version +const Version = "0.4.0" // x-release-please-version