From 5b7d970d2382f8e3da8d4fae413c446f7db9c513 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=B5=E3=81=81?= Date: Wed, 7 Feb 2024 14:23:52 +0900 Subject: [PATCH 01/12] update placeholder MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: ふぁ --- src/config/placeholder.json | 129 ++++++++++++++++++++++++------------ 1 file changed, 85 insertions(+), 44 deletions(-) diff --git a/src/config/placeholder.json b/src/config/placeholder.json index bef3c50..cdb150c 100644 --- a/src/config/placeholder.json +++ b/src/config/placeholder.json @@ -1,15 +1,15 @@ { "HomeTimeline": { - "queryId": "vd1SSLv05a4lAc9-ml4kpA", + "queryId": "AmMFotx7L4P3QnyOM3bCRA", "variables": { "count": 20, "includePromotedContent": true, "latestControlAvailable": true, "requestContext": "launch", + "withCommunity": true, "seenTweetIds": [ "1349129669258448897" - ], - "withCommunity": true + ] }, "features": { "responsive_web_graphql_exclude_directive_enabled": true, @@ -17,16 +17,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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, + "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": false, @@ -34,7 +36,7 @@ } }, "HomeLatestTimeline": { - "queryId": "fKbuCe1XHAqSM99T6q-MOg", + "queryId": "IjTuxEFmAb6DvzycVz4fHg", "variables": { "count": 20, "includePromotedContent": true, @@ -47,16 +49,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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, + "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": false, @@ -64,7 +68,7 @@ } }, "ListLatestTweetsTimeline": { - "queryId": "qHgwF5h2HLowIJ6dHmAP_A", + "queryId": "HjsWc-nwwHKYwHenbHm-tw", "variables": { "listId": "1539453138322673664", "count": 20 @@ -75,16 +79,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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, + "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": false, @@ -92,7 +98,7 @@ } }, "UserByScreenName": { - "queryId": "G3KGOASz96M-Qu0nwmGXNg", + "queryId": "k5XapwcSikNsEsILW5FvgA", "variables": { "screen_name": "elonmusk", "withSafetyModeUserFields": true @@ -105,6 +111,7 @@ "subscriptions_verification_info_is_identity_verified_enabled": true, "subscriptions_verification_info_verified_since_enabled": true, "highlights_tweets_tab_ui_enabled": true, + "responsive_web_twitter_article_notes_tab_enabled": true, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true @@ -114,7 +121,7 @@ } }, "UserByRestId": { - "queryId": "QdS5LJDl99iL_KUzckdfNQ", + "queryId": "tD8zKvQzwY3kdx5yz6YmOw", "variables": { "userId": "44196397", "withSafetyModeUserFields": true @@ -125,13 +132,14 @@ "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "highlights_tweets_tab_ui_enabled": true, + "responsive_web_twitter_article_notes_tab_enabled": true, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true } }, "UsersByRestIds": { - "queryId": "GD4q8bBE2i6cqWw2iT74Gg", + "queryId": "itEhGywpgX9b3GJCzOtSrA", "variables": { "userIds": [ "44196397" @@ -145,14 +153,14 @@ } }, "ProfileSpotlightsQuery": { - "queryId": "_pnlqeTOtnpbIL9o-fS_pg", + "queryId": "X-Sw7rvhcUhof35mh5ObKw", "variables": { "screen_name": "elonmusk" }, "features": {} }, "UserTweets": { - "queryId": "H8OOoI-5ZE4NxgRr8lfyWg", + "queryId": "5ICa5d9-AitXZrIA3H-4MQ", "variables": { "userId": "44196397", "count": 40, @@ -167,16 +175,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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, + "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": false, @@ -184,7 +194,7 @@ } }, "UserTweetsAndReplies": { - "queryId": "Q6aAvPw7azXZbqXzuqTALA", + "queryId": "UtLStR_BnYUGD7Q453UXQg", "variables": { "userId": "44196397", "count": 40, @@ -199,16 +209,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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, + "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": false, @@ -216,7 +228,7 @@ } }, "UserHighlightsTweets": { - "queryId": "KTtT5_kU8yor3I3UI4G5Vw", + "queryId": "ZRU-YBvpJ5c-SOS-nb_Lhg", "variables": { "userId": "44196397", "count": 40, @@ -229,16 +241,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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, + "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": false, @@ -246,7 +260,7 @@ } }, "UserMedia": { - "queryId": "Le6KlbilFmSu-5VltFND-Q", + "queryId": "tO4LMUYAZbR4T0SqQ85aAw", "variables": { "userId": "44196397", "count": 40, @@ -262,16 +276,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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, + "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": false, @@ -279,7 +295,7 @@ } }, "Likes": { - "queryId": "lVf2NuhLoYVrpN4nO7uw0Q", + "queryId": "9s8V6sUI8fZLDiN-REkAxA", "variables": { "userId": "44196397", "count": 20, @@ -295,16 +311,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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, + "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": false, @@ -312,7 +330,7 @@ } }, "Bookmarks": { - "queryId": "j5KExFXtSWj8HjRui17ydA", + "queryId": "cQxQgX8MJYjWwC0dxpyfYg", "variables": { "count": 20, "includePromotedContent": true @@ -324,16 +342,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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, + "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": false, @@ -341,9 +361,10 @@ } }, "TweetDetail": { - "queryId": "xOhkmRac04YFZmOzU9PJHg", + "queryId": "B9_KmbkLhXt6jRwGjJrweg", "variables": { "focalTweetId": "1349129669258448897", + "referrer": "home", "with_rux_injections": false, "includePromotedContent": true, "withCommunity": true, @@ -358,16 +379,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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, + "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": false, @@ -378,7 +401,7 @@ } }, "TweetResultByRestId": { - "queryId": "DJS3BdhUhcaEpZ7B7irJDg", + "queryId": "MWY3AO9_I3rcP_L2A4FR4A", "variables": { "tweetId": "1691730070669517096", "withCommunity": false, @@ -387,16 +410,18 @@ }, "features": { "creator_subscriptions_tweet_preview_api_enabled": true, + "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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, + "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, @@ -408,7 +433,7 @@ } }, "SearchTimeline": { - "queryId": "3Ej-6N7xXONuEp5eJa1TdQ", + "queryId": "fZK7JipRHWtiZsTodhsTfQ", "variables": { "rawQuery": "elonmusk", "count": 20, @@ -421,16 +446,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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, + "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": false, @@ -438,7 +465,7 @@ } }, "Favoriters": { - "queryId": "VIA2_af01oqZqBB6NvWi-Q", + "queryId": "LLkw5EcVutJL6y-2gkz22A", "variables": { "tweetId": "1349129669258448897", "count": 20, @@ -450,16 +477,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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, + "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": false, @@ -467,7 +496,7 @@ } }, "Retweeters": { - "queryId": "9jBdme5U626ATWp01dvgrA", + "queryId": "X-XEqG5qHQSAwmvy00xfyQ", "variables": { "tweetId": "1349129669258448897", "count": 20, @@ -479,16 +508,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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, + "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": false, @@ -496,7 +527,7 @@ } }, "Followers": { - "queryId": "rRXFSG5vR6drKr5M37YOTw", + "queryId": "ZG1BQPaRSg04qo55kKaW2g", "variables": { "userId": "44196397", "count": 20, @@ -508,16 +539,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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, + "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": false, @@ -525,7 +558,7 @@ } }, "Following": { - "queryId": "iSicc7LrzWGBgDPL0tM_TQ", + "queryId": "PAnE9toEjRfE-4tozRcsfw", "variables": { "userId": "44196397", "count": 20, @@ -537,16 +570,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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, + "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": false, @@ -554,7 +589,7 @@ } }, "BlueVerifiedFollowers": { - "queryId": "kXi37EbqWokFUNypPHhQDQ", + "queryId": "mg4dFO4kMIKt6tpqPMmFeg", "variables": { "userId": "1347135745706708993", "count": 20, @@ -566,16 +601,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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, + "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": false, @@ -583,7 +620,7 @@ } }, "FollowersYouKnow": { - "queryId": "yqrUptVSP9DAkVLqpc0lsg", + "queryId": "citX7s5IAb1C6AVCqUO68g", "variables": { "userId": "44196397", "count": 20, @@ -595,16 +632,18 @@ "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, + "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_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, + "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": false, @@ -612,7 +651,7 @@ } }, "CreateTweet": { - "queryId": "PIZtQLRIYtSa9AtW_fI2Mw", + "queryId": "8ED1SMuUGkOZVBEjiYUTfw", "variables": { "tweet_text": "test", "media": { @@ -632,15 +671,17 @@ "dark_request": false }, "features": { + "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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": false, + "responsive_web_twitter_article_tweet_consumption_enabled": true, "tweet_awards_web_tipping_enabled": false, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": true, + "rweb_video_timestamps_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": true, From c1fc8c9bb3a43684332153ae48486b765ecda619 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=B5=E3=81=81?= Date: Wed, 7 Feb 2024 14:24:12 +0900 Subject: [PATCH 02/12] add ignore warning MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: ふぁ --- test/python/test_serialize.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/python/test_serialize.py b/test/python/test_serialize.py index 7ad1732..38734d1 100644 --- a/test/python/test_serialize.py +++ b/test/python/test_serialize.py @@ -6,11 +6,13 @@ import logging import os import time import traceback +import warnings from pathlib import Path import aenum import openapi_client as pt +warnings.filterwarnings("ignore") logging.basicConfig(level=logging.DEBUG, format="%(asctime)s %(levelname)s %(message)s") logger = logging.getLogger("test_serialize") From 4db484bcb68b5409a342e8c66588aa7db4de5eb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=B5=E3=81=81?= Date: Wed, 7 Feb 2024 14:24:17 +0900 Subject: [PATCH 03/12] build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: ふぁ --- dist/compatible/openapi-3.0.yaml | 614 ++++++++++++++++--------------- dist/docs/openapi-3.0.yaml | 361 +++++++++++++----- 2 files changed, 592 insertions(+), 383 deletions(-) diff --git a/dist/compatible/openapi-3.0.yaml b/dist/compatible/openapi-3.0.yaml index 91196ef..bc0bcab 100644 --- a/dist/compatible/openapi-3.0.yaml +++ b/dist/compatible/openapi-3.0.yaml @@ -2941,8 +2941,8 @@ paths: name: pathQueryId required: true schema: - default: j5KExFXtSWj8HjRui17ydA - example: j5KExFXtSWj8HjRui17ydA + default: cQxQgX8MJYjWwC0dxpyfYg + example: cQxQgX8MJYjWwC0dxpyfYg type: string - in: query name: variables @@ -2958,27 +2958,27 @@ paths: default: '{"graphql_timeline_v2_bookmark_timeline": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"graphql_timeline_v2_bookmark_timeline": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string responses: '200': @@ -3101,8 +3101,8 @@ paths: name: pathQueryId required: true schema: - default: PIZtQLRIYtSa9AtW_fI2Mw - example: PIZtQLRIYtSa9AtW_fI2Mw + default: 8ED1SMuUGkOZVBEjiYUTfw + example: 8ED1SMuUGkOZVBEjiYUTfw type: string requestBody: content: @@ -3111,6 +3111,10 @@ paths: properties: features: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean freedom_of_speech_not_reach_fetch_enabled: default: true example: true @@ -3156,8 +3160,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -3184,6 +3192,7 @@ paths: example: true type: boolean required: + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -3193,6 +3202,7 @@ paths: - tweet_awards_web_tipping_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled + - rweb_video_timestamps_enabled - responsive_web_graphql_exclude_directive_enabled - verified_phone_label_enabled - freedom_of_speech_not_reach_fetch_enabled @@ -3204,8 +3214,8 @@ paths: - responsive_web_enhance_cards_enabled type: object queryId: - default: PIZtQLRIYtSa9AtW_fI2Mw - example: PIZtQLRIYtSa9AtW_fI2Mw + default: 8ED1SMuUGkOZVBEjiYUTfw + example: 8ED1SMuUGkOZVBEjiYUTfw type: string variables: properties: @@ -3546,8 +3556,8 @@ paths: name: pathQueryId required: true schema: - default: VIA2_af01oqZqBB6NvWi-Q - example: VIA2_af01oqZqBB6NvWi-Q + default: LLkw5EcVutJL6y-2gkz22A + example: LLkw5EcVutJL6y-2gkz22A type: string - in: query name: variables @@ -3565,27 +3575,27 @@ paths: default: '{"responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string responses: '200': @@ -3632,8 +3642,8 @@ paths: name: pathQueryId required: true schema: - default: rRXFSG5vR6drKr5M37YOTw - example: rRXFSG5vR6drKr5M37YOTw + default: ZG1BQPaRSg04qo55kKaW2g + example: ZG1BQPaRSg04qo55kKaW2g type: string - in: query name: variables @@ -3651,27 +3661,27 @@ paths: default: '{"responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string responses: '200': @@ -3718,8 +3728,8 @@ paths: name: pathQueryId required: true schema: - default: yqrUptVSP9DAkVLqpc0lsg - example: yqrUptVSP9DAkVLqpc0lsg + default: citX7s5IAb1C6AVCqUO68g + example: citX7s5IAb1C6AVCqUO68g type: string - in: query name: variables @@ -3737,27 +3747,27 @@ paths: default: '{"responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string responses: '200': @@ -3804,8 +3814,8 @@ paths: name: pathQueryId required: true schema: - default: iSicc7LrzWGBgDPL0tM_TQ - example: iSicc7LrzWGBgDPL0tM_TQ + default: PAnE9toEjRfE-4tozRcsfw + example: PAnE9toEjRfE-4tozRcsfw type: string - in: query name: variables @@ -3823,27 +3833,27 @@ paths: default: '{"responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string responses: '200': @@ -3890,8 +3900,8 @@ paths: name: pathQueryId required: true schema: - default: fKbuCe1XHAqSM99T6q-MOg - example: fKbuCe1XHAqSM99T6q-MOg + default: IjTuxEFmAb6DvzycVz4fHg + example: IjTuxEFmAb6DvzycVz4fHg type: string - in: query name: variables @@ -3909,27 +3919,27 @@ paths: default: '{"responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string responses: '200': @@ -3976,19 +3986,19 @@ paths: name: pathQueryId required: true schema: - default: vd1SSLv05a4lAc9-ml4kpA - example: vd1SSLv05a4lAc9-ml4kpA + default: AmMFotx7L4P3QnyOM3bCRA + example: AmMFotx7L4P3QnyOM3bCRA type: string - in: query name: variables required: true schema: default: '{"count": 20, "includePromotedContent": true, "latestControlAvailable": - true, "requestContext": "launch", "seenTweetIds": ["1349129669258448897"], - "withCommunity": true}' + true, "requestContext": "launch", "withCommunity": true, "seenTweetIds": + ["1349129669258448897"]}' example: '{"count": 20, "includePromotedContent": true, "latestControlAvailable": - true, "requestContext": "launch", "seenTweetIds": ["1349129669258448897"], - "withCommunity": true}' + true, "requestContext": "launch", "withCommunity": true, "seenTweetIds": + ["1349129669258448897"]}' type: string - in: query name: features @@ -3997,27 +4007,27 @@ paths: default: '{"responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string responses: '200': @@ -4064,8 +4074,8 @@ paths: name: pathQueryId required: true schema: - default: lVf2NuhLoYVrpN4nO7uw0Q - example: lVf2NuhLoYVrpN4nO7uw0Q + default: 9s8V6sUI8fZLDiN-REkAxA + example: 9s8V6sUI8fZLDiN-REkAxA type: string - in: query name: variables @@ -4085,27 +4095,27 @@ paths: default: '{"responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string responses: '200': @@ -4152,8 +4162,8 @@ paths: name: pathQueryId required: true schema: - default: qHgwF5h2HLowIJ6dHmAP_A - example: qHgwF5h2HLowIJ6dHmAP_A + default: HjsWc-nwwHKYwHenbHm-tw + example: HjsWc-nwwHKYwHenbHm-tw type: string - in: query name: variables @@ -4169,27 +4179,27 @@ paths: default: '{"responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string responses: '200': @@ -4236,8 +4246,8 @@ paths: name: pathQueryId required: true schema: - default: _pnlqeTOtnpbIL9o-fS_pg - example: _pnlqeTOtnpbIL9o-fS_pg + default: X-Sw7rvhcUhof35mh5ObKw + example: X-Sw7rvhcUhof35mh5ObKw type: string - in: query name: variables @@ -4296,8 +4306,8 @@ paths: name: pathQueryId required: true schema: - default: 9jBdme5U626ATWp01dvgrA - example: 9jBdme5U626ATWp01dvgrA + default: X-XEqG5qHQSAwmvy00xfyQ + example: X-XEqG5qHQSAwmvy00xfyQ type: string - in: query name: variables @@ -4315,27 +4325,27 @@ paths: default: '{"responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string responses: '200': @@ -4382,8 +4392,8 @@ paths: name: pathQueryId required: true schema: - default: 3Ej-6N7xXONuEp5eJa1TdQ - example: 3Ej-6N7xXONuEp5eJa1TdQ + default: fZK7JipRHWtiZsTodhsTfQ + example: fZK7JipRHWtiZsTodhsTfQ type: string - in: query name: variables @@ -4401,27 +4411,27 @@ paths: default: '{"responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string responses: '200': @@ -4468,18 +4478,18 @@ paths: name: pathQueryId required: true schema: - default: xOhkmRac04YFZmOzU9PJHg - example: xOhkmRac04YFZmOzU9PJHg + default: B9_KmbkLhXt6jRwGjJrweg + example: B9_KmbkLhXt6jRwGjJrweg type: string - in: query name: variables required: true schema: - default: '{"focalTweetId": "1349129669258448897", "with_rux_injections": + default: '{"focalTweetId": "1349129669258448897", "referrer": "home", "with_rux_injections": false, "includePromotedContent": true, "withCommunity": true, "withQuickPromoteEligibilityTweetFields": true, "withBirdwatchNotes": true, "withVoice": true, "withV2Timeline": true}' - example: '{"focalTweetId": "1349129669258448897", "with_rux_injections": + example: '{"focalTweetId": "1349129669258448897", "referrer": "home", "with_rux_injections": false, "includePromotedContent": true, "withCommunity": true, "withQuickPromoteEligibilityTweetFields": true, "withBirdwatchNotes": true, "withVoice": true, "withV2Timeline": true}' @@ -4491,27 +4501,27 @@ paths: default: '{"responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string - in: query name: fieldToggles @@ -4565,8 +4575,8 @@ paths: name: pathQueryId required: true schema: - default: DJS3BdhUhcaEpZ7B7irJDg - example: DJS3BdhUhcaEpZ7B7irJDg + default: MWY3AO9_I3rcP_L2A4FR4A + example: MWY3AO9_I3rcP_L2A4FR4A type: string - in: query name: variables @@ -4581,26 +4591,30 @@ paths: name: features required: true schema: - default: '{"creator_subscriptions_tweet_preview_api_enabled": true, "tweetypie_unmention_optimization_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": false, + default: '{"creator_subscriptions_tweet_preview_api_enabled": true, "c9s_tweet_anatomy_moderator_badge_enabled": + true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": - false, "responsive_web_media_download_video_enabled": false, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_media_download_video_enabled": + false, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_enhance_cards_enabled": false}' - example: '{"creator_subscriptions_tweet_preview_api_enabled": true, "tweetypie_unmention_optimization_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": false, + example: '{"creator_subscriptions_tweet_preview_api_enabled": true, "c9s_tweet_anatomy_moderator_badge_enabled": + true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": - false, "responsive_web_media_download_video_enabled": false, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_media_download_video_enabled": + false, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_enhance_cards_enabled": false}' type: string @@ -4723,8 +4737,8 @@ paths: name: pathQueryId required: true schema: - default: QdS5LJDl99iL_KUzckdfNQ - example: QdS5LJDl99iL_KUzckdfNQ + default: tD8zKvQzwY3kdx5yz6YmOw + example: tD8zKvQzwY3kdx5yz6YmOw type: string - in: query name: variables @@ -4739,13 +4753,13 @@ paths: schema: default: '{"hidden_profile_likes_enabled": true, "hidden_profile_subscriptions_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": - false, "highlights_tweets_tab_ui_enabled": true, "creator_subscriptions_tweet_preview_api_enabled": - true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "highlights_tweets_tab_ui_enabled": true, "responsive_web_twitter_article_notes_tab_enabled": + true, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true}' example: '{"hidden_profile_likes_enabled": true, "hidden_profile_subscriptions_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": - false, "highlights_tweets_tab_ui_enabled": true, "creator_subscriptions_tweet_preview_api_enabled": - true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "highlights_tweets_tab_ui_enabled": true, "responsive_web_twitter_article_notes_tab_enabled": + true, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true}' type: string responses: @@ -4793,8 +4807,8 @@ paths: name: pathQueryId required: true schema: - default: G3KGOASz96M-Qu0nwmGXNg - example: G3KGOASz96M-Qu0nwmGXNg + default: k5XapwcSikNsEsILW5FvgA + example: k5XapwcSikNsEsILW5FvgA type: string - in: query name: variables @@ -4811,15 +4825,15 @@ paths: true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "subscriptions_verification_info_is_identity_verified_enabled": true, "subscriptions_verification_info_verified_since_enabled": true, - "highlights_tweets_tab_ui_enabled": true, "creator_subscriptions_tweet_preview_api_enabled": - true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + "highlights_tweets_tab_ui_enabled": true, "responsive_web_twitter_article_notes_tab_enabled": + true, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true}' example: '{"hidden_profile_likes_enabled": true, "hidden_profile_subscriptions_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "subscriptions_verification_info_is_identity_verified_enabled": true, "subscriptions_verification_info_verified_since_enabled": true, - "highlights_tweets_tab_ui_enabled": true, "creator_subscriptions_tweet_preview_api_enabled": - true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + "highlights_tweets_tab_ui_enabled": true, "responsive_web_twitter_article_notes_tab_enabled": + true, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true}' type: string - in: query @@ -4874,8 +4888,8 @@ paths: name: pathQueryId required: true schema: - default: KTtT5_kU8yor3I3UI4G5Vw - example: KTtT5_kU8yor3I3UI4G5Vw + default: ZRU-YBvpJ5c-SOS-nb_Lhg + example: ZRU-YBvpJ5c-SOS-nb_Lhg type: string - in: query name: variables @@ -4893,27 +4907,27 @@ paths: default: '{"responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string responses: '200': @@ -4960,8 +4974,8 @@ paths: name: pathQueryId required: true schema: - default: Le6KlbilFmSu-5VltFND-Q - example: Le6KlbilFmSu-5VltFND-Q + default: tO4LMUYAZbR4T0SqQ85aAw + example: tO4LMUYAZbR4T0SqQ85aAw type: string - in: query name: variables @@ -4981,27 +4995,27 @@ paths: default: '{"responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string responses: '200': @@ -5048,8 +5062,8 @@ paths: name: pathQueryId required: true schema: - default: H8OOoI-5ZE4NxgRr8lfyWg - example: H8OOoI-5ZE4NxgRr8lfyWg + default: 5ICa5d9-AitXZrIA3H-4MQ + example: 5ICa5d9-AitXZrIA3H-4MQ type: string - in: query name: variables @@ -5069,27 +5083,27 @@ paths: default: '{"responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string responses: '200': @@ -5136,8 +5150,8 @@ paths: name: pathQueryId required: true schema: - default: Q6aAvPw7azXZbqXzuqTALA - example: Q6aAvPw7azXZbqXzuqTALA + default: UtLStR_BnYUGD7Q453UXQg + example: UtLStR_BnYUGD7Q453UXQg type: string - in: query name: variables @@ -5155,27 +5169,27 @@ paths: default: '{"responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' example: '{"responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "creator_subscriptions_tweet_preview_api_enabled": true, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": - false, "tweetypie_unmention_optimization_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": false, + false, "c9s_tweet_anatomy_moderator_badge_enabled": true, "tweetypie_unmention_optimization_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, "freedom_of_speech_not_reach_fetch_enabled": true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": - true, "longform_notetweets_rich_text_read_enabled": true, "longform_notetweets_inline_media_enabled": - true, "responsive_web_media_download_video_enabled": false, "responsive_web_enhance_cards_enabled": - false}' + true, "rweb_video_timestamps_enabled": true, "longform_notetweets_rich_text_read_enabled": + true, "longform_notetweets_inline_media_enabled": true, "responsive_web_media_download_video_enabled": + false, "responsive_web_enhance_cards_enabled": false}' type: string responses: '200': @@ -5222,8 +5236,8 @@ paths: name: pathQueryId required: true schema: - default: GD4q8bBE2i6cqWw2iT74Gg - example: GD4q8bBE2i6cqWw2iT74Gg + default: itEhGywpgX9b3GJCzOtSrA + example: itEhGywpgX9b3GJCzOtSrA type: string - in: query name: variables diff --git a/dist/docs/openapi-3.0.yaml b/dist/docs/openapi-3.0.yaml index a22636c..88cffb3 100644 --- a/dist/docs/openapi-3.0.yaml +++ b/dist/docs/openapi-3.0.yaml @@ -2941,8 +2941,8 @@ paths: name: pathQueryId required: true schema: - default: j5KExFXtSWj8HjRui17ydA - example: j5KExFXtSWj8HjRui17ydA + default: cQxQgX8MJYjWwC0dxpyfYg + example: cQxQgX8MJYjWwC0dxpyfYg type: string - content: application/json: @@ -2967,6 +2967,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -3020,8 +3024,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -3054,6 +3062,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -3064,6 +3073,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -3193,8 +3203,8 @@ paths: name: pathQueryId required: true schema: - default: PIZtQLRIYtSa9AtW_fI2Mw - example: PIZtQLRIYtSa9AtW_fI2Mw + default: 8ED1SMuUGkOZVBEjiYUTfw + example: 8ED1SMuUGkOZVBEjiYUTfw type: string requestBody: content: @@ -3203,6 +3213,10 @@ paths: properties: features: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean freedom_of_speech_not_reach_fetch_enabled: default: true example: true @@ -3248,8 +3262,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -3276,6 +3294,7 @@ paths: example: true type: boolean required: + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -3285,6 +3304,7 @@ paths: - tweet_awards_web_tipping_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled + - rweb_video_timestamps_enabled - responsive_web_graphql_exclude_directive_enabled - verified_phone_label_enabled - freedom_of_speech_not_reach_fetch_enabled @@ -3296,8 +3316,8 @@ paths: - responsive_web_enhance_cards_enabled type: object queryId: - default: PIZtQLRIYtSa9AtW_fI2Mw - example: PIZtQLRIYtSa9AtW_fI2Mw + default: 8ED1SMuUGkOZVBEjiYUTfw + example: 8ED1SMuUGkOZVBEjiYUTfw type: string variables: properties: @@ -3638,8 +3658,8 @@ paths: name: pathQueryId required: true schema: - default: VIA2_af01oqZqBB6NvWi-Q - example: VIA2_af01oqZqBB6NvWi-Q + default: LLkw5EcVutJL6y-2gkz22A + example: LLkw5EcVutJL6y-2gkz22A type: string - content: application/json: @@ -3669,6 +3689,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -3718,8 +3742,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -3751,6 +3779,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -3761,6 +3790,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -3814,8 +3844,8 @@ paths: name: pathQueryId required: true schema: - default: rRXFSG5vR6drKr5M37YOTw - example: rRXFSG5vR6drKr5M37YOTw + default: ZG1BQPaRSg04qo55kKaW2g + example: ZG1BQPaRSg04qo55kKaW2g type: string - content: application/json: @@ -3845,6 +3875,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -3894,8 +3928,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -3927,6 +3965,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -3937,6 +3976,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -3990,8 +4030,8 @@ paths: name: pathQueryId required: true schema: - default: yqrUptVSP9DAkVLqpc0lsg - example: yqrUptVSP9DAkVLqpc0lsg + default: citX7s5IAb1C6AVCqUO68g + example: citX7s5IAb1C6AVCqUO68g type: string - content: application/json: @@ -4021,6 +4061,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -4070,8 +4114,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -4103,6 +4151,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -4113,6 +4162,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -4166,8 +4216,8 @@ paths: name: pathQueryId required: true schema: - default: iSicc7LrzWGBgDPL0tM_TQ - example: iSicc7LrzWGBgDPL0tM_TQ + default: PAnE9toEjRfE-4tozRcsfw + example: PAnE9toEjRfE-4tozRcsfw type: string - content: application/json: @@ -4197,6 +4247,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -4246,8 +4300,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -4279,6 +4337,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -4289,6 +4348,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -4342,8 +4402,8 @@ paths: name: pathQueryId required: true schema: - default: fKbuCe1XHAqSM99T6q-MOg - example: fKbuCe1XHAqSM99T6q-MOg + default: IjTuxEFmAb6DvzycVz4fHg + example: IjTuxEFmAb6DvzycVz4fHg type: string - content: application/json: @@ -4378,6 +4438,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -4427,8 +4491,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -4460,6 +4528,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -4470,6 +4539,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -4523,8 +4593,8 @@ paths: name: pathQueryId required: true schema: - default: vd1SSLv05a4lAc9-ml4kpA - example: vd1SSLv05a4lAc9-ml4kpA + default: AmMFotx7L4P3QnyOM3bCRA + example: AmMFotx7L4P3QnyOM3bCRA type: string - content: application/json: @@ -4561,8 +4631,8 @@ paths: - includePromotedContent - latestControlAvailable - requestContext - - seenTweetIds - withCommunity + - seenTweetIds type: object in: query name: variables @@ -4571,6 +4641,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -4620,8 +4694,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -4653,6 +4731,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -4663,6 +4742,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -4716,8 +4796,8 @@ paths: name: pathQueryId required: true schema: - default: lVf2NuhLoYVrpN4nO7uw0Q - example: lVf2NuhLoYVrpN4nO7uw0Q + default: 9s8V6sUI8fZLDiN-REkAxA + example: 9s8V6sUI8fZLDiN-REkAxA type: string - content: application/json: @@ -4767,6 +4847,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -4816,8 +4900,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -4849,6 +4937,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -4859,6 +4948,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -4912,8 +5002,8 @@ paths: name: pathQueryId required: true schema: - default: qHgwF5h2HLowIJ6dHmAP_A - example: qHgwF5h2HLowIJ6dHmAP_A + default: HjsWc-nwwHKYwHenbHm-tw + example: HjsWc-nwwHKYwHenbHm-tw type: string - content: application/json: @@ -4938,6 +5028,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -4987,8 +5081,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -5020,6 +5118,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -5030,6 +5129,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -5083,8 +5183,8 @@ paths: name: pathQueryId required: true schema: - default: _pnlqeTOtnpbIL9o-fS_pg - example: _pnlqeTOtnpbIL9o-fS_pg + default: X-Sw7rvhcUhof35mh5ObKw + example: X-Sw7rvhcUhof35mh5ObKw type: string - content: application/json: @@ -5151,8 +5251,8 @@ paths: name: pathQueryId required: true schema: - default: 9jBdme5U626ATWp01dvgrA - example: 9jBdme5U626ATWp01dvgrA + default: X-XEqG5qHQSAwmvy00xfyQ + example: X-XEqG5qHQSAwmvy00xfyQ type: string - content: application/json: @@ -5182,6 +5282,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -5231,8 +5335,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -5264,6 +5372,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -5274,6 +5383,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -5327,8 +5437,8 @@ paths: name: pathQueryId required: true schema: - default: 3Ej-6N7xXONuEp5eJa1TdQ - example: 3Ej-6N7xXONuEp5eJa1TdQ + default: fZK7JipRHWtiZsTodhsTfQ + example: fZK7JipRHWtiZsTodhsTfQ type: string - content: application/json: @@ -5363,6 +5473,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -5412,8 +5526,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -5445,6 +5563,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -5455,6 +5574,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -5508,8 +5628,8 @@ paths: name: pathQueryId required: true schema: - default: xOhkmRac04YFZmOzU9PJHg - example: xOhkmRac04YFZmOzU9PJHg + default: B9_KmbkLhXt6jRwGjJrweg + example: B9_KmbkLhXt6jRwGjJrweg type: string - content: application/json: @@ -5523,6 +5643,10 @@ paths: default: true example: true type: boolean + referrer: + default: home + example: home + type: string withBirdwatchNotes: default: true example: true @@ -5549,6 +5673,7 @@ paths: type: boolean required: - focalTweetId + - referrer - with_rux_injections - includePromotedContent - withCommunity @@ -5564,6 +5689,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -5613,8 +5742,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -5646,6 +5779,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -5656,6 +5790,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -5723,8 +5858,8 @@ paths: name: pathQueryId required: true schema: - default: DJS3BdhUhcaEpZ7B7irJDg - example: DJS3BdhUhcaEpZ7B7irJDg + default: MWY3AO9_I3rcP_L2A4FR4A + example: MWY3AO9_I3rcP_L2A4FR4A type: string - content: application/json: @@ -5759,6 +5894,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -5808,8 +5947,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -5837,6 +5980,7 @@ paths: type: boolean required: - creator_subscriptions_tweet_preview_api_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -5847,6 +5991,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_graphql_exclude_directive_enabled @@ -5978,8 +6123,8 @@ paths: name: pathQueryId required: true schema: - default: QdS5LJDl99iL_KUzckdfNQ - example: QdS5LJDl99iL_KUzckdfNQ + default: tD8zKvQzwY3kdx5yz6YmOw + example: tD8zKvQzwY3kdx5yz6YmOw type: string - content: application/json: @@ -6032,6 +6177,10 @@ paths: default: true example: true type: boolean + responsive_web_twitter_article_notes_tab_enabled: + default: true + example: true + type: boolean verified_phone_label_enabled: default: false example: false @@ -6042,6 +6191,7 @@ paths: - responsive_web_graphql_exclude_directive_enabled - verified_phone_label_enabled - highlights_tweets_tab_ui_enabled + - responsive_web_twitter_article_notes_tab_enabled - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled - responsive_web_graphql_timeline_navigation_enabled @@ -6094,8 +6244,8 @@ paths: name: pathQueryId required: true schema: - default: G3KGOASz96M-Qu0nwmGXNg - example: G3KGOASz96M-Qu0nwmGXNg + default: k5XapwcSikNsEsILW5FvgA + example: k5XapwcSikNsEsILW5FvgA type: string - content: application/json: @@ -6148,6 +6298,10 @@ paths: default: true example: true type: boolean + responsive_web_twitter_article_notes_tab_enabled: + default: true + example: true + type: boolean subscriptions_verification_info_is_identity_verified_enabled: default: true example: true @@ -6168,6 +6322,7 @@ paths: - subscriptions_verification_info_is_identity_verified_enabled - subscriptions_verification_info_verified_since_enabled - highlights_tweets_tab_ui_enabled + - responsive_web_twitter_article_notes_tab_enabled - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled - responsive_web_graphql_timeline_navigation_enabled @@ -6234,8 +6389,8 @@ paths: name: pathQueryId required: true schema: - default: KTtT5_kU8yor3I3UI4G5Vw - example: KTtT5_kU8yor3I3UI4G5Vw + default: ZRU-YBvpJ5c-SOS-nb_Lhg + example: ZRU-YBvpJ5c-SOS-nb_Lhg type: string - content: application/json: @@ -6270,6 +6425,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -6319,8 +6478,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -6352,6 +6515,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -6362,6 +6526,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -6415,8 +6580,8 @@ paths: name: pathQueryId required: true schema: - default: Le6KlbilFmSu-5VltFND-Q - example: Le6KlbilFmSu-5VltFND-Q + default: tO4LMUYAZbR4T0SqQ85aAw + example: tO4LMUYAZbR4T0SqQ85aAw type: string - content: application/json: @@ -6466,6 +6631,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -6515,8 +6684,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -6548,6 +6721,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -6558,6 +6732,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -6611,8 +6786,8 @@ paths: name: pathQueryId required: true schema: - default: H8OOoI-5ZE4NxgRr8lfyWg - example: H8OOoI-5ZE4NxgRr8lfyWg + default: 5ICa5d9-AitXZrIA3H-4MQ + example: 5ICa5d9-AitXZrIA3H-4MQ type: string - content: application/json: @@ -6657,6 +6832,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -6706,8 +6885,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -6739,6 +6922,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -6749,6 +6933,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -6802,8 +6987,8 @@ paths: name: pathQueryId required: true schema: - default: Q6aAvPw7azXZbqXzuqTALA - example: Q6aAvPw7azXZbqXzuqTALA + default: UtLStR_BnYUGD7Q453UXQg + example: UtLStR_BnYUGD7Q453UXQg type: string - content: application/json: @@ -6848,6 +7033,10 @@ paths: application/json: schema: properties: + c9s_tweet_anatomy_moderator_badge_enabled: + default: true + example: true + type: boolean creator_subscriptions_tweet_preview_api_enabled: default: true example: true @@ -6897,8 +7086,12 @@ paths: example: false type: boolean responsive_web_twitter_article_tweet_consumption_enabled: - default: false - example: false + default: true + example: true + type: boolean + rweb_video_timestamps_enabled: + default: true + example: true type: boolean standardized_nudges_misinfo: default: true @@ -6930,6 +7123,7 @@ paths: - creator_subscriptions_tweet_preview_api_enabled - responsive_web_graphql_timeline_navigation_enabled - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - c9s_tweet_anatomy_moderator_badge_enabled - tweetypie_unmention_optimization_enabled - responsive_web_edit_tweet_api_enabled - graphql_is_translatable_rweb_tweet_is_translatable_enabled @@ -6940,6 +7134,7 @@ paths: - freedom_of_speech_not_reach_fetch_enabled - standardized_nudges_misinfo - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - rweb_video_timestamps_enabled - longform_notetweets_rich_text_read_enabled - longform_notetweets_inline_media_enabled - responsive_web_media_download_video_enabled @@ -6993,8 +7188,8 @@ paths: name: pathQueryId required: true schema: - default: GD4q8bBE2i6cqWw2iT74Gg - example: GD4q8bBE2i6cqWw2iT74Gg + default: itEhGywpgX9b3GJCzOtSrA + example: itEhGywpgX9b3GJCzOtSrA type: string - content: application/json: From 01562ee29a0f77aca6a9ab5432e47fe30c1ebba9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=B5=E3=81=81?= Date: Wed, 7 Feb 2024 17:54:10 +0900 Subject: [PATCH 04/12] update setting MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: ふぁ --- .vscode/launch.json | 4 +++- requirements.txt | Bin 90 -> 124 bytes 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 1df138e..8803a22 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -26,7 +26,9 @@ "justMyCode": false, "preLaunchTask": "build-task", "env": { - "ERROR_UNCATCHED": "True" + "ERROR_UNCATCHED": "True", + "STRICT_MODE": "True", + "MULTI_THREAD": "False" } } ] diff --git a/requirements.txt b/requirements.txt index e7ffef8cd642499e06c324375989b57a5e5386c6..009a112492b9584ca0dad0eb93b9df179772afcf 100644 GIT binary patch literal 124 zcmezWFOeaYA&;SyA(z3H!Ir_8L65-@j7=GM8Mqh<7%CZ37!n!s7)ls28Ir+jj2QG7 q%)n|uDgqcP86p`R8GIRhz_K721GsDnLm@*7)NB*5K9Ia2*lYj~pAn$| delta 70 zcmb=4lK=lNnIWGchasP#h#`?7mm!hCmcf?6fI*MJgh7wNY@)5S0xts>LkUA6LkdGK RSQ0G3V9KD!V88&90{|_23_}0_ From b622d6ec61a7299ad3c44dd7e7b1dc962f2cafda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=B5=E3=81=81?= Date: Wed, 7 Feb 2024 17:54:39 +0900 Subject: [PATCH 05/12] update serialize MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: ふぁ --- test/python/test_serialize.py | 80 ++++++++++++++++++++++++++--------- 1 file changed, 60 insertions(+), 20 deletions(-) diff --git a/test/python/test_serialize.py b/test/python/test_serialize.py index 38734d1..565a160 100644 --- a/test/python/test_serialize.py +++ b/test/python/test_serialize.py @@ -21,6 +21,7 @@ ERROR_UNCATCHED = os.environ.get("ERROR_UNCATCHED", "false").lower() == "true" SLEEP_TIME = float(os.environ.get("SLEEP", "0")) CUESOR_TEST_COUNT = int(os.environ.get("CUESOR_TEST_COUNT", "3")) STRICT_MODE = os.environ.get("STRICT_MODE", "false").lower() == "true" +MULTI_THREAD = os.environ.get("MULTI_THREAD", "true").lower() == "true" def get_key(snake_str): @@ -64,13 +65,12 @@ def get_kwargs(key, additional): return kwargs -def match_rate_zero(key): - if STRICT_MODE: - raise Exception(f"Strict mode: {key}") +def match_rate_zero(a, b, key, fn): + fn(a, b, key) return 0 -def match_rate(a, b, key=""): +def match_rate(a, b, key="", fn=lambda x: None): if isinstance(a, aenum.Enum): a = a.value if isinstance(b, aenum.Enum): @@ -79,26 +79,26 @@ def match_rate(a, b, key=""): return 1 if a is False and b is None: return 1 - if isinstance(a, list): - data = [match_rate(a[i], b[i], key=f"{key}[{i}]") for i in range(len(a))] + if a is None and isinstance(b, list) and len(b) == 0: + return 1 + if isinstance(a, list) and b is None and len(a) == 0: + return 1 + if isinstance(a, dict) and isinstance(b, dict): if len(a) == 0 and len(b) == 0: return 1 - if len(a) == 0 or len(b) == 0: - return match_rate_zero(key) - - data = [match_rate(a.get(k), b.get(k), key=f"{key}.{k}") for k in a.keys()] - - return sum(data) / len(a) + marge_key = set(a.keys()) | set(b.keys()) + data = [match_rate(a.get(k), b.get(k), [*key, k], fn) for k in marge_key] + return sum(data) / len(b) if isinstance(a, list) and isinstance(b, list): if len(a) == 0 and len(b) == 0: return 1 if len(a) != len(b): - return match_rate_zero(key) - data = [match_rate(a[i], b[i], key=f"{key}[{i}]") for i in range(len(a))] + return match_rate_zero(a, b, key, fn) + data = [match_rate(a[i], b[i], [*key, i], fn) for i in range(len(a))] return sum(data) / len(a) if a == b: return 1 - return match_rate_zero(key) + return match_rate_zero(a, b, key, fn) def save_cache(data): @@ -108,12 +108,44 @@ def save_cache(data): json.dump(data, f, indent=4) +def super_get(obj: dict, key: str): + keys = [ + key, + "".join(["_" + c.lower() if c.isupper() else c for c in key]).lstrip("_"), + ] + + for k in keys: + if obj.get(k) is not None: + return obj[k] + raise KeyError(key) + + def task_callback(file, thread=True): try: with open(file, "r") as f: cache = json.load(f) data = pt.__dict__[cache["type"]].from_json(cache["raw"]) - rate = match_rate(data.to_dict(), json.loads(cache["raw"])) + + def get(obj, key): + if isinstance(obj, list): + return get(obj[key[0]], key[1:]) + if obj.__dict__.get("actual_instance") is not None: + return get(obj.actual_instance, key) + if len(key) == 0: + return obj + return get(super_get(obj.__dict__, key[0]), key[1:]) + + def match_rate_hook(a, b, key): + if STRICT_MODE: + obj_name = type(get(data, key[:-1])) + obj_key = f"{obj_name.__name__}.{key[-1]}" + raise Exception(f"Not defined: {obj_key}\nContents: {b}") + + rate = match_rate( + data.to_dict(), + json.loads(cache["raw"]), + fn=match_rate_hook, + ) return rate, file except Exception: if thread: @@ -151,10 +183,18 @@ if __name__ == "__main__": placeholder = json.load(f) fail = [] - with concurrent.futures.ProcessPoolExecutor() as executor: - tasks = [executor.submit(task_callback, x) for x in glob.glob("cache/*.json")] - for task in concurrent.futures.as_completed(tasks): - rate, file = task.result() + files = glob.glob("cache/*.json") + if MULTI_THREAD: + with concurrent.futures.ProcessPoolExecutor() as executor: + tasks = [executor.submit(task_callback, x) for x in files] + for task in concurrent.futures.as_completed(tasks): + rate, file = task.result() + if rate < 1: + fail.append(file) + logger.info(f"Match rate: {rate}") + else: + for file in files: + rate, file = task_callback(file, thread=False) if rate < 1: fail.append(file) logger.info(f"Match rate: {rate}") From c19d43c42a1e7b1848f3406c5c82416984d6ccd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=B5=E3=81=81?= Date: Wed, 7 Feb 2024 17:55:08 +0900 Subject: [PATCH 06/12] update chemas MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: ふぁ --- src/openapi/schemas/content.yaml | 23 +++++++-- src/openapi/schemas/tweet.yaml | 87 ++++++++++++++++++++++++++++++-- src/openapi/schemas/user.yaml | 41 +++++++++++++++ 3 files changed, 144 insertions(+), 7 deletions(-) diff --git a/src/openapi/schemas/content.yaml b/src/openapi/schemas/content.yaml index 3619356..78cf6ce 100644 --- a/src/openapi/schemas/content.yaml +++ b/src/openapi/schemas/content.yaml @@ -81,6 +81,7 @@ components: - "__typename" - "cursorType" - "value" + - "stopOnEmptyResponse" properties: __typename: $ref: "./typename.yaml#/components/schemas/TypeName" # TimelineTimelineCursor @@ -92,6 +93,9 @@ components: $ref: "#/components/schemas/CursorType" value: type: string + stopOnEmptyResponse: + type: boolean + default: false # ================= Module ================= @@ -163,7 +167,7 @@ components: type: string tweet_results: $ref: "#/components/schemas/ItemResult" - SocialContext: + socialContext: $ref: "#/components/schemas/SocialContext" promotedMetadata: type: object @@ -173,7 +177,6 @@ components: required: - "__typename" - "itemType" - - "socialContext" - "userDisplayType" - "user_results" properties: @@ -181,7 +184,7 @@ components: $ref: "./typename.yaml#/components/schemas/TypeName" # TimelineUser itemType: $ref: "#/components/schemas/ContentItemType" # TimelineUser - SocialContext: + socialContext: $ref: "#/components/schemas/SocialContext" userDisplayType: type: string @@ -201,10 +204,24 @@ components: properties: contextType: type: string # enum + enum: ["Follow"] text: type: string type: type: string # enum + enum: ["TimelineGeneralContext"] + landingUrl: + $ref: "#/components/schemas/SocialContextLandingUrl" + + SocialContextLandingUrl: + type: object + properties: + urlType: + type: string # enum + enum: ["DeepLink"] + Url: + type: string # twitter://user?id=900282258736545792 + format: uri TimelinePrompt: properties: diff --git a/src/openapi/schemas/tweet.yaml b/src/openapi/schemas/tweet.yaml index c5a6733..1284ca5 100644 --- a/src/openapi/schemas/tweet.yaml +++ b/src/openapi/schemas/tweet.yaml @@ -80,6 +80,8 @@ components: $ref: "#/components/schemas/NoteTweet" quick_promote_eligibility: type: object + unified_card: + $ref: "#/components/schemas/UnifiedCard" TweetEditControl: properties: @@ -220,6 +222,14 @@ components: type: string enum: [Bold, Italic] + UnifiedCard: + required: + - "card_fetch_state" + properties: + card_fetch_state: + type: string + enum: [NoCard] + BirdwatchPivot: required: - "destinationUrl" @@ -333,6 +343,46 @@ components: items: $ref: "#/components/schemas/TweetCardLegacyBindingValue" + # {'platform': {'audience': {'name': 'production'}, 'device': {'name': 'Swift', 'version': '12'}}} + card_platform: + $ref: "#/components/schemas/TweetCardPlatformData" + + TweetCardPlatformData: + required: + - "platform" + properties: + platform: + $ref: "#/components/schemas/TweetCardPlatform" + + TweetCardPlatform: + required: + - "audience" + - "device" + properties: + audience: + $ref: "#/components/schemas/TweetCardPlatformAudience" + device: + $ref: "#/components/schemas/TweetCardPlatformDevice" + + TweetCardPlatformAudience: + required: + - "name" + properties: + name: + type: string + enum: [production] + + TweetCardPlatformDevice: + required: + - "name" + - "version" + properties: + name: + type: string # enum Swift + version: + type: string + pattern: "^[0-9]+$" + TweetCardLegacyBindingValue: required: - "key" @@ -427,6 +477,16 @@ components: $ref: "#/components/schemas/SelfThread" extended_entities: $ref: "#/components/schemas/ExtendedEntities" + scopes: + $ref: "#/components/schemas/TweetLegacyScopes" + in_reply_to_screen_name: + type: string + in_reply_to_status_id_str: + type: string + pattern: "^[0-9]+$" + in_reply_to_user_id_str: + type: string + pattern: "^[0-9]+$" SelfThread: required: @@ -506,6 +566,8 @@ components: # - "features" - "sizes" - "original_info" + - "media_key" + - "ext_media_availability" properties: display_url: type: string @@ -535,6 +597,23 @@ components: $ref: "#/components/schemas/MediaSizes" original_info: $ref: "#/components/schemas/MediaOriginalInfo" + media_key: + type: string + ext_media_availability: + $ref: "#/components/schemas/ExtMediaAvailability" + video_info: + type: object + additionalProperties: true # todo + additional_media_info: + type: object + additionalProperties: true # todo + + TweetLegacyScopes: + required: + - "followers" + properties: + followers: + type: boolean ExtendedEntities: required: @@ -587,9 +666,9 @@ components: additional_media_info: $ref: "#/components/schemas/AdditionalMediaInfo" mediaStats: - $ref: "#/components/schemas/mediaStats" + $ref: "#/components/schemas/MediaStats" ext_media_availability: - $ref: "#/components/schemas/extMediaAvailability" + $ref: "#/components/schemas/ExtMediaAvailability" features: type: object sizes: @@ -666,14 +745,14 @@ components: monetizable: type: boolean - mediaStats: + MediaStats: required: - "viewCount" properties: viewCount: type: integer - extMediaAvailability: + ExtMediaAvailability: # required: # - "status" properties: diff --git a/src/openapi/schemas/user.yaml b/src/openapi/schemas/user.yaml index 0e48b57..7bfc027 100644 --- a/src/openapi/schemas/user.yaml +++ b/src/openapi/schemas/user.yaml @@ -38,6 +38,7 @@ components: - "super_follow_eligible" - "super_followed_by" - "super_following" + - "profile_image_shape" properties: __typename: @@ -73,6 +74,43 @@ components: super_following: type: boolean default: false + profile_image_shape: + type: string + enum: + - "Circle" + - "Square" + professional: + $ref: "#/components/schemas/UserProfessional" + + UserProfessional: + required: + - "rest_id" + - "professional_type" + - "category" + properties: + rest_id: + type: string + pattern: "^[0-9]+$" + professional_type: + type: string + enum: ["Business"] + category: + type: array + items: + $ref: "#/components/schemas/UserProfessionalCategory" + + UserProfessionalCategory: + required: + - "id" + - "name" + - "icon_name" + properties: + id: + type: integer + name: + type: string # enum + icon_name: + type: string # IconBriefcaseStroke ? UserLegacy: required: @@ -219,6 +257,9 @@ components: want_retweets: type: boolean default: false + verified_type: + type: string + enum: ["Business"] UserUnavailable: required: From 95ef71b39828f7ba8bae0b93446ca8fdfed21587 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=B5=E3=81=81?= Date: Thu, 8 Feb 2024 12:30:20 +0900 Subject: [PATCH 07/12] build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: ふぁ --- dist/compatible/openapi-3.0.yaml | 177 +++++++++++++++++++++++++++---- dist/docs/openapi-3.0.yaml | 177 +++++++++++++++++++++++++++---- 2 files changed, 310 insertions(+), 44 deletions(-) diff --git a/dist/compatible/openapi-3.0.yaml b/dist/compatible/openapi-3.0.yaml index bc0bcab..3277882 100644 --- a/dist/compatible/openapi-3.0.yaml +++ b/dist/compatible/openapi-3.0.yaml @@ -395,6 +395,15 @@ components: required: - errors type: object + ExtMediaAvailability: + properties: + reason: + type: string + status: + enum: + - Available + - Unavailable + type: string ExtendedEntities: properties: media: @@ -571,12 +580,17 @@ components: type: object Media: properties: + additional_media_info: + additionalProperties: true + type: object display_url: format: uri type: string expanded_url: format: uri type: string + ext_media_availability: + $ref: '#/components/schemas/ExtMediaAvailability' features: type: object id_str: @@ -586,6 +600,8 @@ components: items: type: integer type: array + media_key: + type: string media_url_https: format: uri type: string @@ -602,6 +618,9 @@ components: url: format: uri type: string + video_info: + additionalProperties: true + type: object required: - display_url - expanded_url @@ -612,6 +631,8 @@ components: - url - sizes - original_info + - media_key + - ext_media_availability MediaExtended: properties: additional_media_info: @@ -623,7 +644,7 @@ components: format: uri type: string ext_media_availability: - $ref: '#/components/schemas/extMediaAvailability' + $ref: '#/components/schemas/ExtMediaAvailability' features: type: object id_str: @@ -634,7 +655,7 @@ components: type: integer type: array mediaStats: - $ref: '#/components/schemas/mediaStats' + $ref: '#/components/schemas/MediaStats' media_key: type: string media_url_https: @@ -725,6 +746,12 @@ components: - medium - small - thumb + MediaStats: + properties: + viewCount: + type: integer + required: + - viewCount MediaVideoInfo: properties: aspect_ratio: @@ -970,10 +997,26 @@ components: SocialContext: properties: contextType: + enum: + - Follow type: string + landingUrl: + $ref: '#/components/schemas/SocialContextLandingUrl' text: type: string type: + enum: + - TimelineGeneralContext + type: string + type: object + SocialContextLandingUrl: + properties: + Url: + format: uri + type: string + urlType: + enum: + - DeepLink type: string type: object Symbol: @@ -1234,12 +1277,16 @@ components: $ref: '#/components/schemas/ContentEntryType' itemType: $ref: '#/components/schemas/ContentEntryType' + stopOnEmptyResponse: + default: false + type: boolean value: type: string required: - __typename - cursorType - value + - stopOnEmptyResponse TimelineTimelineItem: properties: __typename: @@ -1291,8 +1338,6 @@ components: - clientEventInfo TimelineTweet: properties: - SocialContext: - $ref: '#/components/schemas/SocialContext' __typename: $ref: '#/components/schemas/TypeName' itemType: @@ -1300,6 +1345,8 @@ components: promotedMetadata: additionalProperties: true type: object + socialContext: + $ref: '#/components/schemas/SocialContext' tweetDisplayType: type: string tweet_results: @@ -1311,12 +1358,12 @@ components: - tweet_results TimelineUser: properties: - SocialContext: - $ref: '#/components/schemas/SocialContext' __typename: $ref: '#/components/schemas/TypeName' itemType: $ref: '#/components/schemas/ContentItemType' + socialContext: + $ref: '#/components/schemas/SocialContext' userDisplayType: enum: - User @@ -1328,7 +1375,6 @@ components: required: - __typename - itemType - - socialContext - userDisplayType - user_results TimelineV2: @@ -1375,6 +1421,8 @@ components: type: string source: type: string + unified_card: + $ref: '#/components/schemas/UnifiedCard' unmention_data: additionalProperties: true type: object @@ -1397,6 +1445,8 @@ components: items: $ref: '#/components/schemas/TweetCardLegacyBindingValue' type: array + card_platform: + $ref: '#/components/schemas/TweetCardPlatformData' name: type: string url: @@ -1426,6 +1476,39 @@ components: type: string required: - type + TweetCardPlatform: + properties: + audience: + $ref: '#/components/schemas/TweetCardPlatformAudience' + device: + $ref: '#/components/schemas/TweetCardPlatformDevice' + required: + - audience + - device + TweetCardPlatformAudience: + properties: + name: + enum: + - production + type: string + required: + - name + TweetCardPlatformData: + properties: + platform: + $ref: '#/components/schemas/TweetCardPlatform' + required: + - platform + TweetCardPlatformDevice: + properties: + name: + type: string + version: + pattern: ^[0-9]+$ + type: string + required: + - name + - version TweetDetailResponse: properties: data: @@ -1524,6 +1607,14 @@ components: id_str: pattern: ^[0-9]+$ type: string + in_reply_to_screen_name: + type: string + in_reply_to_status_id_str: + pattern: ^[0-9]+$ + type: string + in_reply_to_user_id_str: + pattern: ^[0-9]+$ + type: string is_quote_status: type: boolean lang: @@ -1544,6 +1635,8 @@ components: type: boolean retweeted_status_result: $ref: '#/components/schemas/ItemResult' + scopes: + $ref: '#/components/schemas/TweetLegacyScopes' self_thread: $ref: '#/components/schemas/SelfThread' user_id_str: @@ -1567,6 +1660,12 @@ components: - retweeted - user_id_str - id_str + TweetLegacyScopes: + properties: + followers: + type: boolean + required: + - followers TweetResultByRestIdData: properties: tweetResult: @@ -1662,6 +1761,14 @@ components: $ref: '#/components/schemas/UnfavoriteTweet' required: - data + UnifiedCard: + properties: + card_fetch_state: + enum: + - NoCard + type: string + required: + - card_fetch_state Url: properties: display_url: @@ -1705,6 +1812,13 @@ components: type: boolean legacy: $ref: '#/components/schemas/UserLegacy' + professional: + $ref: '#/components/schemas/UserProfessional' + profile_image_shape: + enum: + - Circle + - Square + type: string rest_id: pattern: ^[0-9]+$ type: string @@ -1727,6 +1841,7 @@ components: - super_follow_eligible - super_followed_by - super_following + - profile_image_shape UserFeatures: properties: mediatool_studio_library: @@ -1872,6 +1987,10 @@ components: type: string verified: type: boolean + verified_type: + enum: + - Business + type: string want_retweets: default: false type: boolean @@ -1910,6 +2029,35 @@ components: UserMention: additionalProperties: true type: object + UserProfessional: + properties: + category: + items: + $ref: '#/components/schemas/UserProfessionalCategory' + type: array + professional_type: + enum: + - Business + type: string + rest_id: + pattern: ^[0-9]+$ + type: string + required: + - rest_id + - professional_type + - category + UserProfessionalCategory: + properties: + icon_name: + type: string + id: + type: integer + name: + type: string + required: + - id + - name + - icon_name UserResponse: properties: data: @@ -2038,21 +2186,6 @@ components: type: array required: - users - extMediaAvailability: - properties: - reason: - type: string - status: - enum: - - Available - - Unavailable - type: string - mediaStats: - properties: - viewCount: - type: integer - required: - - viewCount securitySchemes: Accept: description: '*/*' diff --git a/dist/docs/openapi-3.0.yaml b/dist/docs/openapi-3.0.yaml index 88cffb3..078fc17 100644 --- a/dist/docs/openapi-3.0.yaml +++ b/dist/docs/openapi-3.0.yaml @@ -395,6 +395,15 @@ components: required: - errors type: object + ExtMediaAvailability: + properties: + reason: + type: string + status: + enum: + - Available + - Unavailable + type: string ExtendedEntities: properties: media: @@ -571,12 +580,17 @@ components: type: object Media: properties: + additional_media_info: + additionalProperties: true + type: object display_url: format: uri type: string expanded_url: format: uri type: string + ext_media_availability: + $ref: '#/components/schemas/ExtMediaAvailability' features: type: object id_str: @@ -586,6 +600,8 @@ components: items: type: integer type: array + media_key: + type: string media_url_https: format: uri type: string @@ -602,6 +618,9 @@ components: url: format: uri type: string + video_info: + additionalProperties: true + type: object required: - display_url - expanded_url @@ -612,6 +631,8 @@ components: - url - sizes - original_info + - media_key + - ext_media_availability MediaExtended: properties: additional_media_info: @@ -623,7 +644,7 @@ components: format: uri type: string ext_media_availability: - $ref: '#/components/schemas/extMediaAvailability' + $ref: '#/components/schemas/ExtMediaAvailability' features: type: object id_str: @@ -634,7 +655,7 @@ components: type: integer type: array mediaStats: - $ref: '#/components/schemas/mediaStats' + $ref: '#/components/schemas/MediaStats' media_key: type: string media_url_https: @@ -725,6 +746,12 @@ components: - medium - small - thumb + MediaStats: + properties: + viewCount: + type: integer + required: + - viewCount MediaVideoInfo: properties: aspect_ratio: @@ -970,10 +997,26 @@ components: SocialContext: properties: contextType: + enum: + - Follow type: string + landingUrl: + $ref: '#/components/schemas/SocialContextLandingUrl' text: type: string type: + enum: + - TimelineGeneralContext + type: string + type: object + SocialContextLandingUrl: + properties: + Url: + format: uri + type: string + urlType: + enum: + - DeepLink type: string type: object Symbol: @@ -1234,12 +1277,16 @@ components: $ref: '#/components/schemas/ContentEntryType' itemType: $ref: '#/components/schemas/ContentEntryType' + stopOnEmptyResponse: + default: false + type: boolean value: type: string required: - __typename - cursorType - value + - stopOnEmptyResponse TimelineTimelineItem: properties: __typename: @@ -1291,8 +1338,6 @@ components: - clientEventInfo TimelineTweet: properties: - SocialContext: - $ref: '#/components/schemas/SocialContext' __typename: $ref: '#/components/schemas/TypeName' itemType: @@ -1300,6 +1345,8 @@ components: promotedMetadata: additionalProperties: true type: object + socialContext: + $ref: '#/components/schemas/SocialContext' tweetDisplayType: type: string tweet_results: @@ -1311,12 +1358,12 @@ components: - tweet_results TimelineUser: properties: - SocialContext: - $ref: '#/components/schemas/SocialContext' __typename: $ref: '#/components/schemas/TypeName' itemType: $ref: '#/components/schemas/ContentItemType' + socialContext: + $ref: '#/components/schemas/SocialContext' userDisplayType: enum: - User @@ -1328,7 +1375,6 @@ components: required: - __typename - itemType - - socialContext - userDisplayType - user_results TimelineV2: @@ -1375,6 +1421,8 @@ components: type: string source: type: string + unified_card: + $ref: '#/components/schemas/UnifiedCard' unmention_data: additionalProperties: true type: object @@ -1397,6 +1445,8 @@ components: items: $ref: '#/components/schemas/TweetCardLegacyBindingValue' type: array + card_platform: + $ref: '#/components/schemas/TweetCardPlatformData' name: type: string url: @@ -1426,6 +1476,39 @@ components: type: string required: - type + TweetCardPlatform: + properties: + audience: + $ref: '#/components/schemas/TweetCardPlatformAudience' + device: + $ref: '#/components/schemas/TweetCardPlatformDevice' + required: + - audience + - device + TweetCardPlatformAudience: + properties: + name: + enum: + - production + type: string + required: + - name + TweetCardPlatformData: + properties: + platform: + $ref: '#/components/schemas/TweetCardPlatform' + required: + - platform + TweetCardPlatformDevice: + properties: + name: + type: string + version: + pattern: ^[0-9]+$ + type: string + required: + - name + - version TweetDetailResponse: properties: data: @@ -1524,6 +1607,14 @@ components: id_str: pattern: ^[0-9]+$ type: string + in_reply_to_screen_name: + type: string + in_reply_to_status_id_str: + pattern: ^[0-9]+$ + type: string + in_reply_to_user_id_str: + pattern: ^[0-9]+$ + type: string is_quote_status: type: boolean lang: @@ -1544,6 +1635,8 @@ components: type: boolean retweeted_status_result: $ref: '#/components/schemas/ItemResult' + scopes: + $ref: '#/components/schemas/TweetLegacyScopes' self_thread: $ref: '#/components/schemas/SelfThread' user_id_str: @@ -1567,6 +1660,12 @@ components: - retweeted - user_id_str - id_str + TweetLegacyScopes: + properties: + followers: + type: boolean + required: + - followers TweetResultByRestIdData: properties: tweetResult: @@ -1662,6 +1761,14 @@ components: $ref: '#/components/schemas/UnfavoriteTweet' required: - data + UnifiedCard: + properties: + card_fetch_state: + enum: + - NoCard + type: string + required: + - card_fetch_state Url: properties: display_url: @@ -1705,6 +1812,13 @@ components: type: boolean legacy: $ref: '#/components/schemas/UserLegacy' + professional: + $ref: '#/components/schemas/UserProfessional' + profile_image_shape: + enum: + - Circle + - Square + type: string rest_id: pattern: ^[0-9]+$ type: string @@ -1727,6 +1841,7 @@ components: - super_follow_eligible - super_followed_by - super_following + - profile_image_shape UserFeatures: properties: mediatool_studio_library: @@ -1872,6 +1987,10 @@ components: type: string verified: type: boolean + verified_type: + enum: + - Business + type: string want_retweets: default: false type: boolean @@ -1910,6 +2029,35 @@ components: UserMention: additionalProperties: true type: object + UserProfessional: + properties: + category: + items: + $ref: '#/components/schemas/UserProfessionalCategory' + type: array + professional_type: + enum: + - Business + type: string + rest_id: + pattern: ^[0-9]+$ + type: string + required: + - rest_id + - professional_type + - category + UserProfessionalCategory: + properties: + icon_name: + type: string + id: + type: integer + name: + type: string + required: + - id + - name + - icon_name UserResponse: properties: data: @@ -2038,21 +2186,6 @@ components: type: array required: - users - extMediaAvailability: - properties: - reason: - type: string - status: - enum: - - Available - - Unavailable - type: string - mediaStats: - properties: - viewCount: - type: integer - required: - - viewCount securitySchemes: Accept: description: '*/*' From a82844dfa577a7000dacd1c2307e4f45aeb23040 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=B5=E3=81=81?= Date: Fri, 9 Feb 2024 17:22:13 +0900 Subject: [PATCH 08/12] update schema MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: ふぁ --- dist/compatible/openapi-3.0.yaml | 536 +++++++++++++++++++++++++++++- dist/docs/openapi-3.0.yaml | 536 +++++++++++++++++++++++++++++- src/openapi/schemas/content.yaml | 67 +++- src/openapi/schemas/tweet.yaml | 407 ++++++++++++++++++++++- src/openapi/schemas/typename.yaml | 7 + src/openapi/schemas/user.yaml | 89 ++++- test/python/test_serialize.py | 72 ++-- 7 files changed, 1679 insertions(+), 35 deletions(-) diff --git a/dist/compatible/openapi-3.0.yaml b/dist/compatible/openapi-3.0.yaml index 3277882..3ac3dbe 100644 --- a/dist/compatible/openapi-3.0.yaml +++ b/dist/compatible/openapi-3.0.yaml @@ -2,10 +2,45 @@ components: schemas: AdditionalMediaInfo: properties: + call_to_actions: + $ref: '#/components/schemas/AdditionalMediaInfoCallToActions' + description: + type: string + embeddable: + type: boolean monetizable: type: boolean + source_user: + $ref: '#/components/schemas/UserResultCore' + title: + type: string required: - monetizable + AdditionalMediaInfoCallToActions: + properties: + visit_site: + $ref: '#/components/schemas/AdditionalMediaInfoCallToActionsVisitSite' + required: + - visit_site + AdditionalMediaInfoCallToActionsVisitSite: + properties: + url: + format: uri + type: string + required: + - url + AuthorCommunityRelationship: + properties: + community_results: + $ref: '#/components/schemas/Community' + role: + enum: + - Member + type: string + user_results: + $ref: '#/components/schemas/UserResults' + required: + - community_results BirdwatchEntity: properties: fromIndex: @@ -136,6 +171,201 @@ components: required: - create type: object + Community: + properties: + result: + $ref: '#/components/schemas/CommunityData' + required: + - result + CommunityActions: + properties: + delete_action_result: + $ref: '#/components/schemas/CommunityDeleteActionResult' + join_action_result: + $ref: '#/components/schemas/CommunityJoinActionResult' + leave_action_result: + $ref: '#/components/schemas/CommunityLeaveActionResult' + pin_action_result: + $ref: '#/components/schemas/CommunityPinActionResult' + required: + - delete_action_result + - join_action_result + - leave_action_result + - pin_action_result + CommunityData: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + actions: + $ref: '#/components/schemas/CommunityActions' + admin_results: + $ref: '#/components/schemas/UserResults' + created_at: + type: integer + creator_results: + $ref: '#/components/schemas/UserResults' + custom_banner_media: + additionalProperties: true + type: object + default_banner_media: + additionalProperties: true + type: object + description: + type: string + id_str: + pattern: ^[0-9]+$ + type: string + invites_policy: + enum: + - MemberInvitesAllowed + type: string + invites_result: + $ref: '#/components/schemas/CommunityInvitesResult' + is_pinned: + type: boolean + join_policy: + enum: + - Open + type: string + join_requests_result: + $ref: '#/components/schemas/CommunityJoinRequestsResult' + member_count: + type: integer + members_facepile_results: + items: + $ref: '#/components/schemas/UserResults' + type: array + moderator_count: + type: integer + name: + type: string + primary_community_topic: + $ref: '#/components/schemas/PrimaryCommunityTopic' + question: + type: string + role: + enum: + - NonMember + type: string + rules: + items: + $ref: '#/components/schemas/CommunityRule' + type: array + search_tags: + items: + type: string + type: array + show_only_users_to_display: + items: + type: string + type: array + urls: + $ref: '#/components/schemas/CommunityUrls' + viewer_relationship: + additionalProperties: true + type: object + required: + - __typename + - id_str + - name + - description + - question + - search_tags + - primary_community_topic + - actions + - admin_results + - creator_results + - invites_result + - join_policy + - invites_policy + - is_pinned + - members_facepile_results + - moderator_count + - member_count + - role + - rules + CommunityDeleteActionResult: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + reason: + enum: + - Unavailable + type: string + required: + - __typename + - reason + CommunityInvitesResult: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + message: + type: string + reason: + enum: + - Unavailable + type: string + required: + - __typename + - reason + - message + CommunityJoinActionResult: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + required: + - __typename + CommunityJoinRequestsResult: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + required: + - __typename + CommunityLeaveActionResult: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + message: + type: string + reason: + enum: + - ViewerNotMember + type: string + required: + - __typename + - reason + - message + CommunityPinActionResult: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + required: + - __typename + CommunityRule: + properties: + description: + type: string + name: + type: string + rest_id: + pattern: ^[0-9]+$ + type: string + required: + - rest_id + - name + CommunityUrls: + properties: + permalink: + $ref: '#/components/schemas/CommunityUrlsPermalink' + required: + - permalink + CommunityUrlsPermalink: + properties: + url: + format: uri + type: string + required: + - url ContentEntryType: enum: - TimelineTimelineItem @@ -291,6 +521,13 @@ components: type: object required: - tweet_results + DisplayTreatment: + properties: + actionText: + type: string + required: + - actionText + type: object Entities: properties: hashtags: @@ -479,6 +716,15 @@ components: Hashtag: additionalProperties: true type: object + Highlight: + properties: + textHighlights: + items: + $ref: '#/components/schemas/TextHighlight' + type: array + required: + - textHighlights + type: object HomeTimelineHome: properties: home_timeline_urt: @@ -589,6 +835,8 @@ components: expanded_url: format: uri type: string + ext_alt_text: + type: string ext_media_availability: $ref: '#/components/schemas/ExtMediaAvailability' features: @@ -609,6 +857,12 @@ components: $ref: '#/components/schemas/MediaOriginalInfo' sizes: $ref: '#/components/schemas/MediaSizes' + source_status_id_str: + pattern: ^[0-9]+$ + type: string + source_user_id_str: + pattern: ^[0-9]+$ + type: string type: enum: - photo @@ -643,6 +897,8 @@ components: expanded_url: format: uri type: string + ext_alt_text: + type: string ext_media_availability: $ref: '#/components/schemas/ExtMediaAvailability' features: @@ -665,6 +921,12 @@ components: $ref: '#/components/schemas/MediaOriginalInfo' sizes: $ref: '#/components/schemas/MediaSizes' + source_status_id_str: + pattern: ^[0-9]+$ + type: string + source_user_id_str: + pattern: ^[0-9]+$ + type: string type: enum: - photo @@ -884,6 +1146,16 @@ components: Session: $ref: '#/components/schemas/Session' type: object + PrimaryCommunityTopic: + properties: + topic_id: + pattern: ^[0-9]+$ + type: string + topic_name: + type: string + required: + - topic_id + - topic_name ProfileResponse: properties: data: @@ -896,6 +1168,37 @@ components: $ref: '#/components/schemas/UserResultByScreenName' required: - user_result_by_screen_name + QuotedRefResult: + properties: + result: + $ref: '#/components/schemas/QuotedRefResultData' + required: + - result + QuotedRefResultData: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + rest_id: + pattern: ^[0-9]+$ + type: string + required: + - __typename + - rest_id + QuotedStatusPermalink: + properties: + display: + format: uri + type: string + expanded: + format: uri + type: string + url: + format: uri + type: string + required: + - url + - expanded + - display Retweet: properties: legacy: @@ -1011,14 +1314,38 @@ components: type: object SocialContextLandingUrl: properties: - Url: + url: format: uri type: string urlType: enum: - DeepLink + - UrtEndpoint type: string + urtEndpointOptions: + $ref: '#/components/schemas/UrtEndpointOptions' type: object + SuperFollowsReplyUserResult: + properties: + result: + $ref: '#/components/schemas/SuperFollowsReplyUserResultData' + required: + - result + SuperFollowsReplyUserResultData: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + legacy: + $ref: '#/components/schemas/SuperFollowsReplyUserResultLegacy' + required: + - __typename + - legacy + SuperFollowsReplyUserResultLegacy: + properties: + screen_name: + type: string + required: + - screen_name Symbol: additionalProperties: true type: object @@ -1062,6 +1389,16 @@ components: - type - url - urlType + TextHighlight: + properties: + endIndex: + type: integer + startIndex: + type: integer + required: + - startIndex + - endIndex + type: object Timeline: properties: instructions: @@ -1273,6 +1610,8 @@ components: $ref: '#/components/schemas/TypeName' cursorType: $ref: '#/components/schemas/CursorType' + displayTreatment: + $ref: '#/components/schemas/DisplayTreatment' entryType: $ref: '#/components/schemas/ContentEntryType' itemType: @@ -1331,6 +1670,9 @@ components: items: $ref: '#/components/schemas/ModuleItem' type: array + metadata: + additionalProperties: true + type: object required: - __typename - entryType @@ -1340,6 +1682,8 @@ components: properties: __typename: $ref: '#/components/schemas/TypeName' + highlights: + $ref: '#/components/schemas/Highlight' itemType: $ref: '#/components/schemas/ContentItemType' promotedMetadata: @@ -1395,6 +1739,8 @@ components: properties: __typename: $ref: '#/components/schemas/TypeName' + author_community_relationship: + $ref: '#/components/schemas/AuthorCommunityRelationship' birdwatch_pivot: $ref: '#/components/schemas/BirdwatchPivot' card: @@ -1405,6 +1751,8 @@ components: $ref: '#/components/schemas/TweetEditControl' edit_prespective: $ref: '#/components/schemas/TweetEditPrespective' + has_birdwatch_notes: + type: boolean is_translatable: default: false type: boolean @@ -1412,8 +1760,12 @@ components: $ref: '#/components/schemas/TweetLegacy' note_tweet: $ref: '#/components/schemas/NoteTweet' + previous_counts: + $ref: '#/components/schemas/TweetPreviousCounts' quick_promote_eligibility: type: object + quotedRefResult: + $ref: '#/components/schemas/QuotedRefResult' quoted_status_result: $ref: '#/components/schemas/ItemResult' rest_id: @@ -1421,6 +1773,8 @@ components: type: string source: type: string + superFollowsReplyUserResult: + $ref: '#/components/schemas/SuperFollowsReplyUserResult' unified_card: $ref: '#/components/schemas/UnifiedCard' unmention_data: @@ -1451,6 +1805,10 @@ components: type: string url: type: string + user_refs_results: + items: + $ref: '#/components/schemas/UserResults' + type: array required: - binding_values - name @@ -1468,14 +1826,36 @@ components: properties: boolean_value: type: boolean + image_color_value: + additionalProperties: true + type: object + image_value: + $ref: '#/components/schemas/TweetCardLegacyBindingValueDataImage' scribe_key: type: string string_value: type: string type: type: string + user_value: + $ref: '#/components/schemas/UserValue' required: - type + TweetCardLegacyBindingValueDataImage: + properties: + alt: + type: string + height: + type: integer + url: + format: uri + type: string + width: + type: integer + required: + - height + - width + - url TweetCardPlatform: properties: audience: @@ -1585,6 +1965,8 @@ components: type: integer bookmarked: type: boolean + conversation_control: + additionalProperties: true conversation_id_str: pattern: ^[0-9]+$ type: string @@ -1619,6 +2001,14 @@ components: type: boolean lang: type: string + limited_actions: + enum: + - limited_replies + - community_tweet_non_member_public_community + - non_compliant + type: string + place: + additionalProperties: true possibly_sensitive: default: false type: boolean @@ -1627,6 +2017,11 @@ components: type: boolean quote_count: type: integer + quoted_status_id_str: + pattern: ^[0-9]+$ + type: string + quoted_status_permalink: + $ref: '#/components/schemas/QuotedStatusPermalink' reply_count: type: integer retweet_count: @@ -1666,6 +2061,24 @@ components: type: boolean required: - followers + TweetPreviousCounts: + properties: + bookmark_count: + type: integer + favorite_count: + type: integer + quote_count: + type: integer + reply_count: + type: integer + retweet_count: + type: integer + required: + - bookmark_count + - favorite_count + - quote_count + - reply_count + - retweet_count TweetResultByRestIdData: properties: tweetResult: @@ -1721,11 +2134,15 @@ components: properties: __typename: $ref: '#/components/schemas/TypeName' + limitedActionResults: + additionalProperties: true + type: object tweet: $ref: '#/components/schemas/Tweet' required: - __typename - tweet + - limitedActionResults TwitterTimeFormat: example: Sat Dec 31 23:59:59 +0000 2023 pattern: '^(Sun|Mon|Tue|Wed|Thu|Fri|Sat) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) @@ -1748,6 +2165,13 @@ components: - Tweet - User - UserUnavailable + - Community + - CommunityDeleteActionUnavailable + - CommunityJoinAction + - CommunityLeaveActionUnavailable + - CommunityTweetPinActionUnavailable + - CommunityInvitesUnavailable + - CommunityJoinRequestsUnavailable type: string UnfavoriteTweet: properties: @@ -1789,6 +2213,28 @@ components: - expanded_url - display_url type: object + UrtEndpointOptions: + properties: + requestParams: + items: + $ref: '#/components/schemas/UrtEndpointRequestParams' + type: array + title: + type: string + required: + - title + - requestParams + type: object + UrtEndpointRequestParams: + properties: + key: + type: string + value: + type: string + required: + - key + - value + type: object User: properties: __typename: @@ -1799,11 +2245,15 @@ components: business_account: additionalProperties: true type: object + creator_subscriptions_count: + type: integer has_graduated_access: type: boolean has_nft_avatar: default: false type: boolean + highlights_info: + $ref: '#/components/schemas/UserHighlightsInfo' id: pattern: ^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)?$ type: string @@ -1831,6 +2281,10 @@ components: super_following: default: false type: boolean + user_seed_tweet_count: + type: integer + verification_info: + $ref: '#/components/schemas/UserVerificationInfo' required: - __typename - affiliates_highlighted_label @@ -1849,6 +2303,15 @@ components: required: - mediatool_studio_library type: object + UserHighlightsInfo: + properties: + can_highlight_tweets: + type: boolean + highlighted_tweets: + type: string + required: + - can_highlight_tweets + - highlighted_tweets UserHighlightsTweetsData: properties: user: @@ -1990,10 +2453,15 @@ components: verified_type: enum: - Business + - Government type: string want_retweets: default: false type: boolean + withheld_in_countries: + items: + type: string + type: array required: - blocked_by - blocking @@ -2038,6 +2506,7 @@ components: professional_type: enum: - Business + - Creator type: string rest_id: pattern: ^[0-9]+$ @@ -2172,6 +2641,71 @@ components: oneOf: - $ref: '#/components/schemas/User' - $ref: '#/components/schemas/UserUnavailable' + UserValue: + properties: + id_str: + pattern: ^[0-9]+$ + type: string + required: + - id_str + UserVerificationInfo: + properties: + is_identity_verified: + default: false + type: boolean + reason: + $ref: '#/components/schemas/UserVerificationInfoReason' + required: + - is_identity_verified + - reason + UserVerificationInfoReason: + properties: + description: + $ref: '#/components/schemas/UserVerificationInfoReasonDescription' + override_verified_year: + type: integer + verified_since_msec: + pattern: ^-?[0-9]+$ + type: string + required: + - description + - verified_since_msec + - override_verified_year + UserVerificationInfoReasonDescription: + properties: + entities: + items: + $ref: '#/components/schemas/UserVerificationInfoReasonDescriptionEntities' + type: array + text: + type: string + required: + - text + - entities + UserVerificationInfoReasonDescriptionEntities: + properties: + from_index: + type: integer + ref: + $ref: '#/components/schemas/UserVerificationInfoReasonDescriptionEntitiesRef' + to_index: + type: integer + required: + - from_index + - to_index + - ref + UserVerificationInfoReasonDescriptionEntitiesRef: + properties: + url: + format: uri + type: string + url_type: + enum: + - ExternalUrl + type: string + required: + - url + - url_type UsersResponse: properties: data: diff --git a/dist/docs/openapi-3.0.yaml b/dist/docs/openapi-3.0.yaml index 078fc17..3830361 100644 --- a/dist/docs/openapi-3.0.yaml +++ b/dist/docs/openapi-3.0.yaml @@ -2,10 +2,45 @@ components: schemas: AdditionalMediaInfo: properties: + call_to_actions: + $ref: '#/components/schemas/AdditionalMediaInfoCallToActions' + description: + type: string + embeddable: + type: boolean monetizable: type: boolean + source_user: + $ref: '#/components/schemas/UserResultCore' + title: + type: string required: - monetizable + AdditionalMediaInfoCallToActions: + properties: + visit_site: + $ref: '#/components/schemas/AdditionalMediaInfoCallToActionsVisitSite' + required: + - visit_site + AdditionalMediaInfoCallToActionsVisitSite: + properties: + url: + format: uri + type: string + required: + - url + AuthorCommunityRelationship: + properties: + community_results: + $ref: '#/components/schemas/Community' + role: + enum: + - Member + type: string + user_results: + $ref: '#/components/schemas/UserResults' + required: + - community_results BirdwatchEntity: properties: fromIndex: @@ -136,6 +171,201 @@ components: required: - create type: object + Community: + properties: + result: + $ref: '#/components/schemas/CommunityData' + required: + - result + CommunityActions: + properties: + delete_action_result: + $ref: '#/components/schemas/CommunityDeleteActionResult' + join_action_result: + $ref: '#/components/schemas/CommunityJoinActionResult' + leave_action_result: + $ref: '#/components/schemas/CommunityLeaveActionResult' + pin_action_result: + $ref: '#/components/schemas/CommunityPinActionResult' + required: + - delete_action_result + - join_action_result + - leave_action_result + - pin_action_result + CommunityData: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + actions: + $ref: '#/components/schemas/CommunityActions' + admin_results: + $ref: '#/components/schemas/UserResults' + created_at: + type: integer + creator_results: + $ref: '#/components/schemas/UserResults' + custom_banner_media: + additionalProperties: true + type: object + default_banner_media: + additionalProperties: true + type: object + description: + type: string + id_str: + pattern: ^[0-9]+$ + type: string + invites_policy: + enum: + - MemberInvitesAllowed + type: string + invites_result: + $ref: '#/components/schemas/CommunityInvitesResult' + is_pinned: + type: boolean + join_policy: + enum: + - Open + type: string + join_requests_result: + $ref: '#/components/schemas/CommunityJoinRequestsResult' + member_count: + type: integer + members_facepile_results: + items: + $ref: '#/components/schemas/UserResults' + type: array + moderator_count: + type: integer + name: + type: string + primary_community_topic: + $ref: '#/components/schemas/PrimaryCommunityTopic' + question: + type: string + role: + enum: + - NonMember + type: string + rules: + items: + $ref: '#/components/schemas/CommunityRule' + type: array + search_tags: + items: + type: string + type: array + show_only_users_to_display: + items: + type: string + type: array + urls: + $ref: '#/components/schemas/CommunityUrls' + viewer_relationship: + additionalProperties: true + type: object + required: + - __typename + - id_str + - name + - description + - question + - search_tags + - primary_community_topic + - actions + - admin_results + - creator_results + - invites_result + - join_policy + - invites_policy + - is_pinned + - members_facepile_results + - moderator_count + - member_count + - role + - rules + CommunityDeleteActionResult: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + reason: + enum: + - Unavailable + type: string + required: + - __typename + - reason + CommunityInvitesResult: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + message: + type: string + reason: + enum: + - Unavailable + type: string + required: + - __typename + - reason + - message + CommunityJoinActionResult: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + required: + - __typename + CommunityJoinRequestsResult: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + required: + - __typename + CommunityLeaveActionResult: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + message: + type: string + reason: + enum: + - ViewerNotMember + type: string + required: + - __typename + - reason + - message + CommunityPinActionResult: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + required: + - __typename + CommunityRule: + properties: + description: + type: string + name: + type: string + rest_id: + pattern: ^[0-9]+$ + type: string + required: + - rest_id + - name + CommunityUrls: + properties: + permalink: + $ref: '#/components/schemas/CommunityUrlsPermalink' + required: + - permalink + CommunityUrlsPermalink: + properties: + url: + format: uri + type: string + required: + - url ContentEntryType: enum: - TimelineTimelineItem @@ -291,6 +521,13 @@ components: type: object required: - tweet_results + DisplayTreatment: + properties: + actionText: + type: string + required: + - actionText + type: object Entities: properties: hashtags: @@ -479,6 +716,15 @@ components: Hashtag: additionalProperties: true type: object + Highlight: + properties: + textHighlights: + items: + $ref: '#/components/schemas/TextHighlight' + type: array + required: + - textHighlights + type: object HomeTimelineHome: properties: home_timeline_urt: @@ -589,6 +835,8 @@ components: expanded_url: format: uri type: string + ext_alt_text: + type: string ext_media_availability: $ref: '#/components/schemas/ExtMediaAvailability' features: @@ -609,6 +857,12 @@ components: $ref: '#/components/schemas/MediaOriginalInfo' sizes: $ref: '#/components/schemas/MediaSizes' + source_status_id_str: + pattern: ^[0-9]+$ + type: string + source_user_id_str: + pattern: ^[0-9]+$ + type: string type: enum: - photo @@ -643,6 +897,8 @@ components: expanded_url: format: uri type: string + ext_alt_text: + type: string ext_media_availability: $ref: '#/components/schemas/ExtMediaAvailability' features: @@ -665,6 +921,12 @@ components: $ref: '#/components/schemas/MediaOriginalInfo' sizes: $ref: '#/components/schemas/MediaSizes' + source_status_id_str: + pattern: ^[0-9]+$ + type: string + source_user_id_str: + pattern: ^[0-9]+$ + type: string type: enum: - photo @@ -884,6 +1146,16 @@ components: Session: $ref: '#/components/schemas/Session' type: object + PrimaryCommunityTopic: + properties: + topic_id: + pattern: ^[0-9]+$ + type: string + topic_name: + type: string + required: + - topic_id + - topic_name ProfileResponse: properties: data: @@ -896,6 +1168,37 @@ components: $ref: '#/components/schemas/UserResultByScreenName' required: - user_result_by_screen_name + QuotedRefResult: + properties: + result: + $ref: '#/components/schemas/QuotedRefResultData' + required: + - result + QuotedRefResultData: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + rest_id: + pattern: ^[0-9]+$ + type: string + required: + - __typename + - rest_id + QuotedStatusPermalink: + properties: + display: + format: uri + type: string + expanded: + format: uri + type: string + url: + format: uri + type: string + required: + - url + - expanded + - display Retweet: properties: legacy: @@ -1011,14 +1314,38 @@ components: type: object SocialContextLandingUrl: properties: - Url: + url: format: uri type: string urlType: enum: - DeepLink + - UrtEndpoint type: string + urtEndpointOptions: + $ref: '#/components/schemas/UrtEndpointOptions' type: object + SuperFollowsReplyUserResult: + properties: + result: + $ref: '#/components/schemas/SuperFollowsReplyUserResultData' + required: + - result + SuperFollowsReplyUserResultData: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + legacy: + $ref: '#/components/schemas/SuperFollowsReplyUserResultLegacy' + required: + - __typename + - legacy + SuperFollowsReplyUserResultLegacy: + properties: + screen_name: + type: string + required: + - screen_name Symbol: additionalProperties: true type: object @@ -1062,6 +1389,16 @@ components: - type - url - urlType + TextHighlight: + properties: + endIndex: + type: integer + startIndex: + type: integer + required: + - startIndex + - endIndex + type: object Timeline: properties: instructions: @@ -1273,6 +1610,8 @@ components: $ref: '#/components/schemas/TypeName' cursorType: $ref: '#/components/schemas/CursorType' + displayTreatment: + $ref: '#/components/schemas/DisplayTreatment' entryType: $ref: '#/components/schemas/ContentEntryType' itemType: @@ -1331,6 +1670,9 @@ components: items: $ref: '#/components/schemas/ModuleItem' type: array + metadata: + additionalProperties: true + type: object required: - __typename - entryType @@ -1340,6 +1682,8 @@ components: properties: __typename: $ref: '#/components/schemas/TypeName' + highlights: + $ref: '#/components/schemas/Highlight' itemType: $ref: '#/components/schemas/ContentItemType' promotedMetadata: @@ -1395,6 +1739,8 @@ components: properties: __typename: $ref: '#/components/schemas/TypeName' + author_community_relationship: + $ref: '#/components/schemas/AuthorCommunityRelationship' birdwatch_pivot: $ref: '#/components/schemas/BirdwatchPivot' card: @@ -1405,6 +1751,8 @@ components: $ref: '#/components/schemas/TweetEditControl' edit_prespective: $ref: '#/components/schemas/TweetEditPrespective' + has_birdwatch_notes: + type: boolean is_translatable: default: false type: boolean @@ -1412,8 +1760,12 @@ components: $ref: '#/components/schemas/TweetLegacy' note_tweet: $ref: '#/components/schemas/NoteTweet' + previous_counts: + $ref: '#/components/schemas/TweetPreviousCounts' quick_promote_eligibility: type: object + quotedRefResult: + $ref: '#/components/schemas/QuotedRefResult' quoted_status_result: $ref: '#/components/schemas/ItemResult' rest_id: @@ -1421,6 +1773,8 @@ components: type: string source: type: string + superFollowsReplyUserResult: + $ref: '#/components/schemas/SuperFollowsReplyUserResult' unified_card: $ref: '#/components/schemas/UnifiedCard' unmention_data: @@ -1451,6 +1805,10 @@ components: type: string url: type: string + user_refs_results: + items: + $ref: '#/components/schemas/UserResults' + type: array required: - binding_values - name @@ -1468,14 +1826,36 @@ components: properties: boolean_value: type: boolean + image_color_value: + additionalProperties: true + type: object + image_value: + $ref: '#/components/schemas/TweetCardLegacyBindingValueDataImage' scribe_key: type: string string_value: type: string type: type: string + user_value: + $ref: '#/components/schemas/UserValue' required: - type + TweetCardLegacyBindingValueDataImage: + properties: + alt: + type: string + height: + type: integer + url: + format: uri + type: string + width: + type: integer + required: + - height + - width + - url TweetCardPlatform: properties: audience: @@ -1585,6 +1965,8 @@ components: type: integer bookmarked: type: boolean + conversation_control: + additionalProperties: true conversation_id_str: pattern: ^[0-9]+$ type: string @@ -1619,6 +2001,14 @@ components: type: boolean lang: type: string + limited_actions: + enum: + - limited_replies + - community_tweet_non_member_public_community + - non_compliant + type: string + place: + additionalProperties: true possibly_sensitive: default: false type: boolean @@ -1627,6 +2017,11 @@ components: type: boolean quote_count: type: integer + quoted_status_id_str: + pattern: ^[0-9]+$ + type: string + quoted_status_permalink: + $ref: '#/components/schemas/QuotedStatusPermalink' reply_count: type: integer retweet_count: @@ -1666,6 +2061,24 @@ components: type: boolean required: - followers + TweetPreviousCounts: + properties: + bookmark_count: + type: integer + favorite_count: + type: integer + quote_count: + type: integer + reply_count: + type: integer + retweet_count: + type: integer + required: + - bookmark_count + - favorite_count + - quote_count + - reply_count + - retweet_count TweetResultByRestIdData: properties: tweetResult: @@ -1721,11 +2134,15 @@ components: properties: __typename: $ref: '#/components/schemas/TypeName' + limitedActionResults: + additionalProperties: true + type: object tweet: $ref: '#/components/schemas/Tweet' required: - __typename - tweet + - limitedActionResults TwitterTimeFormat: example: Sat Dec 31 23:59:59 +0000 2023 pattern: '^(Sun|Mon|Tue|Wed|Thu|Fri|Sat) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) @@ -1748,6 +2165,13 @@ components: - Tweet - User - UserUnavailable + - Community + - CommunityDeleteActionUnavailable + - CommunityJoinAction + - CommunityLeaveActionUnavailable + - CommunityTweetPinActionUnavailable + - CommunityInvitesUnavailable + - CommunityJoinRequestsUnavailable type: string UnfavoriteTweet: properties: @@ -1789,6 +2213,28 @@ components: - expanded_url - display_url type: object + UrtEndpointOptions: + properties: + requestParams: + items: + $ref: '#/components/schemas/UrtEndpointRequestParams' + type: array + title: + type: string + required: + - title + - requestParams + type: object + UrtEndpointRequestParams: + properties: + key: + type: string + value: + type: string + required: + - key + - value + type: object User: properties: __typename: @@ -1799,11 +2245,15 @@ components: business_account: additionalProperties: true type: object + creator_subscriptions_count: + type: integer has_graduated_access: type: boolean has_nft_avatar: default: false type: boolean + highlights_info: + $ref: '#/components/schemas/UserHighlightsInfo' id: pattern: ^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)?$ type: string @@ -1831,6 +2281,10 @@ components: super_following: default: false type: boolean + user_seed_tweet_count: + type: integer + verification_info: + $ref: '#/components/schemas/UserVerificationInfo' required: - __typename - affiliates_highlighted_label @@ -1849,6 +2303,15 @@ components: required: - mediatool_studio_library type: object + UserHighlightsInfo: + properties: + can_highlight_tweets: + type: boolean + highlighted_tweets: + type: string + required: + - can_highlight_tweets + - highlighted_tweets UserHighlightsTweetsData: properties: user: @@ -1990,10 +2453,15 @@ components: verified_type: enum: - Business + - Government type: string want_retweets: default: false type: boolean + withheld_in_countries: + items: + type: string + type: array required: - blocked_by - blocking @@ -2038,6 +2506,7 @@ components: professional_type: enum: - Business + - Creator type: string rest_id: pattern: ^[0-9]+$ @@ -2172,6 +2641,71 @@ components: oneOf: - $ref: '#/components/schemas/User' - $ref: '#/components/schemas/UserUnavailable' + UserValue: + properties: + id_str: + pattern: ^[0-9]+$ + type: string + required: + - id_str + UserVerificationInfo: + properties: + is_identity_verified: + default: false + type: boolean + reason: + $ref: '#/components/schemas/UserVerificationInfoReason' + required: + - is_identity_verified + - reason + UserVerificationInfoReason: + properties: + description: + $ref: '#/components/schemas/UserVerificationInfoReasonDescription' + override_verified_year: + type: integer + verified_since_msec: + pattern: ^-?[0-9]+$ + type: string + required: + - description + - verified_since_msec + - override_verified_year + UserVerificationInfoReasonDescription: + properties: + entities: + items: + $ref: '#/components/schemas/UserVerificationInfoReasonDescriptionEntities' + type: array + text: + type: string + required: + - text + - entities + UserVerificationInfoReasonDescriptionEntities: + properties: + from_index: + type: integer + ref: + $ref: '#/components/schemas/UserVerificationInfoReasonDescriptionEntitiesRef' + to_index: + type: integer + required: + - from_index + - to_index + - ref + UserVerificationInfoReasonDescriptionEntitiesRef: + properties: + url: + format: uri + type: string + url_type: + enum: + - ExternalUrl + type: string + required: + - url + - url_type UsersResponse: properties: data: diff --git a/src/openapi/schemas/content.yaml b/src/openapi/schemas/content.yaml index 78cf6ce..edc31f5 100644 --- a/src/openapi/schemas/content.yaml +++ b/src/openapi/schemas/content.yaml @@ -71,10 +71,12 @@ components: header: type: object additionalProperties: true # todo - clientEventInfo: type: object additionalProperties: true # todo + metadata: + type: object + additionalProperties: true # todo TimelineTimelineCursor: required: @@ -96,6 +98,16 @@ components: stopOnEmptyResponse: type: boolean default: false + displayTreatment: + $ref: "#/components/schemas/DisplayTreatment" + + DisplayTreatment: + type: object + required: + - "actionText" + properties: + actionText: + type: string # ================= Module ================= @@ -172,6 +184,8 @@ components: promotedMetadata: type: object additionalProperties: true # todo + highlights: + $ref: "#/components/schemas/Highlight" TimelineUser: required: @@ -218,10 +232,57 @@ components: properties: urlType: type: string # enum - enum: ["DeepLink"] - Url: + enum: ["DeepLink", "UrtEndpoint"] + url: type: string # twitter://user?id=900282258736545792 format: uri + urtEndpointOptions: + $ref: "#/components/schemas/UrtEndpointOptions" + + UrtEndpointOptions: + type: object + required: + - "title" + - "requestParams" + properties: + title: + type: string + requestParams: + type: array + items: + $ref: "#/components/schemas/UrtEndpointRequestParams" + + UrtEndpointRequestParams: + type: object + required: + - "key" + - "value" + properties: + key: + type: string + value: + type: string + + Highlight: + type: object + required: + - "textHighlights" + properties: + textHighlights: + type: array + items: + $ref: "#/components/schemas/TextHighlight" + + TextHighlight: + type: object + required: + - "startIndex" + - "endIndex" + properties: + startIndex: + type: integer + endIndex: + type: integer TimelinePrompt: properties: diff --git a/src/openapi/schemas/tweet.yaml b/src/openapi/schemas/tweet.yaml index 1284ca5..4d84b53 100644 --- a/src/openapi/schemas/tweet.yaml +++ b/src/openapi/schemas/tweet.yaml @@ -23,11 +23,15 @@ components: required: - "__typename" - "tweet" + - "limitedActionResults" properties: __typename: $ref: "./typename.yaml#/components/schemas/TypeName" # TweetWithVisibilityResults tweet: $ref: "#/components/schemas/Tweet" + limitedActionResults: + type: object + additionalProperties: true # todo TweetTombstone: #remove tweet properties: @@ -45,7 +49,6 @@ components: # - "source" # - "legacy" - "views" - properties: __typename: $ref: "./typename.yaml#/components/schemas/TypeName" # null | Tweet @@ -82,6 +85,16 @@ components: type: object unified_card: $ref: "#/components/schemas/UnifiedCard" + previous_counts: + $ref: "#/components/schemas/TweetPreviousCounts" + quotedRefResult: + $ref: "#/components/schemas/QuotedRefResult" + superFollowsReplyUserResult: + $ref: "#/components/schemas/SuperFollowsReplyUserResult" + has_birdwatch_notes: + type: boolean + author_community_relationship: + $ref: "#/components/schemas/AuthorCommunityRelationship" TweetEditControl: properties: @@ -230,6 +243,291 @@ components: type: string enum: [NoCard] + TweetPreviousCounts: + required: + - "bookmark_count" + - "favorite_count" + - "quote_count" + - "reply_count" + - "retweet_count" + properties: + bookmark_count: + type: integer + favorite_count: + type: integer + quote_count: + type: integer + reply_count: + type: integer + retweet_count: + type: integer + + QuotedRefResult: + required: + - "result" + properties: + result: + $ref: "#/components/schemas/QuotedRefResultData" + + QuotedRefResultData: + required: + - "__typename" + - "rest_id" + properties: + __typename: + $ref: "./typename.yaml#/components/schemas/TypeName" # Tweet + rest_id: + type: string + pattern: "^[0-9]+$" + + SuperFollowsReplyUserResult: + required: + - "result" + properties: + result: + $ref: "#/components/schemas/SuperFollowsReplyUserResultData" + + SuperFollowsReplyUserResultData: + required: + - "__typename" + - "legacy" + properties: + __typename: + $ref: "./../schemas/typename.yaml#/components/schemas/TypeName" # User + legacy: + $ref: "#/components/schemas/SuperFollowsReplyUserResultLegacy" + + SuperFollowsReplyUserResultLegacy: + required: + - "screen_name" + properties: + screen_name: + type: string + + AuthorCommunityRelationship: + required: + - "community_results" + properties: + community_results: + $ref: "#/components/schemas/Community" + role: + type: string + enum: [Member] + user_results: + $ref: "user.yaml#/components/schemas/UserResults" + + Community: + required: + - "result" + properties: + result: + $ref: "#/components/schemas/CommunityData" + + CommunityData: + required: + - "__typename" + - "id_str" + - "name" + - "description" + - "question" + - "search_tags" + - "primary_community_topic" + - "actions" + - "admin_results" + - "creator_results" + - "invites_result" + - "join_policy" + - "invites_policy" + - "is_pinned" + - "members_facepile_results" + - "moderator_count" + - "member_count" + - "role" + - "rules" + properties: + __typename: + $ref: "./typename.yaml#/components/schemas/TypeName" # Community + id_str: + type: string + pattern: "^[0-9]+$" + name: + type: string + description: + type: string + created_at: + type: integer + question: + type: string + search_tags: + type: array + items: + type: string + primary_community_topic: + $ref: "#/components/schemas/PrimaryCommunityTopic" + actions: + $ref: "#/components/schemas/CommunityActions" + admin_results: + $ref: "user.yaml#/components/schemas/UserResults" + creator_results: + $ref: "user.yaml#/components/schemas/UserResults" + invites_result: + $ref: "#/components/schemas/CommunityInvitesResult" + join_requests_result: + $ref: "#/components/schemas/CommunityJoinRequestsResult" + join_policy: + type: string + enum: [Open] + invites_policy: + type: string + enum: [MemberInvitesAllowed] + is_pinned: + type: boolean + members_facepile_results: + type: array + items: + $ref: "user.yaml#/components/schemas/UserResults" + moderator_count: + type: integer + member_count: + type: integer + role: + type: string + enum: [NonMember] + rules: + type: array + items: + $ref: "#/components/schemas/CommunityRule" + show_only_users_to_display: + type: array + items: + type: string + urls: + $ref: "#/components/schemas/CommunityUrls" + default_banner_media: + type: object + additionalProperties: true # todo + custom_banner_media: + type: object + additionalProperties: true # todo + viewer_relationship: + type: object + additionalProperties: true # todo + + PrimaryCommunityTopic: + required: + - "topic_id" + - "topic_name" + properties: + topic_id: + type: string + pattern: "^[0-9]+$" + topic_name: + type: string + + CommunityActions: + required: + - "delete_action_result" + - "join_action_result" + - "leave_action_result" + - "pin_action_result" + properties: + delete_action_result: + $ref: "#/components/schemas/CommunityDeleteActionResult" + join_action_result: + $ref: "#/components/schemas/CommunityJoinActionResult" + leave_action_result: + $ref: "#/components/schemas/CommunityLeaveActionResult" + pin_action_result: + $ref: "#/components/schemas/CommunityPinActionResult" + + CommunityDeleteActionResult: + required: + - "__typename" + - "reason" + properties: + __typename: + $ref: "./typename.yaml#/components/schemas/TypeName" # CommunityDeleteActionUnavailable + reason: + type: string + enum: [Unavailable] + + CommunityJoinActionResult: + required: + - "__typename" + properties: + __typename: + $ref: "./typename.yaml#/components/schemas/TypeName" # CommunityJoinAction + + CommunityLeaveActionResult: + required: + - "__typename" + - "reason" + - "message" + properties: + __typename: + $ref: "./typename.yaml#/components/schemas/TypeName" # CommunityLeaveActionUnavailable + reason: + type: string + enum: [ViewerNotMember] + message: + type: string + + CommunityPinActionResult: + required: + - "__typename" + properties: + __typename: + $ref: "./typename.yaml#/components/schemas/TypeName" # CommunityTweetPinActionUnavailable + + CommunityInvitesResult: + required: + - "__typename" + - "reason" + - "message" + properties: + __typename: + $ref: "./typename.yaml#/components/schemas/TypeName" # CommunityInvitesUnavailable + reason: + type: string + enum: [Unavailable] + message: + type: string + + CommunityJoinRequestsResult: + required: + - "__typename" + properties: + __typename: + $ref: "./typename.yaml#/components/schemas/TypeName" # CommunityJoinRequestsUnavailable + + CommunityRule: + required: + - "rest_id" + - "name" + properties: + rest_id: + type: string + pattern: "^[0-9]+$" + name: + type: string + description: + type: string + + CommunityUrls: + required: + - "permalink" + properties: + permalink: + $ref: "#/components/schemas/CommunityUrlsPermalink" + + CommunityUrlsPermalink: + required: + - "url" + properties: + url: + type: string + format: uri + BirdwatchPivot: required: - "destinationUrl" @@ -346,6 +644,10 @@ components: # {'platform': {'audience': {'name': 'production'}, 'device': {'name': 'Swift', 'version': '12'}}} card_platform: $ref: "#/components/schemas/TweetCardPlatformData" + user_refs_results: + type: array + items: + $ref: "user.yaml#/components/schemas/UserResults" TweetCardPlatformData: required: @@ -405,6 +707,37 @@ components: type: string type: type: string + image_value: + $ref: "#/components/schemas/TweetCardLegacyBindingValueDataImage" + image_color_value: + type: object + additionalProperties: true # todo + user_value: + $ref: "#/components/schemas/UserValue" + + UserValue: + required: + - "id_str" + properties: + id_str: + type: string + pattern: "^[0-9]+$" + + TweetCardLegacyBindingValueDataImage: + required: + - "height" + - "width" + - "url" + properties: + height: + type: integer + width: + type: integer + url: + type: string + format: uri + alt: + type: string TweetLegacy: required: @@ -487,6 +820,21 @@ components: in_reply_to_user_id_str: type: string pattern: "^[0-9]+$" + quoted_status_permalink: + $ref: "#/components/schemas/QuotedStatusPermalink" + quoted_status_id_str: + type: string + pattern: "^[0-9]+$" + conversation_control: + additionalProperties: true # todo + limited_actions: + type: string + enum: + - "limited_replies" + - "community_tweet_non_member_public_community" + - "non_compliant" + place: + additionalProperties: true # todo SelfThread: required: @@ -607,6 +955,14 @@ components: additional_media_info: type: object additionalProperties: true # todo + source_user_id_str: + type: string + pattern: "^[0-9]+$" + source_status_id_str: + type: string + pattern: "^[0-9]+$" + ext_alt_text: + type: string TweetLegacyScopes: required: @@ -615,6 +971,22 @@ components: followers: type: boolean + QuotedStatusPermalink: + required: + - "url" + - "expanded" + - "display" + properties: + url: + type: string + format: uri + expanded: + type: string + format: uri + display: + type: string + format: uri + ExtendedEntities: required: - "media" @@ -677,6 +1049,14 @@ components: $ref: "#/components/schemas/MediaOriginalInfo" video_info: $ref: "#/components/schemas/MediaVideoInfo" + source_user_id_str: + type: string + pattern: "^[0-9]+$" + source_status_id_str: + type: string + pattern: "^[0-9]+$" + ext_alt_text: + type: string MediaOriginalInfo: required: @@ -744,6 +1124,31 @@ components: properties: monetizable: type: boolean + source_user: + $ref: "./user.yaml#/components/schemas/UserResultCore" + title: # null character + type: string + description: # null character + type: string + embeddable: + type: boolean + call_to_actions: + $ref: "#/components/schemas/AdditionalMediaInfoCallToActions" + + AdditionalMediaInfoCallToActions: + required: + - "visit_site" + properties: + visit_site: + $ref: "#/components/schemas/AdditionalMediaInfoCallToActionsVisitSite" + + AdditionalMediaInfoCallToActionsVisitSite: + required: + - "url" + properties: + url: + type: string + format: uri MediaStats: required: diff --git a/src/openapi/schemas/typename.yaml b/src/openapi/schemas/typename.yaml index ee88b92..78b66d3 100644 --- a/src/openapi/schemas/typename.yaml +++ b/src/openapi/schemas/typename.yaml @@ -23,4 +23,11 @@ components: Tweet, User, UserUnavailable, + Community, + CommunityDeleteActionUnavailable, + CommunityJoinAction, + CommunityLeaveActionUnavailable, + CommunityTweetPinActionUnavailable, + CommunityInvitesUnavailable, + CommunityJoinRequestsUnavailable, ] diff --git a/src/openapi/schemas/user.yaml b/src/openapi/schemas/user.yaml index 7bfc027..d43d695 100644 --- a/src/openapi/schemas/user.yaml +++ b/src/openapi/schemas/user.yaml @@ -81,6 +81,14 @@ components: - "Square" professional: $ref: "#/components/schemas/UserProfessional" + user_seed_tweet_count: + type: integer + highlights_info: + $ref: "#/components/schemas/UserHighlightsInfo" + creator_subscriptions_count: + type: integer + verification_info: + $ref: "#/components/schemas/UserVerificationInfo" UserProfessional: required: @@ -93,7 +101,7 @@ components: pattern: "^[0-9]+$" professional_type: type: string - enum: ["Business"] + enum: ["Business", "Creator"] category: type: array items: @@ -112,6 +120,79 @@ components: icon_name: type: string # IconBriefcaseStroke ? + UserHighlightsInfo: + required: + - "can_highlight_tweets" + - "highlighted_tweets" + properties: + can_highlight_tweets: + type: boolean + highlighted_tweets: + type: string + + UserVerificationInfo: + required: + - "is_identity_verified" + - "reason" + + properties: + is_identity_verified: + type: boolean + default: false + reason: + $ref: "#/components/schemas/UserVerificationInfoReason" + + UserVerificationInfoReason: + required: + - "description" + - "verified_since_msec" + - "override_verified_year" + properties: + description: + $ref: "#/components/schemas/UserVerificationInfoReasonDescription" + verified_since_msec: + type: string + pattern: "^-?[0-9]+$" + override_verified_year: + type: integer + + UserVerificationInfoReasonDescription: + required: + - "text" + - "entities" + properties: + text: + type: string + entities: + type: array + items: + $ref: "#/components/schemas/UserVerificationInfoReasonDescriptionEntities" + + UserVerificationInfoReasonDescriptionEntities: + required: + - "from_index" + - "to_index" + - "ref" + properties: + from_index: + type: integer + to_index: + type: integer + ref: + $ref: "#/components/schemas/UserVerificationInfoReasonDescriptionEntitiesRef" + + UserVerificationInfoReasonDescriptionEntitiesRef: + required: + - "url" + - "url_type" + properties: + url: + type: string + format: uri + url_type: + type: string + enum: ["ExternalUrl"] + UserLegacy: required: - "blocked_by" @@ -259,7 +340,11 @@ components: default: false verified_type: type: string - enum: ["Business"] + enum: ["Business", "Government"] + withheld_in_countries: + type: array + items: + type: string # enum DE UserUnavailable: required: diff --git a/test/python/test_serialize.py b/test/python/test_serialize.py index 565a160..5c538b0 100644 --- a/test/python/test_serialize.py +++ b/test/python/test_serialize.py @@ -65,12 +65,25 @@ def get_kwargs(key, additional): return kwargs -def match_rate_zero(a, b, key, fn): - fn(a, b, key) +def match_rate_zero(a, b, base, key): + def get(obj, key): + if isinstance(obj, list): + return get(obj[key[0]], key[1:]) + if obj.__dict__.get("actual_instance") is not None: + return get(obj.actual_instance, key) + if len(key) == 0: + return obj + return get(super_get(obj.__dict__, key[0]), key[1:]) + + if STRICT_MODE: + obj_name = type(get(base, key[:-1])) + obj_key = f"{obj_name.__name__}.{key[-1]}" + raise Exception(f"Not defined: {obj_key}\nContents: {b}") + return 0 -def match_rate(a, b, key="", fn=lambda x: None): +def match_rate(a, b, base, key=""): if isinstance(a, aenum.Enum): a = a.value if isinstance(b, aenum.Enum): @@ -83,22 +96,26 @@ def match_rate(a, b, key="", fn=lambda x: None): return 1 if isinstance(a, list) and b is None and len(a) == 0: return 1 + if a is None and isinstance(b, dict) and len(b) == 0: + return 1 + if isinstance(a, dict) and b is None and len(a) == 0: + return 1 if isinstance(a, dict) and isinstance(b, dict): if len(a) == 0 and len(b) == 0: return 1 marge_key = set(a.keys()) | set(b.keys()) - data = [match_rate(a.get(k), b.get(k), [*key, k], fn) for k in marge_key] + data = [match_rate(a.get(k), b.get(k), base, [*key, k]) for k in marge_key] return sum(data) / len(b) if isinstance(a, list) and isinstance(b, list): if len(a) == 0 and len(b) == 0: return 1 if len(a) != len(b): - return match_rate_zero(a, b, key, fn) - data = [match_rate(a[i], b[i], [*key, i], fn) for i in range(len(a))] + return match_rate_zero(a, b, base, key) + data = [match_rate(a[i], b[i], base, [*key, i]) for i in range(len(a))] return sum(data) / len(a) if a == b: return 1 - return match_rate_zero(a, b, key, fn) + return match_rate_zero(a, b, base, key) def save_cache(data): @@ -126,25 +143,10 @@ def task_callback(file, thread=True): cache = json.load(f) data = pt.__dict__[cache["type"]].from_json(cache["raw"]) - def get(obj, key): - if isinstance(obj, list): - return get(obj[key[0]], key[1:]) - if obj.__dict__.get("actual_instance") is not None: - return get(obj.actual_instance, key) - if len(key) == 0: - return obj - return get(super_get(obj.__dict__, key[0]), key[1:]) - - def match_rate_hook(a, b, key): - if STRICT_MODE: - obj_name = type(get(data, key[:-1])) - obj_key = f"{obj_name.__name__}.{key[-1]}" - raise Exception(f"Not defined: {obj_key}\nContents: {b}") - rate = match_rate( data.to_dict(), json.loads(cache["raw"]), - fn=match_rate_hook, + base=data, ) return rate, file except Exception: @@ -254,7 +256,11 @@ if __name__ == "__main__": new_cursor = set(get_cursor(data, find_cursor)) - cursor_history cursor_list.update(new_cursor) - rate = match_rate(data, json.loads(res.raw_data)) + rate = match_rate( + data, + json.loads(res.raw_data), + res.data, + ) logger.info(f"Match rate: {rate}") if data.get("errors") is not None: @@ -275,7 +281,11 @@ if __name__ == "__main__": res = pt.UserApi(api_client).get_user_by_screen_name_with_http_info(**kwargs) data = res.data.to_dict() - rate = match_rate(data, json.loads(res.raw_data)) + rate = match_rate( + data, + json.loads(res.raw_data), + res.data, + ) logger.info(f"Match rate: {rate}") screen_name = data["data"]["user"]["result"]["legacy"]["screen_name"] if not screen_name == "a810810931931": @@ -290,7 +300,11 @@ if __name__ == "__main__": res = pt.TweetApi(api_client).get_user_tweets_with_http_info(**kwargs) data = res.data.to_dict() - rate = match_rate(data, json.loads(res.raw_data)) + rate = match_rate( + data, + json.loads(res.raw_data), + res.data, + ) logger.info(f"Match rate: {rate}") except Exception as e: @@ -309,7 +323,11 @@ if __name__ == "__main__": res = pt.TweetApi(api_client).get_tweet_detail_with_http_info(**kwargs) data = res.data.to_dict() - rate = match_rate(data, json.loads(res.raw_data)) + rate = match_rate( + data, + json.loads(res.raw_data), + res.data, + ) logger.info(f"Match rate: {rate}") except Exception as e: error_dump(e) From 755990f3d0910933ebec35ce06ac5b68be9d35f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=B5=E3=81=81?= Date: Sun, 11 Feb 2024 20:36:47 +0900 Subject: [PATCH 09/12] update schema MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: ふぁ --- .vscode/launch.json | 2 +- src/openapi/schemas/content.yaml | 13 ++++- src/openapi/schemas/tweet.yaml | 97 +++++++++++++++++++++++++++++++ src/openapi/schemas/typename.yaml | 1 + src/openapi/schemas/user.yaml | 4 +- 5 files changed, 113 insertions(+), 4 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 8803a22..15a4bcc 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -28,7 +28,7 @@ "env": { "ERROR_UNCATCHED": "True", "STRICT_MODE": "True", - "MULTI_THREAD": "False" + "MULTI_THREAD": "True" } } ] diff --git a/src/openapi/schemas/content.yaml b/src/openapi/schemas/content.yaml index edc31f5..9efe424 100644 --- a/src/openapi/schemas/content.yaml +++ b/src/openapi/schemas/content.yaml @@ -77,6 +77,8 @@ components: metadata: type: object additionalProperties: true # todo + feedbackInfo: + $ref: "#/components/schemas/FeedbackInfo" TimelineTimelineCursor: required: @@ -131,6 +133,15 @@ components: itemContent: $ref: "#/components/schemas/ItemContentUnion" + FeedbackInfo: + required: + - "feedbackType" + properties: + feedbackKeys: + type: array + items: + type: string + # ================= ContentItem ================= ItemContentUnion: @@ -218,7 +229,7 @@ components: properties: contextType: type: string # enum - enum: ["Follow"] + enum: ["Follow", "Pin"] text: type: string type: diff --git a/src/openapi/schemas/tweet.yaml b/src/openapi/schemas/tweet.yaml index 4d84b53..9f55f00 100644 --- a/src/openapi/schemas/tweet.yaml +++ b/src/openapi/schemas/tweet.yaml @@ -32,6 +32,85 @@ components: limitedActionResults: type: object additionalProperties: true # todo + tweetInterstitial: + $ref: "#/components/schemas/TweetInterstitial" + + # {'__typename': 'ContextualTweetInterstitial', 'displayType': 'NonCompliant', 'text': {'rtl': False, 'text': 'This Post violated the X Rules. However, X has determined that it may be in the public’s interest for the Post to remain accessible. Learn more', 'entities': [{'fromIndex': 133, 'toIndex': 143, 'ref': {'type': 'TimelineUrl', 'url': 'https://help.twitter.com/rules-and-policies/public-interest', 'urlType': 'ExternalUrl'}}]}, 'revealText': {'rtl': False, 'text': 'View', 'entities': []}} + TweetInterstitial: + required: + - "__typename" + - "displayType" + - "text" + - "revealText" + properties: + __typename: + $ref: "./typename.yaml#/components/schemas/TypeName" # ContextualTweetInterstitial + displayType: + type: string + enum: [NonCompliant] + text: + $ref: "#/components/schemas/TweetInterstitialText" + revealText: + $ref: "#/components/schemas/TweetInterstitialRevealText" + + TweetInterstitialText: + required: + - "rtl" + - "text" + - "entities" + properties: + rtl: + type: boolean + text: + type: string + entities: + type: array + items: + $ref: "#/components/schemas/TweetInterstitialTextEntity" + + TweetInterstitialTextEntity: + required: + - "fromIndex" + - "toIndex" + - "ref" + properties: + fromIndex: + type: integer + toIndex: + type: integer + ref: + $ref: "#/components/schemas/TweetInterstitialTextEntityRef" + + TweetInterstitialTextEntityRef: + required: + - "type" + - "url" + - "urlType" + properties: + type: + type: string + enum: [TimelineUrl] + url: + type: string + format: uri + urlType: + type: string + enum: [ExternalUrl] + + TweetInterstitialRevealText: + required: + - "rtl" + - "text" + - "entities" + properties: + rtl: + type: boolean + text: + type: string + entities: + type: array + items: + $ref: "#/components/schemas/TweetInterstitialTextEntity" TweetTombstone: #remove tweet properties: @@ -557,6 +636,8 @@ components: iconType: type: string enum: [BirdwatchV1Icon] + callToAction: + $ref: "#/components/schemas/BirdwatchPivotCallToAction" BirdwatchPivotFooter: required: @@ -619,6 +700,21 @@ components: items: $ref: "#/components/schemas/BirdwatchEntity" + BirdwatchPivotCallToAction: + # {'prompt': 'Do you find this helpful?', 'title': 'Rate it', 'destinationUrl': 'https://twitter.com/i/birdwatch/n/1710821689636934115'} + required: + - "prompt" + - "title" + - "destinationUrl" + properties: + prompt: + type: string + title: + type: string + destinationUrl: + type: string + format: uri + TweetCard: properties: rest_id: @@ -833,6 +929,7 @@ components: - "limited_replies" - "community_tweet_non_member_public_community" - "non_compliant" + - "dynamic_product_ad" place: additionalProperties: true # todo diff --git a/src/openapi/schemas/typename.yaml b/src/openapi/schemas/typename.yaml index 78b66d3..c5a15c7 100644 --- a/src/openapi/schemas/typename.yaml +++ b/src/openapi/schemas/typename.yaml @@ -14,6 +14,7 @@ components: TimelineUser, TimelineTimelineCursor, TweetWithVisibilityResults, + ContextualTweetInterstitial, TimelineTimelineModule, TweetTombstone, TimelinePrompt, diff --git a/src/openapi/schemas/user.yaml b/src/openapi/schemas/user.yaml index d43d695..e2003b1 100644 --- a/src/openapi/schemas/user.yaml +++ b/src/openapi/schemas/user.yaml @@ -89,6 +89,8 @@ components: type: integer verification_info: $ref: "#/components/schemas/UserVerificationInfo" + is_profile_translatable: + type: boolean UserProfessional: required: @@ -133,8 +135,6 @@ components: UserVerificationInfo: required: - "is_identity_verified" - - "reason" - properties: is_identity_verified: type: boolean From d1033902712128f75f12689767d792eaf6d34e15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=B5=E3=81=81?= Date: Sun, 11 Feb 2024 20:38:25 +0900 Subject: [PATCH 10/12] build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: ふぁ --- dist/compatible/openapi-3.0.yaml | 107 ++++++++++++++++++++++++++++++- dist/docs/openapi-3.0.yaml | 107 ++++++++++++++++++++++++++++++- 2 files changed, 212 insertions(+), 2 deletions(-) diff --git a/dist/compatible/openapi-3.0.yaml b/dist/compatible/openapi-3.0.yaml index 3ac3dbe..8bf5033 100644 --- a/dist/compatible/openapi-3.0.yaml +++ b/dist/compatible/openapi-3.0.yaml @@ -72,6 +72,8 @@ components: - urlType BirdwatchPivot: properties: + callToAction: + $ref: '#/components/schemas/BirdwatchPivotCallToAction' destinationUrl: format: uri type: string @@ -101,6 +103,19 @@ components: - title - shorttitle - iconType + BirdwatchPivotCallToAction: + properties: + destinationUrl: + format: uri + type: string + prompt: + type: string + title: + type: string + required: + - prompt + - title + - destinationUrl BirdwatchPivotFooter: properties: entities: @@ -680,6 +695,14 @@ components: $ref: '#/components/schemas/FavoriteTweet' required: - data + FeedbackInfo: + properties: + feedbackKeys: + items: + type: string + type: array + required: + - feedbackType FollowResponse: properties: data: @@ -1302,6 +1325,7 @@ components: contextType: enum: - Follow + - Pin type: string landingUrl: $ref: '#/components/schemas/SocialContextLandingUrl' @@ -1660,6 +1684,8 @@ components: type: string entryType: $ref: '#/components/schemas/ContentEntryType' + feedbackInfo: + $ref: '#/components/schemas/FeedbackInfo' footer: additionalProperties: true type: object @@ -1959,6 +1985,80 @@ components: $ref: '#/components/schemas/TimelineV2' required: - favoriters_timeline + TweetInterstitial: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + displayType: + enum: + - NonCompliant + type: string + revealText: + $ref: '#/components/schemas/TweetInterstitialRevealText' + text: + $ref: '#/components/schemas/TweetInterstitialText' + required: + - __typename + - displayType + - text + - revealText + TweetInterstitialRevealText: + properties: + entities: + items: + $ref: '#/components/schemas/TweetInterstitialTextEntity' + type: array + rtl: + type: boolean + text: + type: string + required: + - rtl + - text + - entities + TweetInterstitialText: + properties: + entities: + items: + $ref: '#/components/schemas/TweetInterstitialTextEntity' + type: array + rtl: + type: boolean + text: + type: string + required: + - rtl + - text + - entities + TweetInterstitialTextEntity: + properties: + fromIndex: + type: integer + ref: + $ref: '#/components/schemas/TweetInterstitialTextEntityRef' + toIndex: + type: integer + required: + - fromIndex + - toIndex + - ref + TweetInterstitialTextEntityRef: + properties: + type: + enum: + - TimelineUrl + type: string + url: + format: uri + type: string + urlType: + enum: + - ExternalUrl + type: string + required: + - type + - url + - urlType TweetLegacy: properties: bookmark_count: @@ -2006,6 +2106,7 @@ components: - limited_replies - community_tweet_non_member_public_community - non_compliant + - dynamic_product_ad type: string place: additionalProperties: true @@ -2139,6 +2240,8 @@ components: type: object tweet: $ref: '#/components/schemas/Tweet' + tweetInterstitial: + $ref: '#/components/schemas/TweetInterstitial' required: - __typename - tweet @@ -2156,6 +2259,7 @@ components: - TimelineUser - TimelineTimelineCursor - TweetWithVisibilityResults + - ContextualTweetInterstitial - TimelineTimelineModule - TweetTombstone - TimelinePrompt @@ -2260,6 +2364,8 @@ components: is_blue_verified: default: false type: boolean + is_profile_translatable: + type: boolean legacy: $ref: '#/components/schemas/UserLegacy' professional: @@ -2657,7 +2763,6 @@ components: $ref: '#/components/schemas/UserVerificationInfoReason' required: - is_identity_verified - - reason UserVerificationInfoReason: properties: description: diff --git a/dist/docs/openapi-3.0.yaml b/dist/docs/openapi-3.0.yaml index 3830361..c005c57 100644 --- a/dist/docs/openapi-3.0.yaml +++ b/dist/docs/openapi-3.0.yaml @@ -72,6 +72,8 @@ components: - urlType BirdwatchPivot: properties: + callToAction: + $ref: '#/components/schemas/BirdwatchPivotCallToAction' destinationUrl: format: uri type: string @@ -101,6 +103,19 @@ components: - title - shorttitle - iconType + BirdwatchPivotCallToAction: + properties: + destinationUrl: + format: uri + type: string + prompt: + type: string + title: + type: string + required: + - prompt + - title + - destinationUrl BirdwatchPivotFooter: properties: entities: @@ -680,6 +695,14 @@ components: $ref: '#/components/schemas/FavoriteTweet' required: - data + FeedbackInfo: + properties: + feedbackKeys: + items: + type: string + type: array + required: + - feedbackType FollowResponse: properties: data: @@ -1302,6 +1325,7 @@ components: contextType: enum: - Follow + - Pin type: string landingUrl: $ref: '#/components/schemas/SocialContextLandingUrl' @@ -1660,6 +1684,8 @@ components: type: string entryType: $ref: '#/components/schemas/ContentEntryType' + feedbackInfo: + $ref: '#/components/schemas/FeedbackInfo' footer: additionalProperties: true type: object @@ -1959,6 +1985,80 @@ components: $ref: '#/components/schemas/TimelineV2' required: - favoriters_timeline + TweetInterstitial: + properties: + __typename: + $ref: '#/components/schemas/TypeName' + displayType: + enum: + - NonCompliant + type: string + revealText: + $ref: '#/components/schemas/TweetInterstitialRevealText' + text: + $ref: '#/components/schemas/TweetInterstitialText' + required: + - __typename + - displayType + - text + - revealText + TweetInterstitialRevealText: + properties: + entities: + items: + $ref: '#/components/schemas/TweetInterstitialTextEntity' + type: array + rtl: + type: boolean + text: + type: string + required: + - rtl + - text + - entities + TweetInterstitialText: + properties: + entities: + items: + $ref: '#/components/schemas/TweetInterstitialTextEntity' + type: array + rtl: + type: boolean + text: + type: string + required: + - rtl + - text + - entities + TweetInterstitialTextEntity: + properties: + fromIndex: + type: integer + ref: + $ref: '#/components/schemas/TweetInterstitialTextEntityRef' + toIndex: + type: integer + required: + - fromIndex + - toIndex + - ref + TweetInterstitialTextEntityRef: + properties: + type: + enum: + - TimelineUrl + type: string + url: + format: uri + type: string + urlType: + enum: + - ExternalUrl + type: string + required: + - type + - url + - urlType TweetLegacy: properties: bookmark_count: @@ -2006,6 +2106,7 @@ components: - limited_replies - community_tweet_non_member_public_community - non_compliant + - dynamic_product_ad type: string place: additionalProperties: true @@ -2139,6 +2240,8 @@ components: type: object tweet: $ref: '#/components/schemas/Tweet' + tweetInterstitial: + $ref: '#/components/schemas/TweetInterstitial' required: - __typename - tweet @@ -2156,6 +2259,7 @@ components: - TimelineUser - TimelineTimelineCursor - TweetWithVisibilityResults + - ContextualTweetInterstitial - TimelineTimelineModule - TweetTombstone - TimelinePrompt @@ -2260,6 +2364,8 @@ components: is_blue_verified: default: false type: boolean + is_profile_translatable: + type: boolean legacy: $ref: '#/components/schemas/UserLegacy' professional: @@ -2657,7 +2763,6 @@ components: $ref: '#/components/schemas/UserVerificationInfoReason' required: - is_identity_verified - - reason UserVerificationInfoReason: properties: description: From 44772ab7b5129b3c80bb36e76454e80fbae744b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=B5=E3=81=81?= Date: Tue, 13 Feb 2024 00:16:51 +0900 Subject: [PATCH 11/12] Add retry_after property to error response and update SocialContext schema MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: ふぁ --- src/openapi/response/error.yaml | 3 ++ src/openapi/schemas/content.yaml | 60 ++++++++++++++++++++++++++++---- src/openapi/schemas/user.yaml | 1 + 3 files changed, 57 insertions(+), 7 deletions(-) diff --git a/src/openapi/response/error.yaml b/src/openapi/response/error.yaml index 817edb6..d285ce1 100644 --- a/src/openapi/response/error.yaml +++ b/src/openapi/response/error.yaml @@ -32,6 +32,7 @@ components: - kind - name - source + - retry_after - tracing properties: message: @@ -54,6 +55,8 @@ components: type: string source: type: string + retry_after: + type: integer tracing: $ref: "#/components/schemas/Tracing" diff --git a/src/openapi/schemas/content.yaml b/src/openapi/schemas/content.yaml index 9efe424..4e500b5 100644 --- a/src/openapi/schemas/content.yaml +++ b/src/openapi/schemas/content.yaml @@ -191,7 +191,7 @@ components: tweet_results: $ref: "#/components/schemas/ItemResult" socialContext: - $ref: "#/components/schemas/SocialContext" + $ref: "#/components/schemas/SocialContextUnion" promotedMetadata: type: object additionalProperties: true # todo @@ -210,7 +210,7 @@ components: itemType: $ref: "#/components/schemas/ContentItemType" # TimelineUser socialContext: - $ref: "#/components/schemas/SocialContext" + $ref: "#/components/schemas/SocialContextUnion" userDisplayType: type: string enum: [User, UserDetailed, SubscribableUser] @@ -224,20 +224,66 @@ components: result: $ref: "./tweet.yaml#/components/schemas/TweetUnion" - SocialContext: + SocialContextUnion: + oneOf: + - $ref: "#/components/schemas/TimelineGeneralContext" + - $ref: "#/components/schemas/TimelineTopicContext" + discriminator: + propertyName: type + mapping": # deprecated + TimelineGeneralContext: "#/components/schemas/TimelineGeneralContext" + TimelineTopicContext: "#/components/schemas/TimelineTopicContext" + + SocialContextUnionType: + type: string + enum: + - TimelineGeneralContext + - TimelineTopicContext + + + TimelineGeneralContext: type: object properties: + type: + $ref: "#/components/schemas/SocialContextUnionType" contextType: type: string # enum - enum: ["Follow", "Pin"] + enum: ["Follow", "Pin", "Like", "Location", "Sparkle"] text: type: string - type: - type: string # enum - enum: ["TimelineGeneralContext"] landingUrl: $ref: "#/components/schemas/SocialContextLandingUrl" + TimelineTopicContext: + type: object + properties: + type: + $ref: "#/components/schemas/SocialContextUnionType" + topic: + $ref: "#/components/schemas/TopicContext" + functionalityType: + type: string + enum: ["Basic"] + + TopicContext: + type: object + properties: + id: + type: string + topic_id: + type: string + name: + type: string + description: + type: string + icon_url: + type: string + format: uri + following: + type: boolean + not_interested: + type: boolean + SocialContextLandingUrl: type: object properties: diff --git a/src/openapi/schemas/user.yaml b/src/openapi/schemas/user.yaml index e2003b1..67eb29e 100644 --- a/src/openapi/schemas/user.yaml +++ b/src/openapi/schemas/user.yaml @@ -79,6 +79,7 @@ components: enum: - "Circle" - "Square" + - "Hexagon" professional: $ref: "#/components/schemas/UserProfessional" user_seed_tweet_count: From 8485d1faa63fd200b7398062abfdebce711bcb92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=B5=E3=81=81?= Date: Tue, 13 Feb 2024 00:17:08 +0900 Subject: [PATCH 12/12] build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: ふぁ --- dist/compatible/openapi-3.0.yaml | 81 +++++++++++++++++++++++++------- dist/docs/openapi-3.0.yaml | 81 +++++++++++++++++++++++++------- 2 files changed, 126 insertions(+), 36 deletions(-) diff --git a/dist/compatible/openapi-3.0.yaml b/dist/compatible/openapi-3.0.yaml index 8bf5033..d06c9f6 100644 --- a/dist/compatible/openapi-3.0.yaml +++ b/dist/compatible/openapi-3.0.yaml @@ -1320,22 +1320,6 @@ components: - userFeatures - isSuperFollowSubscriber type: object - SocialContext: - properties: - contextType: - enum: - - Follow - - Pin - type: string - landingUrl: - $ref: '#/components/schemas/SocialContextLandingUrl' - text: - type: string - type: - enum: - - TimelineGeneralContext - type: string - type: object SocialContextLandingUrl: properties: url: @@ -1349,6 +1333,20 @@ components: urtEndpointOptions: $ref: '#/components/schemas/UrtEndpointOptions' type: object + SocialContextUnion: + discriminator: + mapping": + TimelineGeneralContext: '#/components/schemas/TimelineGeneralContext' + TimelineTopicContext: '#/components/schemas/TimelineTopicContext' + propertyName: type + oneOf: + - $ref: '#/components/schemas/TimelineGeneralContext' + - $ref: '#/components/schemas/TimelineTopicContext' + SocialContextUnionType: + enum: + - TimelineGeneralContext + - TimelineTopicContext + type: string SuperFollowsReplyUserResult: properties: result: @@ -1497,6 +1495,23 @@ components: type: string required: - type + TimelineGeneralContext: + properties: + contextType: + enum: + - Follow + - Pin + - Like + - Location + - Sparkle + type: string + landingUrl: + $ref: '#/components/schemas/SocialContextLandingUrl' + text: + type: string + type: + $ref: '#/components/schemas/SocialContextUnionType' + type: object TimelineHalfCover: properties: dismissible: @@ -1704,6 +1719,17 @@ components: - entryType - displayType - clientEventInfo + TimelineTopicContext: + properties: + functionalityType: + enum: + - Basic + type: string + topic: + $ref: '#/components/schemas/TopicContext' + type: + $ref: '#/components/schemas/SocialContextUnionType' + type: object TimelineTweet: properties: __typename: @@ -1716,7 +1742,7 @@ components: additionalProperties: true type: object socialContext: - $ref: '#/components/schemas/SocialContext' + $ref: '#/components/schemas/SocialContextUnion' tweetDisplayType: type: string tweet_results: @@ -1733,7 +1759,7 @@ components: itemType: $ref: '#/components/schemas/ContentItemType' socialContext: - $ref: '#/components/schemas/SocialContext' + $ref: '#/components/schemas/SocialContextUnion' userDisplayType: enum: - User @@ -1753,6 +1779,24 @@ components: $ref: '#/components/schemas/Timeline' required: - timeline + TopicContext: + properties: + description: + type: string + following: + type: boolean + icon_url: + format: uri + type: string + id: + type: string + name: + type: string + not_interested: + type: boolean + topic_id: + type: string + type: object Tracing: properties: trace_id: @@ -2374,6 +2418,7 @@ components: enum: - Circle - Square + - Hexagon type: string rest_id: pattern: ^[0-9]+$ diff --git a/dist/docs/openapi-3.0.yaml b/dist/docs/openapi-3.0.yaml index c005c57..8f8ecd0 100644 --- a/dist/docs/openapi-3.0.yaml +++ b/dist/docs/openapi-3.0.yaml @@ -1320,22 +1320,6 @@ components: - userFeatures - isSuperFollowSubscriber type: object - SocialContext: - properties: - contextType: - enum: - - Follow - - Pin - type: string - landingUrl: - $ref: '#/components/schemas/SocialContextLandingUrl' - text: - type: string - type: - enum: - - TimelineGeneralContext - type: string - type: object SocialContextLandingUrl: properties: url: @@ -1349,6 +1333,20 @@ components: urtEndpointOptions: $ref: '#/components/schemas/UrtEndpointOptions' type: object + SocialContextUnion: + discriminator: + mapping": + TimelineGeneralContext: '#/components/schemas/TimelineGeneralContext' + TimelineTopicContext: '#/components/schemas/TimelineTopicContext' + propertyName: type + oneOf: + - $ref: '#/components/schemas/TimelineGeneralContext' + - $ref: '#/components/schemas/TimelineTopicContext' + SocialContextUnionType: + enum: + - TimelineGeneralContext + - TimelineTopicContext + type: string SuperFollowsReplyUserResult: properties: result: @@ -1497,6 +1495,23 @@ components: type: string required: - type + TimelineGeneralContext: + properties: + contextType: + enum: + - Follow + - Pin + - Like + - Location + - Sparkle + type: string + landingUrl: + $ref: '#/components/schemas/SocialContextLandingUrl' + text: + type: string + type: + $ref: '#/components/schemas/SocialContextUnionType' + type: object TimelineHalfCover: properties: dismissible: @@ -1704,6 +1719,17 @@ components: - entryType - displayType - clientEventInfo + TimelineTopicContext: + properties: + functionalityType: + enum: + - Basic + type: string + topic: + $ref: '#/components/schemas/TopicContext' + type: + $ref: '#/components/schemas/SocialContextUnionType' + type: object TimelineTweet: properties: __typename: @@ -1716,7 +1742,7 @@ components: additionalProperties: true type: object socialContext: - $ref: '#/components/schemas/SocialContext' + $ref: '#/components/schemas/SocialContextUnion' tweetDisplayType: type: string tweet_results: @@ -1733,7 +1759,7 @@ components: itemType: $ref: '#/components/schemas/ContentItemType' socialContext: - $ref: '#/components/schemas/SocialContext' + $ref: '#/components/schemas/SocialContextUnion' userDisplayType: enum: - User @@ -1753,6 +1779,24 @@ components: $ref: '#/components/schemas/Timeline' required: - timeline + TopicContext: + properties: + description: + type: string + following: + type: boolean + icon_url: + format: uri + type: string + id: + type: string + name: + type: string + not_interested: + type: boolean + topic_id: + type: string + type: object Tracing: properties: trace_id: @@ -2374,6 +2418,7 @@ components: enum: - Circle - Square + - Hexagon type: string rest_id: pattern: ^[0-9]+$