x-twitter-scraper 0.4.5 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +33 -0
- data/README.md +8 -41
- data/lib/x_twitter_scraper/client.rb +1 -1
- data/lib/x_twitter_scraper/internal/type/union.rb +13 -0
- data/lib/x_twitter_scraper/models/account_retrieve_response.rb +4 -4
- data/lib/x_twitter_scraper/models/compose_create_params.rb +194 -122
- data/lib/x_twitter_scraper/models/compose_create_response.rb +326 -33
- data/lib/x_twitter_scraper/models/credit_retrieve_topup_status_params.rb +2 -2
- data/lib/x_twitter_scraper/models/error.rb +99 -3
- data/lib/x_twitter_scraper/models/extraction_estimate_cost_params.rb +8 -8
- data/lib/x_twitter_scraper/models/guest_wallet_create_params.rb +2 -2
- data/lib/x_twitter_scraper/models/guest_wallet_create_response.rb +27 -7
- data/lib/x_twitter_scraper/models/guest_wallet_topup_params.rb +2 -2
- data/lib/x_twitter_scraper/models/guest_wallet_topup_response.rb +27 -7
- data/lib/x_twitter_scraper/models/search_tweet.rb +12 -12
- data/lib/x_twitter_scraper/models/support/ticket_create_params.rb +7 -1
- data/lib/x_twitter_scraper/models/support/ticket_create_response.rb +40 -3
- data/lib/x_twitter_scraper/models/support/ticket_reply_params.rb +7 -1
- data/lib/x_twitter_scraper/models/support/ticket_reply_response.rb +40 -3
- data/lib/x_twitter_scraper/models/support/ticket_retrieve_response.rb +114 -1
- data/lib/x_twitter_scraper/models/x/communities/join_create_params.rb +8 -1
- data/lib/x_twitter_scraper/models/x/communities/join_create_response.rb +577 -4
- data/lib/x_twitter_scraper/models/x/communities/join_delete_all_params.rb +8 -1
- data/lib/x_twitter_scraper/models/x/communities/join_delete_all_response.rb +585 -4
- data/lib/x_twitter_scraper/models/x/community_create_params.rb +8 -1
- data/lib/x_twitter_scraper/models/x/community_create_response.rb +568 -8
- data/lib/x_twitter_scraper/models/x/community_delete_params.rb +8 -1
- data/lib/x_twitter_scraper/models/x/community_delete_response.rb +576 -4
- data/lib/x_twitter_scraper/models/x/dm_send_params.rb +8 -1
- data/lib/x_twitter_scraper/models/x/dm_send_response.rb +573 -7
- data/lib/x_twitter_scraper/models/x/media_upload_params.rb +8 -1
- data/lib/x_twitter_scraper/models/x/media_upload_response.rb +568 -11
- data/lib/x_twitter_scraper/models/x/profile_update_avatar_params.rb +8 -1
- data/lib/x_twitter_scraper/models/x/profile_update_avatar_response.rb +576 -4
- data/lib/x_twitter_scraper/models/x/profile_update_banner_params.rb +8 -1
- data/lib/x_twitter_scraper/models/x/profile_update_banner_response.rb +576 -4
- data/lib/x_twitter_scraper/models/x/profile_update_params.rb +8 -1
- data/lib/x_twitter_scraper/models/x/profile_update_response.rb +576 -4
- data/lib/x_twitter_scraper/models/x/tweet_author.rb +1 -14
- data/lib/x_twitter_scraper/models/x/tweet_create_params.rb +5 -5
- data/lib/x_twitter_scraper/models/x/tweet_create_response.rb +551 -12
- data/lib/x_twitter_scraper/models/x/tweet_delete_params.rb +8 -1
- data/lib/x_twitter_scraper/models/x/tweet_delete_response.rb +576 -4
- data/lib/x_twitter_scraper/models/x/tweets/like_create_params.rb +8 -1
- data/lib/x_twitter_scraper/models/x/tweets/like_create_response.rb +576 -4
- data/lib/x_twitter_scraper/models/x/tweets/like_delete_params.rb +8 -1
- data/lib/x_twitter_scraper/models/x/tweets/like_delete_response.rb +576 -4
- data/lib/x_twitter_scraper/models/x/tweets/retweet_create_params.rb +8 -1
- data/lib/x_twitter_scraper/models/x/tweets/retweet_create_response.rb +576 -4
- data/lib/x_twitter_scraper/models/x/tweets/retweet_delete_params.rb +8 -1
- data/lib/x_twitter_scraper/models/x/tweets/retweet_delete_response.rb +576 -4
- data/lib/x_twitter_scraper/models/x/user_remove_follower_params.rb +8 -1
- data/lib/x_twitter_scraper/models/x/user_remove_follower_response.rb +576 -4
- data/lib/x_twitter_scraper/models/x/user_retrieve_following_params.rb +2 -2
- data/lib/x_twitter_scraper/models/x/user_retrieve_replies_params.rb +2 -2
- data/lib/x_twitter_scraper/models/x/users/follow_create_params.rb +8 -1
- data/lib/x_twitter_scraper/models/x/users/follow_create_response.rb +576 -4
- data/lib/x_twitter_scraper/models/x/users/follow_delete_all_params.rb +8 -1
- data/lib/x_twitter_scraper/models/x/users/follow_delete_all_response.rb +576 -4
- data/lib/x_twitter_scraper/models/x/write_action_retrieve_response.rb +469 -52
- data/lib/x_twitter_scraper/models/x/x_account.rb +7 -7
- data/lib/x_twitter_scraper/models/x/x_account_detail.rb +1 -1
- data/lib/x_twitter_scraper/resources/compose.rb +8 -26
- data/lib/x_twitter_scraper/resources/credits.rb +1 -1
- data/lib/x_twitter_scraper/resources/extractions.rb +4 -4
- data/lib/x_twitter_scraper/resources/guest_wallets.rb +2 -2
- data/lib/x_twitter_scraper/resources/monitors/keywords.rb +4 -5
- data/lib/x_twitter_scraper/resources/monitors.rb +3 -3
- data/lib/x_twitter_scraper/resources/support/tickets.rb +24 -8
- data/lib/x_twitter_scraper/resources/trends.rb +1 -1
- data/lib/x_twitter_scraper/resources/x/communities/join.rb +22 -8
- data/lib/x_twitter_scraper/resources/x/communities.rb +25 -11
- data/lib/x_twitter_scraper/resources/x/dm.rb +13 -6
- data/lib/x_twitter_scraper/resources/x/media.rb +17 -7
- data/lib/x_twitter_scraper/resources/x/profile.rb +46 -17
- data/lib/x_twitter_scraper/resources/x/tweets/like.rb +22 -8
- data/lib/x_twitter_scraper/resources/x/tweets/retweet.rb +22 -8
- data/lib/x_twitter_scraper/resources/x/tweets.rb +31 -16
- data/lib/x_twitter_scraper/resources/x/users/follow.rb +22 -8
- data/lib/x_twitter_scraper/resources/x/users.rb +16 -9
- data/lib/x_twitter_scraper/resources/x.rb +1 -2
- data/lib/x_twitter_scraper/version.rb +1 -1
- data/rbi/x_twitter_scraper/client.rbi +1 -1
- data/rbi/x_twitter_scraper/models/account_retrieve_response.rbi +4 -4
- data/rbi/x_twitter_scraper/models/compose_create_params.rbi +392 -215
- data/rbi/x_twitter_scraper/models/compose_create_response.rbi +537 -48
- data/rbi/x_twitter_scraper/models/credit_retrieve_topup_status_params.rbi +2 -2
- data/rbi/x_twitter_scraper/models/error.rbi +379 -13
- data/rbi/x_twitter_scraper/models/extraction_estimate_cost_params.rbi +8 -8
- data/rbi/x_twitter_scraper/models/guest_wallet_create_params.rbi +2 -2
- data/rbi/x_twitter_scraper/models/guest_wallet_create_response.rbi +87 -5
- data/rbi/x_twitter_scraper/models/guest_wallet_topup_params.rbi +2 -2
- data/rbi/x_twitter_scraper/models/guest_wallet_topup_response.rbi +87 -5
- data/rbi/x_twitter_scraper/models/search_tweet.rbi +12 -12
- data/rbi/x_twitter_scraper/models/support/ticket_create_params.rbi +9 -1
- data/rbi/x_twitter_scraper/models/support/ticket_create_response.rbi +113 -7
- data/rbi/x_twitter_scraper/models/support/ticket_reply_params.rbi +9 -1
- data/rbi/x_twitter_scraper/models/support/ticket_reply_response.rbi +113 -7
- data/rbi/x_twitter_scraper/models/support/ticket_retrieve_response.rbi +276 -5
- data/rbi/x_twitter_scraper/models/x/communities/join_create_params.rbi +6 -0
- data/rbi/x_twitter_scraper/models/x/communities/join_create_response.rbi +1154 -3
- data/rbi/x_twitter_scraper/models/x/communities/join_delete_all_params.rbi +6 -0
- data/rbi/x_twitter_scraper/models/x/communities/join_delete_all_response.rbi +1154 -3
- data/rbi/x_twitter_scraper/models/x/community_create_params.rbi +6 -0
- data/rbi/x_twitter_scraper/models/x/community_create_response.rbi +1127 -5
- data/rbi/x_twitter_scraper/models/x/community_delete_params.rbi +6 -0
- data/rbi/x_twitter_scraper/models/x/community_delete_response.rbi +1148 -3
- data/rbi/x_twitter_scraper/models/x/dm_send_params.rbi +6 -0
- data/rbi/x_twitter_scraper/models/x/dm_send_response.rbi +1112 -6
- data/rbi/x_twitter_scraper/models/x/media_upload_params.rbi +6 -0
- data/rbi/x_twitter_scraper/models/x/media_upload_response.rbi +1124 -9
- data/rbi/x_twitter_scraper/models/x/profile_update_avatar_params.rbi +6 -0
- data/rbi/x_twitter_scraper/models/x/profile_update_avatar_response.rbi +1152 -3
- data/rbi/x_twitter_scraper/models/x/profile_update_banner_params.rbi +6 -0
- data/rbi/x_twitter_scraper/models/x/profile_update_banner_response.rbi +1152 -3
- data/rbi/x_twitter_scraper/models/x/profile_update_params.rbi +6 -0
- data/rbi/x_twitter_scraper/models/x/profile_update_response.rbi +1144 -3
- data/rbi/x_twitter_scraper/models/x/tweet_author.rbi +3 -13
- data/rbi/x_twitter_scraper/models/x/tweet_create_params.rbi +5 -8
- data/rbi/x_twitter_scraper/models/x/tweet_create_response.rbi +1108 -14
- data/rbi/x_twitter_scraper/models/x/tweet_delete_params.rbi +6 -0
- data/rbi/x_twitter_scraper/models/x/tweet_delete_response.rbi +1140 -3
- data/rbi/x_twitter_scraper/models/x/tweets/like_create_params.rbi +6 -0
- data/rbi/x_twitter_scraper/models/x/tweets/like_create_response.rbi +1154 -3
- data/rbi/x_twitter_scraper/models/x/tweets/like_delete_params.rbi +6 -0
- data/rbi/x_twitter_scraper/models/x/tweets/like_delete_response.rbi +1154 -3
- data/rbi/x_twitter_scraper/models/x/tweets/retweet_create_params.rbi +6 -0
- data/rbi/x_twitter_scraper/models/x/tweets/retweet_create_response.rbi +1154 -3
- data/rbi/x_twitter_scraper/models/x/tweets/retweet_delete_params.rbi +6 -0
- data/rbi/x_twitter_scraper/models/x/tweets/retweet_delete_response.rbi +1154 -3
- data/rbi/x_twitter_scraper/models/x/user_remove_follower_params.rbi +6 -0
- data/rbi/x_twitter_scraper/models/x/user_remove_follower_response.rbi +1152 -3
- data/rbi/x_twitter_scraper/models/x/user_retrieve_following_params.rbi +2 -2
- data/rbi/x_twitter_scraper/models/x/user_retrieve_replies_params.rbi +2 -2
- data/rbi/x_twitter_scraper/models/x/users/follow_create_params.rbi +6 -0
- data/rbi/x_twitter_scraper/models/x/users/follow_create_response.rbi +1154 -3
- data/rbi/x_twitter_scraper/models/x/users/follow_delete_all_params.rbi +6 -0
- data/rbi/x_twitter_scraper/models/x/users/follow_delete_all_response.rbi +1154 -3
- data/rbi/x_twitter_scraper/models/x/write_action_retrieve_response.rbi +930 -66
- data/rbi/x_twitter_scraper/models/x/x_account.rbi +9 -9
- data/rbi/x_twitter_scraper/models/x/x_account_detail.rbi +1 -1
- data/rbi/x_twitter_scraper/resources/compose.rbi +12 -38
- data/rbi/x_twitter_scraper/resources/credits.rbi +1 -1
- data/rbi/x_twitter_scraper/resources/extractions.rbi +4 -4
- data/rbi/x_twitter_scraper/resources/guest_wallets.rbi +2 -2
- data/rbi/x_twitter_scraper/resources/monitors/keywords.rbi +4 -5
- data/rbi/x_twitter_scraper/resources/monitors.rbi +3 -3
- data/rbi/x_twitter_scraper/resources/support/tickets.rbi +17 -2
- data/rbi/x_twitter_scraper/resources/trends.rbi +1 -1
- data/rbi/x_twitter_scraper/resources/x/communities/join.rbi +16 -4
- data/rbi/x_twitter_scraper/resources/x/communities.rbi +19 -7
- data/rbi/x_twitter_scraper/resources/x/dm.rbi +10 -3
- data/rbi/x_twitter_scraper/resources/x/media.rbi +9 -4
- data/rbi/x_twitter_scraper/resources/x/profile.rbi +27 -8
- data/rbi/x_twitter_scraper/resources/x/tweets/like.rbi +16 -4
- data/rbi/x_twitter_scraper/resources/x/tweets/retweet.rbi +16 -4
- data/rbi/x_twitter_scraper/resources/x/tweets.rbi +31 -12
- data/rbi/x_twitter_scraper/resources/x/users/follow.rbi +16 -4
- data/rbi/x_twitter_scraper/resources/x/users.rbi +13 -7
- data/rbi/x_twitter_scraper/resources/x.rbi +1 -2
- data/sig/x_twitter_scraper/models/compose_create_params.rbs +150 -90
- data/sig/x_twitter_scraper/models/compose_create_response.rbs +249 -27
- data/sig/x_twitter_scraper/models/error.rbs +170 -7
- data/sig/x_twitter_scraper/models/guest_wallet_create_response.rbs +35 -5
- data/sig/x_twitter_scraper/models/guest_wallet_topup_response.rbs +35 -5
- data/sig/x_twitter_scraper/models/support/ticket_create_params.rbs +7 -1
- data/sig/x_twitter_scraper/models/support/ticket_create_response.rbs +49 -5
- data/sig/x_twitter_scraper/models/support/ticket_reply_params.rbs +7 -1
- data/sig/x_twitter_scraper/models/support/ticket_reply_response.rbs +49 -5
- data/sig/x_twitter_scraper/models/support/ticket_retrieve_response.rbs +113 -2
- data/sig/x_twitter_scraper/models/x/communities/join_create_params.rbs +5 -1
- data/sig/x_twitter_scraper/models/x/communities/join_create_response.rbs +540 -4
- data/sig/x_twitter_scraper/models/x/communities/join_delete_all_params.rbs +5 -1
- data/sig/x_twitter_scraper/models/x/communities/join_delete_all_response.rbs +540 -4
- data/sig/x_twitter_scraper/models/x/community_create_params.rbs +10 -1
- data/sig/x_twitter_scraper/models/x/community_create_response.rbs +528 -7
- data/sig/x_twitter_scraper/models/x/community_delete_params.rbs +10 -1
- data/sig/x_twitter_scraper/models/x/community_delete_response.rbs +540 -4
- data/sig/x_twitter_scraper/models/x/dm_send_params.rbs +5 -0
- data/sig/x_twitter_scraper/models/x/dm_send_response.rbs +539 -5
- data/sig/x_twitter_scraper/models/x/media_upload_params.rbs +5 -1
- data/sig/x_twitter_scraper/models/x/media_upload_response.rbs +534 -7
- data/sig/x_twitter_scraper/models/x/profile_update_avatar_params.rbs +5 -1
- data/sig/x_twitter_scraper/models/x/profile_update_avatar_response.rbs +540 -4
- data/sig/x_twitter_scraper/models/x/profile_update_banner_params.rbs +5 -1
- data/sig/x_twitter_scraper/models/x/profile_update_banner_response.rbs +540 -4
- data/sig/x_twitter_scraper/models/x/profile_update_params.rbs +5 -0
- data/sig/x_twitter_scraper/models/x/profile_update_response.rbs +540 -4
- data/sig/x_twitter_scraper/models/x/tweet_author.rbs +3 -11
- data/sig/x_twitter_scraper/models/x/tweet_create_params.rbs +4 -6
- data/sig/x_twitter_scraper/models/x/tweet_create_response.rbs +518 -11
- data/sig/x_twitter_scraper/models/x/tweet_delete_params.rbs +5 -1
- data/sig/x_twitter_scraper/models/x/tweet_delete_response.rbs +540 -4
- data/sig/x_twitter_scraper/models/x/tweets/like_create_params.rbs +5 -1
- data/sig/x_twitter_scraper/models/x/tweets/like_create_response.rbs +540 -4
- data/sig/x_twitter_scraper/models/x/tweets/like_delete_params.rbs +5 -1
- data/sig/x_twitter_scraper/models/x/tweets/like_delete_response.rbs +540 -4
- data/sig/x_twitter_scraper/models/x/tweets/retweet_create_params.rbs +5 -1
- data/sig/x_twitter_scraper/models/x/tweets/retweet_create_response.rbs +540 -4
- data/sig/x_twitter_scraper/models/x/tweets/retweet_delete_params.rbs +5 -1
- data/sig/x_twitter_scraper/models/x/tweets/retweet_delete_response.rbs +540 -4
- data/sig/x_twitter_scraper/models/x/user_remove_follower_params.rbs +5 -1
- data/sig/x_twitter_scraper/models/x/user_remove_follower_response.rbs +540 -4
- data/sig/x_twitter_scraper/models/x/users/follow_create_params.rbs +5 -1
- data/sig/x_twitter_scraper/models/x/users/follow_create_response.rbs +540 -4
- data/sig/x_twitter_scraper/models/x/users/follow_delete_all_params.rbs +5 -1
- data/sig/x_twitter_scraper/models/x/users/follow_delete_all_response.rbs +540 -4
- data/sig/x_twitter_scraper/models/x/write_action_retrieve_response.rbs +428 -54
- data/sig/x_twitter_scraper/resources/compose.rbs +2 -12
- data/sig/x_twitter_scraper/resources/support/tickets.rbs +2 -0
- data/sig/x_twitter_scraper/resources/x/communities/join.rbs +2 -0
- data/sig/x_twitter_scraper/resources/x/communities.rbs +2 -0
- data/sig/x_twitter_scraper/resources/x/dm.rbs +1 -0
- data/sig/x_twitter_scraper/resources/x/media.rbs +1 -0
- data/sig/x_twitter_scraper/resources/x/profile.rbs +3 -0
- data/sig/x_twitter_scraper/resources/x/tweets/like.rbs +2 -0
- data/sig/x_twitter_scraper/resources/x/tweets/retweet.rbs +2 -0
- data/sig/x_twitter_scraper/resources/x/tweets.rbs +2 -1
- data/sig/x_twitter_scraper/resources/x/users/follow.rbs +2 -0
- data/sig/x_twitter_scraper/resources/x/users.rbs +1 -0
- metadata +17 -26
|
@@ -6,13 +6,18 @@ module XTwitterScraper
|
|
|
6
6
|
class Tweets
|
|
7
7
|
# X write actions (tweets, likes, follows, DMs)
|
|
8
8
|
class Like
|
|
9
|
+
# Some parameter documentations has been truncated, see
|
|
10
|
+
# {XTwitterScraper::Models::X::Tweets::LikeCreateParams} for more details.
|
|
11
|
+
#
|
|
9
12
|
# Like tweet
|
|
10
13
|
#
|
|
11
|
-
# @overload create(id, account:, request_options: {})
|
|
14
|
+
# @overload create(id, account:, idempotency_key:, request_options: {})
|
|
15
|
+
#
|
|
16
|
+
# @param id [String] Path param: Tweet ID to like
|
|
12
17
|
#
|
|
13
|
-
# @param
|
|
18
|
+
# @param account [String] Body param: X account identifier (@username or account ID)
|
|
14
19
|
#
|
|
15
|
-
# @param
|
|
20
|
+
# @param idempotency_key [String] Header param: Generate one unique value for each intended write. Reuse it only w
|
|
16
21
|
#
|
|
17
22
|
# @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
18
23
|
#
|
|
@@ -21,22 +26,29 @@ module XTwitterScraper
|
|
|
21
26
|
# @see XTwitterScraper::Models::X::Tweets::LikeCreateParams
|
|
22
27
|
def create(id, params)
|
|
23
28
|
parsed, options = XTwitterScraper::X::Tweets::LikeCreateParams.dump_request(params)
|
|
29
|
+
header_params = {idempotency_key: "idempotency-key"}
|
|
24
30
|
@client.request(
|
|
25
31
|
method: :post,
|
|
26
32
|
path: ["x/tweets/%1$s/like", id],
|
|
27
|
-
|
|
33
|
+
headers: parsed.slice(*header_params.keys).transform_keys(header_params),
|
|
34
|
+
body: parsed.except(*header_params.keys),
|
|
28
35
|
model: XTwitterScraper::Models::X::Tweets::LikeCreateResponse,
|
|
29
36
|
options: options
|
|
30
37
|
)
|
|
31
38
|
end
|
|
32
39
|
|
|
40
|
+
# Some parameter documentations has been truncated, see
|
|
41
|
+
# {XTwitterScraper::Models::X::Tweets::LikeDeleteParams} for more details.
|
|
42
|
+
#
|
|
33
43
|
# Unlike tweet
|
|
34
44
|
#
|
|
35
|
-
# @overload delete(id, account:, request_options: {})
|
|
45
|
+
# @overload delete(id, account:, idempotency_key:, request_options: {})
|
|
46
|
+
#
|
|
47
|
+
# @param id [String] Path param: Tweet ID to unlike
|
|
36
48
|
#
|
|
37
|
-
# @param
|
|
49
|
+
# @param account [String] Body param: X account identifier (@username or account ID)
|
|
38
50
|
#
|
|
39
|
-
# @param
|
|
51
|
+
# @param idempotency_key [String] Header param: Generate one unique value for each intended write. Reuse it only w
|
|
40
52
|
#
|
|
41
53
|
# @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
42
54
|
#
|
|
@@ -45,10 +57,12 @@ module XTwitterScraper
|
|
|
45
57
|
# @see XTwitterScraper::Models::X::Tweets::LikeDeleteParams
|
|
46
58
|
def delete(id, params)
|
|
47
59
|
parsed, options = XTwitterScraper::X::Tweets::LikeDeleteParams.dump_request(params)
|
|
60
|
+
header_params = {idempotency_key: "idempotency-key"}
|
|
48
61
|
@client.request(
|
|
49
62
|
method: :delete,
|
|
50
63
|
path: ["x/tweets/%1$s/like", id],
|
|
51
|
-
|
|
64
|
+
headers: parsed.slice(*header_params.keys).transform_keys(header_params),
|
|
65
|
+
body: parsed.except(*header_params.keys),
|
|
52
66
|
model: XTwitterScraper::Models::X::Tweets::LikeDeleteResponse,
|
|
53
67
|
options: options
|
|
54
68
|
)
|
|
@@ -6,13 +6,18 @@ module XTwitterScraper
|
|
|
6
6
|
class Tweets
|
|
7
7
|
# X write actions (tweets, likes, follows, DMs)
|
|
8
8
|
class Retweet
|
|
9
|
+
# Some parameter documentations has been truncated, see
|
|
10
|
+
# {XTwitterScraper::Models::X::Tweets::RetweetCreateParams} for more details.
|
|
11
|
+
#
|
|
9
12
|
# Retweet
|
|
10
13
|
#
|
|
11
|
-
# @overload create(id, account:, request_options: {})
|
|
14
|
+
# @overload create(id, account:, idempotency_key:, request_options: {})
|
|
15
|
+
#
|
|
16
|
+
# @param id [String] Path param: Tweet ID to retweet
|
|
12
17
|
#
|
|
13
|
-
# @param
|
|
18
|
+
# @param account [String] Body param: X account identifier (@username or account ID)
|
|
14
19
|
#
|
|
15
|
-
# @param
|
|
20
|
+
# @param idempotency_key [String] Header param: Generate one unique value for each intended write. Reuse it only w
|
|
16
21
|
#
|
|
17
22
|
# @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
18
23
|
#
|
|
@@ -21,22 +26,29 @@ module XTwitterScraper
|
|
|
21
26
|
# @see XTwitterScraper::Models::X::Tweets::RetweetCreateParams
|
|
22
27
|
def create(id, params)
|
|
23
28
|
parsed, options = XTwitterScraper::X::Tweets::RetweetCreateParams.dump_request(params)
|
|
29
|
+
header_params = {idempotency_key: "idempotency-key"}
|
|
24
30
|
@client.request(
|
|
25
31
|
method: :post,
|
|
26
32
|
path: ["x/tweets/%1$s/retweet", id],
|
|
27
|
-
|
|
33
|
+
headers: parsed.slice(*header_params.keys).transform_keys(header_params),
|
|
34
|
+
body: parsed.except(*header_params.keys),
|
|
28
35
|
model: XTwitterScraper::Models::X::Tweets::RetweetCreateResponse,
|
|
29
36
|
options: options
|
|
30
37
|
)
|
|
31
38
|
end
|
|
32
39
|
|
|
40
|
+
# Some parameter documentations has been truncated, see
|
|
41
|
+
# {XTwitterScraper::Models::X::Tweets::RetweetDeleteParams} for more details.
|
|
42
|
+
#
|
|
33
43
|
# Unretweet
|
|
34
44
|
#
|
|
35
|
-
# @overload delete(id, account:, request_options: {})
|
|
45
|
+
# @overload delete(id, account:, idempotency_key:, request_options: {})
|
|
46
|
+
#
|
|
47
|
+
# @param id [String] Path param: Tweet ID to unretweet
|
|
36
48
|
#
|
|
37
|
-
# @param
|
|
49
|
+
# @param account [String] Body param: X account identifier (@username or account ID)
|
|
38
50
|
#
|
|
39
|
-
# @param
|
|
51
|
+
# @param idempotency_key [String] Header param: Generate one unique value for each intended write. Reuse it only w
|
|
40
52
|
#
|
|
41
53
|
# @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
42
54
|
#
|
|
@@ -45,10 +57,12 @@ module XTwitterScraper
|
|
|
45
57
|
# @see XTwitterScraper::Models::X::Tweets::RetweetDeleteParams
|
|
46
58
|
def delete(id, params)
|
|
47
59
|
parsed, options = XTwitterScraper::X::Tweets::RetweetDeleteParams.dump_request(params)
|
|
60
|
+
header_params = {idempotency_key: "idempotency-key"}
|
|
48
61
|
@client.request(
|
|
49
62
|
method: :delete,
|
|
50
63
|
path: ["x/tweets/%1$s/retweet", id],
|
|
51
|
-
|
|
64
|
+
headers: parsed.slice(*header_params.keys).transform_keys(header_params),
|
|
65
|
+
body: parsed.except(*header_params.keys),
|
|
52
66
|
model: XTwitterScraper::Models::X::Tweets::RetweetDeleteResponse,
|
|
53
67
|
options: options
|
|
54
68
|
)
|
|
@@ -17,21 +17,21 @@ module XTwitterScraper
|
|
|
17
17
|
#
|
|
18
18
|
# Create tweet
|
|
19
19
|
#
|
|
20
|
-
# @overload create(account:,
|
|
20
|
+
# @overload create(account:, idempotency_key:, community_id: nil, is_note_tweet: nil, media: nil, reply_to_tweet_id: nil, text: nil, request_options: {})
|
|
21
21
|
#
|
|
22
|
-
# @param account [String] X account (@username or account ID)
|
|
22
|
+
# @param account [String] Body param: X account (@username or account ID)
|
|
23
23
|
#
|
|
24
|
-
# @param
|
|
24
|
+
# @param idempotency_key [String] Header param: Generate one unique value for each intended write. Reuse it only w
|
|
25
25
|
#
|
|
26
|
-
# @param community_id [String]
|
|
26
|
+
# @param community_id [String] Body param
|
|
27
27
|
#
|
|
28
|
-
# @param is_note_tweet [Boolean]
|
|
28
|
+
# @param is_note_tweet [Boolean] Body param
|
|
29
29
|
#
|
|
30
|
-
# @param media [Array<String>] Array of public media URLs to attach. Supports up to 4 images or
|
|
30
|
+
# @param media [Array<String>] Body param: Array of public media URLs to attach. Supports up to 4 images or exa
|
|
31
31
|
#
|
|
32
|
-
# @param reply_to_tweet_id [String]
|
|
32
|
+
# @param reply_to_tweet_id [String] Body param
|
|
33
33
|
#
|
|
34
|
-
# @param text [String] Tweet text (optional when media is provided)
|
|
34
|
+
# @param text [String] Body param: Tweet text (optional when media is provided)
|
|
35
35
|
#
|
|
36
36
|
# @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
37
37
|
#
|
|
@@ -40,16 +40,18 @@ module XTwitterScraper
|
|
|
40
40
|
# @see XTwitterScraper::Models::X::TweetCreateParams
|
|
41
41
|
def create(params)
|
|
42
42
|
parsed, options = XTwitterScraper::X::TweetCreateParams.dump_request(params)
|
|
43
|
+
header_params = {idempotency_key: "idempotency-key"}
|
|
43
44
|
@client.request(
|
|
44
45
|
method: :post,
|
|
45
46
|
path: "x/tweets",
|
|
46
|
-
|
|
47
|
+
headers: parsed.slice(*header_params.keys).transform_keys(header_params),
|
|
48
|
+
body: parsed.except(*header_params.keys),
|
|
47
49
|
model: XTwitterScraper::Models::X::TweetCreateResponse,
|
|
48
50
|
options: options
|
|
49
51
|
)
|
|
50
52
|
end
|
|
51
53
|
|
|
52
|
-
# Get tweet with full text, author, metrics
|
|
54
|
+
# Get tweet with full text, author, metrics & media
|
|
53
55
|
#
|
|
54
56
|
# @overload retrieve(id, request_options: {})
|
|
55
57
|
#
|
|
@@ -92,13 +94,18 @@ module XTwitterScraper
|
|
|
92
94
|
)
|
|
93
95
|
end
|
|
94
96
|
|
|
97
|
+
# Some parameter documentations has been truncated, see
|
|
98
|
+
# {XTwitterScraper::Models::X::TweetDeleteParams} for more details.
|
|
99
|
+
#
|
|
95
100
|
# Delete tweet
|
|
96
101
|
#
|
|
97
|
-
# @overload delete(id, account:, request_options: {})
|
|
102
|
+
# @overload delete(id, account:, idempotency_key:, request_options: {})
|
|
103
|
+
#
|
|
104
|
+
# @param id [String] Path param: Tweet ID to delete
|
|
98
105
|
#
|
|
99
|
-
# @param
|
|
106
|
+
# @param account [String] Body param: X account identifier (@username or account ID)
|
|
100
107
|
#
|
|
101
|
-
# @param
|
|
108
|
+
# @param idempotency_key [String] Header param: Generate one unique value for each intended write. Reuse it only w
|
|
102
109
|
#
|
|
103
110
|
# @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
104
111
|
#
|
|
@@ -107,10 +114,12 @@ module XTwitterScraper
|
|
|
107
114
|
# @see XTwitterScraper::Models::X::TweetDeleteParams
|
|
108
115
|
def delete(id, params)
|
|
109
116
|
parsed, options = XTwitterScraper::X::TweetDeleteParams.dump_request(params)
|
|
117
|
+
header_params = {idempotency_key: "idempotency-key"}
|
|
110
118
|
@client.request(
|
|
111
119
|
method: :delete,
|
|
112
120
|
path: ["x/tweets/%1$s", id],
|
|
113
|
-
|
|
121
|
+
headers: parsed.slice(*header_params.keys).transform_keys(header_params),
|
|
122
|
+
body: parsed.except(*header_params.keys),
|
|
114
123
|
model: XTwitterScraper::Models::X::TweetDeleteResponse,
|
|
115
124
|
options: options
|
|
116
125
|
)
|
|
@@ -119,7 +128,9 @@ module XTwitterScraper
|
|
|
119
128
|
# Some parameter documentations has been truncated, see
|
|
120
129
|
# {XTwitterScraper::Models::X::TweetGetFavoritersParams} for more details.
|
|
121
130
|
#
|
|
122
|
-
#
|
|
131
|
+
# Returns liker profiles that X makes visible for the post. X can withhold liker
|
|
132
|
+
# identities even when the post reports likes. In that case this endpoint returns
|
|
133
|
+
# 424 `favoriters_unavailable` instead of a misleading empty success.
|
|
123
134
|
#
|
|
124
135
|
# @overload get_favoriters(id, cursor: nil, page_size: nil, request_options: {})
|
|
125
136
|
#
|
|
@@ -257,7 +268,11 @@ module XTwitterScraper
|
|
|
257
268
|
# Some parameter documentations has been truncated, see
|
|
258
269
|
# {XTwitterScraper::Models::X::TweetGetRepliesParams} for more details.
|
|
259
270
|
#
|
|
260
|
-
#
|
|
271
|
+
# Returns visible replies. For an unfiltered first page, Xquik compares a terminal
|
|
272
|
+
# page with the post's reported reply count. If the page is visibly incomplete,
|
|
273
|
+
# the endpoint returns 424 `replies_incomplete` instead of presenting partial
|
|
274
|
+
# coverage as complete. Use tweet search with a `conversation_id:{id}` query as
|
|
275
|
+
# the broader fallback.
|
|
261
276
|
#
|
|
262
277
|
# @overload get_replies(id, any_words: nil, cashtags: nil, conversation_id: nil, cursor: nil, exact_phrase: nil, exclude_words: nil, from_user: nil, hashtags: nil, in_reply_to_tweet_id: nil, language: nil, media_type: nil, mentioning: nil, min_faves: nil, min_quotes: nil, min_replies: nil, min_retweets: nil, page_size: nil, quotes: nil, quotes_of_tweet_id: nil, replies: nil, retweets: nil, retweets_of_tweet_id: nil, since_date: nil, since_time: nil, to_user: nil, until_date: nil, until_time: nil, url: nil, verified_only: nil, request_options: {})
|
|
263
278
|
#
|
|
@@ -6,13 +6,18 @@ module XTwitterScraper
|
|
|
6
6
|
class Users
|
|
7
7
|
# X write actions (tweets, likes, follows, DMs)
|
|
8
8
|
class Follow
|
|
9
|
+
# Some parameter documentations has been truncated, see
|
|
10
|
+
# {XTwitterScraper::Models::X::Users::FollowCreateParams} for more details.
|
|
11
|
+
#
|
|
9
12
|
# Follow user
|
|
10
13
|
#
|
|
11
|
-
# @overload create(id, account:, request_options: {})
|
|
14
|
+
# @overload create(id, account:, idempotency_key:, request_options: {})
|
|
15
|
+
#
|
|
16
|
+
# @param id [String] Path param: User ID to follow
|
|
12
17
|
#
|
|
13
|
-
# @param
|
|
18
|
+
# @param account [String] Body param: X account identifier (@username or account ID)
|
|
14
19
|
#
|
|
15
|
-
# @param
|
|
20
|
+
# @param idempotency_key [String] Header param: Generate one unique value for each intended write. Reuse it only w
|
|
16
21
|
#
|
|
17
22
|
# @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
18
23
|
#
|
|
@@ -21,22 +26,29 @@ module XTwitterScraper
|
|
|
21
26
|
# @see XTwitterScraper::Models::X::Users::FollowCreateParams
|
|
22
27
|
def create(id, params)
|
|
23
28
|
parsed, options = XTwitterScraper::X::Users::FollowCreateParams.dump_request(params)
|
|
29
|
+
header_params = {idempotency_key: "idempotency-key"}
|
|
24
30
|
@client.request(
|
|
25
31
|
method: :post,
|
|
26
32
|
path: ["x/users/%1$s/follow", id],
|
|
27
|
-
|
|
33
|
+
headers: parsed.slice(*header_params.keys).transform_keys(header_params),
|
|
34
|
+
body: parsed.except(*header_params.keys),
|
|
28
35
|
model: XTwitterScraper::Models::X::Users::FollowCreateResponse,
|
|
29
36
|
options: options
|
|
30
37
|
)
|
|
31
38
|
end
|
|
32
39
|
|
|
40
|
+
# Some parameter documentations has been truncated, see
|
|
41
|
+
# {XTwitterScraper::Models::X::Users::FollowDeleteAllParams} for more details.
|
|
42
|
+
#
|
|
33
43
|
# Unfollow user
|
|
34
44
|
#
|
|
35
|
-
# @overload delete_all(id, account:, request_options: {})
|
|
45
|
+
# @overload delete_all(id, account:, idempotency_key:, request_options: {})
|
|
46
|
+
#
|
|
47
|
+
# @param id [String] Path param: User ID to unfollow
|
|
36
48
|
#
|
|
37
|
-
# @param
|
|
49
|
+
# @param account [String] Body param: X account identifier (@username or account ID)
|
|
38
50
|
#
|
|
39
|
-
# @param
|
|
51
|
+
# @param idempotency_key [String] Header param: Generate one unique value for each intended write. Reuse it only w
|
|
40
52
|
#
|
|
41
53
|
# @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
42
54
|
#
|
|
@@ -45,10 +57,12 @@ module XTwitterScraper
|
|
|
45
57
|
# @see XTwitterScraper::Models::X::Users::FollowDeleteAllParams
|
|
46
58
|
def delete_all(id, params)
|
|
47
59
|
parsed, options = XTwitterScraper::X::Users::FollowDeleteAllParams.dump_request(params)
|
|
60
|
+
header_params = {idempotency_key: "idempotency-key"}
|
|
48
61
|
@client.request(
|
|
49
62
|
method: :delete,
|
|
50
63
|
path: ["x/users/%1$s/follow", id],
|
|
51
|
-
|
|
64
|
+
headers: parsed.slice(*header_params.keys).transform_keys(header_params),
|
|
65
|
+
body: parsed.except(*header_params.keys),
|
|
52
66
|
model: XTwitterScraper::Models::X::Users::FollowDeleteAllResponse,
|
|
53
67
|
options: options
|
|
54
68
|
)
|
|
@@ -8,7 +8,7 @@ module XTwitterScraper
|
|
|
8
8
|
# @return [XTwitterScraper::Resources::X::Users::Follow]
|
|
9
9
|
attr_reader :follow
|
|
10
10
|
|
|
11
|
-
# Get user profile with follower counts
|
|
11
|
+
# Get user profile with follower counts & verification
|
|
12
12
|
#
|
|
13
13
|
# @overload retrieve(id, request_options: {})
|
|
14
14
|
#
|
|
@@ -28,13 +28,18 @@ module XTwitterScraper
|
|
|
28
28
|
)
|
|
29
29
|
end
|
|
30
30
|
|
|
31
|
+
# Some parameter documentations has been truncated, see
|
|
32
|
+
# {XTwitterScraper::Models::X::UserRemoveFollowerParams} for more details.
|
|
33
|
+
#
|
|
31
34
|
# Remove follower
|
|
32
35
|
#
|
|
33
|
-
# @overload remove_follower(id, account:, request_options: {})
|
|
36
|
+
# @overload remove_follower(id, account:, idempotency_key:, request_options: {})
|
|
34
37
|
#
|
|
35
|
-
# @param id [String] User ID to remove from your followers
|
|
38
|
+
# @param id [String] Path param: User ID to remove from your followers
|
|
36
39
|
#
|
|
37
|
-
# @param account [String] X account identifier (@username or account ID)
|
|
40
|
+
# @param account [String] Body param: X account identifier (@username or account ID)
|
|
41
|
+
#
|
|
42
|
+
# @param idempotency_key [String] Header param: Generate one unique value for each intended write. Reuse it only w
|
|
38
43
|
#
|
|
39
44
|
# @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
40
45
|
#
|
|
@@ -43,10 +48,12 @@ module XTwitterScraper
|
|
|
43
48
|
# @see XTwitterScraper::Models::X::UserRemoveFollowerParams
|
|
44
49
|
def remove_follower(id, params)
|
|
45
50
|
parsed, options = XTwitterScraper::X::UserRemoveFollowerParams.dump_request(params)
|
|
51
|
+
header_params = {idempotency_key: "idempotency-key"}
|
|
46
52
|
@client.request(
|
|
47
53
|
method: :post,
|
|
48
54
|
path: ["x/users/%1$s/remove-follower", id],
|
|
49
|
-
|
|
55
|
+
headers: parsed.slice(*header_params.keys).transform_keys(header_params),
|
|
56
|
+
body: parsed.except(*header_params.keys),
|
|
50
57
|
model: XTwitterScraper::Models::X::UserRemoveFollowerResponse,
|
|
51
58
|
options: options
|
|
52
59
|
)
|
|
@@ -85,7 +92,7 @@ module XTwitterScraper
|
|
|
85
92
|
#
|
|
86
93
|
# @overload retrieve_followers(id, after: nil, cursor: nil, limit: nil, page_size: nil, request_options: {})
|
|
87
94
|
#
|
|
88
|
-
# @param id [String]
|
|
95
|
+
# @param id [String] Target user ID or username for follower lookup.
|
|
89
96
|
#
|
|
90
97
|
# @param after [String] Legacy cursor alias. Prefer cursor.
|
|
91
98
|
#
|
|
@@ -152,7 +159,7 @@ module XTwitterScraper
|
|
|
152
159
|
#
|
|
153
160
|
# @param id [String] User ID or username for following lookup
|
|
154
161
|
#
|
|
155
|
-
# @param after [String]
|
|
162
|
+
# @param after [String] Deprecated following cursor alias. Prefer cursor.
|
|
156
163
|
#
|
|
157
164
|
# @param cursor [String] Pagination cursor for following list
|
|
158
165
|
#
|
|
@@ -487,7 +494,7 @@ module XTwitterScraper
|
|
|
487
494
|
#
|
|
488
495
|
# @overload retrieve_replies(id, any_words: nil, cashtags: nil, conversation_id: nil, cursor: nil, exact_phrase: nil, exclude_words: nil, from_user: nil, hashtags: nil, include_parent_tweet: nil, in_reply_to_tweet_id: nil, language: nil, media_type: nil, mentioning: nil, min_faves: nil, min_quotes: nil, min_replies: nil, min_retweets: nil, page_size: nil, quotes: nil, quotes_of_tweet_id: nil, replies: nil, retweets: nil, retweets_of_tweet_id: nil, since_date: nil, to_user: nil, until_date: nil, url: nil, verified_only: nil, request_options: {})
|
|
489
496
|
#
|
|
490
|
-
# @param id [String]
|
|
497
|
+
# @param id [String] Target user ID or username for the replies timeline.
|
|
491
498
|
#
|
|
492
499
|
# @param any_words [String] Words or quoted phrases where any one can match. Separate with spaces, commas, o
|
|
493
500
|
#
|
|
@@ -505,7 +512,7 @@ module XTwitterScraper
|
|
|
505
512
|
#
|
|
506
513
|
# @param hashtags [String] Hashtags separated by spaces, commas, or lines.
|
|
507
514
|
#
|
|
508
|
-
# @param include_parent_tweet [Boolean] Include parent tweet
|
|
515
|
+
# @param include_parent_tweet [Boolean] Include each reply's parent tweet.
|
|
509
516
|
#
|
|
510
517
|
# @param in_reply_to_tweet_id [String] Only replies to this tweet ID.
|
|
511
518
|
#
|
|
@@ -20,7 +20,6 @@ module XTwitterScraper
|
|
|
20
20
|
# @return [XTwitterScraper::Resources::X::Dm]
|
|
21
21
|
attr_reader :dm
|
|
22
22
|
|
|
23
|
-
# Media upload and download
|
|
24
23
|
# @return [XTwitterScraper::Resources::X::Media]
|
|
25
24
|
attr_reader :media
|
|
26
25
|
|
|
@@ -121,7 +120,7 @@ module XTwitterScraper
|
|
|
121
120
|
)
|
|
122
121
|
end
|
|
123
122
|
|
|
124
|
-
# Get trending hashtags
|
|
123
|
+
# Get trending hashtags & topics from X by region
|
|
125
124
|
#
|
|
126
125
|
# @overload get_trends(count: nil, woeid: nil, request_options: {})
|
|
127
126
|
#
|
|
@@ -41,7 +41,7 @@ module XTwitterScraper
|
|
|
41
41
|
sig { returns(XTwitterScraper::Resources::Radar) }
|
|
42
42
|
attr_reader :radar
|
|
43
43
|
|
|
44
|
-
#
|
|
44
|
+
# X account monitoring with 1-second checks
|
|
45
45
|
sig { returns(XTwitterScraper::Resources::Monitors) }
|
|
46
46
|
attr_reader :monitors
|
|
47
47
|
|
|
@@ -126,11 +126,11 @@ module XTwitterScraper
|
|
|
126
126
|
sig { returns(String) }
|
|
127
127
|
attr_accessor :active_hourly_burn
|
|
128
128
|
|
|
129
|
-
#
|
|
129
|
+
# Rounded daily estimate for 1 active monitor.
|
|
130
130
|
sig { returns(String) }
|
|
131
131
|
attr_accessor :credits_per_active_monitor_day
|
|
132
132
|
|
|
133
|
-
# Hourly credits charged for 1 active
|
|
133
|
+
# Hourly credits charged for 1 active monitor.
|
|
134
134
|
sig { returns(String) }
|
|
135
135
|
attr_accessor :credits_per_active_monitor_hour
|
|
136
136
|
|
|
@@ -162,9 +162,9 @@ module XTwitterScraper
|
|
|
162
162
|
active_daily_estimate:,
|
|
163
163
|
# Credits charged each hour for currently active monitors.
|
|
164
164
|
active_hourly_burn:,
|
|
165
|
-
#
|
|
165
|
+
# Rounded daily estimate for 1 active monitor.
|
|
166
166
|
credits_per_active_monitor_day:,
|
|
167
|
-
# Hourly credits charged for 1 active
|
|
167
|
+
# Hourly credits charged for 1 active monitor.
|
|
168
168
|
credits_per_active_monitor_hour:,
|
|
169
169
|
# Webhook and event deliveries are included in monitor billing.
|
|
170
170
|
events_included:,
|