From 295edb55aa4c72be0dee9cbb7b9b9458ced64ee6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=B5=E3=81=81?= Date: Thu, 27 Apr 2023 21:01:38 +0900 Subject: [PATCH] build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: ふぁ --- dist/dart/paths/bookmarks.yaml | 26 +- dist/dart/paths/follow.yaml | 54 +- dist/dart/paths/post.yaml | 330 +++++----- dist/dart/paths/profile.yaml | 16 +- dist/dart/paths/timeline.yaml | 80 ++- dist/dart/paths/tweet.yaml | 29 +- dist/dart/paths/user.yaml | 18 +- dist/dart/paths/usertweets.yaml | 111 +++- dist/dart/response/error.yaml | 90 +++ dist/dart/schemas/post.yaml | 60 -- dist/docs/openapi-3.0.yaml | 110 ++++ dist/docs/paths/bookmarks.yaml | 208 +++++++ dist/docs/paths/follow.yaml | 406 +++++++++++++ dist/docs/paths/post.yaml | 639 ++++++++++++++++++++ dist/docs/paths/profile.yaml | 141 +++++ dist/docs/paths/timeline.yaml | 608 +++++++++++++++++++ dist/docs/paths/tweet.yaml | 227 +++++++ dist/docs/paths/user.yaml | 127 ++++ dist/docs/paths/usertweets.yaml | 836 ++++++++++++++++++++++++++ dist/docs/response/error.yaml | 90 +++ dist/docs/schemas/content.yaml | 182 ++++++ dist/docs/schemas/general.yaml | 13 + dist/docs/schemas/instruction.yaml | 83 +++ dist/docs/schemas/timeline.yaml | 25 + dist/docs/schemas/tweet.yaml | 252 ++++++++ dist/docs/schemas/typename.yaml | 19 + dist/docs/schemas/user.yaml | 206 +++++++ dist/test/openapi-3.0.yaml | 110 ++++ dist/test/paths/bookmarks.yaml | 114 ++++ dist/test/paths/follow.yaml | 222 +++++++ dist/test/paths/post.yaml | 426 +++++++++++++ dist/test/paths/profile.yaml | 132 ++++ dist/test/paths/timeline.yaml | 320 ++++++++++ dist/test/paths/tweet.yaml | 114 ++++ dist/test/paths/user.yaml | 92 +++ dist/test/paths/usertweets.yaml | 404 +++++++++++++ dist/test/response/error.yaml | 90 +++ dist/test/schemas/content.yaml | 182 ++++++ dist/test/schemas/general.yaml | 13 + dist/test/schemas/instruction.yaml | 83 +++ dist/test/schemas/timeline.yaml | 25 + dist/test/schemas/tweet.yaml | 252 ++++++++ dist/test/schemas/typename.yaml | 19 + dist/test/schemas/user.yaml | 206 +++++++ dist/typescript/paths/bookmarks.yaml | 26 +- dist/typescript/paths/follow.yaml | 54 +- dist/typescript/paths/post.yaml | 330 +++++----- dist/typescript/paths/profile.yaml | 16 +- dist/typescript/paths/timeline.yaml | 80 ++- dist/typescript/paths/tweet.yaml | 29 +- dist/typescript/paths/user.yaml | 18 +- dist/typescript/paths/usertweets.yaml | 111 +++- dist/typescript/response/error.yaml | 90 +++ dist/typescript/schemas/post.yaml | 60 -- 54 files changed, 8026 insertions(+), 578 deletions(-) create mode 100644 dist/dart/response/error.yaml delete mode 100644 dist/dart/schemas/post.yaml create mode 100644 dist/docs/openapi-3.0.yaml create mode 100644 dist/docs/paths/bookmarks.yaml create mode 100644 dist/docs/paths/follow.yaml create mode 100644 dist/docs/paths/post.yaml create mode 100644 dist/docs/paths/profile.yaml create mode 100644 dist/docs/paths/timeline.yaml create mode 100644 dist/docs/paths/tweet.yaml create mode 100644 dist/docs/paths/user.yaml create mode 100644 dist/docs/paths/usertweets.yaml create mode 100644 dist/docs/response/error.yaml create mode 100644 dist/docs/schemas/content.yaml create mode 100644 dist/docs/schemas/general.yaml create mode 100644 dist/docs/schemas/instruction.yaml create mode 100644 dist/docs/schemas/timeline.yaml create mode 100644 dist/docs/schemas/tweet.yaml create mode 100644 dist/docs/schemas/typename.yaml create mode 100644 dist/docs/schemas/user.yaml create mode 100644 dist/test/openapi-3.0.yaml create mode 100644 dist/test/paths/bookmarks.yaml create mode 100644 dist/test/paths/follow.yaml create mode 100644 dist/test/paths/post.yaml create mode 100644 dist/test/paths/profile.yaml create mode 100644 dist/test/paths/timeline.yaml create mode 100644 dist/test/paths/tweet.yaml create mode 100644 dist/test/paths/user.yaml create mode 100644 dist/test/paths/usertweets.yaml create mode 100644 dist/test/response/error.yaml create mode 100644 dist/test/schemas/content.yaml create mode 100644 dist/test/schemas/general.yaml create mode 100644 dist/test/schemas/instruction.yaml create mode 100644 dist/test/schemas/timeline.yaml create mode 100644 dist/test/schemas/tweet.yaml create mode 100644 dist/test/schemas/typename.yaml create mode 100644 dist/test/schemas/user.yaml create mode 100644 dist/typescript/response/error.yaml delete mode 100644 dist/typescript/schemas/post.yaml diff --git a/dist/dart/paths/bookmarks.yaml b/dist/dart/paths/bookmarks.yaml index ce54918..bc30175 100644 --- a/dist/dart/paths/bookmarks.yaml +++ b/dist/dart/paths/bookmarks.yaml @@ -28,16 +28,35 @@ paths: description: get bookmarks operationId: getBookmarks parameters: + - in: query + name: queryId + required: true + schema: + default: tmd4ifV8RHltzn8ymGg1aw + example: tmd4ifV8RHltzn8ymGg1aw + type: string - in: query name: variables required: true schema: + default: '{"count": 20, "includePromotedContent": true}' example: '{"count": 20, "includePromotedContent": true}' type: string - in: query name: features required: true schema: + default: '{"graphql_timeline_v2_bookmark_timeline": true, "blue_business_profile_image_shape_enabled": + true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": + false, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' example: '{"graphql_timeline_v2_bookmark_timeline": true, "blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": @@ -50,13 +69,6 @@ paths: false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": false}' type: string - - in: query - name: queryId - required: true - schema: - default: tmd4ifV8RHltzn8ymGg1aw - example: tmd4ifV8RHltzn8ymGg1aw - type: string - in: header name: authorization required: true diff --git a/dist/dart/paths/follow.yaml b/dist/dart/paths/follow.yaml index aace2c3..77a4ff0 100644 --- a/dist/dart/paths/follow.yaml +++ b/dist/dart/paths/follow.yaml @@ -43,10 +43,19 @@ paths: description: get user list of following operationId: getFollowing parameters: + - in: query + name: queryId + required: true + schema: + default: IWP6Zt14sARO29lJT35bBw + example: IWP6Zt14sARO29lJT35bBw + type: string - in: query name: variables required: true schema: + default: '{"userId": "44196397", "count": 20, "includePromotedContent": + false}' example: '{"userId": "44196397", "count": 20, "includePromotedContent": false}' type: string @@ -54,6 +63,17 @@ paths: name: features required: true schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": @@ -66,13 +86,6 @@ paths: false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": false}' type: string - - in: query - name: queryId - required: true - schema: - default: IWP6Zt14sARO29lJT35bBw - example: IWP6Zt14sARO29lJT35bBw - type: string - in: header name: authorization required: true @@ -150,10 +163,19 @@ paths: description: get user list of followers operationId: getFollowers parameters: + - in: query + name: queryId + required: true + schema: + default: djdTXDIk2qhd4OStqlUFeQ + example: djdTXDIk2qhd4OStqlUFeQ + type: string - in: query name: variables required: true schema: + default: '{"userId": "44196397", "count": 20, "includePromotedContent": + false}' example: '{"userId": "44196397", "count": 20, "includePromotedContent": false}' type: string @@ -161,6 +183,17 @@ paths: name: features required: true schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": @@ -173,13 +206,6 @@ paths: false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": false}' type: string - - in: query - name: queryId - required: true - schema: - default: djdTXDIk2qhd4OStqlUFeQ - example: djdTXDIk2qhd4OStqlUFeQ - type: string - in: header name: authorization required: true diff --git a/dist/dart/paths/post.yaml b/dist/dart/paths/post.yaml index ad507a8..65376a7 100644 --- a/dist/dart/paths/post.yaml +++ b/dist/dart/paths/post.yaml @@ -1,5 +1,13 @@ components: schemas: + CreateRetweet: + properties: + result: + items: + $ref: '#/components/schemas/Retweet' + type: object + required: + - result CreateRetweetResponse: properties: data: @@ -15,9 +23,15 @@ components: CreateRetweetResponseResult: properties: retweet_results: - $ref: ./../schemas/post.yaml#/components/schemas/CreateRetweet + $ref: '#/components/schemas/CreateRetweet' required: - retweet_results + CreateTweet: + properties: + result: + $ref: ./../schemas/tweet.yaml#/components/schemas/Tweet + required: + - result CreateTweetResponse: properties: data: @@ -26,16 +40,24 @@ components: - data CreateTweetResponseData: properties: - create_retweet: + create_tweet: $ref: '#/components/schemas/CreateTweetResponseResult' required: - create_tweet CreateTweetResponseResult: properties: tweet_results: - $ref: ./../schemas/post.yaml#/components/schemas/CreateTweet + $ref: '#/components/schemas/CreateTweet' required: - tweet_results + DeleteRetweet: + properties: + result: + items: + $ref: '#/components/schemas/Retweet' + type: object + required: + - result DeleteRetweetResponse: properties: data: @@ -51,7 +73,7 @@ components: DeleteRetweetResponseResult: properties: retweet_results: - $ref: ./../schemas/post.yaml#/components/schemas/DeleteRetweet + $ref: '#/components/schemas/DeleteRetweet' required: - source_tweet_results DeleteTweetResponse: @@ -69,19 +91,44 @@ components: DeleteTweetResponseResult: properties: tweet_results: - $ref: ./../schemas/post.yaml#/components/schemas/DeleteTweet + type: object required: - tweet_results + FavoriteTweet: + properties: + favorite_tweet: + type: string + required: + - favorite_tweet FavoriteTweetResponseData: properties: data: - $ref: ./../schemas/post.yaml#/components/schemas/FavoriteTweet + $ref: '#/components/schemas/FavoriteTweet' required: - data + Retweet: + properties: + legacy: + items: + properties: + full_text: + type: string + type: object + rest_id: + type: string + required: + - rest_id + - legacy + UnfavoriteTweet: + properties: + unfavorite_tweet: + type: string + required: + - unfavorite_tweet UnfavoriteTweetResponseData: properties: data: - $ref: ./../schemas/post.yaml#/components/schemas/UnfavoriteTweet + $ref: '#/components/schemas/UnfavoriteTweet' required: - data info: @@ -92,38 +139,8 @@ paths: /1RyAhNwby-gzGCRVsMxKbQ/CreateTweet: post: description: create Tweet - operationId: createTweet + operationId: postCreateTweet parameters: - - in: query - name: variables - required: true - schema: - example: '{"tweet_text": "test", "media": {"media_entities": [], "possibly_sensitive": - false}, "semantic_annotation_ids": []}' - type: string - - in: query - name: features - required: true - schema: - example: '{"tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "interactive_text_enabled": - true, "responsive_web_text_conversations_enabled": false, "longform_notetweets_rich_text_read_enabled": - true, "blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": - true, "verified_phone_label_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": - true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_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 - - in: query - name: queryId - required: true - schema: - default: 1RyAhNwby-gzGCRVsMxKbQ - example: 1RyAhNwby-gzGCRVsMxKbQ - type: string - in: header name: authorization required: true @@ -153,6 +170,38 @@ paths: like Gecko) Chrome/112.0.0.0 Safari/537.36 description: UserAgent, some APIs may be rejected if changed. type: string + requestBody: + content: + application/json: + schema: + properties: + features: + example: '{"tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "interactive_text_enabled": + true, "responsive_web_text_conversations_enabled": false, "longform_notetweets_rich_text_read_enabled": + true, "blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_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: object + queryId: + default: 1RyAhNwby-gzGCRVsMxKbQ + example: 1RyAhNwby-gzGCRVsMxKbQ + type: string + variables: + example: '{"tweet_text": "test", "media": {"media_entities": [], + "possibly_sensitive": false}, "semantic_annotation_ids": [], "dark_request": + false}' + type: object + required: + - queryId + - variables + - features + required: true responses: '200': content: @@ -199,27 +248,8 @@ paths: /VaenaVgh5q5ih7kvyVjgtg/DeleteTweet: post: description: delete Retweet - operationId: deleteTweet + operationId: postDeleteTweet parameters: - - in: query - name: variables - required: true - schema: - example: '{"tweet_id": "1349129669258448897"}' - type: string - - in: query - name: features - required: true - schema: - example: '{}' - type: string - - in: query - name: queryId - required: true - schema: - default: VaenaVgh5q5ih7kvyVjgtg - example: VaenaVgh5q5ih7kvyVjgtg - type: string - in: header name: authorization required: true @@ -249,6 +279,26 @@ paths: like Gecko) Chrome/112.0.0.0 Safari/537.36 description: UserAgent, some APIs may be rejected if changed. type: string + requestBody: + content: + application/json: + schema: + properties: + features: + example: '{{Features}}' + type: object + queryId: + default: VaenaVgh5q5ih7kvyVjgtg + example: VaenaVgh5q5ih7kvyVjgtg + type: string + variables: + example: '{"tweet_id": "1349129669258448897"}' + type: object + required: + - queryId + - variables + - features + required: true responses: '200': content: @@ -295,27 +345,8 @@ paths: /ZYKSe-w7KEslx3JhSIk5LA/UnfavoriteTweet: post: description: unfavorite Tweet - operationId: unfavoriteTweet + operationId: postUnfavoriteTweet parameters: - - in: query - name: variables - required: true - schema: - example: '{"tweet_id": "1349129669258448897"}' - type: string - - in: query - name: features - required: true - schema: - example: '{}' - type: string - - in: query - name: queryId - required: true - schema: - default: ZYKSe-w7KEslx3JhSIk5LA - example: ZYKSe-w7KEslx3JhSIk5LA - type: string - in: header name: authorization required: true @@ -345,6 +376,26 @@ paths: like Gecko) Chrome/112.0.0.0 Safari/537.36 description: UserAgent, some APIs may be rejected if changed. type: string + requestBody: + content: + application/json: + schema: + properties: + features: + example: '{{Features}}' + type: object + queryId: + default: ZYKSe-w7KEslx3JhSIk5LA + example: ZYKSe-w7KEslx3JhSIk5LA + type: string + variables: + example: '{"tweet_id": "1349129669258448897"}' + type: object + required: + - queryId + - variables + - features + required: true responses: '200': content: @@ -391,27 +442,8 @@ paths: /iQtK4dl5hBmXewYZuEOKVw/DeleteRetweet: post: description: delete Retweet - operationId: deleteRetweet + operationId: postDeleteRetweet parameters: - - in: query - name: variables - required: true - schema: - example: '{"tweet_id": "1349129669258448897"}' - type: string - - in: query - name: features - required: true - schema: - example: '{}' - type: string - - in: query - name: queryId - required: true - schema: - default: iQtK4dl5hBmXewYZuEOKVw - example: iQtK4dl5hBmXewYZuEOKVw - type: string - in: header name: authorization required: true @@ -441,6 +473,26 @@ paths: like Gecko) Chrome/112.0.0.0 Safari/537.36 description: UserAgent, some APIs may be rejected if changed. type: string + requestBody: + content: + application/json: + schema: + properties: + features: + example: '{{Features}}' + type: object + queryId: + default: iQtK4dl5hBmXewYZuEOKVw + example: iQtK4dl5hBmXewYZuEOKVw + type: string + variables: + example: '{"tweet_id": "1349129669258448897"}' + type: object + required: + - queryId + - variables + - features + required: true responses: '200': content: @@ -487,27 +539,8 @@ paths: /lI07N6Otwv1PhnEgXILM7A/FavoriteTweet: post: description: favorite Tweet - operationId: favoriteTweet + operationId: postFavoriteTweet parameters: - - in: query - name: variables - required: true - schema: - example: '{"tweet_id": "1349129669258448897"}' - type: string - - in: query - name: features - required: true - schema: - example: '{}' - type: string - - in: query - name: queryId - required: true - schema: - default: lI07N6Otwv1PhnEgXILM7A - example: lI07N6Otwv1PhnEgXILM7A - type: string - in: header name: authorization required: true @@ -537,6 +570,26 @@ paths: like Gecko) Chrome/112.0.0.0 Safari/537.36 description: UserAgent, some APIs may be rejected if changed. type: string + requestBody: + content: + application/json: + schema: + properties: + features: + example: '{{Features}}' + type: object + queryId: + default: lI07N6Otwv1PhnEgXILM7A + example: lI07N6Otwv1PhnEgXILM7A + type: string + variables: + example: '{"tweet_id": "1349129669258448897"}' + type: object + required: + - queryId + - variables + - features + required: true responses: '200': content: @@ -583,27 +636,8 @@ paths: /ojPdsZsimiJrUGLR1sjUtA/CreateRetweet: post: description: create Retweet - operationId: createRetweet + operationId: postCreateRetweet parameters: - - in: query - name: variables - required: true - schema: - example: '{"tweet_id": "1349129669258448897"}' - type: string - - in: query - name: features - required: true - schema: - example: '{}' - type: string - - in: query - name: queryId - required: true - schema: - default: ojPdsZsimiJrUGLR1sjUtA - example: ojPdsZsimiJrUGLR1sjUtA - type: string - in: header name: authorization required: true @@ -633,6 +667,26 @@ paths: like Gecko) Chrome/112.0.0.0 Safari/537.36 description: UserAgent, some APIs may be rejected if changed. type: string + requestBody: + content: + application/json: + schema: + properties: + features: + example: '{{Features}}' + type: object + queryId: + default: ojPdsZsimiJrUGLR1sjUtA + example: ojPdsZsimiJrUGLR1sjUtA + type: string + variables: + example: '{"tweet_id": "1349129669258448897"}' + type: object + required: + - queryId + - variables + - features + required: true responses: '200': content: diff --git a/dist/dart/paths/profile.yaml b/dist/dart/paths/profile.yaml index 120c20c..67a1a46 100644 --- a/dist/dart/paths/profile.yaml +++ b/dist/dart/paths/profile.yaml @@ -68,25 +68,27 @@ paths: description: get user by screen name operationId: getProfileSpotlightsQuery parameters: + - in: query + name: queryId + required: true + schema: + default: 9zwVLJ48lmVUk8u_Gh9DmA + example: 9zwVLJ48lmVUk8u_Gh9DmA + type: string - in: query name: variables required: true schema: + default: '{"screen_name": "elonmusk"}' example: '{"screen_name": "elonmusk"}' type: string - in: query name: features required: true schema: + default: '{}' example: '{}' type: string - - in: query - name: queryId - required: true - schema: - default: 9zwVLJ48lmVUk8u_Gh9DmA - example: 9zwVLJ48lmVUk8u_Gh9DmA - type: string - in: header name: authorization required: true diff --git a/dist/dart/paths/timeline.yaml b/dist/dart/paths/timeline.yaml index a6fd7f8..e01a92a 100644 --- a/dist/dart/paths/timeline.yaml +++ b/dist/dart/paths/timeline.yaml @@ -52,16 +52,35 @@ paths: description: get tweet list of timeline operationId: getListLatestTweetsTimeline parameters: + - in: query + name: queryId + required: true + schema: + default: 2TemLyqrMpTeAmysdbnVqw + example: 2TemLyqrMpTeAmysdbnVqw + type: string - in: query name: variables required: true schema: + default: '{"listId": "53044119", "count": 20}' example: '{"listId": "53044119", "count": 20}' type: string - in: query name: features required: true schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": @@ -74,13 +93,6 @@ paths: false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": false}' type: string - - in: query - name: queryId - required: true - schema: - default: 2TemLyqrMpTeAmysdbnVqw - example: 2TemLyqrMpTeAmysdbnVqw - type: string - in: header name: authorization required: true @@ -158,10 +170,19 @@ paths: description: get tweet list of timeline operationId: getHomeTimeline parameters: + - in: query + name: queryId + required: true + schema: + default: HCosKfLNW1AcOo3la3mMgg + example: HCosKfLNW1AcOo3la3mMgg + type: string - in: query name: variables required: true schema: + default: '{"count": 20, "includePromotedContent": true, "latestControlAvailable": + true, "requestContext": "launch", "withCommunity": true}' example: '{"count": 20, "includePromotedContent": true, "latestControlAvailable": true, "requestContext": "launch", "withCommunity": true}' type: string @@ -169,6 +190,17 @@ paths: name: features required: true schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": @@ -181,13 +213,6 @@ paths: false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": false}' type: string - - in: query - name: queryId - required: true - schema: - default: HCosKfLNW1AcOo3la3mMgg - example: HCosKfLNW1AcOo3la3mMgg - type: string - in: header name: authorization required: true @@ -265,10 +290,19 @@ paths: description: get tweet list of timeline operationId: getHomeLatestTimeline parameters: + - in: query + name: queryId + required: true + schema: + default: zhX91JE87mWvfprhYE97xA + example: zhX91JE87mWvfprhYE97xA + type: string - in: query name: variables required: true schema: + default: '{"count": 20, "includePromotedContent": true, "latestControlAvailable": + true, "requestContext": "launch"}' example: '{"count": 20, "includePromotedContent": true, "latestControlAvailable": true, "requestContext": "launch"}' type: string @@ -276,6 +310,17 @@ paths: name: features required: true schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": @@ -288,13 +333,6 @@ paths: false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": false}' type: string - - in: query - name: queryId - required: true - schema: - default: zhX91JE87mWvfprhYE97xA - example: zhX91JE87mWvfprhYE97xA - type: string - in: header name: authorization required: true diff --git a/dist/dart/paths/tweet.yaml b/dist/dart/paths/tweet.yaml index 8b5a3ec..f527807 100644 --- a/dist/dart/paths/tweet.yaml +++ b/dist/dart/paths/tweet.yaml @@ -22,10 +22,21 @@ paths: description: get TweetDetail operationId: getTweetDetail parameters: + - in: query + name: queryId + required: true + schema: + default: wNNG8DBB8EaXw1lq4vFWGA + example: wNNG8DBB8EaXw1lq4vFWGA + type: string - in: query name: variables required: true schema: + default: '{"focalTweetId": "1349129669258448897", "with_rux_injections": + false, "includePromotedContent": true, "withCommunity": true, "withQuickPromoteEligibilityTweetFields": + true, "withBirdwatchNotes": true, "withVoice": true, "withV2Timeline": + true}' example: '{"focalTweetId": "1349129669258448897", "with_rux_injections": false, "includePromotedContent": true, "withCommunity": true, "withQuickPromoteEligibilityTweetFields": true, "withBirdwatchNotes": true, "withVoice": true, "withV2Timeline": @@ -35,6 +46,17 @@ paths: name: features required: true schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": @@ -47,13 +69,6 @@ paths: false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": false}' type: string - - in: query - name: queryId - required: true - schema: - default: wNNG8DBB8EaXw1lq4vFWGA - example: wNNG8DBB8EaXw1lq4vFWGA - type: string - in: header name: authorization required: true diff --git a/dist/dart/paths/user.yaml b/dist/dart/paths/user.yaml index 5d30f70..7c248f3 100644 --- a/dist/dart/paths/user.yaml +++ b/dist/dart/paths/user.yaml @@ -22,27 +22,31 @@ paths: description: get user by screen name operationId: getUserByScreenName parameters: + - in: query + name: queryId + required: true + schema: + default: sLVLhk0bGj3MVFEKTdax1w + example: sLVLhk0bGj3MVFEKTdax1w + type: string - in: query name: variables required: true schema: + default: '{"screen_name": "elonmusk", "withSafetyModeUserFields": true}' example: '{"screen_name": "elonmusk", "withSafetyModeUserFields": true}' type: string - in: query name: features required: true schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "responsive_web_graphql_timeline_navigation_enabled": true}' example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true}' type: string - - in: query - name: queryId - required: true - schema: - default: sLVLhk0bGj3MVFEKTdax1w - example: sLVLhk0bGj3MVFEKTdax1w - type: string - in: header name: authorization required: true diff --git a/dist/dart/paths/usertweets.yaml b/dist/dart/paths/usertweets.yaml index da55322..295c475 100644 --- a/dist/dart/paths/usertweets.yaml +++ b/dist/dart/paths/usertweets.yaml @@ -37,10 +37,20 @@ paths: description: get user likes tweets operationId: getLikes parameters: + - in: query + name: queryId + required: true + schema: + default: 5fmEkRT-1AdHqEsbVgehMg + example: 5fmEkRT-1AdHqEsbVgehMg + type: string - in: query name: variables required: true schema: + default: '{"userId": "44196397", "count": 20, "includePromotedContent": + false, "withClientEventToken": false, "withBirdwatchNotes": false, "withVoice": + true, "withV2Timeline": true}' example: '{"userId": "44196397", "count": 20, "includePromotedContent": false, "withClientEventToken": false, "withBirdwatchNotes": false, "withVoice": true, "withV2Timeline": true}' @@ -49,6 +59,17 @@ paths: name: features required: true schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": @@ -61,13 +82,6 @@ paths: false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": false}' type: string - - in: query - name: queryId - required: true - schema: - default: 5fmEkRT-1AdHqEsbVgehMg - example: 5fmEkRT-1AdHqEsbVgehMg - type: string - in: header name: authorization required: true @@ -145,10 +159,20 @@ paths: description: get user tweets operationId: getUserTweets parameters: + - in: query + name: queryId + required: true + schema: + default: HuTx74BxAnezK1gWvYY7zg + example: HuTx74BxAnezK1gWvYY7zg + type: string - in: query name: variables required: true schema: + default: '{"userId": "44196397", "count": 40, "includePromotedContent": + true, "withQuickPromoteEligibilityTweetFields": true, "withVoice": true, + "withV2Timeline": true}' example: '{"userId": "44196397", "count": 40, "includePromotedContent": true, "withQuickPromoteEligibilityTweetFields": true, "withVoice": true, "withV2Timeline": true}' @@ -157,6 +181,17 @@ paths: name: features required: true schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": @@ -169,13 +204,6 @@ paths: false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": false}' type: string - - in: query - name: queryId - required: true - schema: - default: HuTx74BxAnezK1gWvYY7zg - example: HuTx74BxAnezK1gWvYY7zg - type: string - in: header name: authorization required: true @@ -253,10 +281,19 @@ paths: description: get user replies tweets operationId: getUserTweetsAndReplies parameters: + - in: query + name: queryId + required: true + schema: + default: RIWc55YCNyUJ-U3HHGYkdg + example: RIWc55YCNyUJ-U3HHGYkdg + type: string - in: query name: variables required: true schema: + default: '{"userId": "44196397", "count": 40, "includePromotedContent": + true, "withCommunity": true, "withVoice": true, "withV2Timeline": true}' example: '{"userId": "44196397", "count": 40, "includePromotedContent": true, "withCommunity": true, "withVoice": true, "withV2Timeline": true}' type: string @@ -264,6 +301,17 @@ paths: name: features required: true schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": @@ -276,13 +324,6 @@ paths: false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": false}' type: string - - in: query - name: queryId - required: true - schema: - default: RIWc55YCNyUJ-U3HHGYkdg - example: RIWc55YCNyUJ-U3HHGYkdg - type: string - in: header name: authorization required: true @@ -360,10 +401,20 @@ paths: description: get user media tweets operationId: getUserMedia parameters: + - in: query + name: queryId + required: true + schema: + default: YqiE3JL1KNgf9nSljYdxaA + example: YqiE3JL1KNgf9nSljYdxaA + type: string - in: query name: variables required: true schema: + default: '{"userId": "44196397", "count": 40, "includePromotedContent": + false, "withClientEventToken": false, "withBirdwatchNotes": false, "withVoice": + true, "withV2Timeline": true}' example: '{"userId": "44196397", "count": 40, "includePromotedContent": false, "withClientEventToken": false, "withBirdwatchNotes": false, "withVoice": true, "withV2Timeline": true}' @@ -372,6 +423,17 @@ paths: name: features required: true schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": @@ -384,13 +446,6 @@ paths: false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": false}' type: string - - in: query - name: queryId - required: true - schema: - default: YqiE3JL1KNgf9nSljYdxaA - example: YqiE3JL1KNgf9nSljYdxaA - type: string - in: header name: authorization required: true diff --git a/dist/dart/response/error.yaml b/dist/dart/response/error.yaml new file mode 100644 index 0000000..efa5d6d --- /dev/null +++ b/dist/dart/response/error.yaml @@ -0,0 +1,90 @@ +components: + schemas: + Error: + properties: + code: + type: integer + extensions: + $ref: '#/components/schemas/Extensions' + kind: + type: string + locations: + items: + $ref: '#/components/schemas/Location' + type: array + message: + type: string + name: + type: string + path: + items: + type: string + type: array + source: + type: string + tracing: + $ref: '#/components/schemas/Tracing' + required: + - message + - locations + - path + - extensions + - code + - kind + - name + - source + - tracing + type: object + ErrorResponse: + properties: + errors: + $ref: '#/components/schemas/Errors' + required: + - errors + - data + type: object + Errors: + items: + $ref: '#/components/schemas/Error' + type: array + Extensions: + properties: + code: + type: integer + kind: + type: string + name: + type: string + source: + type: string + tracing: + $ref: '#/components/schemas/Tracing' + required: + - name + - source + - code + - kind + - tracing + type: object + Location: + properties: + column: + type: integer + line: + type: integer + required: + - line + - column + type: object + Tracing: + properties: + trace_id: + type: string + required: + - trace_id + type: object +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: {} diff --git a/dist/dart/schemas/post.yaml b/dist/dart/schemas/post.yaml deleted file mode 100644 index cf686ef..0000000 --- a/dist/dart/schemas/post.yaml +++ /dev/null @@ -1,60 +0,0 @@ -components: - schemas: - CreateRetweet: - properties: - result: - items: - $ref: '#/components/schemas/Retweet' - type: object - required: - - result - CreateTweet: - properties: - result: - items: - $ref: ./tweet.yaml#/components/schemas/Tweet - type: object - required: - - result - DeleteRetweet: - properties: - result: - items: - $ref: '#/components/schemas/Retweet' - type: object - required: - - result - DeleteTweet: - properties: - nullable: true - type: object - FavoriteTweet: - properties: - favorite_tweet: - type: string - required: - - favorite_tweet - Retweet: - properties: - legacy: - items: - properties: - full_text: - type: string - type: object - rest_id: - type: string - required: - - rest_id - - legacy - UnfavoriteTweet: - properties: - unfavorite_tweet: - type: string - required: - - unfavorite_tweet -info: - title: Twitter OpenAPI - version: 0.0.1 -openapi: 3.0.3 -paths: {} diff --git a/dist/docs/openapi-3.0.yaml b/dist/docs/openapi-3.0.yaml new file mode 100644 index 0000000..0b1141b --- /dev/null +++ b/dist/docs/openapi-3.0.yaml @@ -0,0 +1,110 @@ +components: + schemas: {} + securitySchemes: + ActiveUser: + description: 'yes' + in: header + name: x-twitter-active-user + type: apiKey + BearerAuth: + description: AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA + scheme: bearer + type: http + ClientLanguage: + description: en + in: header + name: x-twitter-client-language + type: apiKey + CookieAuthToken: + description: HttpOnly cookie + in: cookie + name: auth_token + type: apiKey + CookieCt0: + description: document.cookie.split('; ').find(row => row.startsWith('ct0=')); + in: cookie + name: ct0 + type: apiKey + CsrfToken: + description: document.cookie.split('; ').find(row => row.startsWith('ct0=')); + in: header + name: x-csrf-token + type: apiKey + UserAgent: + description: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, + like Gecko) Chrome/112.0.0.0 Safari/537.36 + in: header + name: user-agent + type: apiKey + authType: + description: OAuth2Session if you are logged in + in: header + name: x-twitter-auth-type + type: apiKey +info: + contact: + email: yuki@yuki0311.com + description: Twitter OpenAPI(Swagger) specification + license: + name: GNU Affero General Public License v3. + url: https://raw.githubusercontent.com/fa0311/twitter-openapi/main/LICENSE.txt + termsOfService: https://github.com/fa0311 + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: + /1RyAhNwby-gzGCRVsMxKbQ/CreateTweet: + $ref: ./paths/post.yaml#/paths/~11RyAhNwby-gzGCRVsMxKbQ~1CreateTweet + /2TemLyqrMpTeAmysdbnVqw/ListLatestTweetsTimeline: + $ref: ./paths/timeline.yaml#/paths/~12TemLyqrMpTeAmysdbnVqw~1ListLatestTweetsTimeline + /5fmEkRT-1AdHqEsbVgehMg/Likes: + $ref: ./paths/usertweets.yaml#/paths/~15fmEkRT-1AdHqEsbVgehMg~1Likes + /9zwVLJ48lmVUk8u_Gh9DmA/ProfileSpotlightsQuery: + $ref: ./paths/profile.yaml#/paths/~19zwVLJ48lmVUk8u_Gh9DmA~1ProfileSpotlightsQuery + /HCosKfLNW1AcOo3la3mMgg/HomeTimeline: + $ref: ./paths/timeline.yaml#/paths/~1HCosKfLNW1AcOo3la3mMgg~1HomeTimeline + /HuTx74BxAnezK1gWvYY7zg/UserTweets: + $ref: ./paths/usertweets.yaml#/paths/~1HuTx74BxAnezK1gWvYY7zg~1UserTweets + /IWP6Zt14sARO29lJT35bBw/Following: + $ref: ./paths/follow.yaml#/paths/~1IWP6Zt14sARO29lJT35bBw~1Following + /RIWc55YCNyUJ-U3HHGYkdg/UserTweetsAndReplies: + $ref: ./paths/usertweets.yaml#/paths/~1RIWc55YCNyUJ-U3HHGYkdg~1UserTweetsAndReplies + /VaenaVgh5q5ih7kvyVjgtg/DeleteTweet: + $ref: ./paths/post.yaml#/paths/~1VaenaVgh5q5ih7kvyVjgtg~1DeleteTweet + /YqiE3JL1KNgf9nSljYdxaA/UserMedia: + $ref: ./paths/usertweets.yaml#/paths/~1YqiE3JL1KNgf9nSljYdxaA~1UserMedia + /ZYKSe-w7KEslx3JhSIk5LA/UnfavoriteTweet: + $ref: ./paths/post.yaml#/paths/~1ZYKSe-w7KEslx3JhSIk5LA~1UnfavoriteTweet + /djdTXDIk2qhd4OStqlUFeQ/Followers: + $ref: ./paths/follow.yaml#/paths/~1djdTXDIk2qhd4OStqlUFeQ~1Followers + /iQtK4dl5hBmXewYZuEOKVw/DeleteRetweet: + $ref: ./paths/post.yaml#/paths/~1iQtK4dl5hBmXewYZuEOKVw~1DeleteRetweet + /lI07N6Otwv1PhnEgXILM7A/FavoriteTweet: + $ref: ./paths/post.yaml#/paths/~1lI07N6Otwv1PhnEgXILM7A~1FavoriteTweet + /ojPdsZsimiJrUGLR1sjUtA/CreateRetweet: + $ref: ./paths/post.yaml#/paths/~1ojPdsZsimiJrUGLR1sjUtA~1CreateRetweet + /sLVLhk0bGj3MVFEKTdax1w/UserByScreenName: + $ref: ./paths/user.yaml#/paths/~1sLVLhk0bGj3MVFEKTdax1w~1UserByScreenName + /tmd4ifV8RHltzn8ymGg1aw/Bookmarks: + $ref: ./paths/bookmarks.yaml#/paths/~1tmd4ifV8RHltzn8ymGg1aw~1Bookmarks + /wNNG8DBB8EaXw1lq4vFWGA/TweetDetail: + $ref: ./paths/tweet.yaml#/paths/~1wNNG8DBB8EaXw1lq4vFWGA~1TweetDetail + /zhX91JE87mWvfprhYE97xA/HomeLatestTimeline: + $ref: ./paths/timeline.yaml#/paths/~1zhX91JE87mWvfprhYE97xA~1HomeLatestTimeline +security: +- bearerAuth: [] +- CsrfToken: [] +- ActiveUser: [] +- AuthType: [] +- ClientLanguage: [] +- CookieAuthToken: [] +- CookieCt0: [] +servers: +- url: https://twitter.com/i/api/graphql +tags: +- description: response User + name: User +- description: response User list + name: UserList +- description: response tweet + name: Tweet diff --git a/dist/docs/paths/bookmarks.yaml b/dist/docs/paths/bookmarks.yaml new file mode 100644 index 0000000..56e7d0d --- /dev/null +++ b/dist/docs/paths/bookmarks.yaml @@ -0,0 +1,208 @@ +components: + schemas: + BookmarksResponse: + properties: + data: + $ref: '#/components/schemas/BookmarksResponseData' + required: + - data + BookmarksResponseData: + properties: + bookmark_timeline_v2: + $ref: '#/components/schemas/BookmarksTimeline' + required: + - bookmark_timeline_v2 + BookmarksTimeline: + properties: + timeline: + $ref: ./../schemas/timeline.yaml#/components/schemas/Timeline + required: + - timeline +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: + /tmd4ifV8RHltzn8ymGg1aw/Bookmarks: + get: + description: get bookmarks + operationId: getBookmarks + parameters: + - in: query + name: queryId + required: true + schema: + default: tmd4ifV8RHltzn8ymGg1aw + example: tmd4ifV8RHltzn8ymGg1aw + type: string + - content: + application/json: + schema: + properties: + count: + default: 20 + example: 20 + type: integer + includePromotedContent: + default: true + example: true + type: boolean + required: + - count + - includePromotedContent + type: object + in: query + name: variables + required: true + - content: + application/json: + schema: + properties: + blue_business_profile_image_shape_enabled: + default: true + example: true + type: boolean + freedom_of_speech_not_reach_fetch_enabled: + default: false + example: false + type: boolean + graphql_is_translatable_rweb_tweet_is_translatable_enabled: + default: true + example: true + type: boolean + graphql_timeline_v2_bookmark_timeline: + default: true + example: true + type: boolean + interactive_text_enabled: + default: true + example: true + type: boolean + longform_notetweets_consumption_enabled: + default: true + example: true + type: boolean + longform_notetweets_rich_text_read_enabled: + default: true + example: true + type: boolean + responsive_web_edit_tweet_api_enabled: + default: true + example: true + type: boolean + responsive_web_enhance_cards_enabled: + default: false + example: false + type: boolean + responsive_web_graphql_exclude_directive_enabled: + default: true + example: true + type: boolean + responsive_web_graphql_skip_user_profile_image_extensions_enabled: + default: false + example: false + type: boolean + responsive_web_graphql_timeline_navigation_enabled: + default: true + example: true + type: boolean + responsive_web_text_conversations_enabled: + default: false + example: false + type: boolean + standardized_nudges_misinfo: + default: true + example: true + type: boolean + tweet_awards_web_tipping_enabled: + default: false + example: false + type: boolean + tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: + default: false + example: false + type: boolean + tweetypie_unmention_optimization_enabled: + default: true + example: true + type: boolean + verified_phone_label_enabled: + default: false + example: false + type: boolean + vibe_api_enabled: + default: true + example: true + type: boolean + view_counts_everywhere_api_enabled: + default: true + example: true + type: boolean + required: + - graphql_timeline_v2_bookmark_timeline + - blue_business_profile_image_shape_enabled + - responsive_web_graphql_exclude_directive_enabled + - verified_phone_label_enabled + - responsive_web_graphql_timeline_navigation_enabled + - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - tweetypie_unmention_optimization_enabled + - vibe_api_enabled + - responsive_web_edit_tweet_api_enabled + - graphql_is_translatable_rweb_tweet_is_translatable_enabled + - view_counts_everywhere_api_enabled + - longform_notetweets_consumption_enabled + - tweet_awards_web_tipping_enabled + - freedom_of_speech_not_reach_fetch_enabled + - standardized_nudges_misinfo + - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - interactive_text_enabled + - responsive_web_text_conversations_enabled + - longform_notetweets_rich_text_read_enabled + - responsive_web_enhance_cards_enabled + type: object + in: query + name: features + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BookmarksResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - Tweet diff --git a/dist/docs/paths/follow.yaml b/dist/docs/paths/follow.yaml new file mode 100644 index 0000000..28865b5 --- /dev/null +++ b/dist/docs/paths/follow.yaml @@ -0,0 +1,406 @@ +components: + schemas: + FollowResponse: + properties: + data: + $ref: '#/components/schemas/FollowResponseData' + required: + - data + FollowResponseData: + properties: + user: + $ref: '#/components/schemas/FollowResponseUser' + required: + - user + FollowResponseResult: + properties: + __typename: + $ref: ./../schemas/typename.yaml#/components/schemas/TypeName + timeline: + $ref: '#/components/schemas/FollowTimeline' + required: + - __typename + - timeline + FollowResponseUser: + properties: + result: + $ref: '#/components/schemas/FollowResponseResult' + required: + - result + FollowTimeline: + properties: + timeline: + $ref: ./../schemas/timeline.yaml#/components/schemas/Timeline + required: + - timeline +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: + /IWP6Zt14sARO29lJT35bBw/Following: + get: + description: get user list of following + operationId: getFollowing + parameters: + - in: query + name: queryId + required: true + schema: + default: IWP6Zt14sARO29lJT35bBw + example: IWP6Zt14sARO29lJT35bBw + type: string + - content: + application/json: + schema: + properties: + count: + default: 20 + example: 20 + type: integer + includePromotedContent: + default: false + example: false + type: boolean + userId: + default: '44196397' + example: '44196397' + type: string + required: + - userId + - count + - includePromotedContent + type: object + in: query + name: variables + required: true + - content: + application/json: + schema: + properties: + blue_business_profile_image_shape_enabled: + default: true + example: true + type: boolean + freedom_of_speech_not_reach_fetch_enabled: + default: false + example: false + type: boolean + graphql_is_translatable_rweb_tweet_is_translatable_enabled: + default: true + example: true + type: boolean + interactive_text_enabled: + default: true + example: true + type: boolean + longform_notetweets_consumption_enabled: + default: true + example: true + type: boolean + longform_notetweets_rich_text_read_enabled: + default: true + example: true + type: boolean + responsive_web_edit_tweet_api_enabled: + default: true + example: true + type: boolean + responsive_web_enhance_cards_enabled: + default: false + example: false + type: boolean + responsive_web_graphql_exclude_directive_enabled: + default: true + example: true + type: boolean + responsive_web_graphql_skip_user_profile_image_extensions_enabled: + default: false + example: false + type: boolean + responsive_web_graphql_timeline_navigation_enabled: + default: true + example: true + type: boolean + responsive_web_text_conversations_enabled: + default: false + example: false + type: boolean + standardized_nudges_misinfo: + default: true + example: true + type: boolean + tweet_awards_web_tipping_enabled: + default: false + example: false + type: boolean + tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: + default: false + example: false + type: boolean + tweetypie_unmention_optimization_enabled: + default: true + example: true + type: boolean + verified_phone_label_enabled: + default: false + example: false + type: boolean + vibe_api_enabled: + default: true + example: true + type: boolean + view_counts_everywhere_api_enabled: + default: true + example: true + type: boolean + required: + - blue_business_profile_image_shape_enabled + - responsive_web_graphql_exclude_directive_enabled + - verified_phone_label_enabled + - responsive_web_graphql_timeline_navigation_enabled + - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - tweetypie_unmention_optimization_enabled + - vibe_api_enabled + - responsive_web_edit_tweet_api_enabled + - graphql_is_translatable_rweb_tweet_is_translatable_enabled + - view_counts_everywhere_api_enabled + - longform_notetweets_consumption_enabled + - tweet_awards_web_tipping_enabled + - freedom_of_speech_not_reach_fetch_enabled + - standardized_nudges_misinfo + - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - interactive_text_enabled + - responsive_web_text_conversations_enabled + - longform_notetweets_rich_text_read_enabled + - responsive_web_enhance_cards_enabled + type: object + in: query + name: features + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FollowResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - UserList + /djdTXDIk2qhd4OStqlUFeQ/Followers: + get: + description: get user list of followers + operationId: getFollowers + parameters: + - in: query + name: queryId + required: true + schema: + default: djdTXDIk2qhd4OStqlUFeQ + example: djdTXDIk2qhd4OStqlUFeQ + type: string + - content: + application/json: + schema: + properties: + count: + default: 20 + example: 20 + type: integer + includePromotedContent: + default: false + example: false + type: boolean + userId: + default: '44196397' + example: '44196397' + type: string + required: + - userId + - count + - includePromotedContent + type: object + in: query + name: variables + required: true + - content: + application/json: + schema: + properties: + blue_business_profile_image_shape_enabled: + default: true + example: true + type: boolean + freedom_of_speech_not_reach_fetch_enabled: + default: false + example: false + type: boolean + graphql_is_translatable_rweb_tweet_is_translatable_enabled: + default: true + example: true + type: boolean + interactive_text_enabled: + default: true + example: true + type: boolean + longform_notetweets_consumption_enabled: + default: true + example: true + type: boolean + longform_notetweets_rich_text_read_enabled: + default: true + example: true + type: boolean + responsive_web_edit_tweet_api_enabled: + default: true + example: true + type: boolean + responsive_web_enhance_cards_enabled: + default: false + example: false + type: boolean + responsive_web_graphql_exclude_directive_enabled: + default: true + example: true + type: boolean + responsive_web_graphql_skip_user_profile_image_extensions_enabled: + default: false + example: false + type: boolean + responsive_web_graphql_timeline_navigation_enabled: + default: true + example: true + type: boolean + responsive_web_text_conversations_enabled: + default: false + example: false + type: boolean + standardized_nudges_misinfo: + default: true + example: true + type: boolean + tweet_awards_web_tipping_enabled: + default: false + example: false + type: boolean + tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: + default: false + example: false + type: boolean + tweetypie_unmention_optimization_enabled: + default: true + example: true + type: boolean + verified_phone_label_enabled: + default: false + example: false + type: boolean + vibe_api_enabled: + default: true + example: true + type: boolean + view_counts_everywhere_api_enabled: + default: true + example: true + type: boolean + required: + - blue_business_profile_image_shape_enabled + - responsive_web_graphql_exclude_directive_enabled + - verified_phone_label_enabled + - responsive_web_graphql_timeline_navigation_enabled + - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - tweetypie_unmention_optimization_enabled + - vibe_api_enabled + - responsive_web_edit_tweet_api_enabled + - graphql_is_translatable_rweb_tweet_is_translatable_enabled + - view_counts_everywhere_api_enabled + - longform_notetweets_consumption_enabled + - tweet_awards_web_tipping_enabled + - freedom_of_speech_not_reach_fetch_enabled + - standardized_nudges_misinfo + - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - interactive_text_enabled + - responsive_web_text_conversations_enabled + - longform_notetweets_rich_text_read_enabled + - responsive_web_enhance_cards_enabled + type: object + in: query + name: features + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FollowResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - UserList diff --git a/dist/docs/paths/post.yaml b/dist/docs/paths/post.yaml new file mode 100644 index 0000000..d93de8c --- /dev/null +++ b/dist/docs/paths/post.yaml @@ -0,0 +1,639 @@ +components: + schemas: + CreateRetweet: + properties: + result: + items: + $ref: '#/components/schemas/Retweet' + type: object + required: + - result + CreateRetweetResponse: + properties: + data: + $ref: '#/components/schemas/CreateRetweetResponseData' + required: + - data + CreateRetweetResponseData: + properties: + create_retweet: + $ref: '#/components/schemas/CreateRetweetResponseResult' + required: + - create_retweet + CreateRetweetResponseResult: + properties: + retweet_results: + $ref: '#/components/schemas/CreateRetweet' + required: + - retweet_results + CreateTweet: + properties: + result: + $ref: ./../schemas/tweet.yaml#/components/schemas/Tweet + required: + - result + CreateTweetResponse: + properties: + data: + $ref: '#/components/schemas/CreateTweetResponseData' + required: + - data + CreateTweetResponseData: + properties: + create_tweet: + $ref: '#/components/schemas/CreateTweetResponseResult' + required: + - create_tweet + CreateTweetResponseResult: + properties: + tweet_results: + $ref: '#/components/schemas/CreateTweet' + required: + - tweet_results + DeleteRetweet: + properties: + result: + items: + $ref: '#/components/schemas/Retweet' + type: object + required: + - result + DeleteRetweetResponse: + properties: + data: + $ref: '#/components/schemas/DeleteRetweetResponseData' + required: + - data + DeleteRetweetResponseData: + properties: + create_retweet: + $ref: '#/components/schemas/CreateRetweetResponseResult' + required: + - unretweet + DeleteRetweetResponseResult: + properties: + retweet_results: + $ref: '#/components/schemas/DeleteRetweet' + required: + - source_tweet_results + DeleteTweetResponse: + properties: + data: + $ref: '#/components/schemas/DeleteTweetResponseData' + required: + - data + DeleteTweetResponseData: + properties: + delete_retweet: + $ref: '#/components/schemas/DeleteTweetResponseResult' + required: + - delete_tweet + DeleteTweetResponseResult: + properties: + tweet_results: + type: object + required: + - tweet_results + FavoriteTweet: + properties: + favorite_tweet: + type: string + required: + - favorite_tweet + FavoriteTweetResponseData: + properties: + data: + $ref: '#/components/schemas/FavoriteTweet' + required: + - data + Retweet: + properties: + legacy: + items: + properties: + full_text: + type: string + type: object + rest_id: + type: string + required: + - rest_id + - legacy + UnfavoriteTweet: + properties: + unfavorite_tweet: + type: string + required: + - unfavorite_tweet + UnfavoriteTweetResponseData: + properties: + data: + $ref: '#/components/schemas/UnfavoriteTweet' + required: + - data +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: + /1RyAhNwby-gzGCRVsMxKbQ/CreateTweet: + post: + description: create Tweet + operationId: postCreateTweet + parameters: + - content: + application/json: + schema: + properties: + dark_request: + default: false + example: false + type: boolean + media: + properties: + media_entities: + items: + type: object + type: array + possibly_sensitive: + default: false + example: false + type: boolean + required: + - media_entities + - possibly_sensitive + type: object + semantic_annotation_ids: + items: + type: object + type: array + tweet_text: + default: test + example: test + type: string + required: + - tweet_text + - media + - semantic_annotation_ids + - dark_request + type: object + in: query + name: variables + required: true + - content: + application/json: + schema: + properties: + blue_business_profile_image_shape_enabled: + default: true + example: true + type: boolean + freedom_of_speech_not_reach_fetch_enabled: + default: true + example: true + type: boolean + graphql_is_translatable_rweb_tweet_is_translatable_enabled: + default: true + example: true + type: boolean + interactive_text_enabled: + default: true + example: true + type: boolean + longform_notetweets_consumption_enabled: + default: true + example: true + type: boolean + longform_notetweets_rich_text_read_enabled: + default: true + example: true + type: boolean + responsive_web_edit_tweet_api_enabled: + default: true + example: true + type: boolean + responsive_web_enhance_cards_enabled: + default: false + example: false + type: boolean + responsive_web_graphql_exclude_directive_enabled: + default: true + example: true + type: boolean + responsive_web_graphql_skip_user_profile_image_extensions_enabled: + default: false + example: false + type: boolean + responsive_web_graphql_timeline_navigation_enabled: + default: true + example: true + type: boolean + responsive_web_text_conversations_enabled: + default: false + example: false + type: boolean + standardized_nudges_misinfo: + default: true + example: true + type: boolean + tweet_awards_web_tipping_enabled: + default: false + example: false + type: boolean + tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: + default: false + example: false + type: boolean + tweetypie_unmention_optimization_enabled: + default: true + example: true + type: boolean + verified_phone_label_enabled: + default: false + example: false + type: boolean + vibe_api_enabled: + default: true + example: true + type: boolean + view_counts_everywhere_api_enabled: + default: true + example: true + type: boolean + required: + - tweetypie_unmention_optimization_enabled + - vibe_api_enabled + - responsive_web_edit_tweet_api_enabled + - graphql_is_translatable_rweb_tweet_is_translatable_enabled + - view_counts_everywhere_api_enabled + - longform_notetweets_consumption_enabled + - tweet_awards_web_tipping_enabled + - interactive_text_enabled + - responsive_web_text_conversations_enabled + - longform_notetweets_rich_text_read_enabled + - blue_business_profile_image_shape_enabled + - responsive_web_graphql_exclude_directive_enabled + - verified_phone_label_enabled + - freedom_of_speech_not_reach_fetch_enabled + - standardized_nudges_misinfo + - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - responsive_web_graphql_timeline_navigation_enabled + - responsive_web_enhance_cards_enabled + type: object + in: query + name: features + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTweetResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - Post + /VaenaVgh5q5ih7kvyVjgtg/DeleteTweet: + post: + description: delete Retweet + operationId: postDeleteTweet + parameters: + - content: + application/json: + schema: + properties: + tweet_id: + default: '1349129669258448897' + example: '1349129669258448897' + type: string + required: + - tweet_id + type: object + in: query + name: variables + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteTweetResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - Post + /ZYKSe-w7KEslx3JhSIk5LA/UnfavoriteTweet: + post: + description: unfavorite Tweet + operationId: postUnfavoriteTweet + parameters: + - content: + application/json: + schema: + properties: + tweet_id: + default: '1349129669258448897' + example: '1349129669258448897' + type: string + required: + - tweet_id + type: object + in: query + name: variables + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UnfavoriteTweetResponseData' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - Post + /iQtK4dl5hBmXewYZuEOKVw/DeleteRetweet: + post: + description: delete Retweet + operationId: postDeleteRetweet + parameters: + - content: + application/json: + schema: + properties: + tweet_id: + default: '1349129669258448897' + example: '1349129669258448897' + type: string + required: + - tweet_id + type: object + in: query + name: variables + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteRetweetResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - Post + /lI07N6Otwv1PhnEgXILM7A/FavoriteTweet: + post: + description: favorite Tweet + operationId: postFavoriteTweet + parameters: + - content: + application/json: + schema: + properties: + tweet_id: + default: '1349129669258448897' + example: '1349129669258448897' + type: string + required: + - tweet_id + type: object + in: query + name: variables + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FavoriteTweetResponseData' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - Post + /ojPdsZsimiJrUGLR1sjUtA/CreateRetweet: + post: + description: create Retweet + operationId: postCreateRetweet + parameters: + - content: + application/json: + schema: + properties: + tweet_id: + default: '1349129669258448897' + example: '1349129669258448897' + type: string + required: + - tweet_id + type: object + in: query + name: variables + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CreateRetweetResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - Post diff --git a/dist/docs/paths/profile.yaml b/dist/docs/paths/profile.yaml new file mode 100644 index 0000000..ad7a6cf --- /dev/null +++ b/dist/docs/paths/profile.yaml @@ -0,0 +1,141 @@ +components: + schemas: + ProfileResponse: + properties: + data: + $ref: '#/components/schemas/ProfileResponseData' + required: + - data + ProfileResponseData: + properties: + user_result_by_screen_name: + $ref: '#/components/schemas/UserResultByScreenName' + required: + - user_result_by_screen_name + UserResultByScreenName: + properties: + id: + pattern: ^[0-9a-zA-Z]+$ + type: string + result: + $ref: '#/components/schemas/UserResultByScreenNameResult' + required: + - id + - result + UserResultByScreenNameLegacy: + properties: + blocked_by: + type: boolean + blocking: + type: boolean + followed_by: + type: boolean + following: + type: boolean + name: + type: string + protected: + type: boolean + screen_name: + type: string + UserResultByScreenNameResult: + properties: + __typename: + $ref: ./../schemas/typename.yaml#/components/schemas/TypeName + id: + pattern: ^[0-9a-zA-Z=]+$ + type: string + legacy: + $ref: '#/components/schemas/UserResultByScreenNameLegacy' + profilemodules: + type: object + rest_id: + pattern: ^[0-9]+$ + type: string + required: + - __typename + - id + - legacy + - profilemodules + - rest_id +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: + /9zwVLJ48lmVUk8u_Gh9DmA/ProfileSpotlightsQuery: + get: + description: get user by screen name + operationId: getProfileSpotlightsQuery + parameters: + - in: query + name: queryId + required: true + schema: + default: 9zwVLJ48lmVUk8u_Gh9DmA + example: 9zwVLJ48lmVUk8u_Gh9DmA + type: string + - content: + application/json: + schema: + properties: + screen_name: + default: elonmusk + example: elonmusk + type: string + required: + - screen_name + type: object + in: query + name: variables + required: true + - content: + application/json: + schema: + properties: {} + required: [] + type: object + in: query + name: features + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ProfileResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer diff --git a/dist/docs/paths/timeline.yaml b/dist/docs/paths/timeline.yaml new file mode 100644 index 0000000..a76c391 --- /dev/null +++ b/dist/docs/paths/timeline.yaml @@ -0,0 +1,608 @@ +components: + schemas: + HomeTimelineHome: + properties: + home_timeline_urt: + $ref: ./../schemas/timeline.yaml#/components/schemas/Timeline + required: + - home_timeline_urt + HomeTimelineResponseData: + properties: + home: + $ref: '#/components/schemas/HomeTimelineHome' + required: + - home + ListTweetsTimeline: + properties: + timeline: + $ref: ./../schemas/timeline.yaml#/components/schemas/Timeline + required: + - timeline + ListTweetsTimelineData: + properties: + list: + $ref: '#/components/schemas/ListTweetsTimelineList' + required: + - list + ListTweetsTimelineList: + properties: + tweets_timeline: + $ref: '#/components/schemas/ListTweetsTimeline' + required: + - tweets_timeline + ListTweetsTimelineResponse: + properties: + data: + $ref: '#/components/schemas/ListTweetsTimelineData' + required: + - data + TimelineResponse: + properties: + data: + $ref: '#/components/schemas/HomeTimelineResponseData' + required: + - data +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: + /2TemLyqrMpTeAmysdbnVqw/ListLatestTweetsTimeline: + get: + description: get tweet list of timeline + operationId: getListLatestTweetsTimeline + parameters: + - in: query + name: queryId + required: true + schema: + default: 2TemLyqrMpTeAmysdbnVqw + example: 2TemLyqrMpTeAmysdbnVqw + type: string + - content: + application/json: + schema: + properties: + count: + default: 20 + example: 20 + type: integer + listId: + default: '53044119' + example: '53044119' + type: string + required: + - listId + - count + type: object + in: query + name: variables + required: true + - content: + application/json: + schema: + properties: + blue_business_profile_image_shape_enabled: + default: true + example: true + type: boolean + freedom_of_speech_not_reach_fetch_enabled: + default: false + example: false + type: boolean + graphql_is_translatable_rweb_tweet_is_translatable_enabled: + default: true + example: true + type: boolean + interactive_text_enabled: + default: true + example: true + type: boolean + longform_notetweets_consumption_enabled: + default: true + example: true + type: boolean + longform_notetweets_rich_text_read_enabled: + default: true + example: true + type: boolean + responsive_web_edit_tweet_api_enabled: + default: true + example: true + type: boolean + responsive_web_enhance_cards_enabled: + default: false + example: false + type: boolean + responsive_web_graphql_exclude_directive_enabled: + default: true + example: true + type: boolean + responsive_web_graphql_skip_user_profile_image_extensions_enabled: + default: false + example: false + type: boolean + responsive_web_graphql_timeline_navigation_enabled: + default: true + example: true + type: boolean + responsive_web_text_conversations_enabled: + default: false + example: false + type: boolean + standardized_nudges_misinfo: + default: true + example: true + type: boolean + tweet_awards_web_tipping_enabled: + default: false + example: false + type: boolean + tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: + default: false + example: false + type: boolean + tweetypie_unmention_optimization_enabled: + default: true + example: true + type: boolean + verified_phone_label_enabled: + default: false + example: false + type: boolean + vibe_api_enabled: + default: true + example: true + type: boolean + view_counts_everywhere_api_enabled: + default: true + example: true + type: boolean + required: + - blue_business_profile_image_shape_enabled + - responsive_web_graphql_exclude_directive_enabled + - verified_phone_label_enabled + - responsive_web_graphql_timeline_navigation_enabled + - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - tweetypie_unmention_optimization_enabled + - vibe_api_enabled + - responsive_web_edit_tweet_api_enabled + - graphql_is_translatable_rweb_tweet_is_translatable_enabled + - view_counts_everywhere_api_enabled + - longform_notetweets_consumption_enabled + - tweet_awards_web_tipping_enabled + - freedom_of_speech_not_reach_fetch_enabled + - standardized_nudges_misinfo + - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - interactive_text_enabled + - responsive_web_text_conversations_enabled + - longform_notetweets_rich_text_read_enabled + - responsive_web_enhance_cards_enabled + type: object + in: query + name: features + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ListTweetsTimelineResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - Tweet + /HCosKfLNW1AcOo3la3mMgg/HomeTimeline: + get: + description: get tweet list of timeline + operationId: getHomeTimeline + parameters: + - in: query + name: queryId + required: true + schema: + default: HCosKfLNW1AcOo3la3mMgg + example: HCosKfLNW1AcOo3la3mMgg + type: string + - content: + application/json: + schema: + properties: + count: + default: 20 + example: 20 + type: integer + includePromotedContent: + default: true + example: true + type: boolean + latestControlAvailable: + default: true + example: true + type: boolean + requestContext: + default: launch + example: launch + type: string + withCommunity: + default: true + example: true + type: boolean + required: + - count + - includePromotedContent + - latestControlAvailable + - requestContext + - withCommunity + type: object + in: query + name: variables + required: true + - content: + application/json: + schema: + properties: + blue_business_profile_image_shape_enabled: + default: true + example: true + type: boolean + freedom_of_speech_not_reach_fetch_enabled: + default: false + example: false + type: boolean + graphql_is_translatable_rweb_tweet_is_translatable_enabled: + default: true + example: true + type: boolean + interactive_text_enabled: + default: true + example: true + type: boolean + longform_notetweets_consumption_enabled: + default: true + example: true + type: boolean + longform_notetweets_rich_text_read_enabled: + default: true + example: true + type: boolean + responsive_web_edit_tweet_api_enabled: + default: true + example: true + type: boolean + responsive_web_enhance_cards_enabled: + default: false + example: false + type: boolean + responsive_web_graphql_exclude_directive_enabled: + default: true + example: true + type: boolean + responsive_web_graphql_skip_user_profile_image_extensions_enabled: + default: false + example: false + type: boolean + responsive_web_graphql_timeline_navigation_enabled: + default: true + example: true + type: boolean + responsive_web_text_conversations_enabled: + default: false + example: false + type: boolean + standardized_nudges_misinfo: + default: true + example: true + type: boolean + tweet_awards_web_tipping_enabled: + default: false + example: false + type: boolean + tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: + default: false + example: false + type: boolean + tweetypie_unmention_optimization_enabled: + default: true + example: true + type: boolean + verified_phone_label_enabled: + default: false + example: false + type: boolean + vibe_api_enabled: + default: true + example: true + type: boolean + view_counts_everywhere_api_enabled: + default: true + example: true + type: boolean + required: + - blue_business_profile_image_shape_enabled + - responsive_web_graphql_exclude_directive_enabled + - verified_phone_label_enabled + - responsive_web_graphql_timeline_navigation_enabled + - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - tweetypie_unmention_optimization_enabled + - vibe_api_enabled + - responsive_web_edit_tweet_api_enabled + - graphql_is_translatable_rweb_tweet_is_translatable_enabled + - view_counts_everywhere_api_enabled + - longform_notetweets_consumption_enabled + - tweet_awards_web_tipping_enabled + - freedom_of_speech_not_reach_fetch_enabled + - standardized_nudges_misinfo + - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - interactive_text_enabled + - responsive_web_text_conversations_enabled + - longform_notetweets_rich_text_read_enabled + - responsive_web_enhance_cards_enabled + type: object + in: query + name: features + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TimelineResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - Tweet + /zhX91JE87mWvfprhYE97xA/HomeLatestTimeline: + get: + description: get tweet list of timeline + operationId: getHomeLatestTimeline + parameters: + - in: query + name: queryId + required: true + schema: + default: zhX91JE87mWvfprhYE97xA + example: zhX91JE87mWvfprhYE97xA + type: string + - content: + application/json: + schema: + properties: + count: + default: 20 + example: 20 + type: integer + includePromotedContent: + default: true + example: true + type: boolean + latestControlAvailable: + default: true + example: true + type: boolean + requestContext: + default: launch + example: launch + type: string + required: + - count + - includePromotedContent + - latestControlAvailable + - requestContext + type: object + in: query + name: variables + required: true + - content: + application/json: + schema: + properties: + blue_business_profile_image_shape_enabled: + default: true + example: true + type: boolean + freedom_of_speech_not_reach_fetch_enabled: + default: false + example: false + type: boolean + graphql_is_translatable_rweb_tweet_is_translatable_enabled: + default: true + example: true + type: boolean + interactive_text_enabled: + default: true + example: true + type: boolean + longform_notetweets_consumption_enabled: + default: true + example: true + type: boolean + longform_notetweets_rich_text_read_enabled: + default: true + example: true + type: boolean + responsive_web_edit_tweet_api_enabled: + default: true + example: true + type: boolean + responsive_web_enhance_cards_enabled: + default: false + example: false + type: boolean + responsive_web_graphql_exclude_directive_enabled: + default: true + example: true + type: boolean + responsive_web_graphql_skip_user_profile_image_extensions_enabled: + default: false + example: false + type: boolean + responsive_web_graphql_timeline_navigation_enabled: + default: true + example: true + type: boolean + responsive_web_text_conversations_enabled: + default: false + example: false + type: boolean + standardized_nudges_misinfo: + default: true + example: true + type: boolean + tweet_awards_web_tipping_enabled: + default: false + example: false + type: boolean + tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: + default: false + example: false + type: boolean + tweetypie_unmention_optimization_enabled: + default: true + example: true + type: boolean + verified_phone_label_enabled: + default: false + example: false + type: boolean + vibe_api_enabled: + default: true + example: true + type: boolean + view_counts_everywhere_api_enabled: + default: true + example: true + type: boolean + required: + - blue_business_profile_image_shape_enabled + - responsive_web_graphql_exclude_directive_enabled + - verified_phone_label_enabled + - responsive_web_graphql_timeline_navigation_enabled + - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - tweetypie_unmention_optimization_enabled + - vibe_api_enabled + - responsive_web_edit_tweet_api_enabled + - graphql_is_translatable_rweb_tweet_is_translatable_enabled + - view_counts_everywhere_api_enabled + - longform_notetweets_consumption_enabled + - tweet_awards_web_tipping_enabled + - freedom_of_speech_not_reach_fetch_enabled + - standardized_nudges_misinfo + - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - interactive_text_enabled + - responsive_web_text_conversations_enabled + - longform_notetweets_rich_text_read_enabled + - responsive_web_enhance_cards_enabled + type: object + in: query + name: features + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TimelineResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - Tweet diff --git a/dist/docs/paths/tweet.yaml b/dist/docs/paths/tweet.yaml new file mode 100644 index 0000000..d96dc0b --- /dev/null +++ b/dist/docs/paths/tweet.yaml @@ -0,0 +1,227 @@ +components: + schemas: + TweetDetailResponse: + properties: + data: + $ref: '#/components/schemas/TweetDetailResponseData' + required: + - data + TweetDetailResponseData: + properties: + threaded_conversation_with_injections_v2: + $ref: ./../schemas/timeline.yaml#/components/schemas/Timeline + required: + - threaded_conversation_with_injections_v2 +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: + /wNNG8DBB8EaXw1lq4vFWGA/TweetDetail: + get: + description: get TweetDetail + operationId: getTweetDetail + parameters: + - in: query + name: queryId + required: true + schema: + default: wNNG8DBB8EaXw1lq4vFWGA + example: wNNG8DBB8EaXw1lq4vFWGA + type: string + - content: + application/json: + schema: + properties: + focalTweetId: + default: '1349129669258448897' + example: '1349129669258448897' + type: string + includePromotedContent: + default: true + example: true + type: boolean + withBirdwatchNotes: + default: true + example: true + type: boolean + withCommunity: + default: true + example: true + type: boolean + withQuickPromoteEligibilityTweetFields: + default: true + example: true + type: boolean + withV2Timeline: + default: true + example: true + type: boolean + withVoice: + default: true + example: true + type: boolean + with_rux_injections: + default: false + example: false + type: boolean + required: + - focalTweetId + - with_rux_injections + - includePromotedContent + - withCommunity + - withQuickPromoteEligibilityTweetFields + - withBirdwatchNotes + - withVoice + - withV2Timeline + type: object + in: query + name: variables + required: true + - content: + application/json: + schema: + properties: + blue_business_profile_image_shape_enabled: + default: true + example: true + type: boolean + freedom_of_speech_not_reach_fetch_enabled: + default: false + example: false + type: boolean + graphql_is_translatable_rweb_tweet_is_translatable_enabled: + default: true + example: true + type: boolean + interactive_text_enabled: + default: true + example: true + type: boolean + longform_notetweets_consumption_enabled: + default: true + example: true + type: boolean + longform_notetweets_rich_text_read_enabled: + default: true + example: true + type: boolean + responsive_web_edit_tweet_api_enabled: + default: true + example: true + type: boolean + responsive_web_enhance_cards_enabled: + default: false + example: false + type: boolean + responsive_web_graphql_exclude_directive_enabled: + default: true + example: true + type: boolean + responsive_web_graphql_skip_user_profile_image_extensions_enabled: + default: false + example: false + type: boolean + responsive_web_graphql_timeline_navigation_enabled: + default: true + example: true + type: boolean + responsive_web_text_conversations_enabled: + default: false + example: false + type: boolean + standardized_nudges_misinfo: + default: true + example: true + type: boolean + tweet_awards_web_tipping_enabled: + default: false + example: false + type: boolean + tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: + default: false + example: false + type: boolean + tweetypie_unmention_optimization_enabled: + default: true + example: true + type: boolean + verified_phone_label_enabled: + default: false + example: false + type: boolean + vibe_api_enabled: + default: true + example: true + type: boolean + view_counts_everywhere_api_enabled: + default: true + example: true + type: boolean + required: + - blue_business_profile_image_shape_enabled + - responsive_web_graphql_exclude_directive_enabled + - verified_phone_label_enabled + - responsive_web_graphql_timeline_navigation_enabled + - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - tweetypie_unmention_optimization_enabled + - vibe_api_enabled + - responsive_web_edit_tweet_api_enabled + - graphql_is_translatable_rweb_tweet_is_translatable_enabled + - view_counts_everywhere_api_enabled + - longform_notetweets_consumption_enabled + - tweet_awards_web_tipping_enabled + - freedom_of_speech_not_reach_fetch_enabled + - standardized_nudges_misinfo + - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - interactive_text_enabled + - responsive_web_text_conversations_enabled + - longform_notetweets_rich_text_read_enabled + - responsive_web_enhance_cards_enabled + type: object + in: query + name: features + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TweetDetailResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - Tweet diff --git a/dist/docs/paths/user.yaml b/dist/docs/paths/user.yaml new file mode 100644 index 0000000..b1b77c6 --- /dev/null +++ b/dist/docs/paths/user.yaml @@ -0,0 +1,127 @@ +components: + schemas: + UserResponse: + properties: + data: + $ref: '#/components/schemas/UserResponseData' + required: + - data + UserResponseData: + properties: + user: + $ref: ./../schemas/user.yaml#/components/schemas/UserResults + required: + - user +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: + /sLVLhk0bGj3MVFEKTdax1w/UserByScreenName: + get: + description: get user by screen name + operationId: getUserByScreenName + parameters: + - in: query + name: queryId + required: true + schema: + default: sLVLhk0bGj3MVFEKTdax1w + example: sLVLhk0bGj3MVFEKTdax1w + type: string + - content: + application/json: + schema: + properties: + screen_name: + default: elonmusk + example: elonmusk + type: string + withSafetyModeUserFields: + default: true + example: true + type: boolean + required: + - screen_name + - withSafetyModeUserFields + type: object + in: query + name: variables + required: true + - content: + application/json: + schema: + properties: + blue_business_profile_image_shape_enabled: + default: true + example: true + type: boolean + responsive_web_graphql_exclude_directive_enabled: + default: true + example: true + type: boolean + responsive_web_graphql_skip_user_profile_image_extensions_enabled: + default: false + example: false + type: boolean + responsive_web_graphql_timeline_navigation_enabled: + default: true + example: true + type: boolean + verified_phone_label_enabled: + default: false + example: false + type: boolean + required: + - blue_business_profile_image_shape_enabled + - responsive_web_graphql_exclude_directive_enabled + - verified_phone_label_enabled + - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - responsive_web_graphql_timeline_navigation_enabled + type: object + in: query + name: features + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - User diff --git a/dist/docs/paths/usertweets.yaml b/dist/docs/paths/usertweets.yaml new file mode 100644 index 0000000..810af29 --- /dev/null +++ b/dist/docs/paths/usertweets.yaml @@ -0,0 +1,836 @@ +components: + schemas: + UserTweetsData: + properties: + user: + $ref: '#/components/schemas/UserTweetsUser' + required: + - user + UserTweetsResponse: + properties: + data: + $ref: '#/components/schemas/UserTweetsData' + required: + - data + UserTweetsResult: + properties: + __typename: + $ref: ./../schemas/typename.yaml#/components/schemas/TypeName + timeline_v2: + $ref: ./../schemas/timeline.yaml#/components/schemas/TimelineV2 + required: + - __typename + - timeline_v2 + UserTweetsUser: + properties: + result: + $ref: '#/components/schemas/UserTweetsResult' + required: + - result +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: + /5fmEkRT-1AdHqEsbVgehMg/Likes: + get: + description: get user likes tweets + operationId: getLikes + parameters: + - in: query + name: queryId + required: true + schema: + default: 5fmEkRT-1AdHqEsbVgehMg + example: 5fmEkRT-1AdHqEsbVgehMg + type: string + - content: + application/json: + schema: + properties: + count: + default: 20 + example: 20 + type: integer + includePromotedContent: + default: false + example: false + type: boolean + userId: + default: '44196397' + example: '44196397' + type: string + withBirdwatchNotes: + default: false + example: false + type: boolean + withClientEventToken: + default: false + example: false + type: boolean + withV2Timeline: + default: true + example: true + type: boolean + withVoice: + default: true + example: true + type: boolean + required: + - userId + - count + - includePromotedContent + - withClientEventToken + - withBirdwatchNotes + - withVoice + - withV2Timeline + type: object + in: query + name: variables + required: true + - content: + application/json: + schema: + properties: + blue_business_profile_image_shape_enabled: + default: true + example: true + type: boolean + freedom_of_speech_not_reach_fetch_enabled: + default: false + example: false + type: boolean + graphql_is_translatable_rweb_tweet_is_translatable_enabled: + default: true + example: true + type: boolean + interactive_text_enabled: + default: true + example: true + type: boolean + longform_notetweets_consumption_enabled: + default: true + example: true + type: boolean + longform_notetweets_rich_text_read_enabled: + default: true + example: true + type: boolean + responsive_web_edit_tweet_api_enabled: + default: true + example: true + type: boolean + responsive_web_enhance_cards_enabled: + default: false + example: false + type: boolean + responsive_web_graphql_exclude_directive_enabled: + default: true + example: true + type: boolean + responsive_web_graphql_skip_user_profile_image_extensions_enabled: + default: false + example: false + type: boolean + responsive_web_graphql_timeline_navigation_enabled: + default: true + example: true + type: boolean + responsive_web_text_conversations_enabled: + default: false + example: false + type: boolean + standardized_nudges_misinfo: + default: true + example: true + type: boolean + tweet_awards_web_tipping_enabled: + default: false + example: false + type: boolean + tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: + default: false + example: false + type: boolean + tweetypie_unmention_optimization_enabled: + default: true + example: true + type: boolean + verified_phone_label_enabled: + default: false + example: false + type: boolean + vibe_api_enabled: + default: true + example: true + type: boolean + view_counts_everywhere_api_enabled: + default: true + example: true + type: boolean + required: + - blue_business_profile_image_shape_enabled + - responsive_web_graphql_exclude_directive_enabled + - verified_phone_label_enabled + - responsive_web_graphql_timeline_navigation_enabled + - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - tweetypie_unmention_optimization_enabled + - vibe_api_enabled + - responsive_web_edit_tweet_api_enabled + - graphql_is_translatable_rweb_tweet_is_translatable_enabled + - view_counts_everywhere_api_enabled + - longform_notetweets_consumption_enabled + - tweet_awards_web_tipping_enabled + - freedom_of_speech_not_reach_fetch_enabled + - standardized_nudges_misinfo + - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - interactive_text_enabled + - responsive_web_text_conversations_enabled + - longform_notetweets_rich_text_read_enabled + - responsive_web_enhance_cards_enabled + type: object + in: query + name: features + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserTweetsResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - Tweet + /HuTx74BxAnezK1gWvYY7zg/UserTweets: + get: + description: get user tweets + operationId: getUserTweets + parameters: + - in: query + name: queryId + required: true + schema: + default: HuTx74BxAnezK1gWvYY7zg + example: HuTx74BxAnezK1gWvYY7zg + type: string + - content: + application/json: + schema: + properties: + count: + default: 40 + example: 40 + type: integer + includePromotedContent: + default: true + example: true + type: boolean + userId: + default: '44196397' + example: '44196397' + type: string + withQuickPromoteEligibilityTweetFields: + default: true + example: true + type: boolean + withV2Timeline: + default: true + example: true + type: boolean + withVoice: + default: true + example: true + type: boolean + required: + - userId + - count + - includePromotedContent + - withQuickPromoteEligibilityTweetFields + - withVoice + - withV2Timeline + type: object + in: query + name: variables + required: true + - content: + application/json: + schema: + properties: + blue_business_profile_image_shape_enabled: + default: true + example: true + type: boolean + freedom_of_speech_not_reach_fetch_enabled: + default: false + example: false + type: boolean + graphql_is_translatable_rweb_tweet_is_translatable_enabled: + default: true + example: true + type: boolean + interactive_text_enabled: + default: true + example: true + type: boolean + longform_notetweets_consumption_enabled: + default: true + example: true + type: boolean + longform_notetweets_rich_text_read_enabled: + default: true + example: true + type: boolean + responsive_web_edit_tweet_api_enabled: + default: true + example: true + type: boolean + responsive_web_enhance_cards_enabled: + default: false + example: false + type: boolean + responsive_web_graphql_exclude_directive_enabled: + default: true + example: true + type: boolean + responsive_web_graphql_skip_user_profile_image_extensions_enabled: + default: false + example: false + type: boolean + responsive_web_graphql_timeline_navigation_enabled: + default: true + example: true + type: boolean + responsive_web_text_conversations_enabled: + default: false + example: false + type: boolean + standardized_nudges_misinfo: + default: true + example: true + type: boolean + tweet_awards_web_tipping_enabled: + default: false + example: false + type: boolean + tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: + default: false + example: false + type: boolean + tweetypie_unmention_optimization_enabled: + default: true + example: true + type: boolean + verified_phone_label_enabled: + default: false + example: false + type: boolean + vibe_api_enabled: + default: true + example: true + type: boolean + view_counts_everywhere_api_enabled: + default: true + example: true + type: boolean + required: + - blue_business_profile_image_shape_enabled + - responsive_web_graphql_exclude_directive_enabled + - verified_phone_label_enabled + - responsive_web_graphql_timeline_navigation_enabled + - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - tweetypie_unmention_optimization_enabled + - vibe_api_enabled + - responsive_web_edit_tweet_api_enabled + - graphql_is_translatable_rweb_tweet_is_translatable_enabled + - view_counts_everywhere_api_enabled + - longform_notetweets_consumption_enabled + - tweet_awards_web_tipping_enabled + - freedom_of_speech_not_reach_fetch_enabled + - standardized_nudges_misinfo + - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - interactive_text_enabled + - responsive_web_text_conversations_enabled + - longform_notetweets_rich_text_read_enabled + - responsive_web_enhance_cards_enabled + type: object + in: query + name: features + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserTweetsResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - Tweet + /RIWc55YCNyUJ-U3HHGYkdg/UserTweetsAndReplies: + get: + description: get user replies tweets + operationId: getUserTweetsAndReplies + parameters: + - in: query + name: queryId + required: true + schema: + default: RIWc55YCNyUJ-U3HHGYkdg + example: RIWc55YCNyUJ-U3HHGYkdg + type: string + - content: + application/json: + schema: + properties: + count: + default: 40 + example: 40 + type: integer + includePromotedContent: + default: true + example: true + type: boolean + userId: + default: '44196397' + example: '44196397' + type: string + withCommunity: + default: true + example: true + type: boolean + withV2Timeline: + default: true + example: true + type: boolean + withVoice: + default: true + example: true + type: boolean + required: + - userId + - count + - includePromotedContent + - withCommunity + - withVoice + - withV2Timeline + type: object + in: query + name: variables + required: true + - content: + application/json: + schema: + properties: + blue_business_profile_image_shape_enabled: + default: true + example: true + type: boolean + freedom_of_speech_not_reach_fetch_enabled: + default: false + example: false + type: boolean + graphql_is_translatable_rweb_tweet_is_translatable_enabled: + default: true + example: true + type: boolean + interactive_text_enabled: + default: true + example: true + type: boolean + longform_notetweets_consumption_enabled: + default: true + example: true + type: boolean + longform_notetweets_rich_text_read_enabled: + default: true + example: true + type: boolean + responsive_web_edit_tweet_api_enabled: + default: true + example: true + type: boolean + responsive_web_enhance_cards_enabled: + default: false + example: false + type: boolean + responsive_web_graphql_exclude_directive_enabled: + default: true + example: true + type: boolean + responsive_web_graphql_skip_user_profile_image_extensions_enabled: + default: false + example: false + type: boolean + responsive_web_graphql_timeline_navigation_enabled: + default: true + example: true + type: boolean + responsive_web_text_conversations_enabled: + default: false + example: false + type: boolean + standardized_nudges_misinfo: + default: true + example: true + type: boolean + tweet_awards_web_tipping_enabled: + default: false + example: false + type: boolean + tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: + default: false + example: false + type: boolean + tweetypie_unmention_optimization_enabled: + default: true + example: true + type: boolean + verified_phone_label_enabled: + default: false + example: false + type: boolean + vibe_api_enabled: + default: true + example: true + type: boolean + view_counts_everywhere_api_enabled: + default: true + example: true + type: boolean + required: + - blue_business_profile_image_shape_enabled + - responsive_web_graphql_exclude_directive_enabled + - verified_phone_label_enabled + - responsive_web_graphql_timeline_navigation_enabled + - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - tweetypie_unmention_optimization_enabled + - vibe_api_enabled + - responsive_web_edit_tweet_api_enabled + - graphql_is_translatable_rweb_tweet_is_translatable_enabled + - view_counts_everywhere_api_enabled + - longform_notetweets_consumption_enabled + - tweet_awards_web_tipping_enabled + - freedom_of_speech_not_reach_fetch_enabled + - standardized_nudges_misinfo + - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - interactive_text_enabled + - responsive_web_text_conversations_enabled + - longform_notetweets_rich_text_read_enabled + - responsive_web_enhance_cards_enabled + type: object + in: query + name: features + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserTweetsResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - Tweet + /YqiE3JL1KNgf9nSljYdxaA/UserMedia: + get: + description: get user media tweets + operationId: getUserMedia + parameters: + - in: query + name: queryId + required: true + schema: + default: YqiE3JL1KNgf9nSljYdxaA + example: YqiE3JL1KNgf9nSljYdxaA + type: string + - content: + application/json: + schema: + properties: + count: + default: 40 + example: 40 + type: integer + includePromotedContent: + default: false + example: false + type: boolean + userId: + default: '44196397' + example: '44196397' + type: string + withBirdwatchNotes: + default: false + example: false + type: boolean + withClientEventToken: + default: false + example: false + type: boolean + withV2Timeline: + default: true + example: true + type: boolean + withVoice: + default: true + example: true + type: boolean + required: + - userId + - count + - includePromotedContent + - withClientEventToken + - withBirdwatchNotes + - withVoice + - withV2Timeline + type: object + in: query + name: variables + required: true + - content: + application/json: + schema: + properties: + blue_business_profile_image_shape_enabled: + default: true + example: true + type: boolean + freedom_of_speech_not_reach_fetch_enabled: + default: false + example: false + type: boolean + graphql_is_translatable_rweb_tweet_is_translatable_enabled: + default: true + example: true + type: boolean + interactive_text_enabled: + default: true + example: true + type: boolean + longform_notetweets_consumption_enabled: + default: true + example: true + type: boolean + longform_notetweets_rich_text_read_enabled: + default: true + example: true + type: boolean + responsive_web_edit_tweet_api_enabled: + default: true + example: true + type: boolean + responsive_web_enhance_cards_enabled: + default: false + example: false + type: boolean + responsive_web_graphql_exclude_directive_enabled: + default: true + example: true + type: boolean + responsive_web_graphql_skip_user_profile_image_extensions_enabled: + default: false + example: false + type: boolean + responsive_web_graphql_timeline_navigation_enabled: + default: true + example: true + type: boolean + responsive_web_text_conversations_enabled: + default: false + example: false + type: boolean + standardized_nudges_misinfo: + default: true + example: true + type: boolean + tweet_awards_web_tipping_enabled: + default: false + example: false + type: boolean + tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: + default: false + example: false + type: boolean + tweetypie_unmention_optimization_enabled: + default: true + example: true + type: boolean + verified_phone_label_enabled: + default: false + example: false + type: boolean + vibe_api_enabled: + default: true + example: true + type: boolean + view_counts_everywhere_api_enabled: + default: true + example: true + type: boolean + required: + - blue_business_profile_image_shape_enabled + - responsive_web_graphql_exclude_directive_enabled + - verified_phone_label_enabled + - responsive_web_graphql_timeline_navigation_enabled + - responsive_web_graphql_skip_user_profile_image_extensions_enabled + - tweetypie_unmention_optimization_enabled + - vibe_api_enabled + - responsive_web_edit_tweet_api_enabled + - graphql_is_translatable_rweb_tweet_is_translatable_enabled + - view_counts_everywhere_api_enabled + - longform_notetweets_consumption_enabled + - tweet_awards_web_tipping_enabled + - freedom_of_speech_not_reach_fetch_enabled + - standardized_nudges_misinfo + - tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled + - interactive_text_enabled + - responsive_web_text_conversations_enabled + - longform_notetweets_rich_text_read_enabled + - responsive_web_enhance_cards_enabled + type: object + in: query + name: features + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserTweetsResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - Tweet diff --git a/dist/docs/response/error.yaml b/dist/docs/response/error.yaml new file mode 100644 index 0000000..efa5d6d --- /dev/null +++ b/dist/docs/response/error.yaml @@ -0,0 +1,90 @@ +components: + schemas: + Error: + properties: + code: + type: integer + extensions: + $ref: '#/components/schemas/Extensions' + kind: + type: string + locations: + items: + $ref: '#/components/schemas/Location' + type: array + message: + type: string + name: + type: string + path: + items: + type: string + type: array + source: + type: string + tracing: + $ref: '#/components/schemas/Tracing' + required: + - message + - locations + - path + - extensions + - code + - kind + - name + - source + - tracing + type: object + ErrorResponse: + properties: + errors: + $ref: '#/components/schemas/Errors' + required: + - errors + - data + type: object + Errors: + items: + $ref: '#/components/schemas/Error' + type: array + Extensions: + properties: + code: + type: integer + kind: + type: string + name: + type: string + source: + type: string + tracing: + $ref: '#/components/schemas/Tracing' + required: + - name + - source + - code + - kind + - tracing + type: object + Location: + properties: + column: + type: integer + line: + type: integer + required: + - line + - column + type: object + Tracing: + properties: + trace_id: + type: string + required: + - trace_id + type: object +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: {} diff --git a/dist/docs/schemas/content.yaml b/dist/docs/schemas/content.yaml new file mode 100644 index 0000000..25f3156 --- /dev/null +++ b/dist/docs/schemas/content.yaml @@ -0,0 +1,182 @@ +components: + schemas: + ContentEntryType: + enum: + - TimelineTimelineItem + - TimelineTimelineCursor + - TimelineTimelineModule + type: string + ContentItemType: + enum: + - TimelineTweet + - TimelineTimelineCursor + - TimelineUser + type: string + ContentUnion: + discriminator: + mapping": + TimelineTimelineCursor: '#/components/schemas/TimelineTimelineCursor' + TimelineTimelineItem: '#/components/schemas/TimelineTimelineItem' + TimelineTimelineModule: '#/components/schemas/TimelineTimelineModule' + propertyName: entryType + oneOf: + - $ref: '#/components/schemas/TimelineTimelineItem' + - $ref: '#/components/schemas/TimelineTimelineModule' + - $ref: '#/components/schemas/TimelineTimelineCursor' + ItemContentUnion: + discriminator: + mapping": + TimelineTimelineCursor: '#/components/schemas/TimelineTimelineCursor' + TimelineTweet: '#/components/schemas/TimelineTweet' + TimelineUser: '#/components/schemas/TimelineUser' + propertyName: itemType + oneOf: + - $ref: '#/components/schemas/TimelineTweet' + - $ref: '#/components/schemas/TimelineTimelineCursor' + - $ref: '#/components/schemas/TimelineUser' + ItemResult: + properties: + __typename: + $ref: ./typename.yaml#/components/schemas/TypeName + result: + $ref: ./tweet.yaml#/components/schemas/TweetUnion + required: + - result + ModuleEntry: + properties: + clientEventInfo: + type: object + itemContent: + $ref: '#/components/schemas/ItemContentUnion' + required: + - clientEventInfo + - itemContent + ModuleItem: + properties: + entryId: + pattern: ^[a-z\-]+[0-9]+$ + type: string + item: + $ref: '#/components/schemas/ModuleEntry' + required: + - entryId + - item + SocialContext: + properties: + contextType: + type: string + text: + type: string + type: + type: string + type: object + TimelineTimelineCursor: + properties: + __typename: + $ref: ./typename.yaml#/components/schemas/TypeName + cursorType: + enum: + - Top + - Bottom + - ShowMore + - ShowMoreThreads + - Gap + type: string + entryType: + $ref: '#/components/schemas/ContentEntryType' + type: string + itemType: + $ref: '#/components/schemas/ContentEntryType' + type: string + value: + type: string + required: + - __typename + - cursorType + - value + TimelineTimelineItem: + properties: + __typename: + $ref: ./typename.yaml#/components/schemas/TypeName + clientEventInfo: + type: object + entryType: + $ref: '#/components/schemas/ContentEntryType' + type: string + feedbackInfo: + type: object + itemContent: + $ref: '#/components/schemas/ItemContentUnion' + required: + - __typename + - entryType + - itemContent + TimelineTimelineModule: + properties: + __typename: + $ref: ./typename.yaml#/components/schemas/TypeName + clientEventInfo: + type: object + displayType: + type: string + entryType: + $ref: '#/components/schemas/ContentEntryType' + type: string + footer: + type: object + header: + type: object + items: + items: + $ref: '#/components/schemas/ModuleItem' + type: array + required: + - __typename + - entryType + - displayType + - items + - clientEventInfo + TimelineTweet: + properties: + SocialContext: + $ref: '#/components/schemas/SocialContext' + __typename: + $ref: ./typename.yaml#/components/schemas/TypeName + itemType: + $ref: '#/components/schemas/ContentItemType' + type: string + promotedMetadata: + type: object + tweetDisplayType: + type: string + tweet_results: + $ref: '#/components/schemas/ItemResult' + required: + - __typename + - itemType + - tweetDisplayType + - tweet_results + TimelineUser: + properties: + SocialContext: + $ref: '#/components/schemas/SocialContext' + __typename: + $ref: ./typename.yaml#/components/schemas/TypeName + itemType: + $ref: '#/components/schemas/ContentItemType' + type: string + userDisplayType: + type: string + user_results: + $ref: ./user.yaml#/components/schemas/UserResults + required: + - __typename + - itemType + - socialContext + - userDisplayType + - user_results +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: {} diff --git a/dist/docs/schemas/general.yaml b/dist/docs/schemas/general.yaml new file mode 100644 index 0000000..7a64dcf --- /dev/null +++ b/dist/docs/schemas/general.yaml @@ -0,0 +1,13 @@ +components: + schemas: + 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) + (0[1-9]|[12][0-9]|3[01]) (0[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]) + ([+-][0-9]{4}) ([0-9]{4})$ + type: string +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: {} diff --git a/dist/docs/schemas/instruction.yaml b/dist/docs/schemas/instruction.yaml new file mode 100644 index 0000000..9f73553 --- /dev/null +++ b/dist/docs/schemas/instruction.yaml @@ -0,0 +1,83 @@ +components: + schemas: + InstructionType: + enum: + - TimelineAddEntries + - TimelineClearCache + - TimelinePinEntry + - TimelineTerminateTimeline + type: string + InstructionUnion: + discriminator: + mapping": + TimelineAddEntries: '#/components/schemas/TimelineAddEntries' + TimelineClearCache: '#/components/schemas/TimelineClearCache' + TimelinePinEntry: '#/components/schemas/TimelinePinEntry' + TimelineTerminateTimeline: '#/components/schemas/TimelineTerminateTimeline' + propertyName: type + oneOf: + - $ref: '#/components/schemas/TimelineAddEntries' + - $ref: '#/components/schemas/TimelineClearCache' + - $ref: '#/components/schemas/TimelinePinEntry' + - $ref: '#/components/schemas/TimelineTerminateTimeline' + TimelineAddEntries: + properties: + entries: + items: + $ref: '#/components/schemas/TimelineAddEntry' + type: array + type: + $ref: '#/components/schemas/InstructionType' + type: string + required: + - type + - entries + TimelineAddEntry: + properties: + content: + $ref: ./content.yaml#/components/schemas/ContentUnion + entryId: + pattern: ^[a-z\-]+[0-9]+$ + type: string + sortIndex: + pattern: '[0-9]+$' + type: string + required: + - content + - entryId + - sortIndex + TimelineClearCache: + properties: + type: + $ref: '#/components/schemas/InstructionType' + type: string + required: + - type + TimelinePinEntry: + properties: + entry: + $ref: '#/components/schemas/TimelineAddEntry' + type: + $ref: '#/components/schemas/InstructionType' + type: string + required: + - type + - entry + TimelineTerminateTimeline: + properties: + direction: + enum: + - Top + - Bottom + type: string + type: + $ref: '#/components/schemas/InstructionType' + type: string + required: + - type + - direction +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: {} diff --git a/dist/docs/schemas/timeline.yaml b/dist/docs/schemas/timeline.yaml new file mode 100644 index 0000000..b2b721e --- /dev/null +++ b/dist/docs/schemas/timeline.yaml @@ -0,0 +1,25 @@ +components: + schemas: + Timeline: + properties: + instructions: + items: + $ref: ./../schemas/instruction.yaml#/components/schemas/InstructionUnion + type: array + metadata: + type: object + responseObjects: + type: object + required: + - instructions + TimelineV2: + properties: + timeline: + $ref: '#/components/schemas/Timeline' + required: + - timeline +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: {} diff --git a/dist/docs/schemas/tweet.yaml b/dist/docs/schemas/tweet.yaml new file mode 100644 index 0000000..eff5faf --- /dev/null +++ b/dist/docs/schemas/tweet.yaml @@ -0,0 +1,252 @@ +components: + schemas: + Entities: + properties: + hashtags: + items: + $ref: '#/components/schemas/Hashtag' + type: array + media: + items: + $ref: '#/components/schemas/Media' + type: array + symbols: + items: + $ref: '#/components/schemas/Symbol' + type: array + urls: + items: + $ref: '#/components/schemas/Url' + type: array + user_mentions: + items: + $ref: '#/components/schemas/UserMention' + type: array + required: + - hashtags + - symbols + - user_mentions + - urls + - media + ExtendedEntities: + properties: + media: + items: + $ref: '#/components/schemas/Media' + type: array + required: + - media + Hashtag: + type: object + Media: + properties: + display_url: + format: uri + type: string + expanded_url: + format: uri + type: string + ext_media_availability: + type: object + id_str: + pattern: ^[0-9]+$ + type: string + indices: + items: + type: integer + type: array + media_key: + pattern: ^[0-9]+_[0-9]+$ + type: string + media_url_https: + format: uri + type: string + original_info: + properties: + focus_rects: + items: + type: object + type: array + height: + type: integer + width: + type: integer + type: object + sizes: + type: object + type: + type: string + url: + format: uri + type: string + required: + - id_str + - indices + - media_url_https + - url + - display_url + - expanded_url + - type + - sizes + - original_info + Symbol: + type: object + Tweet: + properties: + __typename: + $ref: ./typename.yaml#/components/schemas/TypeName + core: + $ref: ./user.yaml#/components/schemas/UserResultCore + edit_control: + properties: + edit_tweet_ids: + items: + pattern: ^[0-9]+$ + type: string + type: array + editable_until_msecs: + pattern: ^[0-9]+$ + type: string + edits_remaining: + pattern: ^[0-9]+$ + type: string + is_edit_eligible: + type: boolean + type: object + edit_prespective: + properties: + favorited: + type: boolean + retweeted: + type: boolean + type: object + is_translatable: + default: false + type: boolean + legacy: + $ref: '#/components/schemas/TweetLegacy' + quoted_status_result: + $ref: ./content.yaml#/components/schemas/ItemResult + rest_id: + pattern: ^[0-9]+$ + type: string + unmention_data: + type: object + views: + properties: + count: + pattern: ^[0-9]+$ + type: string + state: + type: string + type: object + required: + - rest_id + - core + - edit_control + - edit_prespective + - is_translatable + - legacy + - views + TweetLegacy: + properties: + bookmark_count: + type: integer + bookmarked: + type: boolean + conversation_id_str: + pattern: ^[0-9]+$ + type: string + created_at: + $ref: ./general.yaml#/components/schemas/TwitterTimeFormat + display_text_range: + items: + type: integer + type: array + entities: + $ref: '#/components/schemas/Entities' + extended_entities: + $ref: '#/components/schemas/ExtendedEntities' + favorite_count: + type: integer + favorited: + type: boolean + full_text: + type: string + id_str: + pattern: ^[0-9]+$ + type: string + is_quote_status: + type: boolean + lang: + type: string + possibly_sensitive: + default: false + type: boolean + possibly_sensitive_editable: + default: false + type: boolean + quote_count: + type: integer + reply_count: + type: integer + retweet_count: + type: integer + retweeted: + type: boolean + retweeted_status_result: + $ref: ./content.yaml#/components/schemas/ItemResult + user_id_str: + pattern: ^[0-9]+$ + type: string + required: + - bookmark_count + - bookmarked + - conversation_id_str + - created_at + - display_text_range + - entities + - favorite_count + - favorited + - full_text + - is_quote_status + - lang + - quote_count + - reply_count + - retweet_count + - retweeted + - user_id_str + - id_str + TweetTombstone: + properties: + __typename: + $ref: ./typename.yaml#/components/schemas/TypeName + TweetUnion: + discriminator: + mapping": + Tweet: '#/components/schemas/Tweet' + TweetTombstone: '#/components/schemas/TweetTombstone' + TweetWithVisibilityResults: '#/components/schemas/TweetWithVisibilityResults' + propertyName: __typename + oneOf: + - $ref: '#/components/schemas/Tweet' + - $ref: '#/components/schemas/TweetWithVisibilityResults' + - $ref: '#/components/schemas/TweetTombstone' + TweetWithVisibilityResults: + properties: + __typename: + $ref: ./typename.yaml#/components/schemas/TypeName + tweet: + $ref: '#/components/schemas/Tweet' + required: + - __typename + - tweet + Url: + type: object + UserMention: + type: object +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: {} diff --git a/dist/docs/schemas/typename.yaml b/dist/docs/schemas/typename.yaml new file mode 100644 index 0000000..21121fc --- /dev/null +++ b/dist/docs/schemas/typename.yaml @@ -0,0 +1,19 @@ +components: + schemas: + TypeName: + enum: + - TimelineTweet + - TimelineTimelineItem + - TimelineUser + - TimelineTimelineCursor + - TweetWithVisibilityResults + - TimelineTimelineModule + - TweetTombstone + - Tweet + - User + type: string +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: {} diff --git a/dist/docs/schemas/user.yaml b/dist/docs/schemas/user.yaml new file mode 100644 index 0000000..d9bb43c --- /dev/null +++ b/dist/docs/schemas/user.yaml @@ -0,0 +1,206 @@ +components: + schemas: + User: + properties: + __typename: + $ref: ./typename.yaml#/components/schemas/TypeName + affiliates_highlighted_label: + type: object + business_account: + type: object + has_graduated_access: + type: boolean + has_nft_avatar: + default: false + type: boolean + id: + pattern: ^[a-z\-]+[0-9]+$ + type: string + is_blue_verified: + default: false + type: boolean + legacy: + $ref: '#/components/schemas/UserLegacy' + rest_id: + pattern: ^[0-9]+$ + type: string + super_follow_eligible: + default: false + type: boolean + super_followed_by: + default: false + type: boolean + super_following: + default: false + type: boolean + required: + - __typename + - affiliates_highlighted_label + - id + - is_blue_verified + - legacy + - rest_id + - super_follow_eligible + - super_followed_by + - super_following + UserLegacy: + properties: + blocked_by: + default: false + type: boolean + blocking: + default: false + type: boolean + can_dm: + default: false + type: boolean + can_media_tag: + default: false + type: boolean + created_at: + $ref: ./general.yaml#/components/schemas/TwitterTimeFormat + default_profile: + default: false + type: boolean + default_profile_image: + default: false + type: boolean + description: + type: string + entities: + type: object + fast_followers_count: + type: integer + favourites_count: + default: 0 + type: integer + follow_request_sent: + default: false + type: boolean + followed_by: + default: false + type: boolean + followers_count: + default: 0 + type: integer + following: + default: false + type: boolean + friends_count: + default: 0 + type: integer + has_custom_timelines: + default: false + type: boolean + is_translator: + default: false + type: boolean + listed_count: + default: 0 + type: integer + location: + type: string + media_count: + default: 0 + type: integer + muting: + default: false + type: boolean + name: + type: string + normal_followers_count: + default: 0 + type: integer + notifications: + default: false + type: boolean + pinned_tweet_ids_str: + items: + type: string + type: array + possibly_sensitive: + default: false + type: boolean + profile_banner_extensions: + type: object + profile_banner_url: + format: uri + type: string + profile_image_extensions: + type: object + profile_image_url_https: + format: uri + type: string + profile_interstitial_type: + type: string + protected: + default: false + type: boolean + screen_name: + type: string + statuses_count: + default: 0 + type: integer + translator_type: + type: string + url: + type: string + verified: + type: boolean + want_retweets: + default: false + type: boolean + required: + - blocked_by + - blocking + - can_dm + - can_media_tag + - created_at + - default_profile + - default_profile_image + - description + - entities + - fast_followers_count + - favourites_count + - follow_request_sent + - followed_by + - followers_count + - following + - friends_count + - has_custom_timelines + - is_translator + - listed_count + - location + - media_count + - muting + - name + - normal_followers_count + - notifications + - pinned_tweet_ids_str + - possibly_sensitive + - profile_image_url_https + - profile_interstitial_type + - protected + - screen_name + - status + - statuses_count + - translator_type + - verified + - want_retweets + UserResultCore: + properties: + user_results: + $ref: '#/components/schemas/UserResults' + required: + - user_results + UserResults: + properties: + result: + $ref: '#/components/schemas/User' + required: + - result +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: {} diff --git a/dist/test/openapi-3.0.yaml b/dist/test/openapi-3.0.yaml new file mode 100644 index 0000000..0b1141b --- /dev/null +++ b/dist/test/openapi-3.0.yaml @@ -0,0 +1,110 @@ +components: + schemas: {} + securitySchemes: + ActiveUser: + description: 'yes' + in: header + name: x-twitter-active-user + type: apiKey + BearerAuth: + description: AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA + scheme: bearer + type: http + ClientLanguage: + description: en + in: header + name: x-twitter-client-language + type: apiKey + CookieAuthToken: + description: HttpOnly cookie + in: cookie + name: auth_token + type: apiKey + CookieCt0: + description: document.cookie.split('; ').find(row => row.startsWith('ct0=')); + in: cookie + name: ct0 + type: apiKey + CsrfToken: + description: document.cookie.split('; ').find(row => row.startsWith('ct0=')); + in: header + name: x-csrf-token + type: apiKey + UserAgent: + description: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, + like Gecko) Chrome/112.0.0.0 Safari/537.36 + in: header + name: user-agent + type: apiKey + authType: + description: OAuth2Session if you are logged in + in: header + name: x-twitter-auth-type + type: apiKey +info: + contact: + email: yuki@yuki0311.com + description: Twitter OpenAPI(Swagger) specification + license: + name: GNU Affero General Public License v3. + url: https://raw.githubusercontent.com/fa0311/twitter-openapi/main/LICENSE.txt + termsOfService: https://github.com/fa0311 + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: + /1RyAhNwby-gzGCRVsMxKbQ/CreateTweet: + $ref: ./paths/post.yaml#/paths/~11RyAhNwby-gzGCRVsMxKbQ~1CreateTweet + /2TemLyqrMpTeAmysdbnVqw/ListLatestTweetsTimeline: + $ref: ./paths/timeline.yaml#/paths/~12TemLyqrMpTeAmysdbnVqw~1ListLatestTweetsTimeline + /5fmEkRT-1AdHqEsbVgehMg/Likes: + $ref: ./paths/usertweets.yaml#/paths/~15fmEkRT-1AdHqEsbVgehMg~1Likes + /9zwVLJ48lmVUk8u_Gh9DmA/ProfileSpotlightsQuery: + $ref: ./paths/profile.yaml#/paths/~19zwVLJ48lmVUk8u_Gh9DmA~1ProfileSpotlightsQuery + /HCosKfLNW1AcOo3la3mMgg/HomeTimeline: + $ref: ./paths/timeline.yaml#/paths/~1HCosKfLNW1AcOo3la3mMgg~1HomeTimeline + /HuTx74BxAnezK1gWvYY7zg/UserTweets: + $ref: ./paths/usertweets.yaml#/paths/~1HuTx74BxAnezK1gWvYY7zg~1UserTweets + /IWP6Zt14sARO29lJT35bBw/Following: + $ref: ./paths/follow.yaml#/paths/~1IWP6Zt14sARO29lJT35bBw~1Following + /RIWc55YCNyUJ-U3HHGYkdg/UserTweetsAndReplies: + $ref: ./paths/usertweets.yaml#/paths/~1RIWc55YCNyUJ-U3HHGYkdg~1UserTweetsAndReplies + /VaenaVgh5q5ih7kvyVjgtg/DeleteTweet: + $ref: ./paths/post.yaml#/paths/~1VaenaVgh5q5ih7kvyVjgtg~1DeleteTweet + /YqiE3JL1KNgf9nSljYdxaA/UserMedia: + $ref: ./paths/usertweets.yaml#/paths/~1YqiE3JL1KNgf9nSljYdxaA~1UserMedia + /ZYKSe-w7KEslx3JhSIk5LA/UnfavoriteTweet: + $ref: ./paths/post.yaml#/paths/~1ZYKSe-w7KEslx3JhSIk5LA~1UnfavoriteTweet + /djdTXDIk2qhd4OStqlUFeQ/Followers: + $ref: ./paths/follow.yaml#/paths/~1djdTXDIk2qhd4OStqlUFeQ~1Followers + /iQtK4dl5hBmXewYZuEOKVw/DeleteRetweet: + $ref: ./paths/post.yaml#/paths/~1iQtK4dl5hBmXewYZuEOKVw~1DeleteRetweet + /lI07N6Otwv1PhnEgXILM7A/FavoriteTweet: + $ref: ./paths/post.yaml#/paths/~1lI07N6Otwv1PhnEgXILM7A~1FavoriteTweet + /ojPdsZsimiJrUGLR1sjUtA/CreateRetweet: + $ref: ./paths/post.yaml#/paths/~1ojPdsZsimiJrUGLR1sjUtA~1CreateRetweet + /sLVLhk0bGj3MVFEKTdax1w/UserByScreenName: + $ref: ./paths/user.yaml#/paths/~1sLVLhk0bGj3MVFEKTdax1w~1UserByScreenName + /tmd4ifV8RHltzn8ymGg1aw/Bookmarks: + $ref: ./paths/bookmarks.yaml#/paths/~1tmd4ifV8RHltzn8ymGg1aw~1Bookmarks + /wNNG8DBB8EaXw1lq4vFWGA/TweetDetail: + $ref: ./paths/tweet.yaml#/paths/~1wNNG8DBB8EaXw1lq4vFWGA~1TweetDetail + /zhX91JE87mWvfprhYE97xA/HomeLatestTimeline: + $ref: ./paths/timeline.yaml#/paths/~1zhX91JE87mWvfprhYE97xA~1HomeLatestTimeline +security: +- bearerAuth: [] +- CsrfToken: [] +- ActiveUser: [] +- AuthType: [] +- ClientLanguage: [] +- CookieAuthToken: [] +- CookieCt0: [] +servers: +- url: https://twitter.com/i/api/graphql +tags: +- description: response User + name: User +- description: response User list + name: UserList +- description: response tweet + name: Tweet diff --git a/dist/test/paths/bookmarks.yaml b/dist/test/paths/bookmarks.yaml new file mode 100644 index 0000000..b143582 --- /dev/null +++ b/dist/test/paths/bookmarks.yaml @@ -0,0 +1,114 @@ +components: + schemas: + BookmarksResponse: + properties: + data: + $ref: '#/components/schemas/BookmarksResponseData' + required: + - data + BookmarksResponseData: + properties: + bookmark_timeline_v2: + $ref: '#/components/schemas/BookmarksTimeline' + required: + - bookmark_timeline_v2 + BookmarksTimeline: + properties: + timeline: + $ref: ./../schemas/timeline.yaml#/components/schemas/Timeline + required: + - timeline +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: + /tmd4ifV8RHltzn8ymGg1aw/Bookmarks: + get: + description: get bookmarks + operationId: getBookmarks + parameters: + - in: query + name: queryId + required: true + schema: + default: tmd4ifV8RHltzn8ymGg1aw + example: tmd4ifV8RHltzn8ymGg1aw + type: string + - in: query + name: variables + required: true + schema: + default: '{"count": 20, "includePromotedContent": true}' + example: '{"count": 20, "includePromotedContent": true}' + type: string + - in: query + name: features + required: true + schema: + default: '{"graphql_timeline_v2_bookmark_timeline": true, "blue_business_profile_image_shape_enabled": + true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": + false, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' + example: '{"graphql_timeline_v2_bookmark_timeline": true, "blue_business_profile_image_shape_enabled": + true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": + false, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BookmarksResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - Tweet diff --git a/dist/test/paths/follow.yaml b/dist/test/paths/follow.yaml new file mode 100644 index 0000000..b1d2bde --- /dev/null +++ b/dist/test/paths/follow.yaml @@ -0,0 +1,222 @@ +components: + schemas: + FollowResponse: + properties: + data: + $ref: '#/components/schemas/FollowResponseData' + required: + - data + FollowResponseData: + properties: + user: + $ref: '#/components/schemas/FollowResponseUser' + required: + - user + FollowResponseResult: + properties: + __typename: + $ref: ./../schemas/typename.yaml#/components/schemas/TypeName + timeline: + $ref: '#/components/schemas/FollowTimeline' + required: + - __typename + - timeline + FollowResponseUser: + properties: + result: + $ref: '#/components/schemas/FollowResponseResult' + required: + - result + FollowTimeline: + properties: + timeline: + $ref: ./../schemas/timeline.yaml#/components/schemas/Timeline + required: + - timeline +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: + /IWP6Zt14sARO29lJT35bBw/Following: + get: + description: get user list of following + operationId: getFollowing + parameters: + - in: query + name: queryId + required: true + schema: + default: IWP6Zt14sARO29lJT35bBw + example: IWP6Zt14sARO29lJT35bBw + type: string + - in: query + name: variables + required: true + schema: + default: '{"userId": "44196397", "count": 20, "includePromotedContent": + false}' + example: '{"userId": "44196397", "count": 20, "includePromotedContent": + false}' + type: string + - in: query + name: features + required: true + schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' + example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FollowResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - UserList + /djdTXDIk2qhd4OStqlUFeQ/Followers: + get: + description: get user list of followers + operationId: getFollowers + parameters: + - in: query + name: queryId + required: true + schema: + default: djdTXDIk2qhd4OStqlUFeQ + example: djdTXDIk2qhd4OStqlUFeQ + type: string + - in: query + name: variables + required: true + schema: + default: '{"userId": "44196397", "count": 20, "includePromotedContent": + false}' + example: '{"userId": "44196397", "count": 20, "includePromotedContent": + false}' + type: string + - in: query + name: features + required: true + schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' + example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FollowResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - UserList diff --git a/dist/test/paths/post.yaml b/dist/test/paths/post.yaml new file mode 100644 index 0000000..68744e5 --- /dev/null +++ b/dist/test/paths/post.yaml @@ -0,0 +1,426 @@ +components: + schemas: + CreateRetweet: + properties: + result: + items: + $ref: '#/components/schemas/Retweet' + type: object + required: + - result + CreateRetweetResponse: + properties: + data: + $ref: '#/components/schemas/CreateRetweetResponseData' + required: + - data + CreateRetweetResponseData: + properties: + create_retweet: + $ref: '#/components/schemas/CreateRetweetResponseResult' + required: + - create_retweet + CreateRetweetResponseResult: + properties: + retweet_results: + $ref: '#/components/schemas/CreateRetweet' + required: + - retweet_results + CreateTweet: + properties: + result: + $ref: ./../schemas/tweet.yaml#/components/schemas/Tweet + required: + - result + CreateTweetResponse: + properties: + data: + $ref: '#/components/schemas/CreateTweetResponseData' + required: + - data + CreateTweetResponseData: + properties: + create_tweet: + $ref: '#/components/schemas/CreateTweetResponseResult' + required: + - create_tweet + CreateTweetResponseResult: + properties: + tweet_results: + $ref: '#/components/schemas/CreateTweet' + required: + - tweet_results + DeleteRetweet: + properties: + result: + items: + $ref: '#/components/schemas/Retweet' + type: object + required: + - result + DeleteRetweetResponse: + properties: + data: + $ref: '#/components/schemas/DeleteRetweetResponseData' + required: + - data + DeleteRetweetResponseData: + properties: + create_retweet: + $ref: '#/components/schemas/CreateRetweetResponseResult' + required: + - unretweet + DeleteRetweetResponseResult: + properties: + retweet_results: + $ref: '#/components/schemas/DeleteRetweet' + required: + - source_tweet_results + DeleteTweetResponse: + properties: + data: + $ref: '#/components/schemas/DeleteTweetResponseData' + required: + - data + DeleteTweetResponseData: + properties: + delete_retweet: + $ref: '#/components/schemas/DeleteTweetResponseResult' + required: + - delete_tweet + DeleteTweetResponseResult: + properties: + tweet_results: + type: object + required: + - tweet_results + FavoriteTweet: + properties: + favorite_tweet: + type: string + required: + - favorite_tweet + FavoriteTweetResponseData: + properties: + data: + $ref: '#/components/schemas/FavoriteTweet' + required: + - data + Retweet: + properties: + legacy: + items: + properties: + full_text: + type: string + type: object + rest_id: + type: string + required: + - rest_id + - legacy + UnfavoriteTweet: + properties: + unfavorite_tweet: + type: string + required: + - unfavorite_tweet + UnfavoriteTweetResponseData: + properties: + data: + $ref: '#/components/schemas/UnfavoriteTweet' + required: + - data +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: + /1RyAhNwby-gzGCRVsMxKbQ/CreateTweet: + post: + description: create Tweet + operationId: postCreateTweet + parameters: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTweetResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - Post + /VaenaVgh5q5ih7kvyVjgtg/DeleteTweet: + post: + description: delete Retweet + operationId: postDeleteTweet + parameters: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteTweetResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - Post + /ZYKSe-w7KEslx3JhSIk5LA/UnfavoriteTweet: + post: + description: unfavorite Tweet + operationId: postUnfavoriteTweet + parameters: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UnfavoriteTweetResponseData' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - Post + /iQtK4dl5hBmXewYZuEOKVw/DeleteRetweet: + post: + description: delete Retweet + operationId: postDeleteRetweet + parameters: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteRetweetResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - Post + /lI07N6Otwv1PhnEgXILM7A/FavoriteTweet: + post: + description: favorite Tweet + operationId: postFavoriteTweet + parameters: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FavoriteTweetResponseData' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - Post + /ojPdsZsimiJrUGLR1sjUtA/CreateRetweet: + post: + description: create Retweet + operationId: postCreateRetweet + parameters: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CreateRetweetResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - Post diff --git a/dist/test/paths/profile.yaml b/dist/test/paths/profile.yaml new file mode 100644 index 0000000..fdf8e34 --- /dev/null +++ b/dist/test/paths/profile.yaml @@ -0,0 +1,132 @@ +components: + schemas: + ProfileResponse: + properties: + data: + $ref: '#/components/schemas/ProfileResponseData' + required: + - data + ProfileResponseData: + properties: + user_result_by_screen_name: + $ref: '#/components/schemas/UserResultByScreenName' + required: + - user_result_by_screen_name + UserResultByScreenName: + properties: + id: + pattern: ^[0-9a-zA-Z]+$ + type: string + result: + $ref: '#/components/schemas/UserResultByScreenNameResult' + required: + - id + - result + UserResultByScreenNameLegacy: + properties: + blocked_by: + type: boolean + blocking: + type: boolean + followed_by: + type: boolean + following: + type: boolean + name: + type: string + protected: + type: boolean + screen_name: + type: string + UserResultByScreenNameResult: + properties: + __typename: + $ref: ./../schemas/typename.yaml#/components/schemas/TypeName + id: + pattern: ^[0-9a-zA-Z=]+$ + type: string + legacy: + $ref: '#/components/schemas/UserResultByScreenNameLegacy' + profilemodules: + type: object + rest_id: + pattern: ^[0-9]+$ + type: string + required: + - __typename + - id + - legacy + - profilemodules + - rest_id +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: + /9zwVLJ48lmVUk8u_Gh9DmA/ProfileSpotlightsQuery: + get: + description: get user by screen name + operationId: getProfileSpotlightsQuery + parameters: + - in: query + name: queryId + required: true + schema: + default: 9zwVLJ48lmVUk8u_Gh9DmA + example: 9zwVLJ48lmVUk8u_Gh9DmA + type: string + - in: query + name: variables + required: true + schema: + default: '{"screen_name": "elonmusk"}' + example: '{"screen_name": "elonmusk"}' + type: string + - in: query + name: features + required: true + schema: + default: '{}' + example: '{}' + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ProfileResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer diff --git a/dist/test/paths/timeline.yaml b/dist/test/paths/timeline.yaml new file mode 100644 index 0000000..b7c8081 --- /dev/null +++ b/dist/test/paths/timeline.yaml @@ -0,0 +1,320 @@ +components: + schemas: + HomeTimelineHome: + properties: + home_timeline_urt: + $ref: ./../schemas/timeline.yaml#/components/schemas/Timeline + required: + - home_timeline_urt + HomeTimelineResponseData: + properties: + home: + $ref: '#/components/schemas/HomeTimelineHome' + required: + - home + ListTweetsTimeline: + properties: + timeline: + $ref: ./../schemas/timeline.yaml#/components/schemas/Timeline + required: + - timeline + ListTweetsTimelineData: + properties: + list: + $ref: '#/components/schemas/ListTweetsTimelineList' + required: + - list + ListTweetsTimelineList: + properties: + tweets_timeline: + $ref: '#/components/schemas/ListTweetsTimeline' + required: + - tweets_timeline + ListTweetsTimelineResponse: + properties: + data: + $ref: '#/components/schemas/ListTweetsTimelineData' + required: + - data + TimelineResponse: + properties: + data: + $ref: '#/components/schemas/HomeTimelineResponseData' + required: + - data +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: + /2TemLyqrMpTeAmysdbnVqw/ListLatestTweetsTimeline: + get: + description: get tweet list of timeline + operationId: getListLatestTweetsTimeline + parameters: + - in: query + name: queryId + required: true + schema: + default: 2TemLyqrMpTeAmysdbnVqw + example: 2TemLyqrMpTeAmysdbnVqw + type: string + - in: query + name: variables + required: true + schema: + default: '{"listId": "53044119", "count": 20}' + example: '{"listId": "53044119", "count": 20}' + type: string + - in: query + name: features + required: true + schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' + example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ListTweetsTimelineResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - Tweet + /HCosKfLNW1AcOo3la3mMgg/HomeTimeline: + get: + description: get tweet list of timeline + operationId: getHomeTimeline + parameters: + - in: query + name: queryId + required: true + schema: + default: HCosKfLNW1AcOo3la3mMgg + example: HCosKfLNW1AcOo3la3mMgg + type: string + - in: query + name: variables + required: true + schema: + default: '{"count": 20, "includePromotedContent": true, "latestControlAvailable": + true, "requestContext": "launch", "withCommunity": true}' + example: '{"count": 20, "includePromotedContent": true, "latestControlAvailable": + true, "requestContext": "launch", "withCommunity": true}' + type: string + - in: query + name: features + required: true + schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' + example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TimelineResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - Tweet + /zhX91JE87mWvfprhYE97xA/HomeLatestTimeline: + get: + description: get tweet list of timeline + operationId: getHomeLatestTimeline + parameters: + - in: query + name: queryId + required: true + schema: + default: zhX91JE87mWvfprhYE97xA + example: zhX91JE87mWvfprhYE97xA + type: string + - in: query + name: variables + required: true + schema: + default: '{"count": 20, "includePromotedContent": true, "latestControlAvailable": + true, "requestContext": "launch"}' + example: '{"count": 20, "includePromotedContent": true, "latestControlAvailable": + true, "requestContext": "launch"}' + type: string + - in: query + name: features + required: true + schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' + example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TimelineResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - Tweet diff --git a/dist/test/paths/tweet.yaml b/dist/test/paths/tweet.yaml new file mode 100644 index 0000000..dfa2f3f --- /dev/null +++ b/dist/test/paths/tweet.yaml @@ -0,0 +1,114 @@ +components: + schemas: + TweetDetailResponse: + properties: + data: + $ref: '#/components/schemas/TweetDetailResponseData' + required: + - data + TweetDetailResponseData: + properties: + threaded_conversation_with_injections_v2: + $ref: ./../schemas/timeline.yaml#/components/schemas/Timeline + required: + - threaded_conversation_with_injections_v2 +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: + /wNNG8DBB8EaXw1lq4vFWGA/TweetDetail: + get: + description: get TweetDetail + operationId: getTweetDetail + parameters: + - in: query + name: queryId + required: true + schema: + default: wNNG8DBB8EaXw1lq4vFWGA + example: wNNG8DBB8EaXw1lq4vFWGA + type: string + - in: query + name: variables + required: true + schema: + default: '{"focalTweetId": "1349129669258448897", "with_rux_injections": + false, "includePromotedContent": true, "withCommunity": true, "withQuickPromoteEligibilityTweetFields": + true, "withBirdwatchNotes": true, "withVoice": true, "withV2Timeline": + true}' + example: '{"focalTweetId": "1349129669258448897", "with_rux_injections": + false, "includePromotedContent": true, "withCommunity": true, "withQuickPromoteEligibilityTweetFields": + true, "withBirdwatchNotes": true, "withVoice": true, "withV2Timeline": + true}' + type: string + - in: query + name: features + required: true + schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' + example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TweetDetailResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - Tweet diff --git a/dist/test/paths/user.yaml b/dist/test/paths/user.yaml new file mode 100644 index 0000000..c0c572f --- /dev/null +++ b/dist/test/paths/user.yaml @@ -0,0 +1,92 @@ +components: + schemas: + UserResponse: + properties: + data: + $ref: '#/components/schemas/UserResponseData' + required: + - data + UserResponseData: + properties: + user: + $ref: ./../schemas/user.yaml#/components/schemas/UserResults + required: + - user +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: + /sLVLhk0bGj3MVFEKTdax1w/UserByScreenName: + get: + description: get user by screen name + operationId: getUserByScreenName + parameters: + - in: query + name: queryId + required: true + schema: + default: sLVLhk0bGj3MVFEKTdax1w + example: sLVLhk0bGj3MVFEKTdax1w + type: string + - in: query + name: variables + required: true + schema: + default: '{"screen_name": "elonmusk", "withSafetyModeUserFields": true}' + example: '{"screen_name": "elonmusk", "withSafetyModeUserFields": true}' + type: string + - in: query + name: features + required: true + schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "responsive_web_graphql_timeline_navigation_enabled": true}' + example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "responsive_web_graphql_timeline_navigation_enabled": true}' + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - User diff --git a/dist/test/paths/usertweets.yaml b/dist/test/paths/usertweets.yaml new file mode 100644 index 0000000..858c519 --- /dev/null +++ b/dist/test/paths/usertweets.yaml @@ -0,0 +1,404 @@ +components: + schemas: + UserTweetsData: + properties: + user: + $ref: '#/components/schemas/UserTweetsUser' + required: + - user + UserTweetsResponse: + properties: + data: + $ref: '#/components/schemas/UserTweetsData' + required: + - data + UserTweetsResult: + properties: + __typename: + $ref: ./../schemas/typename.yaml#/components/schemas/TypeName + timeline_v2: + $ref: ./../schemas/timeline.yaml#/components/schemas/TimelineV2 + required: + - __typename + - timeline_v2 + UserTweetsUser: + properties: + result: + $ref: '#/components/schemas/UserTweetsResult' + required: + - result +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: + /5fmEkRT-1AdHqEsbVgehMg/Likes: + get: + description: get user likes tweets + operationId: getLikes + parameters: + - in: query + name: queryId + required: true + schema: + default: 5fmEkRT-1AdHqEsbVgehMg + example: 5fmEkRT-1AdHqEsbVgehMg + type: string + - in: query + name: variables + required: true + schema: + default: '{"userId": "44196397", "count": 20, "includePromotedContent": + false, "withClientEventToken": false, "withBirdwatchNotes": false, "withVoice": + true, "withV2Timeline": true}' + example: '{"userId": "44196397", "count": 20, "includePromotedContent": + false, "withClientEventToken": false, "withBirdwatchNotes": false, "withVoice": + true, "withV2Timeline": true}' + type: string + - in: query + name: features + required: true + schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' + example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserTweetsResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - Tweet + /HuTx74BxAnezK1gWvYY7zg/UserTweets: + get: + description: get user tweets + operationId: getUserTweets + parameters: + - in: query + name: queryId + required: true + schema: + default: HuTx74BxAnezK1gWvYY7zg + example: HuTx74BxAnezK1gWvYY7zg + type: string + - in: query + name: variables + required: true + schema: + default: '{"userId": "44196397", "count": 40, "includePromotedContent": + true, "withQuickPromoteEligibilityTweetFields": true, "withVoice": true, + "withV2Timeline": true}' + example: '{"userId": "44196397", "count": 40, "includePromotedContent": + true, "withQuickPromoteEligibilityTweetFields": true, "withVoice": true, + "withV2Timeline": true}' + type: string + - in: query + name: features + required: true + schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' + example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserTweetsResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - Tweet + /RIWc55YCNyUJ-U3HHGYkdg/UserTweetsAndReplies: + get: + description: get user replies tweets + operationId: getUserTweetsAndReplies + parameters: + - in: query + name: queryId + required: true + schema: + default: RIWc55YCNyUJ-U3HHGYkdg + example: RIWc55YCNyUJ-U3HHGYkdg + type: string + - in: query + name: variables + required: true + schema: + default: '{"userId": "44196397", "count": 40, "includePromotedContent": + true, "withCommunity": true, "withVoice": true, "withV2Timeline": true}' + example: '{"userId": "44196397", "count": 40, "includePromotedContent": + true, "withCommunity": true, "withVoice": true, "withV2Timeline": true}' + type: string + - in: query + name: features + required: true + schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' + example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserTweetsResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - Tweet + /YqiE3JL1KNgf9nSljYdxaA/UserMedia: + get: + description: get user media tweets + operationId: getUserMedia + parameters: + - in: query + name: queryId + required: true + schema: + default: YqiE3JL1KNgf9nSljYdxaA + example: YqiE3JL1KNgf9nSljYdxaA + type: string + - in: query + name: variables + required: true + schema: + default: '{"userId": "44196397", "count": 40, "includePromotedContent": + false, "withClientEventToken": false, "withBirdwatchNotes": false, "withVoice": + true, "withV2Timeline": true}' + example: '{"userId": "44196397", "count": 40, "includePromotedContent": + false, "withClientEventToken": false, "withBirdwatchNotes": false, "withVoice": + true, "withV2Timeline": true}' + type: string + - in: query + name: features + required: true + schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' + example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UserTweetsResponse' + description: Successful operation + headers: + x-connection-hash: + schema: + type: string + x-content-type-options: + schema: + type: string + x-frame-options: + schema: + type: string + x-rate-limit-limit: + schema: + type: integer + x-rate-limit-remaining: + schema: + type: integer + x-rate-limit-reset: + schema: + type: integer + x-response-time: + schema: + type: integer + x-tfe-preserve-body: + schema: + type: boolean + x-transaction-id: + schema: + type: string + x-twitter-response-tags: + schema: + type: string + x-xss-protection: + schema: + type: integer + tags: + - Tweet diff --git a/dist/test/response/error.yaml b/dist/test/response/error.yaml new file mode 100644 index 0000000..efa5d6d --- /dev/null +++ b/dist/test/response/error.yaml @@ -0,0 +1,90 @@ +components: + schemas: + Error: + properties: + code: + type: integer + extensions: + $ref: '#/components/schemas/Extensions' + kind: + type: string + locations: + items: + $ref: '#/components/schemas/Location' + type: array + message: + type: string + name: + type: string + path: + items: + type: string + type: array + source: + type: string + tracing: + $ref: '#/components/schemas/Tracing' + required: + - message + - locations + - path + - extensions + - code + - kind + - name + - source + - tracing + type: object + ErrorResponse: + properties: + errors: + $ref: '#/components/schemas/Errors' + required: + - errors + - data + type: object + Errors: + items: + $ref: '#/components/schemas/Error' + type: array + Extensions: + properties: + code: + type: integer + kind: + type: string + name: + type: string + source: + type: string + tracing: + $ref: '#/components/schemas/Tracing' + required: + - name + - source + - code + - kind + - tracing + type: object + Location: + properties: + column: + type: integer + line: + type: integer + required: + - line + - column + type: object + Tracing: + properties: + trace_id: + type: string + required: + - trace_id + type: object +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: {} diff --git a/dist/test/schemas/content.yaml b/dist/test/schemas/content.yaml new file mode 100644 index 0000000..25f3156 --- /dev/null +++ b/dist/test/schemas/content.yaml @@ -0,0 +1,182 @@ +components: + schemas: + ContentEntryType: + enum: + - TimelineTimelineItem + - TimelineTimelineCursor + - TimelineTimelineModule + type: string + ContentItemType: + enum: + - TimelineTweet + - TimelineTimelineCursor + - TimelineUser + type: string + ContentUnion: + discriminator: + mapping": + TimelineTimelineCursor: '#/components/schemas/TimelineTimelineCursor' + TimelineTimelineItem: '#/components/schemas/TimelineTimelineItem' + TimelineTimelineModule: '#/components/schemas/TimelineTimelineModule' + propertyName: entryType + oneOf: + - $ref: '#/components/schemas/TimelineTimelineItem' + - $ref: '#/components/schemas/TimelineTimelineModule' + - $ref: '#/components/schemas/TimelineTimelineCursor' + ItemContentUnion: + discriminator: + mapping": + TimelineTimelineCursor: '#/components/schemas/TimelineTimelineCursor' + TimelineTweet: '#/components/schemas/TimelineTweet' + TimelineUser: '#/components/schemas/TimelineUser' + propertyName: itemType + oneOf: + - $ref: '#/components/schemas/TimelineTweet' + - $ref: '#/components/schemas/TimelineTimelineCursor' + - $ref: '#/components/schemas/TimelineUser' + ItemResult: + properties: + __typename: + $ref: ./typename.yaml#/components/schemas/TypeName + result: + $ref: ./tweet.yaml#/components/schemas/TweetUnion + required: + - result + ModuleEntry: + properties: + clientEventInfo: + type: object + itemContent: + $ref: '#/components/schemas/ItemContentUnion' + required: + - clientEventInfo + - itemContent + ModuleItem: + properties: + entryId: + pattern: ^[a-z\-]+[0-9]+$ + type: string + item: + $ref: '#/components/schemas/ModuleEntry' + required: + - entryId + - item + SocialContext: + properties: + contextType: + type: string + text: + type: string + type: + type: string + type: object + TimelineTimelineCursor: + properties: + __typename: + $ref: ./typename.yaml#/components/schemas/TypeName + cursorType: + enum: + - Top + - Bottom + - ShowMore + - ShowMoreThreads + - Gap + type: string + entryType: + $ref: '#/components/schemas/ContentEntryType' + type: string + itemType: + $ref: '#/components/schemas/ContentEntryType' + type: string + value: + type: string + required: + - __typename + - cursorType + - value + TimelineTimelineItem: + properties: + __typename: + $ref: ./typename.yaml#/components/schemas/TypeName + clientEventInfo: + type: object + entryType: + $ref: '#/components/schemas/ContentEntryType' + type: string + feedbackInfo: + type: object + itemContent: + $ref: '#/components/schemas/ItemContentUnion' + required: + - __typename + - entryType + - itemContent + TimelineTimelineModule: + properties: + __typename: + $ref: ./typename.yaml#/components/schemas/TypeName + clientEventInfo: + type: object + displayType: + type: string + entryType: + $ref: '#/components/schemas/ContentEntryType' + type: string + footer: + type: object + header: + type: object + items: + items: + $ref: '#/components/schemas/ModuleItem' + type: array + required: + - __typename + - entryType + - displayType + - items + - clientEventInfo + TimelineTweet: + properties: + SocialContext: + $ref: '#/components/schemas/SocialContext' + __typename: + $ref: ./typename.yaml#/components/schemas/TypeName + itemType: + $ref: '#/components/schemas/ContentItemType' + type: string + promotedMetadata: + type: object + tweetDisplayType: + type: string + tweet_results: + $ref: '#/components/schemas/ItemResult' + required: + - __typename + - itemType + - tweetDisplayType + - tweet_results + TimelineUser: + properties: + SocialContext: + $ref: '#/components/schemas/SocialContext' + __typename: + $ref: ./typename.yaml#/components/schemas/TypeName + itemType: + $ref: '#/components/schemas/ContentItemType' + type: string + userDisplayType: + type: string + user_results: + $ref: ./user.yaml#/components/schemas/UserResults + required: + - __typename + - itemType + - socialContext + - userDisplayType + - user_results +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: {} diff --git a/dist/test/schemas/general.yaml b/dist/test/schemas/general.yaml new file mode 100644 index 0000000..7a64dcf --- /dev/null +++ b/dist/test/schemas/general.yaml @@ -0,0 +1,13 @@ +components: + schemas: + 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) + (0[1-9]|[12][0-9]|3[01]) (0[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]) + ([+-][0-9]{4}) ([0-9]{4})$ + type: string +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: {} diff --git a/dist/test/schemas/instruction.yaml b/dist/test/schemas/instruction.yaml new file mode 100644 index 0000000..9f73553 --- /dev/null +++ b/dist/test/schemas/instruction.yaml @@ -0,0 +1,83 @@ +components: + schemas: + InstructionType: + enum: + - TimelineAddEntries + - TimelineClearCache + - TimelinePinEntry + - TimelineTerminateTimeline + type: string + InstructionUnion: + discriminator: + mapping": + TimelineAddEntries: '#/components/schemas/TimelineAddEntries' + TimelineClearCache: '#/components/schemas/TimelineClearCache' + TimelinePinEntry: '#/components/schemas/TimelinePinEntry' + TimelineTerminateTimeline: '#/components/schemas/TimelineTerminateTimeline' + propertyName: type + oneOf: + - $ref: '#/components/schemas/TimelineAddEntries' + - $ref: '#/components/schemas/TimelineClearCache' + - $ref: '#/components/schemas/TimelinePinEntry' + - $ref: '#/components/schemas/TimelineTerminateTimeline' + TimelineAddEntries: + properties: + entries: + items: + $ref: '#/components/schemas/TimelineAddEntry' + type: array + type: + $ref: '#/components/schemas/InstructionType' + type: string + required: + - type + - entries + TimelineAddEntry: + properties: + content: + $ref: ./content.yaml#/components/schemas/ContentUnion + entryId: + pattern: ^[a-z\-]+[0-9]+$ + type: string + sortIndex: + pattern: '[0-9]+$' + type: string + required: + - content + - entryId + - sortIndex + TimelineClearCache: + properties: + type: + $ref: '#/components/schemas/InstructionType' + type: string + required: + - type + TimelinePinEntry: + properties: + entry: + $ref: '#/components/schemas/TimelineAddEntry' + type: + $ref: '#/components/schemas/InstructionType' + type: string + required: + - type + - entry + TimelineTerminateTimeline: + properties: + direction: + enum: + - Top + - Bottom + type: string + type: + $ref: '#/components/schemas/InstructionType' + type: string + required: + - type + - direction +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: {} diff --git a/dist/test/schemas/timeline.yaml b/dist/test/schemas/timeline.yaml new file mode 100644 index 0000000..b2b721e --- /dev/null +++ b/dist/test/schemas/timeline.yaml @@ -0,0 +1,25 @@ +components: + schemas: + Timeline: + properties: + instructions: + items: + $ref: ./../schemas/instruction.yaml#/components/schemas/InstructionUnion + type: array + metadata: + type: object + responseObjects: + type: object + required: + - instructions + TimelineV2: + properties: + timeline: + $ref: '#/components/schemas/Timeline' + required: + - timeline +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: {} diff --git a/dist/test/schemas/tweet.yaml b/dist/test/schemas/tweet.yaml new file mode 100644 index 0000000..eff5faf --- /dev/null +++ b/dist/test/schemas/tweet.yaml @@ -0,0 +1,252 @@ +components: + schemas: + Entities: + properties: + hashtags: + items: + $ref: '#/components/schemas/Hashtag' + type: array + media: + items: + $ref: '#/components/schemas/Media' + type: array + symbols: + items: + $ref: '#/components/schemas/Symbol' + type: array + urls: + items: + $ref: '#/components/schemas/Url' + type: array + user_mentions: + items: + $ref: '#/components/schemas/UserMention' + type: array + required: + - hashtags + - symbols + - user_mentions + - urls + - media + ExtendedEntities: + properties: + media: + items: + $ref: '#/components/schemas/Media' + type: array + required: + - media + Hashtag: + type: object + Media: + properties: + display_url: + format: uri + type: string + expanded_url: + format: uri + type: string + ext_media_availability: + type: object + id_str: + pattern: ^[0-9]+$ + type: string + indices: + items: + type: integer + type: array + media_key: + pattern: ^[0-9]+_[0-9]+$ + type: string + media_url_https: + format: uri + type: string + original_info: + properties: + focus_rects: + items: + type: object + type: array + height: + type: integer + width: + type: integer + type: object + sizes: + type: object + type: + type: string + url: + format: uri + type: string + required: + - id_str + - indices + - media_url_https + - url + - display_url + - expanded_url + - type + - sizes + - original_info + Symbol: + type: object + Tweet: + properties: + __typename: + $ref: ./typename.yaml#/components/schemas/TypeName + core: + $ref: ./user.yaml#/components/schemas/UserResultCore + edit_control: + properties: + edit_tweet_ids: + items: + pattern: ^[0-9]+$ + type: string + type: array + editable_until_msecs: + pattern: ^[0-9]+$ + type: string + edits_remaining: + pattern: ^[0-9]+$ + type: string + is_edit_eligible: + type: boolean + type: object + edit_prespective: + properties: + favorited: + type: boolean + retweeted: + type: boolean + type: object + is_translatable: + default: false + type: boolean + legacy: + $ref: '#/components/schemas/TweetLegacy' + quoted_status_result: + $ref: ./content.yaml#/components/schemas/ItemResult + rest_id: + pattern: ^[0-9]+$ + type: string + unmention_data: + type: object + views: + properties: + count: + pattern: ^[0-9]+$ + type: string + state: + type: string + type: object + required: + - rest_id + - core + - edit_control + - edit_prespective + - is_translatable + - legacy + - views + TweetLegacy: + properties: + bookmark_count: + type: integer + bookmarked: + type: boolean + conversation_id_str: + pattern: ^[0-9]+$ + type: string + created_at: + $ref: ./general.yaml#/components/schemas/TwitterTimeFormat + display_text_range: + items: + type: integer + type: array + entities: + $ref: '#/components/schemas/Entities' + extended_entities: + $ref: '#/components/schemas/ExtendedEntities' + favorite_count: + type: integer + favorited: + type: boolean + full_text: + type: string + id_str: + pattern: ^[0-9]+$ + type: string + is_quote_status: + type: boolean + lang: + type: string + possibly_sensitive: + default: false + type: boolean + possibly_sensitive_editable: + default: false + type: boolean + quote_count: + type: integer + reply_count: + type: integer + retweet_count: + type: integer + retweeted: + type: boolean + retweeted_status_result: + $ref: ./content.yaml#/components/schemas/ItemResult + user_id_str: + pattern: ^[0-9]+$ + type: string + required: + - bookmark_count + - bookmarked + - conversation_id_str + - created_at + - display_text_range + - entities + - favorite_count + - favorited + - full_text + - is_quote_status + - lang + - quote_count + - reply_count + - retweet_count + - retweeted + - user_id_str + - id_str + TweetTombstone: + properties: + __typename: + $ref: ./typename.yaml#/components/schemas/TypeName + TweetUnion: + discriminator: + mapping": + Tweet: '#/components/schemas/Tweet' + TweetTombstone: '#/components/schemas/TweetTombstone' + TweetWithVisibilityResults: '#/components/schemas/TweetWithVisibilityResults' + propertyName: __typename + oneOf: + - $ref: '#/components/schemas/Tweet' + - $ref: '#/components/schemas/TweetWithVisibilityResults' + - $ref: '#/components/schemas/TweetTombstone' + TweetWithVisibilityResults: + properties: + __typename: + $ref: ./typename.yaml#/components/schemas/TypeName + tweet: + $ref: '#/components/schemas/Tweet' + required: + - __typename + - tweet + Url: + type: object + UserMention: + type: object +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: {} diff --git a/dist/test/schemas/typename.yaml b/dist/test/schemas/typename.yaml new file mode 100644 index 0000000..21121fc --- /dev/null +++ b/dist/test/schemas/typename.yaml @@ -0,0 +1,19 @@ +components: + schemas: + TypeName: + enum: + - TimelineTweet + - TimelineTimelineItem + - TimelineUser + - TimelineTimelineCursor + - TweetWithVisibilityResults + - TimelineTimelineModule + - TweetTombstone + - Tweet + - User + type: string +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: {} diff --git a/dist/test/schemas/user.yaml b/dist/test/schemas/user.yaml new file mode 100644 index 0000000..d9bb43c --- /dev/null +++ b/dist/test/schemas/user.yaml @@ -0,0 +1,206 @@ +components: + schemas: + User: + properties: + __typename: + $ref: ./typename.yaml#/components/schemas/TypeName + affiliates_highlighted_label: + type: object + business_account: + type: object + has_graduated_access: + type: boolean + has_nft_avatar: + default: false + type: boolean + id: + pattern: ^[a-z\-]+[0-9]+$ + type: string + is_blue_verified: + default: false + type: boolean + legacy: + $ref: '#/components/schemas/UserLegacy' + rest_id: + pattern: ^[0-9]+$ + type: string + super_follow_eligible: + default: false + type: boolean + super_followed_by: + default: false + type: boolean + super_following: + default: false + type: boolean + required: + - __typename + - affiliates_highlighted_label + - id + - is_blue_verified + - legacy + - rest_id + - super_follow_eligible + - super_followed_by + - super_following + UserLegacy: + properties: + blocked_by: + default: false + type: boolean + blocking: + default: false + type: boolean + can_dm: + default: false + type: boolean + can_media_tag: + default: false + type: boolean + created_at: + $ref: ./general.yaml#/components/schemas/TwitterTimeFormat + default_profile: + default: false + type: boolean + default_profile_image: + default: false + type: boolean + description: + type: string + entities: + type: object + fast_followers_count: + type: integer + favourites_count: + default: 0 + type: integer + follow_request_sent: + default: false + type: boolean + followed_by: + default: false + type: boolean + followers_count: + default: 0 + type: integer + following: + default: false + type: boolean + friends_count: + default: 0 + type: integer + has_custom_timelines: + default: false + type: boolean + is_translator: + default: false + type: boolean + listed_count: + default: 0 + type: integer + location: + type: string + media_count: + default: 0 + type: integer + muting: + default: false + type: boolean + name: + type: string + normal_followers_count: + default: 0 + type: integer + notifications: + default: false + type: boolean + pinned_tweet_ids_str: + items: + type: string + type: array + possibly_sensitive: + default: false + type: boolean + profile_banner_extensions: + type: object + profile_banner_url: + format: uri + type: string + profile_image_extensions: + type: object + profile_image_url_https: + format: uri + type: string + profile_interstitial_type: + type: string + protected: + default: false + type: boolean + screen_name: + type: string + statuses_count: + default: 0 + type: integer + translator_type: + type: string + url: + type: string + verified: + type: boolean + want_retweets: + default: false + type: boolean + required: + - blocked_by + - blocking + - can_dm + - can_media_tag + - created_at + - default_profile + - default_profile_image + - description + - entities + - fast_followers_count + - favourites_count + - follow_request_sent + - followed_by + - followers_count + - following + - friends_count + - has_custom_timelines + - is_translator + - listed_count + - location + - media_count + - muting + - name + - normal_followers_count + - notifications + - pinned_tweet_ids_str + - possibly_sensitive + - profile_image_url_https + - profile_interstitial_type + - protected + - screen_name + - status + - statuses_count + - translator_type + - verified + - want_retweets + UserResultCore: + properties: + user_results: + $ref: '#/components/schemas/UserResults' + required: + - user_results + UserResults: + properties: + result: + $ref: '#/components/schemas/User' + required: + - result +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: {} diff --git a/dist/typescript/paths/bookmarks.yaml b/dist/typescript/paths/bookmarks.yaml index 8efd7dc..b143582 100644 --- a/dist/typescript/paths/bookmarks.yaml +++ b/dist/typescript/paths/bookmarks.yaml @@ -28,16 +28,35 @@ paths: description: get bookmarks operationId: getBookmarks parameters: + - in: query + name: queryId + required: true + schema: + default: tmd4ifV8RHltzn8ymGg1aw + example: tmd4ifV8RHltzn8ymGg1aw + type: string - in: query name: variables required: true schema: + default: '{"count": 20, "includePromotedContent": true}' example: '{"count": 20, "includePromotedContent": true}' type: string - in: query name: features required: true schema: + default: '{"graphql_timeline_v2_bookmark_timeline": true, "blue_business_profile_image_shape_enabled": + true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": + false, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' example: '{"graphql_timeline_v2_bookmark_timeline": true, "blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": @@ -50,13 +69,6 @@ paths: false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": false}' type: string - - in: query - name: queryId - required: true - schema: - default: tmd4ifV8RHltzn8ymGg1aw - example: tmd4ifV8RHltzn8ymGg1aw - type: string responses: '200': content: diff --git a/dist/typescript/paths/follow.yaml b/dist/typescript/paths/follow.yaml index dd25d1d..b1d2bde 100644 --- a/dist/typescript/paths/follow.yaml +++ b/dist/typescript/paths/follow.yaml @@ -43,10 +43,19 @@ paths: description: get user list of following operationId: getFollowing parameters: + - in: query + name: queryId + required: true + schema: + default: IWP6Zt14sARO29lJT35bBw + example: IWP6Zt14sARO29lJT35bBw + type: string - in: query name: variables required: true schema: + default: '{"userId": "44196397", "count": 20, "includePromotedContent": + false}' example: '{"userId": "44196397", "count": 20, "includePromotedContent": false}' type: string @@ -54,6 +63,17 @@ paths: name: features required: true schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": @@ -66,13 +86,6 @@ paths: false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": false}' type: string - - in: query - name: queryId - required: true - schema: - default: IWP6Zt14sARO29lJT35bBw - example: IWP6Zt14sARO29lJT35bBw - type: string responses: '200': content: @@ -121,10 +134,19 @@ paths: description: get user list of followers operationId: getFollowers parameters: + - in: query + name: queryId + required: true + schema: + default: djdTXDIk2qhd4OStqlUFeQ + example: djdTXDIk2qhd4OStqlUFeQ + type: string - in: query name: variables required: true schema: + default: '{"userId": "44196397", "count": 20, "includePromotedContent": + false}' example: '{"userId": "44196397", "count": 20, "includePromotedContent": false}' type: string @@ -132,6 +154,17 @@ paths: name: features required: true schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": @@ -144,13 +177,6 @@ paths: false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": false}' type: string - - in: query - name: queryId - required: true - schema: - default: djdTXDIk2qhd4OStqlUFeQ - example: djdTXDIk2qhd4OStqlUFeQ - type: string responses: '200': content: diff --git a/dist/typescript/paths/post.yaml b/dist/typescript/paths/post.yaml index a14c6df..fc916a4 100644 --- a/dist/typescript/paths/post.yaml +++ b/dist/typescript/paths/post.yaml @@ -1,5 +1,13 @@ components: schemas: + CreateRetweet: + properties: + result: + items: + $ref: '#/components/schemas/Retweet' + type: object + required: + - result CreateRetweetResponse: properties: data: @@ -15,9 +23,15 @@ components: CreateRetweetResponseResult: properties: retweet_results: - $ref: ./../schemas/post.yaml#/components/schemas/CreateRetweet + $ref: '#/components/schemas/CreateRetweet' required: - retweet_results + CreateTweet: + properties: + result: + $ref: ./../schemas/tweet.yaml#/components/schemas/Tweet + required: + - result CreateTweetResponse: properties: data: @@ -26,16 +40,24 @@ components: - data CreateTweetResponseData: properties: - create_retweet: + create_tweet: $ref: '#/components/schemas/CreateTweetResponseResult' required: - create_tweet CreateTweetResponseResult: properties: tweet_results: - $ref: ./../schemas/post.yaml#/components/schemas/CreateTweet + $ref: '#/components/schemas/CreateTweet' required: - tweet_results + DeleteRetweet: + properties: + result: + items: + $ref: '#/components/schemas/Retweet' + type: object + required: + - result DeleteRetweetResponse: properties: data: @@ -51,7 +73,7 @@ components: DeleteRetweetResponseResult: properties: retweet_results: - $ref: ./../schemas/post.yaml#/components/schemas/DeleteRetweet + $ref: '#/components/schemas/DeleteRetweet' required: - source_tweet_results DeleteTweetResponse: @@ -69,19 +91,44 @@ components: DeleteTweetResponseResult: properties: tweet_results: - $ref: ./../schemas/post.yaml#/components/schemas/DeleteTweet + type: object required: - tweet_results + FavoriteTweet: + properties: + favorite_tweet: + type: string + required: + - favorite_tweet FavoriteTweetResponseData: properties: data: - $ref: ./../schemas/post.yaml#/components/schemas/FavoriteTweet + $ref: '#/components/schemas/FavoriteTweet' required: - data + Retweet: + properties: + legacy: + items: + properties: + full_text: + type: string + type: object + rest_id: + type: string + required: + - rest_id + - legacy + UnfavoriteTweet: + properties: + unfavorite_tweet: + type: string + required: + - unfavorite_tweet UnfavoriteTweetResponseData: properties: data: - $ref: ./../schemas/post.yaml#/components/schemas/UnfavoriteTweet + $ref: '#/components/schemas/UnfavoriteTweet' required: - data info: @@ -92,38 +139,40 @@ paths: /1RyAhNwby-gzGCRVsMxKbQ/CreateTweet: post: description: create Tweet - operationId: createTweet - parameters: - - in: query - name: variables + operationId: postCreateTweet + parameters: [] + requestBody: + content: + application/json: + schema: + properties: + features: + example: '{"tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "interactive_text_enabled": + true, "responsive_web_text_conversations_enabled": false, "longform_notetweets_rich_text_read_enabled": + true, "blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_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: object + queryId: + default: 1RyAhNwby-gzGCRVsMxKbQ + example: 1RyAhNwby-gzGCRVsMxKbQ + type: string + variables: + example: '{"tweet_text": "test", "media": {"media_entities": [], + "possibly_sensitive": false}, "semantic_annotation_ids": [], "dark_request": + false}' + type: object + required: + - queryId + - variables + - features required: true - schema: - example: '{"tweet_text": "test", "media": {"media_entities": [], "possibly_sensitive": - false}, "semantic_annotation_ids": []}' - type: string - - in: query - name: features - required: true - schema: - example: '{"tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "interactive_text_enabled": - true, "responsive_web_text_conversations_enabled": false, "longform_notetweets_rich_text_read_enabled": - true, "blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": - true, "verified_phone_label_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": - true, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_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 - - in: query - name: queryId - required: true - schema: - default: 1RyAhNwby-gzGCRVsMxKbQ - example: 1RyAhNwby-gzGCRVsMxKbQ - type: string responses: '200': content: @@ -170,27 +219,28 @@ paths: /VaenaVgh5q5ih7kvyVjgtg/DeleteTweet: post: description: delete Retweet - operationId: deleteTweet - parameters: - - in: query - name: variables + operationId: postDeleteTweet + parameters: [] + requestBody: + content: + application/json: + schema: + properties: + features: + example: '{{Features}}' + type: object + queryId: + default: VaenaVgh5q5ih7kvyVjgtg + example: VaenaVgh5q5ih7kvyVjgtg + type: string + variables: + example: '{"tweet_id": "1349129669258448897"}' + type: object + required: + - queryId + - variables + - features required: true - schema: - example: '{"tweet_id": "1349129669258448897"}' - type: string - - in: query - name: features - required: true - schema: - example: '{}' - type: string - - in: query - name: queryId - required: true - schema: - default: VaenaVgh5q5ih7kvyVjgtg - example: VaenaVgh5q5ih7kvyVjgtg - type: string responses: '200': content: @@ -237,27 +287,28 @@ paths: /ZYKSe-w7KEslx3JhSIk5LA/UnfavoriteTweet: post: description: unfavorite Tweet - operationId: unfavoriteTweet - parameters: - - in: query - name: variables + operationId: postUnfavoriteTweet + parameters: [] + requestBody: + content: + application/json: + schema: + properties: + features: + example: '{{Features}}' + type: object + queryId: + default: ZYKSe-w7KEslx3JhSIk5LA + example: ZYKSe-w7KEslx3JhSIk5LA + type: string + variables: + example: '{"tweet_id": "1349129669258448897"}' + type: object + required: + - queryId + - variables + - features required: true - schema: - example: '{"tweet_id": "1349129669258448897"}' - type: string - - in: query - name: features - required: true - schema: - example: '{}' - type: string - - in: query - name: queryId - required: true - schema: - default: ZYKSe-w7KEslx3JhSIk5LA - example: ZYKSe-w7KEslx3JhSIk5LA - type: string responses: '200': content: @@ -304,27 +355,28 @@ paths: /iQtK4dl5hBmXewYZuEOKVw/DeleteRetweet: post: description: delete Retweet - operationId: deleteRetweet - parameters: - - in: query - name: variables + operationId: postDeleteRetweet + parameters: [] + requestBody: + content: + application/json: + schema: + properties: + features: + example: '{{Features}}' + type: object + queryId: + default: iQtK4dl5hBmXewYZuEOKVw + example: iQtK4dl5hBmXewYZuEOKVw + type: string + variables: + example: '{"tweet_id": "1349129669258448897"}' + type: object + required: + - queryId + - variables + - features required: true - schema: - example: '{"tweet_id": "1349129669258448897"}' - type: string - - in: query - name: features - required: true - schema: - example: '{}' - type: string - - in: query - name: queryId - required: true - schema: - default: iQtK4dl5hBmXewYZuEOKVw - example: iQtK4dl5hBmXewYZuEOKVw - type: string responses: '200': content: @@ -371,27 +423,28 @@ paths: /lI07N6Otwv1PhnEgXILM7A/FavoriteTweet: post: description: favorite Tweet - operationId: favoriteTweet - parameters: - - in: query - name: variables + operationId: postFavoriteTweet + parameters: [] + requestBody: + content: + application/json: + schema: + properties: + features: + example: '{{Features}}' + type: object + queryId: + default: lI07N6Otwv1PhnEgXILM7A + example: lI07N6Otwv1PhnEgXILM7A + type: string + variables: + example: '{"tweet_id": "1349129669258448897"}' + type: object + required: + - queryId + - variables + - features required: true - schema: - example: '{"tweet_id": "1349129669258448897"}' - type: string - - in: query - name: features - required: true - schema: - example: '{}' - type: string - - in: query - name: queryId - required: true - schema: - default: lI07N6Otwv1PhnEgXILM7A - example: lI07N6Otwv1PhnEgXILM7A - type: string responses: '200': content: @@ -438,27 +491,28 @@ paths: /ojPdsZsimiJrUGLR1sjUtA/CreateRetweet: post: description: create Retweet - operationId: createRetweet - parameters: - - in: query - name: variables + operationId: postCreateRetweet + parameters: [] + requestBody: + content: + application/json: + schema: + properties: + features: + example: '{{Features}}' + type: object + queryId: + default: ojPdsZsimiJrUGLR1sjUtA + example: ojPdsZsimiJrUGLR1sjUtA + type: string + variables: + example: '{"tweet_id": "1349129669258448897"}' + type: object + required: + - queryId + - variables + - features required: true - schema: - example: '{"tweet_id": "1349129669258448897"}' - type: string - - in: query - name: features - required: true - schema: - example: '{}' - type: string - - in: query - name: queryId - required: true - schema: - default: ojPdsZsimiJrUGLR1sjUtA - example: ojPdsZsimiJrUGLR1sjUtA - type: string responses: '200': content: diff --git a/dist/typescript/paths/profile.yaml b/dist/typescript/paths/profile.yaml index 0dc64ab..fdf8e34 100644 --- a/dist/typescript/paths/profile.yaml +++ b/dist/typescript/paths/profile.yaml @@ -68,25 +68,27 @@ paths: description: get user by screen name operationId: getProfileSpotlightsQuery parameters: + - in: query + name: queryId + required: true + schema: + default: 9zwVLJ48lmVUk8u_Gh9DmA + example: 9zwVLJ48lmVUk8u_Gh9DmA + type: string - in: query name: variables required: true schema: + default: '{"screen_name": "elonmusk"}' example: '{"screen_name": "elonmusk"}' type: string - in: query name: features required: true schema: + default: '{}' example: '{}' type: string - - in: query - name: queryId - required: true - schema: - default: 9zwVLJ48lmVUk8u_Gh9DmA - example: 9zwVLJ48lmVUk8u_Gh9DmA - type: string responses: '200': content: diff --git a/dist/typescript/paths/timeline.yaml b/dist/typescript/paths/timeline.yaml index f431a7a..b7c8081 100644 --- a/dist/typescript/paths/timeline.yaml +++ b/dist/typescript/paths/timeline.yaml @@ -52,16 +52,35 @@ paths: description: get tweet list of timeline operationId: getListLatestTweetsTimeline parameters: + - in: query + name: queryId + required: true + schema: + default: 2TemLyqrMpTeAmysdbnVqw + example: 2TemLyqrMpTeAmysdbnVqw + type: string - in: query name: variables required: true schema: + default: '{"listId": "53044119", "count": 20}' example: '{"listId": "53044119", "count": 20}' type: string - in: query name: features required: true schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": @@ -74,13 +93,6 @@ paths: false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": false}' type: string - - in: query - name: queryId - required: true - schema: - default: 2TemLyqrMpTeAmysdbnVqw - example: 2TemLyqrMpTeAmysdbnVqw - type: string responses: '200': content: @@ -129,10 +141,19 @@ paths: description: get tweet list of timeline operationId: getHomeTimeline parameters: + - in: query + name: queryId + required: true + schema: + default: HCosKfLNW1AcOo3la3mMgg + example: HCosKfLNW1AcOo3la3mMgg + type: string - in: query name: variables required: true schema: + default: '{"count": 20, "includePromotedContent": true, "latestControlAvailable": + true, "requestContext": "launch", "withCommunity": true}' example: '{"count": 20, "includePromotedContent": true, "latestControlAvailable": true, "requestContext": "launch", "withCommunity": true}' type: string @@ -140,6 +161,17 @@ paths: name: features required: true schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": @@ -152,13 +184,6 @@ paths: false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": false}' type: string - - in: query - name: queryId - required: true - schema: - default: HCosKfLNW1AcOo3la3mMgg - example: HCosKfLNW1AcOo3la3mMgg - type: string responses: '200': content: @@ -207,10 +232,19 @@ paths: description: get tweet list of timeline operationId: getHomeLatestTimeline parameters: + - in: query + name: queryId + required: true + schema: + default: zhX91JE87mWvfprhYE97xA + example: zhX91JE87mWvfprhYE97xA + type: string - in: query name: variables required: true schema: + default: '{"count": 20, "includePromotedContent": true, "latestControlAvailable": + true, "requestContext": "launch"}' example: '{"count": 20, "includePromotedContent": true, "latestControlAvailable": true, "requestContext": "launch"}' type: string @@ -218,6 +252,17 @@ paths: name: features required: true schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": @@ -230,13 +275,6 @@ paths: false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": false}' type: string - - in: query - name: queryId - required: true - schema: - default: zhX91JE87mWvfprhYE97xA - example: zhX91JE87mWvfprhYE97xA - type: string responses: '200': content: diff --git a/dist/typescript/paths/tweet.yaml b/dist/typescript/paths/tweet.yaml index 5b2df81..dfa2f3f 100644 --- a/dist/typescript/paths/tweet.yaml +++ b/dist/typescript/paths/tweet.yaml @@ -22,10 +22,21 @@ paths: description: get TweetDetail operationId: getTweetDetail parameters: + - in: query + name: queryId + required: true + schema: + default: wNNG8DBB8EaXw1lq4vFWGA + example: wNNG8DBB8EaXw1lq4vFWGA + type: string - in: query name: variables required: true schema: + default: '{"focalTweetId": "1349129669258448897", "with_rux_injections": + false, "includePromotedContent": true, "withCommunity": true, "withQuickPromoteEligibilityTweetFields": + true, "withBirdwatchNotes": true, "withVoice": true, "withV2Timeline": + true}' example: '{"focalTweetId": "1349129669258448897", "with_rux_injections": false, "includePromotedContent": true, "withCommunity": true, "withQuickPromoteEligibilityTweetFields": true, "withBirdwatchNotes": true, "withVoice": true, "withV2Timeline": @@ -35,6 +46,17 @@ paths: name: features required: true schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": @@ -47,13 +69,6 @@ paths: false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": false}' type: string - - in: query - name: queryId - required: true - schema: - default: wNNG8DBB8EaXw1lq4vFWGA - example: wNNG8DBB8EaXw1lq4vFWGA - type: string responses: '200': content: diff --git a/dist/typescript/paths/user.yaml b/dist/typescript/paths/user.yaml index 9c0fd4e..c0c572f 100644 --- a/dist/typescript/paths/user.yaml +++ b/dist/typescript/paths/user.yaml @@ -22,27 +22,31 @@ paths: description: get user by screen name operationId: getUserByScreenName parameters: + - in: query + name: queryId + required: true + schema: + default: sLVLhk0bGj3MVFEKTdax1w + example: sLVLhk0bGj3MVFEKTdax1w + type: string - in: query name: variables required: true schema: + default: '{"screen_name": "elonmusk", "withSafetyModeUserFields": true}' example: '{"screen_name": "elonmusk", "withSafetyModeUserFields": true}' type: string - in: query name: features required: true schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "responsive_web_graphql_timeline_navigation_enabled": true}' example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true}' type: string - - in: query - name: queryId - required: true - schema: - default: sLVLhk0bGj3MVFEKTdax1w - example: sLVLhk0bGj3MVFEKTdax1w - type: string responses: '200': content: diff --git a/dist/typescript/paths/usertweets.yaml b/dist/typescript/paths/usertweets.yaml index 1484f97..858c519 100644 --- a/dist/typescript/paths/usertweets.yaml +++ b/dist/typescript/paths/usertweets.yaml @@ -37,10 +37,20 @@ paths: description: get user likes tweets operationId: getLikes parameters: + - in: query + name: queryId + required: true + schema: + default: 5fmEkRT-1AdHqEsbVgehMg + example: 5fmEkRT-1AdHqEsbVgehMg + type: string - in: query name: variables required: true schema: + default: '{"userId": "44196397", "count": 20, "includePromotedContent": + false, "withClientEventToken": false, "withBirdwatchNotes": false, "withVoice": + true, "withV2Timeline": true}' example: '{"userId": "44196397", "count": 20, "includePromotedContent": false, "withClientEventToken": false, "withBirdwatchNotes": false, "withVoice": true, "withV2Timeline": true}' @@ -49,6 +59,17 @@ paths: name: features required: true schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": @@ -61,13 +82,6 @@ paths: false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": false}' type: string - - in: query - name: queryId - required: true - schema: - default: 5fmEkRT-1AdHqEsbVgehMg - example: 5fmEkRT-1AdHqEsbVgehMg - type: string responses: '200': content: @@ -116,10 +130,20 @@ paths: description: get user tweets operationId: getUserTweets parameters: + - in: query + name: queryId + required: true + schema: + default: HuTx74BxAnezK1gWvYY7zg + example: HuTx74BxAnezK1gWvYY7zg + type: string - in: query name: variables required: true schema: + default: '{"userId": "44196397", "count": 40, "includePromotedContent": + true, "withQuickPromoteEligibilityTweetFields": true, "withVoice": true, + "withV2Timeline": true}' example: '{"userId": "44196397", "count": 40, "includePromotedContent": true, "withQuickPromoteEligibilityTweetFields": true, "withVoice": true, "withV2Timeline": true}' @@ -128,6 +152,17 @@ paths: name: features required: true schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": @@ -140,13 +175,6 @@ paths: false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": false}' type: string - - in: query - name: queryId - required: true - schema: - default: HuTx74BxAnezK1gWvYY7zg - example: HuTx74BxAnezK1gWvYY7zg - type: string responses: '200': content: @@ -195,10 +223,19 @@ paths: description: get user replies tweets operationId: getUserTweetsAndReplies parameters: + - in: query + name: queryId + required: true + schema: + default: RIWc55YCNyUJ-U3HHGYkdg + example: RIWc55YCNyUJ-U3HHGYkdg + type: string - in: query name: variables required: true schema: + default: '{"userId": "44196397", "count": 40, "includePromotedContent": + true, "withCommunity": true, "withVoice": true, "withV2Timeline": true}' example: '{"userId": "44196397", "count": 40, "includePromotedContent": true, "withCommunity": true, "withVoice": true, "withV2Timeline": true}' type: string @@ -206,6 +243,17 @@ paths: name: features required: true schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": @@ -218,13 +266,6 @@ paths: false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": false}' type: string - - in: query - name: queryId - required: true - schema: - default: RIWc55YCNyUJ-U3HHGYkdg - example: RIWc55YCNyUJ-U3HHGYkdg - type: string responses: '200': content: @@ -273,10 +314,20 @@ paths: description: get user media tweets operationId: getUserMedia parameters: + - in: query + name: queryId + required: true + schema: + default: YqiE3JL1KNgf9nSljYdxaA + example: YqiE3JL1KNgf9nSljYdxaA + type: string - in: query name: variables required: true schema: + default: '{"userId": "44196397", "count": 40, "includePromotedContent": + false, "withClientEventToken": false, "withBirdwatchNotes": false, "withVoice": + true, "withV2Timeline": true}' example: '{"userId": "44196397", "count": 40, "includePromotedContent": false, "withClientEventToken": false, "withBirdwatchNotes": false, "withVoice": true, "withV2Timeline": true}' @@ -285,6 +336,17 @@ paths: name: features required: true schema: + default: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": + true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": + true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": + false, "tweetypie_unmention_optimization_enabled": true, "vibe_api_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, "tweet_awards_web_tipping_enabled": false, "freedom_of_speech_not_reach_fetch_enabled": + false, "standardized_nudges_misinfo": true, "tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled": + false, "interactive_text_enabled": true, "responsive_web_text_conversations_enabled": + false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": + false}' example: '{"blue_business_profile_image_shape_enabled": true, "responsive_web_graphql_exclude_directive_enabled": true, "verified_phone_label_enabled": false, "responsive_web_graphql_timeline_navigation_enabled": true, "responsive_web_graphql_skip_user_profile_image_extensions_enabled": @@ -297,13 +359,6 @@ paths: false, "longform_notetweets_rich_text_read_enabled": true, "responsive_web_enhance_cards_enabled": false}' type: string - - in: query - name: queryId - required: true - schema: - default: YqiE3JL1KNgf9nSljYdxaA - example: YqiE3JL1KNgf9nSljYdxaA - type: string responses: '200': content: diff --git a/dist/typescript/response/error.yaml b/dist/typescript/response/error.yaml new file mode 100644 index 0000000..efa5d6d --- /dev/null +++ b/dist/typescript/response/error.yaml @@ -0,0 +1,90 @@ +components: + schemas: + Error: + properties: + code: + type: integer + extensions: + $ref: '#/components/schemas/Extensions' + kind: + type: string + locations: + items: + $ref: '#/components/schemas/Location' + type: array + message: + type: string + name: + type: string + path: + items: + type: string + type: array + source: + type: string + tracing: + $ref: '#/components/schemas/Tracing' + required: + - message + - locations + - path + - extensions + - code + - kind + - name + - source + - tracing + type: object + ErrorResponse: + properties: + errors: + $ref: '#/components/schemas/Errors' + required: + - errors + - data + type: object + Errors: + items: + $ref: '#/components/schemas/Error' + type: array + Extensions: + properties: + code: + type: integer + kind: + type: string + name: + type: string + source: + type: string + tracing: + $ref: '#/components/schemas/Tracing' + required: + - name + - source + - code + - kind + - tracing + type: object + Location: + properties: + column: + type: integer + line: + type: integer + required: + - line + - column + type: object + Tracing: + properties: + trace_id: + type: string + required: + - trace_id + type: object +info: + title: Twitter OpenAPI + version: 0.0.1 +openapi: 3.0.3 +paths: {} diff --git a/dist/typescript/schemas/post.yaml b/dist/typescript/schemas/post.yaml deleted file mode 100644 index cf686ef..0000000 --- a/dist/typescript/schemas/post.yaml +++ /dev/null @@ -1,60 +0,0 @@ -components: - schemas: - CreateRetweet: - properties: - result: - items: - $ref: '#/components/schemas/Retweet' - type: object - required: - - result - CreateTweet: - properties: - result: - items: - $ref: ./tweet.yaml#/components/schemas/Tweet - type: object - required: - - result - DeleteRetweet: - properties: - result: - items: - $ref: '#/components/schemas/Retweet' - type: object - required: - - result - DeleteTweet: - properties: - nullable: true - type: object - FavoriteTweet: - properties: - favorite_tweet: - type: string - required: - - favorite_tweet - Retweet: - properties: - legacy: - items: - properties: - full_text: - type: string - type: object - rest_id: - type: string - required: - - rest_id - - legacy - UnfavoriteTweet: - properties: - unfavorite_tweet: - type: string - required: - - unfavorite_tweet -info: - title: Twitter OpenAPI - version: 0.0.1 -openapi: 3.0.3 -paths: {}