x-twitter-scraper 0.4.2 → 0.4.4
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 +23 -0
- data/LICENSE +201 -0
- data/README.md +10 -12
- data/lib/x_twitter_scraper/client.rb +30 -26
- data/lib/x_twitter_scraper/internal/transport/base_client.rb +5 -0
- data/lib/x_twitter_scraper/internal/type/base_model.rb +4 -3
- data/lib/x_twitter_scraper/internal/util.rb +3 -1
- data/lib/x_twitter_scraper/models/account_retrieve_response.rb +138 -23
- data/lib/x_twitter_scraper/models/content_disclosure.rb +66 -0
- data/lib/x_twitter_scraper/models/credit_redirect_topup_checkout_params.rb +22 -0
- data/lib/x_twitter_scraper/models/credit_retrieve_balance_response.rb +37 -10
- data/lib/x_twitter_scraper/models/credit_retrieve_topup_status_params.rb +22 -0
- data/lib/x_twitter_scraper/models/credit_retrieve_topup_status_response.rb +45 -0
- data/lib/x_twitter_scraper/models/credit_topup_balance_params.rb +13 -5
- data/lib/x_twitter_scraper/models/credit_topup_balance_response.rb +18 -5
- data/lib/x_twitter_scraper/models/draft_list_params.rb +8 -2
- data/lib/x_twitter_scraper/models/draw_detail.rb +15 -1
- data/lib/x_twitter_scraper/models/draw_export_params.rb +3 -3
- data/lib/x_twitter_scraper/models/draw_list_item.rb +8 -1
- data/lib/x_twitter_scraper/models/draw_list_params.rb +13 -7
- data/lib/x_twitter_scraper/models/draw_run_response.rb +13 -2
- data/lib/x_twitter_scraper/models/embedded_tweet.rb +202 -0
- data/lib/x_twitter_scraper/models/error.rb +203 -34
- data/lib/x_twitter_scraper/models/event.rb +48 -6
- data/lib/x_twitter_scraper/models/event_detail.rb +46 -7
- data/lib/x_twitter_scraper/models/event_list_params.rb +13 -7
- data/lib/x_twitter_scraper/models/event_type.rb +17 -2
- data/lib/x_twitter_scraper/models/extraction_estimate_cost_params.rb +308 -7
- data/lib/x_twitter_scraper/models/extraction_estimate_cost_response.rb +38 -14
- data/lib/x_twitter_scraper/models/extraction_export_results_params.rb +3 -3
- data/lib/x_twitter_scraper/models/extraction_job.rb +3 -0
- data/lib/x_twitter_scraper/models/extraction_list_params.rb +16 -7
- data/lib/x_twitter_scraper/models/extraction_retrieve_params.rb +5 -5
- data/lib/x_twitter_scraper/models/extraction_retrieve_response.rb +2 -2
- data/lib/x_twitter_scraper/models/extraction_run_params.rb +304 -7
- data/lib/x_twitter_scraper/models/extraction_run_response.rb +3 -0
- data/lib/x_twitter_scraper/models/guest_wallet_amount.rb +25 -0
- data/lib/x_twitter_scraper/models/guest_wallet_create_params.rb +36 -0
- data/lib/x_twitter_scraper/models/guest_wallet_create_response.rb +161 -0
- data/lib/x_twitter_scraper/models/{integration_list_params.rb → guest_wallet_retrieve_status_params.rb} +2 -2
- data/lib/x_twitter_scraper/models/guest_wallet_retrieve_status_response.rb +196 -0
- data/lib/x_twitter_scraper/models/guest_wallet_topup_params.rb +36 -0
- data/lib/x_twitter_scraper/models/guest_wallet_topup_response.rb +172 -0
- data/lib/x_twitter_scraper/models/monitor.rb +9 -1
- data/lib/x_twitter_scraper/models/monitor_create_response.rb +16 -1
- data/lib/x_twitter_scraper/models/monitors/keyword_create_params.rb +34 -0
- data/lib/x_twitter_scraper/models/monitors/keyword_create_response.rb +59 -0
- data/lib/x_twitter_scraper/models/monitors/keyword_deactivate_params.rb +22 -0
- data/lib/x_twitter_scraper/models/monitors/keyword_deactivate_response.rb +18 -0
- data/lib/x_twitter_scraper/models/monitors/keyword_list_params.rb +16 -0
- data/lib/x_twitter_scraper/models/monitors/keyword_list_response.rb +76 -0
- data/lib/x_twitter_scraper/models/monitors/keyword_retrieve_params.rb +22 -0
- data/lib/x_twitter_scraper/models/monitors/keyword_retrieve_response.rb +59 -0
- data/lib/x_twitter_scraper/models/monitors/keyword_update_params.rb +40 -0
- data/lib/x_twitter_scraper/models/monitors/keyword_update_response.rb +59 -0
- data/lib/x_twitter_scraper/models/paginated_tweets.rb +8 -4
- data/lib/x_twitter_scraper/models/paginated_users.rb +8 -4
- data/lib/x_twitter_scraper/models/radar_item.rb +99 -6
- data/lib/x_twitter_scraper/models/radar_retrieve_trending_topics_params.rb +39 -14
- data/lib/x_twitter_scraper/models/radar_retrieve_trending_topics_response.rb +14 -5
- data/lib/x_twitter_scraper/models/search_tweet.rb +236 -0
- data/lib/x_twitter_scraper/models/subscribe_create_params.rb +21 -1
- data/lib/x_twitter_scraper/models/subscribe_create_response.rb +10 -10
- data/lib/x_twitter_scraper/models/trend_list_params.rb +7 -4
- data/lib/x_twitter_scraper/models/tweet_media.rb +77 -0
- data/lib/x_twitter_scraper/models/user_profile.rb +258 -0
- data/lib/x_twitter_scraper/models/webhook.rb +46 -1
- data/lib/x_twitter_scraper/models/webhook_create_response.rb +2 -1
- data/lib/x_twitter_scraper/models/{api_key_revoke_params.rb → webhook_resume_params.rb} +2 -2
- data/lib/x_twitter_scraper/models/webhook_resume_response.rb +31 -0
- data/lib/x_twitter_scraper/models/x/account_connection_challenge_submit_params.rb +31 -0
- data/lib/x_twitter_scraper/models/x/account_connection_challenge_submit_response.rb +66 -0
- data/lib/x_twitter_scraper/models/x/account_create_params.rb +1 -9
- data/lib/x_twitter_scraper/models/x/account_create_response.rb +30 -1
- data/lib/x_twitter_scraper/models/x/account_reauth_params.rb +9 -1
- data/lib/x_twitter_scraper/models/x/account_reauth_response.rb +36 -1
- data/lib/x_twitter_scraper/models/x/bookmark_retrieve_folders_response.rb +6 -2
- data/lib/x_twitter_scraper/models/x/communities/join_create_response.rb +20 -0
- data/lib/x_twitter_scraper/models/x/communities/join_delete_all_response.rb +20 -0
- data/lib/x_twitter_scraper/models/x/communities/tweet_list_by_community_params.rb +17 -1
- data/lib/x_twitter_scraper/models/x/communities/tweet_list_params.rb +43 -9
- data/lib/x_twitter_scraper/models/x/community_retrieve_info_response.rb +69 -1
- data/lib/x_twitter_scraper/models/x/community_retrieve_members_params.rb +14 -1
- data/lib/x_twitter_scraper/models/x/community_retrieve_search_params.rb +38 -4
- data/lib/x_twitter_scraper/models/x/dm_retrieve_history_params.rb +13 -1
- data/lib/x_twitter_scraper/models/x/dm_retrieve_history_response.rb +26 -9
- data/lib/x_twitter_scraper/models/x/dm_send_params.rb +3 -9
- data/lib/x_twitter_scraper/models/x/follower_check_params.rb +4 -4
- data/lib/x_twitter_scraper/models/x/list_retrieve_followers_params.rb +15 -1
- data/lib/x_twitter_scraper/models/x/list_retrieve_members_params.rb +9 -1
- data/lib/x_twitter_scraper/models/x/list_retrieve_tweets_params.rb +16 -1
- data/lib/x_twitter_scraper/models/x/media_download_params.rb +19 -3
- data/lib/x_twitter_scraper/models/x/media_upload_params.rb +8 -15
- data/lib/x_twitter_scraper/models/x/media_upload_response.rb +10 -1
- data/lib/x_twitter_scraper/models/x/profile_update_avatar_params.rb +8 -8
- data/lib/x_twitter_scraper/models/x/profile_update_banner_params.rb +8 -8
- data/lib/x_twitter_scraper/models/x/tweet_author.rb +4 -21
- data/lib/x_twitter_scraper/models/x/tweet_create_params.rb +18 -11
- data/lib/x_twitter_scraper/models/x/tweet_create_response.rb +28 -1
- data/lib/x_twitter_scraper/models/x/tweet_detail.rb +109 -43
- data/lib/x_twitter_scraper/models/x/tweet_get_favoriters_params.rb +15 -1
- data/lib/x_twitter_scraper/models/x/tweet_get_quotes_params.rb +268 -1
- data/lib/x_twitter_scraper/models/x/tweet_get_replies_params.rb +268 -1
- data/lib/x_twitter_scraper/models/x/tweet_get_retweeters_params.rb +15 -1
- data/lib/x_twitter_scraper/models/x/tweet_get_thread_params.rb +16 -1
- data/lib/x_twitter_scraper/models/x/tweet_retrieve_response.rb +9 -4
- data/lib/x_twitter_scraper/models/x/tweet_search_params.rb +314 -8
- data/lib/x_twitter_scraper/models/x/user_remove_follower_params.rb +31 -0
- data/lib/x_twitter_scraper/models/x/user_remove_follower_response.rb +18 -0
- data/lib/x_twitter_scraper/models/x/user_retrieve_batch_params.rb +6 -2
- data/lib/x_twitter_scraper/models/x/user_retrieve_batch_response.rb +83 -0
- data/lib/x_twitter_scraper/models/x/user_retrieve_followers_params.rb +25 -3
- data/lib/x_twitter_scraper/models/x/user_retrieve_followers_you_know_params.rb +16 -1
- data/lib/x_twitter_scraper/models/x/user_retrieve_following_params.rb +25 -3
- data/lib/x_twitter_scraper/models/x/user_retrieve_likes_params.rb +268 -1
- data/lib/x_twitter_scraper/models/x/user_retrieve_media_params.rb +268 -1
- data/lib/x_twitter_scraper/models/x/user_retrieve_mentions_params.rb +268 -1
- data/lib/x_twitter_scraper/models/x/user_retrieve_replies_params.rb +306 -0
- data/lib/x_twitter_scraper/models/x/user_retrieve_tweets_params.rb +268 -1
- data/lib/x_twitter_scraper/models/x/user_retrieve_verified_followers_params.rb +16 -1
- data/lib/x_twitter_scraper/models/x/write_action_retrieve_params.rb +22 -0
- data/lib/x_twitter_scraper/models/x/write_action_retrieve_response.rb +173 -0
- data/lib/x_twitter_scraper/models/x/x_account.rb +56 -2
- data/lib/x_twitter_scraper/models/x/x_account_detail.rb +23 -8
- data/lib/x_twitter_scraper/models/x_get_article_response.rb +189 -11
- data/lib/x_twitter_scraper/models/x_get_home_timeline_params.rb +2 -2
- data/lib/x_twitter_scraper/models/x_get_notifications_params.rb +3 -3
- data/lib/x_twitter_scraper/models/x_get_trends_params.rb +17 -1
- data/lib/x_twitter_scraper/models.rb +21 -21
- data/lib/x_twitter_scraper/resources/account.rb +1 -3
- data/lib/x_twitter_scraper/resources/compose.rb +1 -1
- data/lib/x_twitter_scraper/resources/credits.rb +54 -4
- data/lib/x_twitter_scraper/resources/drafts.rb +7 -4
- data/lib/x_twitter_scraper/resources/draws.rb +14 -8
- data/lib/x_twitter_scraper/resources/events.rb +7 -5
- data/lib/x_twitter_scraper/resources/extractions.rb +145 -20
- data/lib/x_twitter_scraper/resources/guest_wallets.rb +108 -0
- data/lib/x_twitter_scraper/resources/monitors/keywords.rb +128 -0
- data/lib/x_twitter_scraper/resources/monitors.rb +13 -5
- data/lib/x_twitter_scraper/resources/radar.rb +8 -6
- data/lib/x_twitter_scraper/resources/styles.rb +1 -1
- data/lib/x_twitter_scraper/resources/subscribe.rb +9 -4
- data/lib/x_twitter_scraper/resources/support/tickets.rb +3 -3
- data/lib/x_twitter_scraper/resources/trends.rb +7 -4
- data/lib/x_twitter_scraper/resources/webhooks.rb +25 -5
- data/lib/x_twitter_scraper/resources/x/account_connection_challenges.rb +41 -0
- data/lib/x_twitter_scraper/resources/x/accounts.rb +7 -13
- data/lib/x_twitter_scraper/resources/x/bookmarks.rb +1 -1
- data/lib/x_twitter_scraper/resources/x/communities/join.rb +6 -6
- data/lib/x_twitter_scraper/resources/x/communities/tweets.rb +27 -10
- data/lib/x_twitter_scraper/resources/x/communities.rb +27 -11
- data/lib/x_twitter_scraper/resources/x/dm.rb +9 -6
- data/lib/x_twitter_scraper/resources/x/followers.rb +4 -4
- data/lib/x_twitter_scraper/resources/x/lists.rb +22 -9
- data/lib/x_twitter_scraper/resources/x/media.rb +11 -9
- data/lib/x_twitter_scraper/resources/x/profile.rb +6 -6
- data/lib/x_twitter_scraper/resources/x/tweets.rb +282 -28
- data/lib/x_twitter_scraper/resources/x/users.rb +485 -34
- data/lib/x_twitter_scraper/resources/x/write_actions.rb +37 -0
- data/lib/x_twitter_scraper/resources/x.rb +33 -13
- data/lib/x_twitter_scraper/version.rb +1 -1
- data/lib/x_twitter_scraper.rb +41 -27
- data/rbi/x_twitter_scraper/client.rbi +14 -22
- data/rbi/x_twitter_scraper/models/account_retrieve_response.rbi +181 -23
- data/rbi/x_twitter_scraper/models/content_disclosure.rbi +149 -0
- data/rbi/x_twitter_scraper/models/{integration_retrieve_params.rbi → credit_redirect_topup_checkout_params.rbi} +14 -6
- data/rbi/x_twitter_scraper/models/credit_retrieve_balance_response.rbi +35 -9
- data/rbi/x_twitter_scraper/models/{integration_list_deliveries_params.rbi → credit_retrieve_topup_status_params.rbi} +8 -17
- data/rbi/x_twitter_scraper/models/credit_retrieve_topup_status_response.rbi +107 -0
- data/rbi/x_twitter_scraper/models/credit_topup_balance_params.rbi +20 -6
- data/rbi/x_twitter_scraper/models/credit_topup_balance_response.rbi +19 -5
- data/rbi/x_twitter_scraper/models/draft_list_params.rbi +8 -2
- data/rbi/x_twitter_scraper/models/draw_detail.rbi +2 -0
- data/rbi/x_twitter_scraper/models/draw_export_params.rbi +3 -12
- data/rbi/x_twitter_scraper/models/draw_list_item.rbi +2 -0
- data/rbi/x_twitter_scraper/models/draw_list_params.rbi +16 -10
- data/rbi/x_twitter_scraper/models/draw_run_response.rbi +15 -1
- data/rbi/x_twitter_scraper/models/embedded_tweet.rbi +255 -0
- data/rbi/x_twitter_scraper/models/error.rbi +865 -87
- data/rbi/x_twitter_scraper/models/event.rbi +63 -4
- data/rbi/x_twitter_scraper/models/event_detail.rbi +73 -5
- data/rbi/x_twitter_scraper/models/event_list_params.rbi +16 -10
- data/rbi/x_twitter_scraper/models/event_type.rbi +58 -4
- data/rbi/x_twitter_scraper/models/extraction_estimate_cost_params.rbi +580 -2
- data/rbi/x_twitter_scraper/models/extraction_estimate_cost_response.rbi +98 -14
- data/rbi/x_twitter_scraper/models/extraction_export_results_params.rbi +3 -13
- data/rbi/x_twitter_scraper/models/extraction_job.rbi +15 -0
- data/rbi/x_twitter_scraper/models/extraction_list_params.rbi +31 -10
- data/rbi/x_twitter_scraper/models/extraction_retrieve_params.rbi +8 -8
- data/rbi/x_twitter_scraper/models/extraction_retrieve_response.rbi +2 -2
- data/rbi/x_twitter_scraper/models/extraction_run_params.rbi +546 -2
- data/rbi/x_twitter_scraper/models/extraction_run_response.rbi +15 -0
- data/rbi/x_twitter_scraper/models/guest_wallet_amount.rbi +39 -0
- data/rbi/x_twitter_scraper/models/guest_wallet_create_params.rbi +58 -0
- data/rbi/x_twitter_scraper/models/guest_wallet_create_response.rbi +243 -0
- data/rbi/x_twitter_scraper/models/{integration_list_params.rbi → guest_wallet_retrieve_status_params.rbi} +2 -2
- data/rbi/x_twitter_scraper/models/guest_wallet_retrieve_status_response.rbi +402 -0
- data/rbi/x_twitter_scraper/models/guest_wallet_topup_params.rbi +58 -0
- data/rbi/x_twitter_scraper/models/guest_wallet_topup_response.rbi +293 -0
- data/rbi/x_twitter_scraper/models/monitor.rbi +8 -0
- data/rbi/x_twitter_scraper/models/monitor_create_response.rbi +14 -0
- data/rbi/x_twitter_scraper/models/monitors/keyword_create_params.rbi +56 -0
- data/rbi/x_twitter_scraper/models/monitors/keyword_create_response.rbi +75 -0
- data/rbi/x_twitter_scraper/models/monitors/keyword_deactivate_params.rbi +40 -0
- data/rbi/x_twitter_scraper/models/monitors/keyword_deactivate_response.rbi +28 -0
- data/rbi/x_twitter_scraper/models/monitors/keyword_list_params.rbi +34 -0
- data/rbi/x_twitter_scraper/models/monitors/keyword_list_response.rbi +123 -0
- data/rbi/x_twitter_scraper/models/monitors/keyword_retrieve_params.rbi +40 -0
- data/rbi/x_twitter_scraper/models/monitors/keyword_retrieve_response.rbi +75 -0
- data/rbi/x_twitter_scraper/models/monitors/keyword_update_params.rbi +72 -0
- data/rbi/x_twitter_scraper/models/monitors/keyword_update_response.rbi +75 -0
- data/rbi/x_twitter_scraper/models/paginated_tweets.rbi +8 -4
- data/rbi/x_twitter_scraper/models/paginated_users.rbi +8 -4
- data/rbi/x_twitter_scraper/models/radar_item.rbi +131 -6
- data/rbi/x_twitter_scraper/models/radar_retrieve_trending_topics_params.rbi +109 -20
- data/rbi/x_twitter_scraper/models/radar_retrieve_trending_topics_response.rbi +22 -5
- data/rbi/x_twitter_scraper/models/search_tweet.rbi +316 -0
- data/rbi/x_twitter_scraper/models/subscribe_create_params.rbi +62 -2
- data/rbi/x_twitter_scraper/models/subscribe_create_response.rbi +10 -23
- data/rbi/x_twitter_scraper/models/trend_list_params.rbi +4 -4
- data/rbi/x_twitter_scraper/models/tweet_media.rbi +130 -0
- data/rbi/x_twitter_scraper/models/user_profile.rbi +346 -0
- data/rbi/x_twitter_scraper/models/webhook.rbi +57 -0
- data/rbi/x_twitter_scraper/models/webhook_create_response.rbi +2 -0
- data/rbi/x_twitter_scraper/models/{api_key_revoke_params.rbi → webhook_resume_params.rbi} +2 -2
- data/rbi/x_twitter_scraper/models/webhook_resume_response.rbi +55 -0
- data/rbi/x_twitter_scraper/models/x/account_connection_challenge_submit_params.rbi +54 -0
- data/rbi/x_twitter_scraper/models/x/account_connection_challenge_submit_response.rbi +131 -0
- data/rbi/x_twitter_scraper/models/x/account_create_params.rbi +0 -11
- data/rbi/x_twitter_scraper/models/x/account_create_response.rbi +79 -1
- data/rbi/x_twitter_scraper/models/x/account_reauth_params.rbi +11 -0
- data/rbi/x_twitter_scraper/models/x/account_reauth_response.rbi +96 -5
- data/rbi/x_twitter_scraper/models/x/bookmark_retrieve_folders_response.rbi +9 -1
- data/rbi/x_twitter_scraper/models/x/communities/join_create_response.rbi +30 -0
- data/rbi/x_twitter_scraper/models/x/communities/join_delete_all_response.rbi +30 -0
- data/rbi/x_twitter_scraper/models/x/communities/tweet_list_by_community_params.rbi +19 -0
- data/rbi/x_twitter_scraper/models/x/communities/tweet_list_params.rbi +85 -10
- data/rbi/x_twitter_scraper/models/x/community_retrieve_info_response.rbi +115 -0
- data/rbi/x_twitter_scraper/models/x/community_retrieve_members_params.rbi +15 -0
- data/rbi/x_twitter_scraper/models/x/community_retrieve_search_params.rbi +79 -4
- data/rbi/x_twitter_scraper/models/x/dm_retrieve_history_params.rbi +10 -0
- data/rbi/x_twitter_scraper/models/x/dm_retrieve_history_response.rbi +20 -13
- data/rbi/x_twitter_scraper/models/x/dm_send_params.rbi +2 -9
- data/rbi/x_twitter_scraper/models/x/follower_check_params.rbi +4 -4
- data/rbi/x_twitter_scraper/models/x/list_retrieve_followers_params.rbi +17 -0
- data/rbi/x_twitter_scraper/models/x/list_retrieve_members_params.rbi +11 -0
- data/rbi/x_twitter_scraper/models/x/list_retrieve_tweets_params.rbi +19 -0
- data/rbi/x_twitter_scraper/models/x/media_download_params.rbi +24 -2
- data/rbi/x_twitter_scraper/models/x/media_upload_params.rbi +9 -18
- data/rbi/x_twitter_scraper/models/x/media_upload_response.rbi +20 -5
- data/rbi/x_twitter_scraper/models/x/profile_update_avatar_params.rbi +9 -9
- data/rbi/x_twitter_scraper/models/x/profile_update_banner_params.rbi +9 -9
- data/rbi/x_twitter_scraper/models/x/tweet_author.rbi +8 -39
- data/rbi/x_twitter_scraper/models/x/tweet_create_params.rbi +23 -12
- data/rbi/x_twitter_scraper/models/x/tweet_create_response.rbi +41 -5
- data/rbi/x_twitter_scraper/models/x/tweet_detail.rbi +156 -115
- data/rbi/x_twitter_scraper/models/x/tweet_get_favoriters_params.rbi +17 -0
- data/rbi/x_twitter_scraper/models/x/tweet_get_quotes_params.rbi +508 -0
- data/rbi/x_twitter_scraper/models/x/tweet_get_replies_params.rbi +512 -0
- data/rbi/x_twitter_scraper/models/x/tweet_get_retweeters_params.rbi +17 -0
- data/rbi/x_twitter_scraper/models/x/tweet_get_thread_params.rbi +19 -0
- data/rbi/x_twitter_scraper/models/x/tweet_retrieve_response.rbi +8 -4
- data/rbi/x_twitter_scraper/models/x/tweet_search_params.rbi +557 -7
- data/rbi/x_twitter_scraper/models/x/user_remove_follower_params.rbi +54 -0
- data/rbi/x_twitter_scraper/models/x/user_remove_follower_response.rbi +28 -0
- data/rbi/x_twitter_scraper/models/x/user_retrieve_batch_params.rbi +4 -2
- data/rbi/x_twitter_scraper/models/x/user_retrieve_batch_response.rbi +102 -0
- data/rbi/x_twitter_scraper/models/x/user_retrieve_followers_params.rbi +30 -2
- data/rbi/x_twitter_scraper/models/x/user_retrieve_followers_you_know_params.rbi +17 -0
- data/rbi/x_twitter_scraper/models/x/user_retrieve_following_params.rbi +30 -2
- data/rbi/x_twitter_scraper/models/x/user_retrieve_likes_params.rbi +520 -0
- data/rbi/x_twitter_scraper/models/x/user_retrieve_media_params.rbi +520 -0
- data/rbi/x_twitter_scraper/models/x/user_retrieve_mentions_params.rbi +523 -0
- data/rbi/x_twitter_scraper/models/x/user_retrieve_replies_params.rbi +591 -0
- data/rbi/x_twitter_scraper/models/x/user_retrieve_tweets_params.rbi +523 -0
- data/rbi/x_twitter_scraper/models/x/user_retrieve_verified_followers_params.rbi +17 -0
- data/rbi/x_twitter_scraper/models/x/write_action_retrieve_params.rbi +40 -0
- data/rbi/x_twitter_scraper/models/x/write_action_retrieve_response.rbi +313 -0
- data/rbi/x_twitter_scraper/models/x/x_account.rbi +87 -4
- data/rbi/x_twitter_scraper/models/x/x_account_detail.rbi +58 -10
- data/rbi/x_twitter_scraper/models/x_get_article_response.rbi +308 -12
- data/rbi/x_twitter_scraper/models/x_get_home_timeline_params.rbi +2 -2
- data/rbi/x_twitter_scraper/models/x_get_notifications_params.rbi +3 -3
- data/rbi/x_twitter_scraper/models/x_get_trends_params.rbi +30 -2
- data/rbi/x_twitter_scraper/models.rbi +24 -22
- data/rbi/x_twitter_scraper/resources/account.rbi +1 -1
- data/rbi/x_twitter_scraper/resources/compose.rbi +1 -1
- data/rbi/x_twitter_scraper/resources/credits.rbi +37 -5
- data/rbi/x_twitter_scraper/resources/drafts.rbi +7 -4
- data/rbi/x_twitter_scraper/resources/draws.rbi +14 -8
- data/rbi/x_twitter_scraper/resources/events.rbi +8 -5
- data/rbi/x_twitter_scraper/resources/extractions.rbi +210 -11
- data/rbi/x_twitter_scraper/resources/guest_wallets.rbi +76 -0
- data/rbi/x_twitter_scraper/resources/monitors/keywords.rbi +95 -0
- data/rbi/x_twitter_scraper/resources/monitors.rbi +12 -5
- data/rbi/x_twitter_scraper/resources/radar.rbi +12 -8
- data/rbi/x_twitter_scraper/resources/styles.rbi +1 -1
- data/rbi/x_twitter_scraper/resources/subscribe.rbi +9 -3
- data/rbi/x_twitter_scraper/resources/support/tickets.rbi +3 -3
- data/rbi/x_twitter_scraper/resources/trends.rbi +4 -4
- data/rbi/x_twitter_scraper/resources/webhooks.rbi +19 -5
- data/rbi/x_twitter_scraper/resources/x/account_connection_challenges.rbi +36 -0
- data/rbi/x_twitter_scraper/resources/x/accounts.rbi +6 -6
- data/rbi/x_twitter_scraper/resources/x/bookmarks.rbi +1 -1
- data/rbi/x_twitter_scraper/resources/x/communities/join.rbi +8 -4
- data/rbi/x_twitter_scraper/resources/x/communities/tweets.rbi +25 -7
- data/rbi/x_twitter_scraper/resources/x/communities.rbi +23 -7
- data/rbi/x_twitter_scraper/resources/x/dm.rbi +5 -2
- data/rbi/x_twitter_scraper/resources/x/followers.rbi +4 -4
- data/rbi/x_twitter_scraper/resources/x/lists.rbi +20 -4
- data/rbi/x_twitter_scraper/resources/x/media.rbi +13 -9
- data/rbi/x_twitter_scraper/resources/x/profile.rbi +8 -8
- data/rbi/x_twitter_scraper/resources/x/tweets.rbi +309 -16
- data/rbi/x_twitter_scraper/resources/x/users.rbi +520 -18
- data/rbi/x_twitter_scraper/resources/x/write_actions.rbi +31 -0
- data/rbi/x_twitter_scraper/resources/x.rbi +30 -12
- data/sig/x_twitter_scraper/client.rbs +2 -6
- data/sig/x_twitter_scraper/models/account_retrieve_response.rbs +106 -19
- data/sig/x_twitter_scraper/models/content_disclosure.rbs +78 -0
- data/sig/x_twitter_scraper/models/{api_key_create_params.rbs → credit_redirect_topup_checkout_params.rbs} +7 -8
- data/sig/x_twitter_scraper/models/credit_retrieve_balance_response.rbs +22 -12
- data/sig/x_twitter_scraper/models/{integration_list_deliveries_params.rbs → credit_retrieve_topup_status_params.rbs} +6 -12
- data/sig/x_twitter_scraper/models/credit_retrieve_topup_status_response.rbs +45 -0
- data/sig/x_twitter_scraper/models/credit_topup_balance_params.rbs +11 -4
- data/sig/x_twitter_scraper/models/credit_topup_balance_response.rbs +6 -4
- data/sig/x_twitter_scraper/models/draw_export_params.rbs +2 -6
- data/sig/x_twitter_scraper/models/draw_list_params.rbs +5 -5
- data/sig/x_twitter_scraper/models/embedded_tweet.rbs +187 -0
- data/sig/x_twitter_scraper/models/error.rbs +341 -54
- data/sig/x_twitter_scraper/models/event.rbs +34 -2
- data/sig/x_twitter_scraper/models/event_detail.rbs +34 -2
- data/sig/x_twitter_scraper/models/event_list_params.rbs +5 -5
- data/sig/x_twitter_scraper/models/event_type.rbs +34 -4
- data/sig/x_twitter_scraper/models/extraction_estimate_cost_params.rbs +269 -1
- data/sig/x_twitter_scraper/models/extraction_estimate_cost_response.rbs +46 -12
- data/sig/x_twitter_scraper/models/extraction_export_results_params.rbs +2 -6
- data/sig/x_twitter_scraper/models/extraction_job.rbs +6 -0
- data/sig/x_twitter_scraper/models/extraction_list_params.rbs +11 -5
- data/sig/x_twitter_scraper/models/extraction_retrieve_params.rbs +5 -5
- data/sig/x_twitter_scraper/models/extraction_run_params.rbs +269 -1
- data/sig/x_twitter_scraper/models/extraction_run_response.rbs +6 -0
- data/sig/x_twitter_scraper/models/guest_wallet_amount.rbs +15 -0
- data/sig/x_twitter_scraper/models/guest_wallet_create_params.rbs +32 -0
- data/sig/x_twitter_scraper/models/guest_wallet_create_response.rbs +125 -0
- data/sig/x_twitter_scraper/models/{api_key_list_params.rbs → guest_wallet_retrieve_status_params.rbs} +2 -2
- data/sig/x_twitter_scraper/models/guest_wallet_retrieve_status_response.rbs +163 -0
- data/sig/x_twitter_scraper/models/guest_wallet_topup_params.rbs +32 -0
- data/sig/x_twitter_scraper/models/guest_wallet_topup_response.rbs +146 -0
- data/sig/x_twitter_scraper/models/monitor.rbs +5 -0
- data/sig/x_twitter_scraper/models/monitor_create_response.rbs +10 -0
- data/sig/x_twitter_scraper/models/monitors/keyword_create_params.rbs +33 -0
- data/sig/x_twitter_scraper/models/monitors/keyword_create_response.rbs +47 -0
- data/sig/x_twitter_scraper/models/monitors/keyword_deactivate_params.rbs +25 -0
- data/sig/x_twitter_scraper/models/monitors/keyword_deactivate_response.rbs +15 -0
- data/sig/x_twitter_scraper/models/monitors/keyword_list_params.rbs +19 -0
- data/sig/x_twitter_scraper/models/monitors/keyword_list_response.rbs +69 -0
- data/sig/x_twitter_scraper/models/monitors/keyword_retrieve_params.rbs +25 -0
- data/sig/x_twitter_scraper/models/monitors/keyword_retrieve_response.rbs +47 -0
- data/sig/x_twitter_scraper/models/monitors/keyword_update_params.rbs +44 -0
- data/sig/x_twitter_scraper/models/monitors/keyword_update_response.rbs +47 -0
- data/sig/x_twitter_scraper/models/paginated_tweets.rbs +4 -4
- data/sig/x_twitter_scraper/models/paginated_users.rbs +4 -4
- data/sig/x_twitter_scraper/models/radar_item.rbs +81 -8
- data/sig/x_twitter_scraper/models/radar_retrieve_trending_topics_params.rbs +44 -10
- data/sig/x_twitter_scraper/models/radar_retrieve_trending_topics_response.rbs +14 -4
- data/sig/x_twitter_scraper/models/search_tweet.rbs +205 -0
- data/sig/x_twitter_scraper/models/subscribe_create_params.rbs +28 -3
- data/sig/x_twitter_scraper/models/subscribe_create_response.rbs +10 -16
- data/sig/x_twitter_scraper/models/tweet_media.rbs +72 -0
- data/sig/x_twitter_scraper/models/user_profile.rbs +247 -0
- data/sig/x_twitter_scraper/models/webhook.rbs +27 -0
- data/sig/x_twitter_scraper/models/{api_key_revoke_params.rbs → webhook_resume_params.rbs} +2 -2
- data/sig/x_twitter_scraper/models/webhook_resume_response.rbs +26 -0
- data/sig/x_twitter_scraper/models/x/account_connection_challenge_submit_params.rbs +30 -0
- data/sig/x_twitter_scraper/models/x/account_connection_challenge_submit_response.rbs +68 -0
- data/sig/x_twitter_scraper/models/x/account_create_params.rbs +0 -7
- data/sig/x_twitter_scraper/models/x/account_create_response.rbs +37 -1
- data/sig/x_twitter_scraper/models/x/account_reauth_params.rbs +7 -1
- data/sig/x_twitter_scraper/models/x/account_reauth_response.rbs +51 -3
- data/sig/x_twitter_scraper/models/x/communities/join_create_response.rbs +17 -0
- data/sig/x_twitter_scraper/models/x/communities/join_delete_all_response.rbs +17 -0
- data/sig/x_twitter_scraper/models/x/communities/tweet_list_by_community_params.rbs +7 -1
- data/sig/x_twitter_scraper/models/x/communities/tweet_list_params.rbs +34 -5
- data/sig/x_twitter_scraper/models/x/community_retrieve_info_response.rbs +66 -0
- data/sig/x_twitter_scraper/models/x/community_retrieve_members_params.rbs +7 -1
- data/sig/x_twitter_scraper/models/x/community_retrieve_search_params.rbs +34 -5
- data/sig/x_twitter_scraper/models/x/dm_retrieve_history_params.rbs +5 -1
- data/sig/x_twitter_scraper/models/x/dm_retrieve_history_response.rbs +13 -10
- data/sig/x_twitter_scraper/models/x/dm_send_params.rbs +1 -8
- data/sig/x_twitter_scraper/models/x/list_retrieve_followers_params.rbs +7 -1
- data/sig/x_twitter_scraper/models/x/list_retrieve_members_params.rbs +7 -1
- data/sig/x_twitter_scraper/models/x/list_retrieve_tweets_params.rbs +7 -0
- data/sig/x_twitter_scraper/models/x/media_download_params.rbs +18 -1
- data/sig/x_twitter_scraper/models/x/media_upload_params.rbs +4 -14
- data/sig/x_twitter_scraper/models/x/media_upload_response.rbs +10 -3
- data/sig/x_twitter_scraper/models/x/profile_update_avatar_params.rbs +4 -4
- data/sig/x_twitter_scraper/models/x/profile_update_banner_params.rbs +4 -4
- data/sig/x_twitter_scraper/models/x/tweet_author.rbs +8 -31
- data/sig/x_twitter_scraper/models/x/tweet_create_params.rbs +13 -11
- data/sig/x_twitter_scraper/models/x/tweet_create_response.rbs +30 -3
- data/sig/x_twitter_scraper/models/x/tweet_detail.rbs +99 -61
- data/sig/x_twitter_scraper/models/x/tweet_get_favoriters_params.rbs +7 -1
- data/sig/x_twitter_scraper/models/x/tweet_get_quotes_params.rbs +242 -1
- data/sig/x_twitter_scraper/models/x/tweet_get_replies_params.rbs +247 -1
- data/sig/x_twitter_scraper/models/x/tweet_get_retweeters_params.rbs +7 -1
- data/sig/x_twitter_scraper/models/x/tweet_get_thread_params.rbs +7 -1
- data/sig/x_twitter_scraper/models/x/tweet_search_params.rbs +277 -1
- data/sig/x_twitter_scraper/models/x/user_remove_follower_params.rbs +30 -0
- data/sig/x_twitter_scraper/models/x/user_remove_follower_response.rbs +15 -0
- data/sig/x_twitter_scraper/models/x/user_retrieve_batch_response.rbs +57 -0
- data/sig/x_twitter_scraper/models/x/user_retrieve_followers_params.rbs +19 -1
- data/sig/x_twitter_scraper/models/x/user_retrieve_followers_you_know_params.rbs +7 -1
- data/sig/x_twitter_scraper/models/x/user_retrieve_following_params.rbs +19 -1
- data/sig/x_twitter_scraper/models/x/user_retrieve_likes_params.rbs +245 -1
- data/sig/x_twitter_scraper/models/x/user_retrieve_media_params.rbs +245 -1
- data/sig/x_twitter_scraper/models/x/user_retrieve_mentions_params.rbs +247 -1
- data/sig/x_twitter_scraper/models/x/user_retrieve_replies_params.rbs +283 -0
- data/sig/x_twitter_scraper/models/x/user_retrieve_tweets_params.rbs +242 -1
- data/sig/x_twitter_scraper/models/x/user_retrieve_verified_followers_params.rbs +7 -1
- data/sig/x_twitter_scraper/models/x/write_action_retrieve_params.rbs +25 -0
- data/sig/x_twitter_scraper/models/x/write_action_retrieve_response.rbs +177 -0
- data/sig/x_twitter_scraper/models/x/x_account.rbs +41 -3
- data/sig/x_twitter_scraper/models/x/x_account_detail.rbs +26 -7
- data/sig/x_twitter_scraper/models/x_get_article_response.rbs +193 -6
- data/sig/x_twitter_scraper/models/x_get_trends_params.rbs +20 -3
- data/sig/x_twitter_scraper/models.rbs +21 -21
- data/sig/x_twitter_scraper/resources/credits.rbs +12 -1
- data/sig/x_twitter_scraper/resources/draws.rbs +2 -2
- data/sig/x_twitter_scraper/resources/events.rbs +1 -1
- data/sig/x_twitter_scraper/resources/extractions.rbs +61 -3
- data/sig/x_twitter_scraper/resources/guest_wallets.rbs +25 -0
- data/sig/x_twitter_scraper/resources/monitors/keywords.rbs +36 -0
- data/sig/x_twitter_scraper/resources/monitors.rbs +2 -0
- data/sig/x_twitter_scraper/resources/radar.rbs +3 -2
- data/sig/x_twitter_scraper/resources/subscribe.rbs +1 -0
- data/sig/x_twitter_scraper/resources/webhooks.rbs +5 -0
- data/sig/x_twitter_scraper/resources/x/account_connection_challenges.rbs +15 -0
- data/sig/x_twitter_scraper/resources/x/accounts.rbs +1 -1
- data/sig/x_twitter_scraper/resources/x/communities/join.rbs +2 -2
- data/sig/x_twitter_scraper/resources/x/communities/tweets.rbs +4 -1
- data/sig/x_twitter_scraper/resources/x/communities.rbs +4 -1
- data/sig/x_twitter_scraper/resources/x/dm.rbs +1 -1
- data/sig/x_twitter_scraper/resources/x/lists.rbs +3 -0
- data/sig/x_twitter_scraper/resources/x/media.rbs +3 -2
- data/sig/x_twitter_scraper/resources/x/profile.rbs +2 -2
- data/sig/x_twitter_scraper/resources/x/tweets.rbs +88 -2
- data/sig/x_twitter_scraper/resources/x/users.rbs +151 -2
- data/sig/x_twitter_scraper/resources/x/write_actions.rbs +14 -0
- data/sig/x_twitter_scraper/resources/x.rbs +6 -0
- metadata +141 -84
- data/lib/x_twitter_scraper/models/api_key.rb +0 -47
- data/lib/x_twitter_scraper/models/api_key_create_params.rb +0 -20
- data/lib/x_twitter_scraper/models/api_key_create_response.rb +0 -40
- data/lib/x_twitter_scraper/models/api_key_list_params.rb +0 -14
- data/lib/x_twitter_scraper/models/api_key_list_response.rb +0 -16
- data/lib/x_twitter_scraper/models/api_key_revoke_response.rb +0 -16
- data/lib/x_twitter_scraper/models/integration.rb +0 -93
- data/lib/x_twitter_scraper/models/integration_create_params.rb +0 -58
- data/lib/x_twitter_scraper/models/integration_delete_params.rb +0 -20
- data/lib/x_twitter_scraper/models/integration_delete_response.rb +0 -16
- data/lib/x_twitter_scraper/models/integration_delivery.rb +0 -71
- data/lib/x_twitter_scraper/models/integration_list_deliveries_params.rb +0 -29
- data/lib/x_twitter_scraper/models/integration_list_deliveries_response.rb +0 -17
- data/lib/x_twitter_scraper/models/integration_list_response.rb +0 -16
- data/lib/x_twitter_scraper/models/integration_retrieve_params.rb +0 -20
- data/lib/x_twitter_scraper/models/integration_send_test_params.rb +0 -20
- data/lib/x_twitter_scraper/models/integration_send_test_response.rb +0 -16
- data/lib/x_twitter_scraper/models/integration_update_params.rb +0 -77
- data/lib/x_twitter_scraper/models/x/community_action_result.rb +0 -31
- data/lib/x_twitter_scraper/models/x/search_tweet.rb +0 -119
- data/lib/x_twitter_scraper/models/x/user_profile.rb +0 -80
- data/lib/x_twitter_scraper/resources/api_keys.rb +0 -77
- data/lib/x_twitter_scraper/resources/bot/platform_links.rb +0 -16
- data/lib/x_twitter_scraper/resources/bot.rb +0 -18
- data/lib/x_twitter_scraper/resources/integrations.rb +0 -182
- data/rbi/x_twitter_scraper/models/api_key.rbi +0 -69
- data/rbi/x_twitter_scraper/models/api_key_create_params.rbi +0 -41
- data/rbi/x_twitter_scraper/models/api_key_create_response.rbi +0 -56
- data/rbi/x_twitter_scraper/models/api_key_list_params.rbi +0 -32
- data/rbi/x_twitter_scraper/models/api_key_list_response.rbi +0 -30
- data/rbi/x_twitter_scraper/models/api_key_revoke_response.rbi +0 -26
- data/rbi/x_twitter_scraper/models/integration.rbi +0 -117
- data/rbi/x_twitter_scraper/models/integration_create_params.rbi +0 -95
- data/rbi/x_twitter_scraper/models/integration_delete_params.rbi +0 -38
- data/rbi/x_twitter_scraper/models/integration_delete_response.rbi +0 -26
- data/rbi/x_twitter_scraper/models/integration_delivery.rbi +0 -108
- data/rbi/x_twitter_scraper/models/integration_list_deliveries_response.rbi +0 -34
- data/rbi/x_twitter_scraper/models/integration_list_response.rbi +0 -34
- data/rbi/x_twitter_scraper/models/integration_send_test_params.rbi +0 -38
- data/rbi/x_twitter_scraper/models/integration_send_test_response.rbi +0 -26
- data/rbi/x_twitter_scraper/models/integration_update_params.rbi +0 -115
- data/rbi/x_twitter_scraper/models/x/community_action_result.rbi +0 -49
- data/rbi/x_twitter_scraper/models/x/search_tweet.rbi +0 -181
- data/rbi/x_twitter_scraper/models/x/user_profile.rbi +0 -125
- data/rbi/x_twitter_scraper/resources/api_keys.rbi +0 -46
- data/rbi/x_twitter_scraper/resources/bot/platform_links.rbi +0 -16
- data/rbi/x_twitter_scraper/resources/bot.rbi +0 -15
- data/rbi/x_twitter_scraper/resources/integrations.rbi +0 -133
- data/sig/x_twitter_scraper/models/api_key.rbs +0 -47
- data/sig/x_twitter_scraper/models/api_key_create_response.rbs +0 -40
- data/sig/x_twitter_scraper/models/api_key_list_response.rbs +0 -13
- data/sig/x_twitter_scraper/models/api_key_revoke_response.rbs +0 -13
- data/sig/x_twitter_scraper/models/integration.rbs +0 -78
- data/sig/x_twitter_scraper/models/integration_create_params.rbs +0 -51
- data/sig/x_twitter_scraper/models/integration_delete_params.rbs +0 -23
- data/sig/x_twitter_scraper/models/integration_delete_response.rbs +0 -13
- data/sig/x_twitter_scraper/models/integration_delivery.rbs +0 -75
- data/sig/x_twitter_scraper/models/integration_list_deliveries_response.rbs +0 -18
- data/sig/x_twitter_scraper/models/integration_list_params.rbs +0 -15
- data/sig/x_twitter_scraper/models/integration_list_response.rbs +0 -16
- data/sig/x_twitter_scraper/models/integration_retrieve_params.rbs +0 -23
- data/sig/x_twitter_scraper/models/integration_send_test_params.rbs +0 -23
- data/sig/x_twitter_scraper/models/integration_send_test_response.rbs +0 -13
- data/sig/x_twitter_scraper/models/integration_update_params.rbs +0 -77
- data/sig/x_twitter_scraper/models/x/community_action_result.rbs +0 -28
- data/sig/x_twitter_scraper/models/x/search_tweet.rbs +0 -121
- data/sig/x_twitter_scraper/models/x/user_profile.rbs +0 -88
- data/sig/x_twitter_scraper/resources/api_keys.rbs +0 -21
- data/sig/x_twitter_scraper/resources/bot/platform_links.rbs +0 -9
- data/sig/x_twitter_scraper/resources/bot.rbs +0 -9
- data/sig/x_twitter_scraper/resources/integrations.rbs +0 -52
|
@@ -14,14 +14,14 @@ module XTwitterScraper
|
|
|
14
14
|
)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
-
# Number of trending topics
|
|
17
|
+
# Number of trending topics returned (1-50, default 30)
|
|
18
18
|
sig { returns(T.nilable(Integer)) }
|
|
19
19
|
attr_reader :count
|
|
20
20
|
|
|
21
21
|
sig { params(count: Integer).void }
|
|
22
22
|
attr_writer :count
|
|
23
23
|
|
|
24
|
-
# Region WOEID (1=Worldwide, 23424977=US, 23424975=UK, 23424969=Turkey)
|
|
24
|
+
# Region Yahoo WOEID code (1=Worldwide, 23424977=US, 23424975=UK, 23424969=Turkey)
|
|
25
25
|
sig { returns(T.nilable(Integer)) }
|
|
26
26
|
attr_reader :woeid
|
|
27
27
|
|
|
@@ -36,9 +36,9 @@ module XTwitterScraper
|
|
|
36
36
|
).returns(T.attached_class)
|
|
37
37
|
end
|
|
38
38
|
def self.new(
|
|
39
|
-
# Number of trending topics
|
|
39
|
+
# Number of trending topics returned (1-50, default 30)
|
|
40
40
|
count: nil,
|
|
41
|
-
# Region WOEID (1=Worldwide, 23424977=US, 23424975=UK, 23424969=Turkey)
|
|
41
|
+
# Region Yahoo WOEID code (1=Worldwide, 23424977=US, 23424975=UK, 23424969=Turkey)
|
|
42
42
|
woeid: nil,
|
|
43
43
|
request_options: {}
|
|
44
44
|
)
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module XTwitterScraper
|
|
4
|
+
module Models
|
|
5
|
+
class TweetMedia < XTwitterScraper::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(XTwitterScraper::TweetMedia, XTwitterScraper::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Media preview URL
|
|
12
|
+
sig { returns(String) }
|
|
13
|
+
attr_accessor :media_url
|
|
14
|
+
|
|
15
|
+
sig { returns(XTwitterScraper::TweetMedia::Type::TaggedSymbol) }
|
|
16
|
+
attr_accessor :type
|
|
17
|
+
|
|
18
|
+
# X media link from the tweet
|
|
19
|
+
sig { returns(String) }
|
|
20
|
+
attr_accessor :url
|
|
21
|
+
|
|
22
|
+
# Available video encodings, ordered as returned
|
|
23
|
+
sig do
|
|
24
|
+
returns(T.nilable(T::Array[XTwitterScraper::TweetMedia::VideoVariant]))
|
|
25
|
+
end
|
|
26
|
+
attr_reader :video_variants
|
|
27
|
+
|
|
28
|
+
sig do
|
|
29
|
+
params(
|
|
30
|
+
video_variants:
|
|
31
|
+
T::Array[XTwitterScraper::TweetMedia::VideoVariant::OrHash]
|
|
32
|
+
).void
|
|
33
|
+
end
|
|
34
|
+
attr_writer :video_variants
|
|
35
|
+
|
|
36
|
+
# Normalized media attached to a tweet.
|
|
37
|
+
sig do
|
|
38
|
+
params(
|
|
39
|
+
media_url: String,
|
|
40
|
+
type: XTwitterScraper::TweetMedia::Type::OrSymbol,
|
|
41
|
+
url: String,
|
|
42
|
+
video_variants:
|
|
43
|
+
T::Array[XTwitterScraper::TweetMedia::VideoVariant::OrHash]
|
|
44
|
+
).returns(T.attached_class)
|
|
45
|
+
end
|
|
46
|
+
def self.new(
|
|
47
|
+
# Media preview URL
|
|
48
|
+
media_url:,
|
|
49
|
+
type:,
|
|
50
|
+
# X media link from the tweet
|
|
51
|
+
url:,
|
|
52
|
+
# Available video encodings, ordered as returned
|
|
53
|
+
video_variants: nil
|
|
54
|
+
)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
sig do
|
|
58
|
+
override.returns(
|
|
59
|
+
{
|
|
60
|
+
media_url: String,
|
|
61
|
+
type: XTwitterScraper::TweetMedia::Type::TaggedSymbol,
|
|
62
|
+
url: String,
|
|
63
|
+
video_variants: T::Array[XTwitterScraper::TweetMedia::VideoVariant]
|
|
64
|
+
}
|
|
65
|
+
)
|
|
66
|
+
end
|
|
67
|
+
def to_hash
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
module Type
|
|
71
|
+
extend XTwitterScraper::Internal::Type::Enum
|
|
72
|
+
|
|
73
|
+
TaggedSymbol =
|
|
74
|
+
T.type_alias { T.all(Symbol, XTwitterScraper::TweetMedia::Type) }
|
|
75
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
76
|
+
|
|
77
|
+
PHOTO = T.let(:photo, XTwitterScraper::TweetMedia::Type::TaggedSymbol)
|
|
78
|
+
VIDEO = T.let(:video, XTwitterScraper::TweetMedia::Type::TaggedSymbol)
|
|
79
|
+
ANIMATED_GIF =
|
|
80
|
+
T.let(:animated_gif, XTwitterScraper::TweetMedia::Type::TaggedSymbol)
|
|
81
|
+
|
|
82
|
+
sig do
|
|
83
|
+
override.returns(
|
|
84
|
+
T::Array[XTwitterScraper::TweetMedia::Type::TaggedSymbol]
|
|
85
|
+
)
|
|
86
|
+
end
|
|
87
|
+
def self.values
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
class VideoVariant < XTwitterScraper::Internal::Type::BaseModel
|
|
92
|
+
OrHash =
|
|
93
|
+
T.type_alias do
|
|
94
|
+
T.any(
|
|
95
|
+
XTwitterScraper::TweetMedia::VideoVariant,
|
|
96
|
+
XTwitterScraper::Internal::AnyHash
|
|
97
|
+
)
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
sig { returns(String) }
|
|
101
|
+
attr_accessor :content_type
|
|
102
|
+
|
|
103
|
+
sig { returns(String) }
|
|
104
|
+
attr_accessor :url
|
|
105
|
+
|
|
106
|
+
sig { returns(T.nilable(Integer)) }
|
|
107
|
+
attr_reader :bitrate
|
|
108
|
+
|
|
109
|
+
sig { params(bitrate: Integer).void }
|
|
110
|
+
attr_writer :bitrate
|
|
111
|
+
|
|
112
|
+
sig do
|
|
113
|
+
params(content_type: String, url: String, bitrate: Integer).returns(
|
|
114
|
+
T.attached_class
|
|
115
|
+
)
|
|
116
|
+
end
|
|
117
|
+
def self.new(content_type:, url:, bitrate: nil)
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
sig do
|
|
121
|
+
override.returns(
|
|
122
|
+
{ content_type: String, url: String, bitrate: Integer }
|
|
123
|
+
)
|
|
124
|
+
end
|
|
125
|
+
def to_hash
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
end
|
|
@@ -0,0 +1,346 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module XTwitterScraper
|
|
4
|
+
module Models
|
|
5
|
+
class UserProfile < XTwitterScraper::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(
|
|
9
|
+
XTwitterScraper::UserProfile,
|
|
10
|
+
XTwitterScraper::Internal::AnyHash
|
|
11
|
+
)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
sig { returns(String) }
|
|
15
|
+
attr_accessor :id
|
|
16
|
+
|
|
17
|
+
sig { returns(String) }
|
|
18
|
+
attr_accessor :name
|
|
19
|
+
|
|
20
|
+
sig { returns(String) }
|
|
21
|
+
attr_accessor :username
|
|
22
|
+
|
|
23
|
+
sig { returns(T.nilable(String)) }
|
|
24
|
+
attr_reader :automated_by
|
|
25
|
+
|
|
26
|
+
sig { params(automated_by: String).void }
|
|
27
|
+
attr_writer :automated_by
|
|
28
|
+
|
|
29
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
30
|
+
attr_reader :can_dm
|
|
31
|
+
|
|
32
|
+
sig { params(can_dm: T::Boolean).void }
|
|
33
|
+
attr_writer :can_dm
|
|
34
|
+
|
|
35
|
+
# Community role when returned by community member reads
|
|
36
|
+
sig { returns(T.nilable(String)) }
|
|
37
|
+
attr_reader :community_role
|
|
38
|
+
|
|
39
|
+
sig { params(community_role: String).void }
|
|
40
|
+
attr_writer :community_role
|
|
41
|
+
|
|
42
|
+
sig { returns(T.nilable(String)) }
|
|
43
|
+
attr_reader :cover_picture
|
|
44
|
+
|
|
45
|
+
sig { params(cover_picture: String).void }
|
|
46
|
+
attr_writer :cover_picture
|
|
47
|
+
|
|
48
|
+
sig { returns(T.nilable(String)) }
|
|
49
|
+
attr_reader :created_at
|
|
50
|
+
|
|
51
|
+
sig { params(created_at: String).void }
|
|
52
|
+
attr_writer :created_at
|
|
53
|
+
|
|
54
|
+
sig { returns(T.nilable(String)) }
|
|
55
|
+
attr_reader :description
|
|
56
|
+
|
|
57
|
+
sig { params(description: String).void }
|
|
58
|
+
attr_writer :description
|
|
59
|
+
|
|
60
|
+
sig { returns(T.nilable(Integer)) }
|
|
61
|
+
attr_reader :favourites_count
|
|
62
|
+
|
|
63
|
+
sig { params(favourites_count: Integer).void }
|
|
64
|
+
attr_writer :favourites_count
|
|
65
|
+
|
|
66
|
+
sig { returns(T.nilable(Integer)) }
|
|
67
|
+
attr_reader :followers
|
|
68
|
+
|
|
69
|
+
sig { params(followers: Integer).void }
|
|
70
|
+
attr_writer :followers
|
|
71
|
+
|
|
72
|
+
sig { returns(T.nilable(Integer)) }
|
|
73
|
+
attr_reader :following
|
|
74
|
+
|
|
75
|
+
sig { params(following: Integer).void }
|
|
76
|
+
attr_writer :following
|
|
77
|
+
|
|
78
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
79
|
+
attr_reader :has_custom_timelines
|
|
80
|
+
|
|
81
|
+
sig { params(has_custom_timelines: T::Boolean).void }
|
|
82
|
+
attr_writer :has_custom_timelines
|
|
83
|
+
|
|
84
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
85
|
+
attr_reader :is_automated
|
|
86
|
+
|
|
87
|
+
sig { params(is_automated: T::Boolean).void }
|
|
88
|
+
attr_writer :is_automated
|
|
89
|
+
|
|
90
|
+
# Whether X shows a blue verification badge
|
|
91
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
92
|
+
attr_reader :is_blue_verified
|
|
93
|
+
|
|
94
|
+
sig { params(is_blue_verified: T::Boolean).void }
|
|
95
|
+
attr_writer :is_blue_verified
|
|
96
|
+
|
|
97
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
98
|
+
attr_reader :is_translator
|
|
99
|
+
|
|
100
|
+
sig { params(is_translator: T::Boolean).void }
|
|
101
|
+
attr_writer :is_translator
|
|
102
|
+
|
|
103
|
+
# Whether X marks the profile as verified
|
|
104
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
105
|
+
attr_reader :is_verified
|
|
106
|
+
|
|
107
|
+
sig { params(is_verified: T::Boolean).void }
|
|
108
|
+
attr_writer :is_verified
|
|
109
|
+
|
|
110
|
+
sig { returns(T.nilable(String)) }
|
|
111
|
+
attr_reader :location
|
|
112
|
+
|
|
113
|
+
sig { params(location: String).void }
|
|
114
|
+
attr_writer :location
|
|
115
|
+
|
|
116
|
+
sig { returns(T.nilable(Integer)) }
|
|
117
|
+
attr_reader :media_count
|
|
118
|
+
|
|
119
|
+
sig { params(media_count: Integer).void }
|
|
120
|
+
attr_writer :media_count
|
|
121
|
+
|
|
122
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
123
|
+
attr_reader :pinned_tweet_ids
|
|
124
|
+
|
|
125
|
+
sig { params(pinned_tweet_ids: T::Array[String]).void }
|
|
126
|
+
attr_writer :pinned_tweet_ids
|
|
127
|
+
|
|
128
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
129
|
+
attr_reader :possibly_sensitive
|
|
130
|
+
|
|
131
|
+
sig { params(possibly_sensitive: T::Boolean).void }
|
|
132
|
+
attr_writer :possibly_sensitive
|
|
133
|
+
|
|
134
|
+
# Structured profile bio with entity annotations
|
|
135
|
+
sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
|
|
136
|
+
attr_reader :profile_bio
|
|
137
|
+
|
|
138
|
+
sig { params(profile_bio: T::Hash[Symbol, T.anything]).void }
|
|
139
|
+
attr_writer :profile_bio
|
|
140
|
+
|
|
141
|
+
# Original X profile banner field when available
|
|
142
|
+
sig { returns(T.nilable(String)) }
|
|
143
|
+
attr_reader :profile_banner_url
|
|
144
|
+
|
|
145
|
+
sig { params(profile_banner_url: String).void }
|
|
146
|
+
attr_writer :profile_banner_url
|
|
147
|
+
|
|
148
|
+
sig { returns(T.nilable(String)) }
|
|
149
|
+
attr_reader :profile_picture
|
|
150
|
+
|
|
151
|
+
sig { params(profile_picture: String).void }
|
|
152
|
+
attr_writer :profile_picture
|
|
153
|
+
|
|
154
|
+
# Whether the profile protects its posts
|
|
155
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
156
|
+
attr_reader :protected
|
|
157
|
+
|
|
158
|
+
sig { params(protected: T::Boolean).void }
|
|
159
|
+
attr_writer :protected
|
|
160
|
+
|
|
161
|
+
sig { returns(T.nilable(Integer)) }
|
|
162
|
+
attr_reader :statuses_count
|
|
163
|
+
|
|
164
|
+
sig { params(statuses_count: Integer).void }
|
|
165
|
+
attr_writer :statuses_count
|
|
166
|
+
|
|
167
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
168
|
+
attr_reader :unavailable
|
|
169
|
+
|
|
170
|
+
sig { params(unavailable: T::Boolean).void }
|
|
171
|
+
attr_writer :unavailable
|
|
172
|
+
|
|
173
|
+
sig { returns(T.nilable(String)) }
|
|
174
|
+
attr_reader :unavailable_reason
|
|
175
|
+
|
|
176
|
+
sig { params(unavailable_reason: String).void }
|
|
177
|
+
attr_writer :unavailable_reason
|
|
178
|
+
|
|
179
|
+
sig { returns(T.nilable(String)) }
|
|
180
|
+
attr_reader :url
|
|
181
|
+
|
|
182
|
+
sig { params(url: String).void }
|
|
183
|
+
attr_writer :url
|
|
184
|
+
|
|
185
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
186
|
+
attr_reader :verified
|
|
187
|
+
|
|
188
|
+
sig { params(verified: T::Boolean).void }
|
|
189
|
+
attr_writer :verified
|
|
190
|
+
|
|
191
|
+
sig { returns(T.nilable(String)) }
|
|
192
|
+
attr_reader :verified_type
|
|
193
|
+
|
|
194
|
+
sig { params(verified_type: String).void }
|
|
195
|
+
attr_writer :verified_type
|
|
196
|
+
|
|
197
|
+
# Whether this profile follows the authenticated viewer
|
|
198
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
199
|
+
attr_reader :viewer_followed_by
|
|
200
|
+
|
|
201
|
+
sig { params(viewer_followed_by: T::Boolean).void }
|
|
202
|
+
attr_writer :viewer_followed_by
|
|
203
|
+
|
|
204
|
+
# Whether the authenticated viewer follows this profile
|
|
205
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
206
|
+
attr_reader :viewer_following
|
|
207
|
+
|
|
208
|
+
sig { params(viewer_following: T::Boolean).void }
|
|
209
|
+
attr_writer :viewer_following
|
|
210
|
+
|
|
211
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
212
|
+
attr_reader :withheld_in_countries
|
|
213
|
+
|
|
214
|
+
sig { params(withheld_in_countries: T::Array[String]).void }
|
|
215
|
+
attr_writer :withheld_in_countries
|
|
216
|
+
|
|
217
|
+
# X user profile with bio, follower counts, and verification status.
|
|
218
|
+
sig do
|
|
219
|
+
params(
|
|
220
|
+
id: String,
|
|
221
|
+
name: String,
|
|
222
|
+
username: String,
|
|
223
|
+
automated_by: String,
|
|
224
|
+
can_dm: T::Boolean,
|
|
225
|
+
community_role: String,
|
|
226
|
+
cover_picture: String,
|
|
227
|
+
created_at: String,
|
|
228
|
+
description: String,
|
|
229
|
+
favourites_count: Integer,
|
|
230
|
+
followers: Integer,
|
|
231
|
+
following: Integer,
|
|
232
|
+
has_custom_timelines: T::Boolean,
|
|
233
|
+
is_automated: T::Boolean,
|
|
234
|
+
is_blue_verified: T::Boolean,
|
|
235
|
+
is_translator: T::Boolean,
|
|
236
|
+
is_verified: T::Boolean,
|
|
237
|
+
location: String,
|
|
238
|
+
media_count: Integer,
|
|
239
|
+
pinned_tweet_ids: T::Array[String],
|
|
240
|
+
possibly_sensitive: T::Boolean,
|
|
241
|
+
profile_bio: T::Hash[Symbol, T.anything],
|
|
242
|
+
profile_banner_url: String,
|
|
243
|
+
profile_picture: String,
|
|
244
|
+
protected: T::Boolean,
|
|
245
|
+
statuses_count: Integer,
|
|
246
|
+
unavailable: T::Boolean,
|
|
247
|
+
unavailable_reason: String,
|
|
248
|
+
url: String,
|
|
249
|
+
verified: T::Boolean,
|
|
250
|
+
verified_type: String,
|
|
251
|
+
viewer_followed_by: T::Boolean,
|
|
252
|
+
viewer_following: T::Boolean,
|
|
253
|
+
withheld_in_countries: T::Array[String]
|
|
254
|
+
).returns(T.attached_class)
|
|
255
|
+
end
|
|
256
|
+
def self.new(
|
|
257
|
+
id:,
|
|
258
|
+
name:,
|
|
259
|
+
username:,
|
|
260
|
+
automated_by: nil,
|
|
261
|
+
can_dm: nil,
|
|
262
|
+
# Community role when returned by community member reads
|
|
263
|
+
community_role: nil,
|
|
264
|
+
cover_picture: nil,
|
|
265
|
+
created_at: nil,
|
|
266
|
+
description: nil,
|
|
267
|
+
favourites_count: nil,
|
|
268
|
+
followers: nil,
|
|
269
|
+
following: nil,
|
|
270
|
+
has_custom_timelines: nil,
|
|
271
|
+
is_automated: nil,
|
|
272
|
+
# Whether X shows a blue verification badge
|
|
273
|
+
is_blue_verified: nil,
|
|
274
|
+
is_translator: nil,
|
|
275
|
+
# Whether X marks the profile as verified
|
|
276
|
+
is_verified: nil,
|
|
277
|
+
location: nil,
|
|
278
|
+
media_count: nil,
|
|
279
|
+
pinned_tweet_ids: nil,
|
|
280
|
+
possibly_sensitive: nil,
|
|
281
|
+
# Structured profile bio with entity annotations
|
|
282
|
+
profile_bio: nil,
|
|
283
|
+
# Original X profile banner field when available
|
|
284
|
+
profile_banner_url: nil,
|
|
285
|
+
profile_picture: nil,
|
|
286
|
+
# Whether the profile protects its posts
|
|
287
|
+
protected: nil,
|
|
288
|
+
statuses_count: nil,
|
|
289
|
+
unavailable: nil,
|
|
290
|
+
unavailable_reason: nil,
|
|
291
|
+
url: nil,
|
|
292
|
+
verified: nil,
|
|
293
|
+
verified_type: nil,
|
|
294
|
+
# Whether this profile follows the authenticated viewer
|
|
295
|
+
viewer_followed_by: nil,
|
|
296
|
+
# Whether the authenticated viewer follows this profile
|
|
297
|
+
viewer_following: nil,
|
|
298
|
+
withheld_in_countries: nil
|
|
299
|
+
)
|
|
300
|
+
end
|
|
301
|
+
|
|
302
|
+
sig do
|
|
303
|
+
override.returns(
|
|
304
|
+
{
|
|
305
|
+
id: String,
|
|
306
|
+
name: String,
|
|
307
|
+
username: String,
|
|
308
|
+
automated_by: String,
|
|
309
|
+
can_dm: T::Boolean,
|
|
310
|
+
community_role: String,
|
|
311
|
+
cover_picture: String,
|
|
312
|
+
created_at: String,
|
|
313
|
+
description: String,
|
|
314
|
+
favourites_count: Integer,
|
|
315
|
+
followers: Integer,
|
|
316
|
+
following: Integer,
|
|
317
|
+
has_custom_timelines: T::Boolean,
|
|
318
|
+
is_automated: T::Boolean,
|
|
319
|
+
is_blue_verified: T::Boolean,
|
|
320
|
+
is_translator: T::Boolean,
|
|
321
|
+
is_verified: T::Boolean,
|
|
322
|
+
location: String,
|
|
323
|
+
media_count: Integer,
|
|
324
|
+
pinned_tweet_ids: T::Array[String],
|
|
325
|
+
possibly_sensitive: T::Boolean,
|
|
326
|
+
profile_bio: T::Hash[Symbol, T.anything],
|
|
327
|
+
profile_banner_url: String,
|
|
328
|
+
profile_picture: String,
|
|
329
|
+
protected: T::Boolean,
|
|
330
|
+
statuses_count: Integer,
|
|
331
|
+
unavailable: T::Boolean,
|
|
332
|
+
unavailable_reason: String,
|
|
333
|
+
url: String,
|
|
334
|
+
verified: T::Boolean,
|
|
335
|
+
verified_type: String,
|
|
336
|
+
viewer_followed_by: T::Boolean,
|
|
337
|
+
viewer_following: T::Boolean,
|
|
338
|
+
withheld_in_countries: T::Array[String]
|
|
339
|
+
}
|
|
340
|
+
)
|
|
341
|
+
end
|
|
342
|
+
def to_hash
|
|
343
|
+
end
|
|
344
|
+
end
|
|
345
|
+
end
|
|
346
|
+
end
|
|
@@ -11,13 +11,26 @@ module XTwitterScraper
|
|
|
11
11
|
sig { returns(String) }
|
|
12
12
|
attr_accessor :id
|
|
13
13
|
|
|
14
|
+
# Consecutive failed delivery attempts since the last success.
|
|
15
|
+
sig { returns(Integer) }
|
|
16
|
+
attr_accessor :consecutive_failures
|
|
17
|
+
|
|
14
18
|
sig { returns(Time) }
|
|
15
19
|
attr_accessor :created_at
|
|
16
20
|
|
|
21
|
+
# Endpoint delivery state. needs_attention means delivery stopped after repeated
|
|
22
|
+
# failures.
|
|
23
|
+
sig { returns(XTwitterScraper::Webhook::DeliveryStatus::TaggedSymbol) }
|
|
24
|
+
attr_accessor :delivery_status
|
|
25
|
+
|
|
17
26
|
# Array of event types to subscribe to.
|
|
18
27
|
sig { returns(T::Array[XTwitterScraper::EventType::TaggedSymbol]) }
|
|
19
28
|
attr_accessor :event_types
|
|
20
29
|
|
|
30
|
+
# Consecutive delivery failures that pause the endpoint.
|
|
31
|
+
sig { returns(Integer) }
|
|
32
|
+
attr_accessor :failure_hard_cap
|
|
33
|
+
|
|
21
34
|
sig { returns(T::Boolean) }
|
|
22
35
|
attr_accessor :is_active
|
|
23
36
|
|
|
@@ -28,17 +41,27 @@ module XTwitterScraper
|
|
|
28
41
|
sig do
|
|
29
42
|
params(
|
|
30
43
|
id: String,
|
|
44
|
+
consecutive_failures: Integer,
|
|
31
45
|
created_at: Time,
|
|
46
|
+
delivery_status: XTwitterScraper::Webhook::DeliveryStatus::OrSymbol,
|
|
32
47
|
event_types: T::Array[XTwitterScraper::EventType::OrSymbol],
|
|
48
|
+
failure_hard_cap: Integer,
|
|
33
49
|
is_active: T::Boolean,
|
|
34
50
|
url: String
|
|
35
51
|
).returns(T.attached_class)
|
|
36
52
|
end
|
|
37
53
|
def self.new(
|
|
38
54
|
id:,
|
|
55
|
+
# Consecutive failed delivery attempts since the last success.
|
|
56
|
+
consecutive_failures:,
|
|
39
57
|
created_at:,
|
|
58
|
+
# Endpoint delivery state. needs_attention means delivery stopped after repeated
|
|
59
|
+
# failures.
|
|
60
|
+
delivery_status:,
|
|
40
61
|
# Array of event types to subscribe to.
|
|
41
62
|
event_types:,
|
|
63
|
+
# Consecutive delivery failures that pause the endpoint.
|
|
64
|
+
failure_hard_cap:,
|
|
42
65
|
is_active:,
|
|
43
66
|
url:
|
|
44
67
|
)
|
|
@@ -48,8 +71,12 @@ module XTwitterScraper
|
|
|
48
71
|
override.returns(
|
|
49
72
|
{
|
|
50
73
|
id: String,
|
|
74
|
+
consecutive_failures: Integer,
|
|
51
75
|
created_at: Time,
|
|
76
|
+
delivery_status:
|
|
77
|
+
XTwitterScraper::Webhook::DeliveryStatus::TaggedSymbol,
|
|
52
78
|
event_types: T::Array[XTwitterScraper::EventType::TaggedSymbol],
|
|
79
|
+
failure_hard_cap: Integer,
|
|
53
80
|
is_active: T::Boolean,
|
|
54
81
|
url: String
|
|
55
82
|
}
|
|
@@ -57,6 +84,36 @@ module XTwitterScraper
|
|
|
57
84
|
end
|
|
58
85
|
def to_hash
|
|
59
86
|
end
|
|
87
|
+
|
|
88
|
+
# Endpoint delivery state. needs_attention means delivery stopped after repeated
|
|
89
|
+
# failures.
|
|
90
|
+
module DeliveryStatus
|
|
91
|
+
extend XTwitterScraper::Internal::Type::Enum
|
|
92
|
+
|
|
93
|
+
TaggedSymbol =
|
|
94
|
+
T.type_alias do
|
|
95
|
+
T.all(Symbol, XTwitterScraper::Webhook::DeliveryStatus)
|
|
96
|
+
end
|
|
97
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
98
|
+
|
|
99
|
+
ACTIVE =
|
|
100
|
+
T.let(:active, XTwitterScraper::Webhook::DeliveryStatus::TaggedSymbol)
|
|
101
|
+
PAUSED =
|
|
102
|
+
T.let(:paused, XTwitterScraper::Webhook::DeliveryStatus::TaggedSymbol)
|
|
103
|
+
NEEDS_ATTENTION =
|
|
104
|
+
T.let(
|
|
105
|
+
:needs_attention,
|
|
106
|
+
XTwitterScraper::Webhook::DeliveryStatus::TaggedSymbol
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
sig do
|
|
110
|
+
override.returns(
|
|
111
|
+
T::Array[XTwitterScraper::Webhook::DeliveryStatus::TaggedSymbol]
|
|
112
|
+
)
|
|
113
|
+
end
|
|
114
|
+
def self.values
|
|
115
|
+
end
|
|
116
|
+
end
|
|
60
117
|
end
|
|
61
118
|
end
|
|
62
119
|
end
|
|
@@ -21,6 +21,7 @@ module XTwitterScraper
|
|
|
21
21
|
sig { returns(T::Array[XTwitterScraper::EventType::TaggedSymbol]) }
|
|
22
22
|
attr_accessor :event_types
|
|
23
23
|
|
|
24
|
+
# Plaintext HMAC signing secret returned only at creation.
|
|
24
25
|
sig { returns(String) }
|
|
25
26
|
attr_accessor :secret
|
|
26
27
|
|
|
@@ -41,6 +42,7 @@ module XTwitterScraper
|
|
|
41
42
|
created_at:,
|
|
42
43
|
# Array of event types to subscribe to.
|
|
43
44
|
event_types:,
|
|
45
|
+
# Plaintext HMAC signing secret returned only at creation.
|
|
44
46
|
secret:,
|
|
45
47
|
url:
|
|
46
48
|
)
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
module XTwitterScraper
|
|
4
4
|
module Models
|
|
5
|
-
class
|
|
5
|
+
class WebhookResumeParams < XTwitterScraper::Internal::Type::BaseModel
|
|
6
6
|
extend XTwitterScraper::Internal::Type::RequestParameters::Converter
|
|
7
7
|
include XTwitterScraper::Internal::Type::RequestParameters
|
|
8
8
|
|
|
9
9
|
OrHash =
|
|
10
10
|
T.type_alias do
|
|
11
11
|
T.any(
|
|
12
|
-
XTwitterScraper::
|
|
12
|
+
XTwitterScraper::WebhookResumeParams,
|
|
13
13
|
XTwitterScraper::Internal::AnyHash
|
|
14
14
|
)
|
|
15
15
|
end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module XTwitterScraper
|
|
4
|
+
module Models
|
|
5
|
+
class WebhookResumeResponse < XTwitterScraper::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(
|
|
9
|
+
XTwitterScraper::Models::WebhookResumeResponse,
|
|
10
|
+
XTwitterScraper::Internal::AnyHash
|
|
11
|
+
)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
sig { returns(Integer) }
|
|
15
|
+
attr_accessor :status_code
|
|
16
|
+
|
|
17
|
+
sig { returns(T::Boolean) }
|
|
18
|
+
attr_accessor :success
|
|
19
|
+
|
|
20
|
+
# Webhook endpoint registered to receive event deliveries.
|
|
21
|
+
sig { returns(XTwitterScraper::Webhook) }
|
|
22
|
+
attr_reader :webhook
|
|
23
|
+
|
|
24
|
+
sig { params(webhook: XTwitterScraper::Webhook::OrHash).void }
|
|
25
|
+
attr_writer :webhook
|
|
26
|
+
|
|
27
|
+
sig do
|
|
28
|
+
params(
|
|
29
|
+
status_code: Integer,
|
|
30
|
+
success: T::Boolean,
|
|
31
|
+
webhook: XTwitterScraper::Webhook::OrHash
|
|
32
|
+
).returns(T.attached_class)
|
|
33
|
+
end
|
|
34
|
+
def self.new(
|
|
35
|
+
status_code:,
|
|
36
|
+
success:,
|
|
37
|
+
# Webhook endpoint registered to receive event deliveries.
|
|
38
|
+
webhook:
|
|
39
|
+
)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
sig do
|
|
43
|
+
override.returns(
|
|
44
|
+
{
|
|
45
|
+
status_code: Integer,
|
|
46
|
+
success: T::Boolean,
|
|
47
|
+
webhook: XTwitterScraper::Webhook
|
|
48
|
+
}
|
|
49
|
+
)
|
|
50
|
+
end
|
|
51
|
+
def to_hash
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|