1
Fork 0
mirror of https://github.com/thegeneralist01/twitter-openapi synced 2026-01-11 15:40:26 +01:00

Merge pull request #64 from fa0311/dev

Dev
This commit is contained in:
ふぁ 2024-06-06 14:33:05 +09:00 committed by GitHub
commit eb098fe985
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 1069 additions and 45 deletions

View file

@ -29,6 +29,12 @@ components:
type: string type: string
required: required:
- url - url
AllowDownloadStatus:
properties:
allow_download:
type: boolean
required:
- allow_download
Article: Article:
properties: properties:
article_results: article_results:
@ -98,12 +104,28 @@ components:
- original_img_width - original_img_width
- original_img_url - original_img_url
- color_info - color_info
ArticleLifecycleState:
properties:
modified_at_secs:
type: integer
required:
- modified_at_secs
ArticleMetadata:
properties:
first_published_at_secs:
type: integer
required:
- first_published_at_secs
ArticleResult: ArticleResult:
properties: properties:
cover_media: cover_media:
$ref: '#/components/schemas/ArticleCoverMedia' $ref: '#/components/schemas/ArticleCoverMedia'
id: id:
type: string type: string
lifecycle_state:
$ref: '#/components/schemas/ArticleLifecycleState'
metadata:
$ref: '#/components/schemas/ArticleMetadata'
preview_text: preview_text:
type: string type: string
rest_id: rest_id:
@ -117,6 +139,7 @@ components:
- title - title
- preview_text - preview_text
- cover_media - cover_media
- metadata
ArticleResults: ArticleResults:
properties: properties:
result: result:
@ -522,6 +545,18 @@ components:
- ctaBehavior - ctaBehavior
- callbacks - callbacks
- clientEventInfo - clientEventInfo
CreateBookmarkResponse:
properties:
data:
$ref: '#/components/schemas/CreateBookmarkResponseData'
required:
- data
CreateBookmarkResponseData:
properties:
tweet_bookmark_put:
type: string
required:
- tweet_bookmark_put
CreateRetweet: CreateRetweet:
properties: properties:
result: result:
@ -586,6 +621,18 @@ components:
- ShowMoreThreads - ShowMoreThreads
- Gap - Gap
type: string type: string
DeleteBookmarkResponse:
properties:
data:
$ref: '#/components/schemas/DeleteBookmarkResponseData'
required:
- data
DeleteBookmarkResponseData:
properties:
tweet_bookmark_delete:
type: string
required:
- tweet_bookmark_delete
DeleteRetweet: DeleteRetweet:
properties: properties:
result: result:
@ -955,8 +1002,9 @@ components:
Media: Media:
properties: properties:
additional_media_info: additional_media_info:
additionalProperties: true $ref: '#/components/schemas/AdditionalMediaInfo'
type: object allow_download_status:
$ref: '#/components/schemas/AllowDownloadStatus'
display_url: display_url:
format: uri format: uri
type: string type: string
@ -978,6 +1026,8 @@ components:
type: array type: array
media_key: media_key:
type: string type: string
media_results:
$ref: '#/components/schemas/MediaResults'
media_url_https: media_url_https:
format: uri format: uri
type: string type: string
@ -1003,8 +1053,7 @@ components:
format: uri format: uri
type: string type: string
video_info: video_info:
additionalProperties: true $ref: '#/components/schemas/MediaVideoInfo'
type: object
required: required:
- display_url - display_url
- expanded_url - expanded_url
@ -1021,6 +1070,8 @@ components:
properties: properties:
additional_media_info: additional_media_info:
$ref: '#/components/schemas/AdditionalMediaInfo' $ref: '#/components/schemas/AdditionalMediaInfo'
allow_download_status:
$ref: '#/components/schemas/AllowDownloadStatus'
display_url: display_url:
format: uri format: uri
type: string type: string
@ -1044,6 +1095,8 @@ components:
$ref: '#/components/schemas/MediaStats' $ref: '#/components/schemas/MediaStats'
media_key: media_key:
type: string type: string
media_results:
$ref: '#/components/schemas/MediaResults'
media_url_https: media_url_https:
format: uri format: uri
type: string type: string
@ -1110,6 +1163,18 @@ components:
- w - w
- h - h
type: object type: object
MediaResult:
properties:
media_key:
type: string
required:
- media_key
MediaResults:
properties:
result:
$ref: '#/components/schemas/MediaResult'
required:
- result
MediaSize: MediaSize:
properties: properties:
h: h:
@ -1173,6 +1238,24 @@ components:
required: required:
- content_type - content_type
- url - url
MediaVisibilityResults:
properties:
blurred_image_interstitial:
$ref: '#/components/schemas/MediaVisibilityResultsBlurredImageInterstitial'
required:
- blurred_image_interstitial
MediaVisibilityResultsBlurredImageInterstitial:
properties:
opacity:
type: number
text:
$ref: '#/components/schemas/TweetInterstitialText'
title:
$ref: '#/components/schemas/TweetInterstitialText'
required:
- opacity
- text
- title
ModuleEntry: ModuleEntry:
properties: properties:
clientEventInfo: clientEventInfo:
@ -2416,6 +2499,8 @@ components:
limitedActionResults: limitedActionResults:
additionalProperties: true additionalProperties: true
type: object type: object
mediaVisibilityResults:
$ref: '#/components/schemas/MediaVisibilityResults'
tweet: tweet:
$ref: '#/components/schemas/Tweet' $ref: '#/components/schemas/Tweet'
tweetInterstitial: tweetInterstitial:
@ -2546,6 +2631,8 @@ components:
type: boolean type: boolean
legacy: legacy:
$ref: '#/components/schemas/UserLegacy' $ref: '#/components/schemas/UserLegacy'
legacy_extended_profile:
$ref: '#/components/schemas/UserLegacyExtendedProfile'
professional: professional:
$ref: '#/components/schemas/UserProfessional' $ref: '#/components/schemas/UserProfessional'
profile_image_shape: profile_image_shape:
@ -2566,6 +2653,8 @@ components:
super_following: super_following:
default: false default: false
type: boolean type: boolean
tipjar_settings:
$ref: '#/components/schemas/UserTipJarSettings'
user_seed_tweet_count: user_seed_tweet_count:
type: integer type: integer
verification_info: verification_info:
@ -2779,6 +2868,40 @@ components:
- translator_type - translator_type
- verified - verified
- want_retweets - want_retweets
UserLegacyExtendedProfile:
properties:
birthdate:
$ref: '#/components/schemas/UserLegacyExtendedProfileBirthdate'
UserLegacyExtendedProfileBirthdate:
properties:
day:
type: integer
month:
type: integer
visibility:
enum:
- Self
- Public
- MutualFollow
- Followers
- Following
type: string
year:
type: integer
year_visibility:
enum:
- Self
- Public
- MutualFollow
- Followers
- Following
type: string
required:
- day
- month
- year
- visibility
- year_visibility
UserMention: UserMention:
additionalProperties: true additionalProperties: true
type: object type: object
@ -2881,6 +3004,22 @@ components:
properties: properties:
result: result:
$ref: '#/components/schemas/UserUnion' $ref: '#/components/schemas/UserUnion'
UserTipJarSettings:
properties:
bitcoin_handle:
type: string
cash_app_handle:
type: string
ethereum_handle:
type: string
gofundme_handle:
type: string
is_enabled:
type: boolean
patreon_handle:
type: string
venmo_handle:
type: string
UserTweetsData: UserTweetsData:
properties: properties:
user: user:
@ -3969,6 +4108,77 @@ paths:
type: string type: string
tags: tags:
- tweet - tweet
/graphql/{pathQueryId}/CreateBookmark:
post:
description: create Bookmark
operationId: postCreateBookmark
parameters:
- in: path
name: pathQueryId
required: true
schema:
default: aoDbu3RHznuiSkQ9aNM67Q
example: aoDbu3RHznuiSkQ9aNM67Q
type: string
requestBody:
content:
application/json:
schema:
properties:
queryId:
default: aoDbu3RHznuiSkQ9aNM67Q
example: aoDbu3RHznuiSkQ9aNM67Q
type: string
variables:
properties:
tweet_id:
default: '1349129669258448897'
example: '1349129669258448897'
type: string
required:
- tweet_id
type: object
required:
- queryId
- variables
description: body
required: true
responses:
'200':
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/CreateBookmarkResponse'
- $ref: '#/components/schemas/Errors'
description: Successful operation
headers:
x-connection-hash:
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
tags:
- post
/graphql/{pathQueryId}/CreateRetweet: /graphql/{pathQueryId}/CreateRetweet:
post: post:
description: create Retweet description: create Retweet
@ -4272,6 +4482,77 @@ paths:
type: string type: string
tags: tags:
- post - post
/graphql/{pathQueryId}/DeleteBookmark:
post:
description: delete Bookmark
operationId: postDeleteBookmark
parameters:
- in: path
name: pathQueryId
required: true
schema:
default: Wlmlj2-xzyS1GN3a6cj-mQ
example: Wlmlj2-xzyS1GN3a6cj-mQ
type: string
requestBody:
content:
application/json:
schema:
properties:
queryId:
default: Wlmlj2-xzyS1GN3a6cj-mQ
example: Wlmlj2-xzyS1GN3a6cj-mQ
type: string
variables:
properties:
tweet_id:
default: '1349129669258448897'
example: '1349129669258448897'
type: string
required:
- tweet_id
type: object
required:
- queryId
- variables
description: body
required: true
responses:
'200':
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/DeleteBookmarkResponse'
- $ref: '#/components/schemas/Errors'
description: Successful operation
headers:
x-connection-hash:
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
tags:
- post
/graphql/{pathQueryId}/DeleteRetweet: /graphql/{pathQueryId}/DeleteRetweet:
post: post:
description: delete Retweet description: delete Retweet
@ -5127,17 +5408,15 @@ paths:
name: pathQueryId name: pathQueryId
required: true required: true
schema: schema:
default: eL8vHLgEw2ZL9X9dKdakLQ default: GX5ovLTwyoN1Td13GHvhIg
example: eL8vHLgEw2ZL9X9dKdakLQ example: GX5ovLTwyoN1Td13GHvhIg
type: string type: string
- in: query - in: query
name: variables name: variables
required: true required: true
schema: schema:
default: '{"count": 20, "includePromotedContent": true, "latestControlAvailable": default: '{"listId": "1539453138322673664", "count": 20}'
true}' example: '{"listId": "1539453138322673664", "count": 20}'
example: '{"count": 20, "includePromotedContent": true, "latestControlAvailable":
true}'
type: string type: string
- in: query - in: query
name: features name: features

View file

@ -29,6 +29,12 @@ components:
type: string type: string
required: required:
- url - url
AllowDownloadStatus:
properties:
allow_download:
type: boolean
required:
- allow_download
Article: Article:
properties: properties:
article_results: article_results:
@ -98,12 +104,28 @@ components:
- original_img_width - original_img_width
- original_img_url - original_img_url
- color_info - color_info
ArticleLifecycleState:
properties:
modified_at_secs:
type: integer
required:
- modified_at_secs
ArticleMetadata:
properties:
first_published_at_secs:
type: integer
required:
- first_published_at_secs
ArticleResult: ArticleResult:
properties: properties:
cover_media: cover_media:
$ref: '#/components/schemas/ArticleCoverMedia' $ref: '#/components/schemas/ArticleCoverMedia'
id: id:
type: string type: string
lifecycle_state:
$ref: '#/components/schemas/ArticleLifecycleState'
metadata:
$ref: '#/components/schemas/ArticleMetadata'
preview_text: preview_text:
type: string type: string
rest_id: rest_id:
@ -117,6 +139,7 @@ components:
- title - title
- preview_text - preview_text
- cover_media - cover_media
- metadata
ArticleResults: ArticleResults:
properties: properties:
result: result:
@ -522,6 +545,18 @@ components:
- ctaBehavior - ctaBehavior
- callbacks - callbacks
- clientEventInfo - clientEventInfo
CreateBookmarkResponse:
properties:
data:
$ref: '#/components/schemas/CreateBookmarkResponseData'
required:
- data
CreateBookmarkResponseData:
properties:
tweet_bookmark_put:
type: string
required:
- tweet_bookmark_put
CreateRetweet: CreateRetweet:
properties: properties:
result: result:
@ -586,6 +621,18 @@ components:
- ShowMoreThreads - ShowMoreThreads
- Gap - Gap
type: string type: string
DeleteBookmarkResponse:
properties:
data:
$ref: '#/components/schemas/DeleteBookmarkResponseData'
required:
- data
DeleteBookmarkResponseData:
properties:
tweet_bookmark_delete:
type: string
required:
- tweet_bookmark_delete
DeleteRetweet: DeleteRetweet:
properties: properties:
result: result:
@ -955,8 +1002,9 @@ components:
Media: Media:
properties: properties:
additional_media_info: additional_media_info:
additionalProperties: true $ref: '#/components/schemas/AdditionalMediaInfo'
type: object allow_download_status:
$ref: '#/components/schemas/AllowDownloadStatus'
display_url: display_url:
format: uri format: uri
type: string type: string
@ -978,6 +1026,8 @@ components:
type: array type: array
media_key: media_key:
type: string type: string
media_results:
$ref: '#/components/schemas/MediaResults'
media_url_https: media_url_https:
format: uri format: uri
type: string type: string
@ -1003,8 +1053,7 @@ components:
format: uri format: uri
type: string type: string
video_info: video_info:
additionalProperties: true $ref: '#/components/schemas/MediaVideoInfo'
type: object
required: required:
- display_url - display_url
- expanded_url - expanded_url
@ -1021,6 +1070,8 @@ components:
properties: properties:
additional_media_info: additional_media_info:
$ref: '#/components/schemas/AdditionalMediaInfo' $ref: '#/components/schemas/AdditionalMediaInfo'
allow_download_status:
$ref: '#/components/schemas/AllowDownloadStatus'
display_url: display_url:
format: uri format: uri
type: string type: string
@ -1044,6 +1095,8 @@ components:
$ref: '#/components/schemas/MediaStats' $ref: '#/components/schemas/MediaStats'
media_key: media_key:
type: string type: string
media_results:
$ref: '#/components/schemas/MediaResults'
media_url_https: media_url_https:
format: uri format: uri
type: string type: string
@ -1110,6 +1163,18 @@ components:
- w - w
- h - h
type: object type: object
MediaResult:
properties:
media_key:
type: string
required:
- media_key
MediaResults:
properties:
result:
$ref: '#/components/schemas/MediaResult'
required:
- result
MediaSize: MediaSize:
properties: properties:
h: h:
@ -1173,6 +1238,24 @@ components:
required: required:
- content_type - content_type
- url - url
MediaVisibilityResults:
properties:
blurred_image_interstitial:
$ref: '#/components/schemas/MediaVisibilityResultsBlurredImageInterstitial'
required:
- blurred_image_interstitial
MediaVisibilityResultsBlurredImageInterstitial:
properties:
opacity:
type: number
text:
$ref: '#/components/schemas/TweetInterstitialText'
title:
$ref: '#/components/schemas/TweetInterstitialText'
required:
- opacity
- text
- title
ModuleEntry: ModuleEntry:
properties: properties:
clientEventInfo: clientEventInfo:
@ -2416,6 +2499,8 @@ components:
limitedActionResults: limitedActionResults:
additionalProperties: true additionalProperties: true
type: object type: object
mediaVisibilityResults:
$ref: '#/components/schemas/MediaVisibilityResults'
tweet: tweet:
$ref: '#/components/schemas/Tweet' $ref: '#/components/schemas/Tweet'
tweetInterstitial: tweetInterstitial:
@ -2546,6 +2631,8 @@ components:
type: boolean type: boolean
legacy: legacy:
$ref: '#/components/schemas/UserLegacy' $ref: '#/components/schemas/UserLegacy'
legacy_extended_profile:
$ref: '#/components/schemas/UserLegacyExtendedProfile'
professional: professional:
$ref: '#/components/schemas/UserProfessional' $ref: '#/components/schemas/UserProfessional'
profile_image_shape: profile_image_shape:
@ -2566,6 +2653,8 @@ components:
super_following: super_following:
default: false default: false
type: boolean type: boolean
tipjar_settings:
$ref: '#/components/schemas/UserTipJarSettings'
user_seed_tweet_count: user_seed_tweet_count:
type: integer type: integer
verification_info: verification_info:
@ -2779,6 +2868,40 @@ components:
- translator_type - translator_type
- verified - verified
- want_retweets - want_retweets
UserLegacyExtendedProfile:
properties:
birthdate:
$ref: '#/components/schemas/UserLegacyExtendedProfileBirthdate'
UserLegacyExtendedProfileBirthdate:
properties:
day:
type: integer
month:
type: integer
visibility:
enum:
- Self
- Public
- MutualFollow
- Followers
- Following
type: string
year:
type: integer
year_visibility:
enum:
- Self
- Public
- MutualFollow
- Followers
- Following
type: string
required:
- day
- month
- year
- visibility
- year_visibility
UserMention: UserMention:
additionalProperties: true additionalProperties: true
type: object type: object
@ -2881,6 +3004,22 @@ components:
properties: properties:
result: result:
$ref: '#/components/schemas/UserUnion' $ref: '#/components/schemas/UserUnion'
UserTipJarSettings:
properties:
bitcoin_handle:
type: string
cash_app_handle:
type: string
ethereum_handle:
type: string
gofundme_handle:
type: string
is_enabled:
type: boolean
patreon_handle:
type: string
venmo_handle:
type: string
UserTweetsData: UserTweetsData:
properties: properties:
user: user:
@ -3967,6 +4106,75 @@ paths:
type: string type: string
tags: tags:
- tweet - tweet
/graphql/{pathQueryId}/CreateBookmark:
post:
description: create Bookmark
operationId: postCreateBookmark
parameters:
- in: path
name: pathQueryId
required: true
schema:
default: aoDbu3RHznuiSkQ9aNM67Q
example: aoDbu3RHznuiSkQ9aNM67Q
type: string
requestBody:
content:
application/json:
schema:
properties:
queryId:
default: aoDbu3RHznuiSkQ9aNM67Q
example: aoDbu3RHznuiSkQ9aNM67Q
type: string
variables:
properties:
tweet_id:
default: '1349129669258448897'
example: '1349129669258448897'
type: string
required:
- tweet_id
type: object
required:
- queryId
- variables
description: body
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CreateBookmarkResponse'
description: Successful operation
headers:
x-connection-hash:
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
tags:
- post
/graphql/{pathQueryId}/CreateRetweet: /graphql/{pathQueryId}/CreateRetweet:
post: post:
description: create Retweet description: create Retweet
@ -4266,6 +4474,75 @@ paths:
type: string type: string
tags: tags:
- post - post
/graphql/{pathQueryId}/DeleteBookmark:
post:
description: delete Bookmark
operationId: postDeleteBookmark
parameters:
- in: path
name: pathQueryId
required: true
schema:
default: Wlmlj2-xzyS1GN3a6cj-mQ
example: Wlmlj2-xzyS1GN3a6cj-mQ
type: string
requestBody:
content:
application/json:
schema:
properties:
queryId:
default: Wlmlj2-xzyS1GN3a6cj-mQ
example: Wlmlj2-xzyS1GN3a6cj-mQ
type: string
variables:
properties:
tweet_id:
default: '1349129669258448897'
example: '1349129669258448897'
type: string
required:
- tweet_id
type: object
required:
- queryId
- variables
description: body
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteBookmarkResponse'
description: Successful operation
headers:
x-connection-hash:
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
tags:
- post
/graphql/{pathQueryId}/DeleteRetweet: /graphql/{pathQueryId}/DeleteRetweet:
post: post:
description: delete Retweet description: delete Retweet
@ -5101,17 +5378,15 @@ paths:
name: pathQueryId name: pathQueryId
required: true required: true
schema: schema:
default: eL8vHLgEw2ZL9X9dKdakLQ default: GX5ovLTwyoN1Td13GHvhIg
example: eL8vHLgEw2ZL9X9dKdakLQ example: GX5ovLTwyoN1Td13GHvhIg
type: string type: string
- in: query - in: query
name: variables name: variables
required: true required: true
schema: schema:
default: '{"count": 20, "includePromotedContent": true, "latestControlAvailable": default: '{"listId": "1539453138322673664", "count": 20}'
true}' example: '{"listId": "1539453138322673664", "count": 20}'
example: '{"count": 20, "includePromotedContent": true, "latestControlAvailable":
true}'
type: string type: string
- in: query - in: query
name: features name: features

View file

@ -29,6 +29,12 @@ components:
type: string type: string
required: required:
- url - url
AllowDownloadStatus:
properties:
allow_download:
type: boolean
required:
- allow_download
Article: Article:
properties: properties:
article_results: article_results:
@ -98,12 +104,28 @@ components:
- original_img_width - original_img_width
- original_img_url - original_img_url
- color_info - color_info
ArticleLifecycleState:
properties:
modified_at_secs:
type: integer
required:
- modified_at_secs
ArticleMetadata:
properties:
first_published_at_secs:
type: integer
required:
- first_published_at_secs
ArticleResult: ArticleResult:
properties: properties:
cover_media: cover_media:
$ref: '#/components/schemas/ArticleCoverMedia' $ref: '#/components/schemas/ArticleCoverMedia'
id: id:
type: string type: string
lifecycle_state:
$ref: '#/components/schemas/ArticleLifecycleState'
metadata:
$ref: '#/components/schemas/ArticleMetadata'
preview_text: preview_text:
type: string type: string
rest_id: rest_id:
@ -117,6 +139,7 @@ components:
- title - title
- preview_text - preview_text
- cover_media - cover_media
- metadata
ArticleResults: ArticleResults:
properties: properties:
result: result:
@ -522,6 +545,18 @@ components:
- ctaBehavior - ctaBehavior
- callbacks - callbacks
- clientEventInfo - clientEventInfo
CreateBookmarkResponse:
properties:
data:
$ref: '#/components/schemas/CreateBookmarkResponseData'
required:
- data
CreateBookmarkResponseData:
properties:
tweet_bookmark_put:
type: string
required:
- tweet_bookmark_put
CreateRetweet: CreateRetweet:
properties: properties:
result: result:
@ -586,6 +621,18 @@ components:
- ShowMoreThreads - ShowMoreThreads
- Gap - Gap
type: string type: string
DeleteBookmarkResponse:
properties:
data:
$ref: '#/components/schemas/DeleteBookmarkResponseData'
required:
- data
DeleteBookmarkResponseData:
properties:
tweet_bookmark_delete:
type: string
required:
- tweet_bookmark_delete
DeleteRetweet: DeleteRetweet:
properties: properties:
result: result:
@ -955,8 +1002,9 @@ components:
Media: Media:
properties: properties:
additional_media_info: additional_media_info:
additionalProperties: true $ref: '#/components/schemas/AdditionalMediaInfo'
type: object allow_download_status:
$ref: '#/components/schemas/AllowDownloadStatus'
display_url: display_url:
format: uri format: uri
type: string type: string
@ -978,6 +1026,8 @@ components:
type: array type: array
media_key: media_key:
type: string type: string
media_results:
$ref: '#/components/schemas/MediaResults'
media_url_https: media_url_https:
format: uri format: uri
type: string type: string
@ -1003,8 +1053,7 @@ components:
format: uri format: uri
type: string type: string
video_info: video_info:
additionalProperties: true $ref: '#/components/schemas/MediaVideoInfo'
type: object
required: required:
- display_url - display_url
- expanded_url - expanded_url
@ -1021,6 +1070,8 @@ components:
properties: properties:
additional_media_info: additional_media_info:
$ref: '#/components/schemas/AdditionalMediaInfo' $ref: '#/components/schemas/AdditionalMediaInfo'
allow_download_status:
$ref: '#/components/schemas/AllowDownloadStatus'
display_url: display_url:
format: uri format: uri
type: string type: string
@ -1044,6 +1095,8 @@ components:
$ref: '#/components/schemas/MediaStats' $ref: '#/components/schemas/MediaStats'
media_key: media_key:
type: string type: string
media_results:
$ref: '#/components/schemas/MediaResults'
media_url_https: media_url_https:
format: uri format: uri
type: string type: string
@ -1110,6 +1163,18 @@ components:
- w - w
- h - h
type: object type: object
MediaResult:
properties:
media_key:
type: string
required:
- media_key
MediaResults:
properties:
result:
$ref: '#/components/schemas/MediaResult'
required:
- result
MediaSize: MediaSize:
properties: properties:
h: h:
@ -1173,6 +1238,24 @@ components:
required: required:
- content_type - content_type
- url - url
MediaVisibilityResults:
properties:
blurred_image_interstitial:
$ref: '#/components/schemas/MediaVisibilityResultsBlurredImageInterstitial'
required:
- blurred_image_interstitial
MediaVisibilityResultsBlurredImageInterstitial:
properties:
opacity:
type: number
text:
$ref: '#/components/schemas/TweetInterstitialText'
title:
$ref: '#/components/schemas/TweetInterstitialText'
required:
- opacity
- text
- title
ModuleEntry: ModuleEntry:
properties: properties:
clientEventInfo: clientEventInfo:
@ -2416,6 +2499,8 @@ components:
limitedActionResults: limitedActionResults:
additionalProperties: true additionalProperties: true
type: object type: object
mediaVisibilityResults:
$ref: '#/components/schemas/MediaVisibilityResults'
tweet: tweet:
$ref: '#/components/schemas/Tweet' $ref: '#/components/schemas/Tweet'
tweetInterstitial: tweetInterstitial:
@ -2546,6 +2631,8 @@ components:
type: boolean type: boolean
legacy: legacy:
$ref: '#/components/schemas/UserLegacy' $ref: '#/components/schemas/UserLegacy'
legacy_extended_profile:
$ref: '#/components/schemas/UserLegacyExtendedProfile'
professional: professional:
$ref: '#/components/schemas/UserProfessional' $ref: '#/components/schemas/UserProfessional'
profile_image_shape: profile_image_shape:
@ -2566,6 +2653,8 @@ components:
super_following: super_following:
default: false default: false
type: boolean type: boolean
tipjar_settings:
$ref: '#/components/schemas/UserTipJarSettings'
user_seed_tweet_count: user_seed_tweet_count:
type: integer type: integer
verification_info: verification_info:
@ -2779,6 +2868,40 @@ components:
- translator_type - translator_type
- verified - verified
- want_retweets - want_retweets
UserLegacyExtendedProfile:
properties:
birthdate:
$ref: '#/components/schemas/UserLegacyExtendedProfileBirthdate'
UserLegacyExtendedProfileBirthdate:
properties:
day:
type: integer
month:
type: integer
visibility:
enum:
- Self
- Public
- MutualFollow
- Followers
- Following
type: string
year:
type: integer
year_visibility:
enum:
- Self
- Public
- MutualFollow
- Followers
- Following
type: string
required:
- day
- month
- year
- visibility
- year_visibility
UserMention: UserMention:
additionalProperties: true additionalProperties: true
type: object type: object
@ -2881,6 +3004,22 @@ components:
properties: properties:
result: result:
$ref: '#/components/schemas/UserUnion' $ref: '#/components/schemas/UserUnion'
UserTipJarSettings:
properties:
bitcoin_handle:
type: string
cash_app_handle:
type: string
ethereum_handle:
type: string
gofundme_handle:
type: string
is_enabled:
type: boolean
patreon_handle:
type: string
venmo_handle:
type: string
UserTweetsData: UserTweetsData:
properties: properties:
user: user:
@ -4071,6 +4210,77 @@ paths:
type: string type: string
tags: tags:
- tweet - tweet
/graphql/{pathQueryId}/CreateBookmark:
post:
description: create Bookmark
operationId: postCreateBookmark
parameters:
- in: path
name: pathQueryId
required: true
schema:
default: aoDbu3RHznuiSkQ9aNM67Q
example: aoDbu3RHznuiSkQ9aNM67Q
type: string
requestBody:
content:
application/json:
schema:
properties:
queryId:
default: aoDbu3RHznuiSkQ9aNM67Q
example: aoDbu3RHznuiSkQ9aNM67Q
type: string
variables:
properties:
tweet_id:
default: '1349129669258448897'
example: '1349129669258448897'
type: string
required:
- tweet_id
type: object
required:
- queryId
- variables
description: body
required: true
responses:
'200':
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/CreateBookmarkResponse'
- $ref: '#/components/schemas/Errors'
description: Successful operation
headers:
x-connection-hash:
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
tags:
- post
/graphql/{pathQueryId}/CreateRetweet: /graphql/{pathQueryId}/CreateRetweet:
post: post:
description: create Retweet description: create Retweet
@ -4374,6 +4584,77 @@ paths:
type: string type: string
tags: tags:
- post - post
/graphql/{pathQueryId}/DeleteBookmark:
post:
description: delete Bookmark
operationId: postDeleteBookmark
parameters:
- in: path
name: pathQueryId
required: true
schema:
default: Wlmlj2-xzyS1GN3a6cj-mQ
example: Wlmlj2-xzyS1GN3a6cj-mQ
type: string
requestBody:
content:
application/json:
schema:
properties:
queryId:
default: Wlmlj2-xzyS1GN3a6cj-mQ
example: Wlmlj2-xzyS1GN3a6cj-mQ
type: string
variables:
properties:
tweet_id:
default: '1349129669258448897'
example: '1349129669258448897'
type: string
required:
- tweet_id
type: object
required:
- queryId
- variables
description: body
required: true
responses:
'200':
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/DeleteBookmarkResponse'
- $ref: '#/components/schemas/Errors'
description: Successful operation
headers:
x-connection-hash:
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
tags:
- post
/graphql/{pathQueryId}/DeleteRetweet: /graphql/{pathQueryId}/DeleteRetweet:
post: post:
description: delete Retweet description: delete Retweet
@ -6002,8 +6283,8 @@ paths:
name: pathQueryId name: pathQueryId
required: true required: true
schema: schema:
default: eL8vHLgEw2ZL9X9dKdakLQ default: GX5ovLTwyoN1Td13GHvhIg
example: eL8vHLgEw2ZL9X9dKdakLQ example: GX5ovLTwyoN1Td13GHvhIg
type: string type: string
- content: - content:
application/json: application/json:
@ -6013,18 +6294,13 @@ paths:
default: 20 default: 20
example: 20 example: 20
type: integer type: integer
includePromotedContent: listId:
default: true default: '1539453138322673664'
example: true example: '1539453138322673664'
type: boolean type: string
latestControlAvailable:
default: true
example: true
type: boolean
required: required:
- listId
- count - count
- includePromotedContent
- latestControlAvailable
type: object type: object
in: query in: query
name: variables name: variables

View file

@ -756,6 +756,18 @@
"dark_request": false "dark_request": false
} }
}, },
"CreateBookmark": {
"queryId": "aoDbu3RHznuiSkQ9aNM67Q",
"variables": {
"tweet_id": "1349129669258448897"
}
},
"DeleteBookmark": {
"queryId": "Wlmlj2-xzyS1GN3a6cj-mQ",
"variables": {
"tweet_id": "1349129669258448897"
}
},
"#=====v1.1====": { "#=====v1.1====": {
"url": "https://twitter.com/i/api/1.1/" "url": "https://twitter.com/i/api/1.1/"
}, },

View file

@ -100,6 +100,38 @@ paths:
tags: tags:
- "post" - "post"
/graphql/{pathQueryId}/CreateBookmark:
post:
operationId: postCreateBookmark
description: create Bookmark
responses:
"200":
description: Successful operation
content:
application/json:
schema:
oneOf:
- $ref: "#/components/schemas/CreateBookmarkResponse"
- $ref: "./../schemas/error.yaml#/components/schemas/Errors"
tags:
- "post"
/graphql/{pathQueryId}/DeleteBookmark:
post:
operationId: postDeleteBookmark
description: delete Bookmark
responses:
"200":
description: Successful operation
content:
application/json:
schema:
oneOf:
- $ref: "#/components/schemas/DeleteBookmarkResponse"
- $ref: "./../schemas/error.yaml#/components/schemas/Errors"
tags:
- "post"
components: components:
schemas: schemas:
FavoriteTweetResponseData: FavoriteTweetResponseData:
@ -256,3 +288,31 @@ components:
properties: properties:
tweet_results: tweet_results:
type: object type: object
CreateBookmarkResponse:
required:
- "data"
properties:
data:
$ref: "#/components/schemas/CreateBookmarkResponseData"
CreateBookmarkResponseData:
required:
- "tweet_bookmark_put"
properties:
tweet_bookmark_put:
type: string
DeleteBookmarkResponse:
required:
- "data"
properties:
data:
$ref: "#/components/schemas/DeleteBookmarkResponseData"
DeleteBookmarkResponseData:
required:
- "tweet_bookmark_delete"
properties:
tweet_bookmark_delete:
type: string

View file

@ -33,6 +33,8 @@ components:
additionalProperties: true # todo additionalProperties: true # todo
tweetInterstitial: tweetInterstitial:
$ref: "#/components/schemas/TweetInterstitial" $ref: "#/components/schemas/TweetInterstitial"
mediaVisibilityResults:
$ref: "#/components/schemas/MediaVisibilityResults"
TweetInterstitial: TweetInterstitial:
required: required:
@ -95,6 +97,26 @@ components:
type: string type: string
enum: [ExternalUrl] enum: [ExternalUrl]
MediaVisibilityResults:
required:
- "blurred_image_interstitial"
properties:
blurred_image_interstitial:
$ref: "#/components/schemas/MediaVisibilityResultsBlurredImageInterstitial"
MediaVisibilityResultsBlurredImageInterstitial:
required:
- "opacity"
- "text"
- "title"
properties:
opacity:
type: number
text:
$ref: "#/components/schemas/TweetInterstitialText"
title:
$ref: "#/components/schemas/TweetInterstitialText"
TweetInterstitialRevealText: TweetInterstitialRevealText:
required: required:
- "rtl" - "rtl"
@ -1033,11 +1055,9 @@ components:
ext_media_availability: ext_media_availability:
$ref: "#/components/schemas/ExtMediaAvailability" $ref: "#/components/schemas/ExtMediaAvailability"
video_info: video_info:
type: object $ref: "#/components/schemas/MediaVideoInfo"
additionalProperties: true # todo
additional_media_info: additional_media_info:
type: object $ref: "#/components/schemas/AdditionalMediaInfo"
additionalProperties: true # todo
source_user_id_str: source_user_id_str:
type: string type: string
pattern: "^[0-9]+$" pattern: "^[0-9]+$"
@ -1048,6 +1068,10 @@ components:
type: string type: string
sensitive_media_warning: sensitive_media_warning:
$ref: "#/components/schemas/SensitiveMediaWarning" $ref: "#/components/schemas/SensitiveMediaWarning"
allow_download_status:
$ref: "#/components/schemas/AllowDownloadStatus"
media_results:
$ref: "#/components/schemas/MediaResults"
TweetLegacyScopes: TweetLegacyScopes:
required: required:
@ -1144,6 +1168,10 @@ components:
type: string type: string
sensitive_media_warning: sensitive_media_warning:
$ref: "#/components/schemas/SensitiveMediaWarning" $ref: "#/components/schemas/SensitiveMediaWarning"
allow_download_status:
$ref: "#/components/schemas/AllowDownloadStatus"
media_results:
$ref: "#/components/schemas/MediaResults"
MediaOriginalInfo: MediaOriginalInfo:
required: required:
@ -1336,6 +1364,7 @@ components:
- "title" - "title"
- "preview_text" - "preview_text"
- "cover_media" - "cover_media"
- "metadata"
properties: properties:
rest_id: rest_id:
type: string type: string
@ -1348,6 +1377,10 @@ components:
type: string type: string
cover_media: cover_media:
$ref: "#/components/schemas/ArticleCoverMedia" $ref: "#/components/schemas/ArticleCoverMedia"
metadata:
$ref: "#/components/schemas/ArticleMetadata"
lifecycle_state:
$ref: "#/components/schemas/ArticleLifecycleState"
ArticleCoverMedia: ArticleCoverMedia:
required: required:
@ -1416,3 +1449,38 @@ components:
type: integer type: integer
red: red:
type: integer type: integer
ArticleMetadata:
required:
- "first_published_at_secs"
properties:
first_published_at_secs:
type: integer
ArticleLifecycleState:
required:
- "modified_at_secs"
properties:
modified_at_secs:
type: integer
AllowDownloadStatus:
required:
- "allow_download"
properties:
allow_download:
type: boolean
MediaResults:
required:
- "result"
properties:
result:
$ref: "#/components/schemas/MediaResult"
MediaResult:
required:
- "media_key"
properties:
media_key:
type: string

View file

@ -92,6 +92,10 @@ components:
$ref: "#/components/schemas/UserVerificationInfo" $ref: "#/components/schemas/UserVerificationInfo"
is_profile_translatable: is_profile_translatable:
type: boolean type: boolean
tipjar_settings:
$ref: "#/components/schemas/UserTipJarSettings"
legacy_extended_profile:
$ref: "#/components/schemas/UserLegacyExtendedProfile"
UserProfessional: UserProfessional:
required: required:
@ -194,6 +198,49 @@ components:
type: string type: string
enum: ["ExternalUrl"] enum: ["ExternalUrl"]
UserTipJarSettings:
properties:
is_enabled:
type: boolean
patreon_handle:
type: string
bitcoin_handle:
type: string
ethereum_handle:
type: string
cash_app_handle:
type: string
venmo_handle:
type: string
gofundme_handle:
type: string # uri
UserLegacyExtendedProfile:
properties:
birthdate:
$ref: "#/components/schemas/UserLegacyExtendedProfileBirthdate"
UserLegacyExtendedProfileBirthdate:
required:
- "day"
- "month"
- "year"
- "visibility"
- "year_visibility"
properties:
day:
type: integer
month:
type: integer
year:
type: integer
visibility:
type: string
enum: ["Self", "Public", "MutualFollow", "Followers", "Following"]
year_visibility:
type: string
enum: ["Self", "Public", "MutualFollow", "Followers", "Following"]
UserLegacy: UserLegacy:
required: required:
- "blocked_by" - "blocked_by"

View file

@ -11,6 +11,7 @@ from enum import Enum
from pathlib import Path from pathlib import Path
import openapi_client as pt import openapi_client as pt
import urllib3
warnings.filterwarnings("ignore") warnings.filterwarnings("ignore")
logging.basicConfig(level=logging.DEBUG, format="%(asctime)s %(levelname)s %(message)s") logging.basicConfig(level=logging.DEBUG, format="%(asctime)s %(levelname)s %(message)s")
@ -216,11 +217,17 @@ if __name__ == "__main__":
}, },
) )
latest_user_agent_res = urllib3.PoolManager().request(
"GET",
"https://raw.githubusercontent.com/fa0311/latest-user-agent/main/output.json",
)
latest_user_agent = json.loads(latest_user_agent_res.data.decode("utf-8"))
api_conf.access_token = "AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA" api_conf.access_token = "AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA"
api_client = pt.ApiClient(configuration=api_conf, cookie=cookies_str) api_client = pt.ApiClient(configuration=api_conf, cookie=cookies_str)
api_client.user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36" api_client.user_agent = latest_user_agent["chrome"]
error_count = 0 error_count = 0
for x in [pt.DefaultApi, pt.TweetApi, pt.UserApi, pt.UsersApi, pt.UserListApi]: for x in [pt.DefaultApi, pt.TweetApi, pt.UserApi, pt.UsersApi, pt.UserListApi]:
@ -277,7 +284,7 @@ if __name__ == "__main__":
try: try:
logger.info("Try: Self UserByScreenName Test") logger.info("Try: Self UserByScreenName Test")
kwargs = get_kwargs("UserByScreenName", {"screen_name": "a810810931931"}) kwargs = get_kwargs("UserByScreenName", {"screen_name": "NxWDOyLMd483329"})
res = pt.UserApi(api_client).get_user_by_screen_name_with_http_info(**kwargs) res = pt.UserApi(api_client).get_user_by_screen_name_with_http_info(**kwargs)
data = res.data.to_dict() data = res.data.to_dict()
@ -288,14 +295,14 @@ if __name__ == "__main__":
) )
logger.info(f"Match rate: {rate}") logger.info(f"Match rate: {rate}")
screen_name = data["data"]["user"]["result"]["legacy"]["screen_name"] screen_name = data["data"]["user"]["result"]["legacy"]["screen_name"]
if not screen_name == "a810810931931": if not screen_name == "NxWDOyLMd483329":
raise Exception("UserByScreenName failed") raise Exception("UserByScreenName failed")
except Exception as e: except Exception as e:
error_dump(e) error_dump(e)
error_count += 1 error_count += 1
ids = [ ids = [
"1180389371481976833", # "1180389371481976833", banned
"900282258736545792", "900282258736545792",
"1212617657003859968", "1212617657003859968",
"2455740283", "2455740283",