diff --git a/dist/openapi-3.0.yaml b/dist/dart/openapi-3.0.yaml similarity index 100% rename from dist/openapi-3.0.yaml rename to dist/dart/openapi-3.0.yaml diff --git a/dist/paths/bookmarks.yaml b/dist/dart/paths/bookmarks.yaml similarity index 100% rename from dist/paths/bookmarks.yaml rename to dist/dart/paths/bookmarks.yaml diff --git a/dist/paths/follow.yaml b/dist/dart/paths/follow.yaml similarity index 100% rename from dist/paths/follow.yaml rename to dist/dart/paths/follow.yaml diff --git a/dist/paths/profile.yaml b/dist/dart/paths/profile.yaml similarity index 100% rename from dist/paths/profile.yaml rename to dist/dart/paths/profile.yaml diff --git a/dist/paths/timeline.yaml b/dist/dart/paths/timeline.yaml similarity index 100% rename from dist/paths/timeline.yaml rename to dist/dart/paths/timeline.yaml diff --git a/dist/paths/tweet.yaml b/dist/dart/paths/tweet.yaml similarity index 100% rename from dist/paths/tweet.yaml rename to dist/dart/paths/tweet.yaml diff --git a/dist/paths/user.yaml b/dist/dart/paths/user.yaml similarity index 100% rename from dist/paths/user.yaml rename to dist/dart/paths/user.yaml diff --git a/dist/paths/usertweets.yaml b/dist/dart/paths/usertweets.yaml similarity index 100% rename from dist/paths/usertweets.yaml rename to dist/dart/paths/usertweets.yaml diff --git a/dist/schemas/content.yaml b/dist/dart/schemas/content.yaml similarity index 100% rename from dist/schemas/content.yaml rename to dist/dart/schemas/content.yaml diff --git a/dist/schemas/general.yaml b/dist/dart/schemas/general.yaml similarity index 100% rename from dist/schemas/general.yaml rename to dist/dart/schemas/general.yaml diff --git a/dist/schemas/instruction.yaml b/dist/dart/schemas/instruction.yaml similarity index 100% rename from dist/schemas/instruction.yaml rename to dist/dart/schemas/instruction.yaml diff --git a/dist/schemas/timeline.yaml b/dist/dart/schemas/timeline.yaml similarity index 100% rename from dist/schemas/timeline.yaml rename to dist/dart/schemas/timeline.yaml diff --git a/dist/schemas/tweet.yaml b/dist/dart/schemas/tweet.yaml similarity index 100% rename from dist/schemas/tweet.yaml rename to dist/dart/schemas/tweet.yaml diff --git a/dist/schemas/typename.yaml b/dist/dart/schemas/typename.yaml similarity index 100% rename from dist/schemas/typename.yaml rename to dist/dart/schemas/typename.yaml diff --git a/dist/schemas/user.yaml b/dist/dart/schemas/user.yaml similarity index 100% rename from dist/schemas/user.yaml rename to dist/dart/schemas/user.yaml diff --git a/dist/typescript/openapi-3.0.yaml b/dist/typescript/openapi-3.0.yaml new file mode 100644 index 0000000..2d55929 --- /dev/null +++ b/dist/typescript/openapi-3.0.yaml @@ -0,0 +1,98 @@ +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: + /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 + /YqiE3JL1KNgf9nSljYdxaA/UserMedia: + $ref: ./paths/usertweets.yaml#/paths/~1YqiE3JL1KNgf9nSljYdxaA~1UserMedia + /djdTXDIk2qhd4OStqlUFeQ/Followers: + $ref: ./paths/follow.yaml#/paths/~1djdTXDIk2qhd4OStqlUFeQ~1Followers + /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/typescript/paths/bookmarks.yaml b/dist/typescript/paths/bookmarks.yaml new file mode 100644 index 0000000..8efd7dc --- /dev/null +++ b/dist/typescript/paths/bookmarks.yaml @@ -0,0 +1,102 @@ +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: variables + required: true + schema: + example: '{"count": 20, "includePromotedContent": true}' + type: string + - in: query + name: features + required: true + schema: + 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 + - in: query + name: queryId + required: true + schema: + default: tmd4ifV8RHltzn8ymGg1aw + example: tmd4ifV8RHltzn8ymGg1aw + 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/typescript/paths/follow.yaml b/dist/typescript/paths/follow.yaml new file mode 100644 index 0000000..dd25d1d --- /dev/null +++ b/dist/typescript/paths/follow.yaml @@ -0,0 +1,196 @@ +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: variables + required: true + schema: + example: '{"userId": "44196397", "count": 20, "includePromotedContent": + false}' + type: string + - in: query + name: features + required: true + schema: + 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 + - in: query + name: queryId + required: true + schema: + default: IWP6Zt14sARO29lJT35bBw + example: IWP6Zt14sARO29lJT35bBw + 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: variables + required: true + schema: + example: '{"userId": "44196397", "count": 20, "includePromotedContent": + false}' + type: string + - in: query + name: features + required: true + schema: + 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 + - in: query + name: queryId + required: true + schema: + default: djdTXDIk2qhd4OStqlUFeQ + example: djdTXDIk2qhd4OStqlUFeQ + 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/typescript/paths/profile.yaml b/dist/typescript/paths/profile.yaml new file mode 100644 index 0000000..0dc64ab --- /dev/null +++ b/dist/typescript/paths/profile.yaml @@ -0,0 +1,130 @@ +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: variables + required: true + schema: + example: '{"screen_name": "elonmusk"}' + type: string + - in: query + name: features + required: true + schema: + example: '{}' + type: string + - in: query + name: queryId + required: true + schema: + default: 9zwVLJ48lmVUk8u_Gh9DmA + example: 9zwVLJ48lmVUk8u_Gh9DmA + 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/typescript/paths/timeline.yaml b/dist/typescript/paths/timeline.yaml new file mode 100644 index 0000000..f431a7a --- /dev/null +++ b/dist/typescript/paths/timeline.yaml @@ -0,0 +1,282 @@ +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: variables + required: true + schema: + example: '{"listId": "53044119", "count": 20}' + type: string + - in: query + name: features + required: true + schema: + 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 + - in: query + name: queryId + required: true + schema: + default: 2TemLyqrMpTeAmysdbnVqw + example: 2TemLyqrMpTeAmysdbnVqw + 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: variables + required: true + schema: + example: '{"count": 20, "includePromotedContent": true, "latestControlAvailable": + true, "requestContext": "launch", "withCommunity": true}' + type: string + - in: query + name: features + required: true + schema: + 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 + - in: query + name: queryId + required: true + schema: + default: HCosKfLNW1AcOo3la3mMgg + example: HCosKfLNW1AcOo3la3mMgg + 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: variables + required: true + schema: + example: '{"count": 20, "includePromotedContent": true, "latestControlAvailable": + true, "requestContext": "launch"}' + type: string + - in: query + name: features + required: true + schema: + 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 + - in: query + name: queryId + required: true + schema: + default: zhX91JE87mWvfprhYE97xA + example: zhX91JE87mWvfprhYE97xA + 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/typescript/paths/tweet.yaml b/dist/typescript/paths/tweet.yaml new file mode 100644 index 0000000..5b2df81 --- /dev/null +++ b/dist/typescript/paths/tweet.yaml @@ -0,0 +1,99 @@ +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: variables + required: true + schema: + 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: + 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 + - in: query + name: queryId + required: true + schema: + default: wNNG8DBB8EaXw1lq4vFWGA + example: wNNG8DBB8EaXw1lq4vFWGA + 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/typescript/paths/user.yaml b/dist/typescript/paths/user.yaml new file mode 100644 index 0000000..9c0fd4e --- /dev/null +++ b/dist/typescript/paths/user.yaml @@ -0,0 +1,88 @@ +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: variables + required: true + schema: + example: '{"screen_name": "elonmusk", "withSafetyModeUserFields": true}' + type: string + - in: query + name: features + required: true + schema: + 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: + 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/typescript/paths/usertweets.yaml b/dist/typescript/paths/usertweets.yaml new file mode 100644 index 0000000..1484f97 --- /dev/null +++ b/dist/typescript/paths/usertweets.yaml @@ -0,0 +1,349 @@ +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: variables + required: true + schema: + example: '{"userId": "44196397", "count": 20, "includePromotedContent": + false, "withClientEventToken": false, "withBirdwatchNotes": false, "withVoice": + true, "withV2Timeline": true}' + type: string + - in: query + name: features + required: true + schema: + 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 + - in: query + name: queryId + required: true + schema: + default: 5fmEkRT-1AdHqEsbVgehMg + example: 5fmEkRT-1AdHqEsbVgehMg + 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: variables + required: true + schema: + example: '{"userId": "44196397", "count": 40, "includePromotedContent": + true, "withQuickPromoteEligibilityTweetFields": true, "withVoice": true, + "withV2Timeline": true}' + type: string + - in: query + name: features + required: true + schema: + 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 + - in: query + name: queryId + required: true + schema: + default: HuTx74BxAnezK1gWvYY7zg + example: HuTx74BxAnezK1gWvYY7zg + 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: variables + required: true + schema: + example: '{"userId": "44196397", "count": 40, "includePromotedContent": + true, "withCommunity": true, "withVoice": true, "withV2Timeline": true}' + type: string + - in: query + name: features + required: true + schema: + 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 + - in: query + name: queryId + required: true + schema: + default: RIWc55YCNyUJ-U3HHGYkdg + example: RIWc55YCNyUJ-U3HHGYkdg + 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: variables + required: true + schema: + example: '{"userId": "44196397", "count": 40, "includePromotedContent": + false, "withClientEventToken": false, "withBirdwatchNotes": false, "withVoice": + true, "withV2Timeline": true}' + type: string + - in: query + name: features + required: true + schema: + 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 + - in: query + name: queryId + required: true + schema: + default: YqiE3JL1KNgf9nSljYdxaA + example: YqiE3JL1KNgf9nSljYdxaA + 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/typescript/schemas/content.yaml b/dist/typescript/schemas/content.yaml new file mode 100644 index 0000000..25f3156 --- /dev/null +++ b/dist/typescript/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/typescript/schemas/general.yaml b/dist/typescript/schemas/general.yaml new file mode 100644 index 0000000..7a64dcf --- /dev/null +++ b/dist/typescript/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/typescript/schemas/instruction.yaml b/dist/typescript/schemas/instruction.yaml new file mode 100644 index 0000000..9f73553 --- /dev/null +++ b/dist/typescript/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/typescript/schemas/timeline.yaml b/dist/typescript/schemas/timeline.yaml new file mode 100644 index 0000000..b2b721e --- /dev/null +++ b/dist/typescript/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/typescript/schemas/tweet.yaml b/dist/typescript/schemas/tweet.yaml new file mode 100644 index 0000000..eff5faf --- /dev/null +++ b/dist/typescript/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/typescript/schemas/typename.yaml b/dist/typescript/schemas/typename.yaml new file mode 100644 index 0000000..21121fc --- /dev/null +++ b/dist/typescript/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/typescript/schemas/user.yaml b/dist/typescript/schemas/user.yaml new file mode 100644 index 0000000..d9bb43c --- /dev/null +++ b/dist/typescript/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: {}