diff --git a/.187c1b9ae9cbfffd-00000000.bun-build b/.187c1b9ae9cbfffd-00000000.bun-build new file mode 100755 index 0000000..e84d927 Binary files /dev/null and b/.187c1b9ae9cbfffd-00000000.bun-build differ diff --git a/.187d5d9bdf78bbfd-00000000.bun-build b/.187d5d9bdf78bbfd-00000000.bun-build new file mode 100755 index 0000000..e84d927 Binary files /dev/null and b/.187d5d9bdf78bbfd-00000000.bun-build differ diff --git a/.187d5d9fdff7a7d8-00000000.bun-build b/.187d5d9fdff7a7d8-00000000.bun-build new file mode 100755 index 0000000..e84d927 Binary files /dev/null and b/.187d5d9fdff7a7d8-00000000.bun-build differ diff --git a/src/lib/twitter-client.ts b/src/lib/twitter-client.ts index b259a3d..4aab513 100644 --- a/src/lib/twitter-client.ts +++ b/src/lib/twitter-client.ts @@ -8,8 +8,9 @@ const TWITTER_API_BASE = 'https://x.com/i/api/graphql'; // Twitter GraphQL query IDs - these may need to be updated periodically // as Twitter rotates them. Check browser network tab for current values. +// Source: https://github.com/fa0311/TwitterInternalAPIDocument const QUERY_IDS = { - CreateTweet: 'znCVAd692dKBq9MgkEhKPQ', + CreateTweet: 'TAJw1rBsjAtdNgTdlo2oeg', CreateRetweet: 'ojPdsZsimiJrUGLR1sjUtA', FavoriteTweet: 'lI07N6Otwv1PhnEgXILM7A', TweetDetail: 'nBS-WpgA6ZG0CyNHD517JQ', @@ -331,26 +332,36 @@ export class TwitterClient { }; const features = { + premium_content_api_read_enabled: false, communities_web_enable_tweet_community_results_fetch: true, c9s_tweet_anatomy_moderator_badge_enabled: true, + responsive_web_grok_analyze_button_fetch_trends_enabled: false, + responsive_web_grok_analyze_post_followups_enabled: false, + responsive_web_jetfuel_frame: true, + responsive_web_grok_share_attachment_enabled: true, responsive_web_edit_tweet_api_enabled: true, graphql_is_translatable_rweb_tweet_is_translatable_enabled: true, view_counts_everywhere_api_enabled: true, longform_notetweets_consumption_enabled: true, responsive_web_twitter_article_tweet_consumption_enabled: true, tweet_awards_web_tipping_enabled: false, + responsive_web_grok_show_grok_translated_post: false, + responsive_web_grok_analysis_button_from_backend: true, creator_subscriptions_quote_tweet_preview_enabled: false, longform_notetweets_rich_text_read_enabled: true, longform_notetweets_inline_media_enabled: true, - articles_preview_enabled: true, - rweb_video_timestamps_enabled: true, + profile_label_improvements_pcf_label_in_post_enabled: true, + responsive_web_profile_redirect_enabled: false, rweb_tipjar_consumption_enabled: true, - responsive_web_graphql_exclude_directive_enabled: true, verified_phone_label_enabled: false, + articles_preview_enabled: true, + responsive_web_grok_community_note_auto_translation_is_enabled: false, + responsive_web_graphql_skip_user_profile_image_extensions_enabled: false, freedom_of_speech_not_reach_fetch_enabled: true, standardized_nudges_misinfo: true, tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: true, - responsive_web_graphql_skip_user_profile_image_extensions_enabled: false, + responsive_web_grok_image_annotation_enabled: true, + responsive_web_grok_imagine_annotation_enabled: true, responsive_web_graphql_timeline_navigation_enabled: true, responsive_web_enhance_cards_enabled: false, }; @@ -377,26 +388,36 @@ export class TwitterClient { }; const features = { + premium_content_api_read_enabled: false, communities_web_enable_tweet_community_results_fetch: true, c9s_tweet_anatomy_moderator_badge_enabled: true, + responsive_web_grok_analyze_button_fetch_trends_enabled: false, + responsive_web_grok_analyze_post_followups_enabled: false, + responsive_web_jetfuel_frame: true, + responsive_web_grok_share_attachment_enabled: true, responsive_web_edit_tweet_api_enabled: true, graphql_is_translatable_rweb_tweet_is_translatable_enabled: true, view_counts_everywhere_api_enabled: true, longform_notetweets_consumption_enabled: true, responsive_web_twitter_article_tweet_consumption_enabled: true, tweet_awards_web_tipping_enabled: false, + responsive_web_grok_show_grok_translated_post: false, + responsive_web_grok_analysis_button_from_backend: true, creator_subscriptions_quote_tweet_preview_enabled: false, longform_notetweets_rich_text_read_enabled: true, longform_notetweets_inline_media_enabled: true, - articles_preview_enabled: true, - rweb_video_timestamps_enabled: true, + profile_label_improvements_pcf_label_in_post_enabled: true, + responsive_web_profile_redirect_enabled: false, rweb_tipjar_consumption_enabled: true, - responsive_web_graphql_exclude_directive_enabled: true, verified_phone_label_enabled: false, + articles_preview_enabled: true, + responsive_web_grok_community_note_auto_translation_is_enabled: false, + responsive_web_graphql_skip_user_profile_image_extensions_enabled: false, freedom_of_speech_not_reach_fetch_enabled: true, standardized_nudges_misinfo: true, tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: true, - responsive_web_graphql_skip_user_profile_image_extensions_enabled: false, + responsive_web_grok_image_annotation_enabled: true, + responsive_web_grok_imagine_annotation_enabled: true, responsive_web_graphql_timeline_navigation_enabled: true, responsive_web_enhance_cards_enabled: false, };