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

update schema

Signed-off-by: ふぁ <yuki@yuki0311.com>
This commit is contained in:
ふぁ 2024-02-09 17:22:13 +09:00
parent 95ef71b398
commit a82844dfa5
No known key found for this signature in database
GPG key ID: 83A8A5E74872A8AA
7 changed files with 1679 additions and 35 deletions

View file

@ -2,10 +2,45 @@ components:
schemas:
AdditionalMediaInfo:
properties:
call_to_actions:
$ref: '#/components/schemas/AdditionalMediaInfoCallToActions'
description:
type: string
embeddable:
type: boolean
monetizable:
type: boolean
source_user:
$ref: '#/components/schemas/UserResultCore'
title:
type: string
required:
- monetizable
AdditionalMediaInfoCallToActions:
properties:
visit_site:
$ref: '#/components/schemas/AdditionalMediaInfoCallToActionsVisitSite'
required:
- visit_site
AdditionalMediaInfoCallToActionsVisitSite:
properties:
url:
format: uri
type: string
required:
- url
AuthorCommunityRelationship:
properties:
community_results:
$ref: '#/components/schemas/Community'
role:
enum:
- Member
type: string
user_results:
$ref: '#/components/schemas/UserResults'
required:
- community_results
BirdwatchEntity:
properties:
fromIndex:
@ -136,6 +171,201 @@ components:
required:
- create
type: object
Community:
properties:
result:
$ref: '#/components/schemas/CommunityData'
required:
- result
CommunityActions:
properties:
delete_action_result:
$ref: '#/components/schemas/CommunityDeleteActionResult'
join_action_result:
$ref: '#/components/schemas/CommunityJoinActionResult'
leave_action_result:
$ref: '#/components/schemas/CommunityLeaveActionResult'
pin_action_result:
$ref: '#/components/schemas/CommunityPinActionResult'
required:
- delete_action_result
- join_action_result
- leave_action_result
- pin_action_result
CommunityData:
properties:
__typename:
$ref: '#/components/schemas/TypeName'
actions:
$ref: '#/components/schemas/CommunityActions'
admin_results:
$ref: '#/components/schemas/UserResults'
created_at:
type: integer
creator_results:
$ref: '#/components/schemas/UserResults'
custom_banner_media:
additionalProperties: true
type: object
default_banner_media:
additionalProperties: true
type: object
description:
type: string
id_str:
pattern: ^[0-9]+$
type: string
invites_policy:
enum:
- MemberInvitesAllowed
type: string
invites_result:
$ref: '#/components/schemas/CommunityInvitesResult'
is_pinned:
type: boolean
join_policy:
enum:
- Open
type: string
join_requests_result:
$ref: '#/components/schemas/CommunityJoinRequestsResult'
member_count:
type: integer
members_facepile_results:
items:
$ref: '#/components/schemas/UserResults'
type: array
moderator_count:
type: integer
name:
type: string
primary_community_topic:
$ref: '#/components/schemas/PrimaryCommunityTopic'
question:
type: string
role:
enum:
- NonMember
type: string
rules:
items:
$ref: '#/components/schemas/CommunityRule'
type: array
search_tags:
items:
type: string
type: array
show_only_users_to_display:
items:
type: string
type: array
urls:
$ref: '#/components/schemas/CommunityUrls'
viewer_relationship:
additionalProperties: true
type: object
required:
- __typename
- id_str
- name
- description
- question
- search_tags
- primary_community_topic
- actions
- admin_results
- creator_results
- invites_result
- join_policy
- invites_policy
- is_pinned
- members_facepile_results
- moderator_count
- member_count
- role
- rules
CommunityDeleteActionResult:
properties:
__typename:
$ref: '#/components/schemas/TypeName'
reason:
enum:
- Unavailable
type: string
required:
- __typename
- reason
CommunityInvitesResult:
properties:
__typename:
$ref: '#/components/schemas/TypeName'
message:
type: string
reason:
enum:
- Unavailable
type: string
required:
- __typename
- reason
- message
CommunityJoinActionResult:
properties:
__typename:
$ref: '#/components/schemas/TypeName'
required:
- __typename
CommunityJoinRequestsResult:
properties:
__typename:
$ref: '#/components/schemas/TypeName'
required:
- __typename
CommunityLeaveActionResult:
properties:
__typename:
$ref: '#/components/schemas/TypeName'
message:
type: string
reason:
enum:
- ViewerNotMember
type: string
required:
- __typename
- reason
- message
CommunityPinActionResult:
properties:
__typename:
$ref: '#/components/schemas/TypeName'
required:
- __typename
CommunityRule:
properties:
description:
type: string
name:
type: string
rest_id:
pattern: ^[0-9]+$
type: string
required:
- rest_id
- name
CommunityUrls:
properties:
permalink:
$ref: '#/components/schemas/CommunityUrlsPermalink'
required:
- permalink
CommunityUrlsPermalink:
properties:
url:
format: uri
type: string
required:
- url
ContentEntryType:
enum:
- TimelineTimelineItem
@ -291,6 +521,13 @@ components:
type: object
required:
- tweet_results
DisplayTreatment:
properties:
actionText:
type: string
required:
- actionText
type: object
Entities:
properties:
hashtags:
@ -479,6 +716,15 @@ components:
Hashtag:
additionalProperties: true
type: object
Highlight:
properties:
textHighlights:
items:
$ref: '#/components/schemas/TextHighlight'
type: array
required:
- textHighlights
type: object
HomeTimelineHome:
properties:
home_timeline_urt:
@ -589,6 +835,8 @@ components:
expanded_url:
format: uri
type: string
ext_alt_text:
type: string
ext_media_availability:
$ref: '#/components/schemas/ExtMediaAvailability'
features:
@ -609,6 +857,12 @@ components:
$ref: '#/components/schemas/MediaOriginalInfo'
sizes:
$ref: '#/components/schemas/MediaSizes'
source_status_id_str:
pattern: ^[0-9]+$
type: string
source_user_id_str:
pattern: ^[0-9]+$
type: string
type:
enum:
- photo
@ -643,6 +897,8 @@ components:
expanded_url:
format: uri
type: string
ext_alt_text:
type: string
ext_media_availability:
$ref: '#/components/schemas/ExtMediaAvailability'
features:
@ -665,6 +921,12 @@ components:
$ref: '#/components/schemas/MediaOriginalInfo'
sizes:
$ref: '#/components/schemas/MediaSizes'
source_status_id_str:
pattern: ^[0-9]+$
type: string
source_user_id_str:
pattern: ^[0-9]+$
type: string
type:
enum:
- photo
@ -884,6 +1146,16 @@ components:
Session:
$ref: '#/components/schemas/Session'
type: object
PrimaryCommunityTopic:
properties:
topic_id:
pattern: ^[0-9]+$
type: string
topic_name:
type: string
required:
- topic_id
- topic_name
ProfileResponse:
properties:
data:
@ -896,6 +1168,37 @@ components:
$ref: '#/components/schemas/UserResultByScreenName'
required:
- user_result_by_screen_name
QuotedRefResult:
properties:
result:
$ref: '#/components/schemas/QuotedRefResultData'
required:
- result
QuotedRefResultData:
properties:
__typename:
$ref: '#/components/schemas/TypeName'
rest_id:
pattern: ^[0-9]+$
type: string
required:
- __typename
- rest_id
QuotedStatusPermalink:
properties:
display:
format: uri
type: string
expanded:
format: uri
type: string
url:
format: uri
type: string
required:
- url
- expanded
- display
Retweet:
properties:
legacy:
@ -1011,14 +1314,38 @@ components:
type: object
SocialContextLandingUrl:
properties:
Url:
url:
format: uri
type: string
urlType:
enum:
- DeepLink
- UrtEndpoint
type: string
urtEndpointOptions:
$ref: '#/components/schemas/UrtEndpointOptions'
type: object
SuperFollowsReplyUserResult:
properties:
result:
$ref: '#/components/schemas/SuperFollowsReplyUserResultData'
required:
- result
SuperFollowsReplyUserResultData:
properties:
__typename:
$ref: '#/components/schemas/TypeName'
legacy:
$ref: '#/components/schemas/SuperFollowsReplyUserResultLegacy'
required:
- __typename
- legacy
SuperFollowsReplyUserResultLegacy:
properties:
screen_name:
type: string
required:
- screen_name
Symbol:
additionalProperties: true
type: object
@ -1062,6 +1389,16 @@ components:
- type
- url
- urlType
TextHighlight:
properties:
endIndex:
type: integer
startIndex:
type: integer
required:
- startIndex
- endIndex
type: object
Timeline:
properties:
instructions:
@ -1273,6 +1610,8 @@ components:
$ref: '#/components/schemas/TypeName'
cursorType:
$ref: '#/components/schemas/CursorType'
displayTreatment:
$ref: '#/components/schemas/DisplayTreatment'
entryType:
$ref: '#/components/schemas/ContentEntryType'
itemType:
@ -1331,6 +1670,9 @@ components:
items:
$ref: '#/components/schemas/ModuleItem'
type: array
metadata:
additionalProperties: true
type: object
required:
- __typename
- entryType
@ -1340,6 +1682,8 @@ components:
properties:
__typename:
$ref: '#/components/schemas/TypeName'
highlights:
$ref: '#/components/schemas/Highlight'
itemType:
$ref: '#/components/schemas/ContentItemType'
promotedMetadata:
@ -1395,6 +1739,8 @@ components:
properties:
__typename:
$ref: '#/components/schemas/TypeName'
author_community_relationship:
$ref: '#/components/schemas/AuthorCommunityRelationship'
birdwatch_pivot:
$ref: '#/components/schemas/BirdwatchPivot'
card:
@ -1405,6 +1751,8 @@ components:
$ref: '#/components/schemas/TweetEditControl'
edit_prespective:
$ref: '#/components/schemas/TweetEditPrespective'
has_birdwatch_notes:
type: boolean
is_translatable:
default: false
type: boolean
@ -1412,8 +1760,12 @@ components:
$ref: '#/components/schemas/TweetLegacy'
note_tweet:
$ref: '#/components/schemas/NoteTweet'
previous_counts:
$ref: '#/components/schemas/TweetPreviousCounts'
quick_promote_eligibility:
type: object
quotedRefResult:
$ref: '#/components/schemas/QuotedRefResult'
quoted_status_result:
$ref: '#/components/schemas/ItemResult'
rest_id:
@ -1421,6 +1773,8 @@ components:
type: string
source:
type: string
superFollowsReplyUserResult:
$ref: '#/components/schemas/SuperFollowsReplyUserResult'
unified_card:
$ref: '#/components/schemas/UnifiedCard'
unmention_data:
@ -1451,6 +1805,10 @@ components:
type: string
url:
type: string
user_refs_results:
items:
$ref: '#/components/schemas/UserResults'
type: array
required:
- binding_values
- name
@ -1468,14 +1826,36 @@ components:
properties:
boolean_value:
type: boolean
image_color_value:
additionalProperties: true
type: object
image_value:
$ref: '#/components/schemas/TweetCardLegacyBindingValueDataImage'
scribe_key:
type: string
string_value:
type: string
type:
type: string
user_value:
$ref: '#/components/schemas/UserValue'
required:
- type
TweetCardLegacyBindingValueDataImage:
properties:
alt:
type: string
height:
type: integer
url:
format: uri
type: string
width:
type: integer
required:
- height
- width
- url
TweetCardPlatform:
properties:
audience:
@ -1585,6 +1965,8 @@ components:
type: integer
bookmarked:
type: boolean
conversation_control:
additionalProperties: true
conversation_id_str:
pattern: ^[0-9]+$
type: string
@ -1619,6 +2001,14 @@ components:
type: boolean
lang:
type: string
limited_actions:
enum:
- limited_replies
- community_tweet_non_member_public_community
- non_compliant
type: string
place:
additionalProperties: true
possibly_sensitive:
default: false
type: boolean
@ -1627,6 +2017,11 @@ components:
type: boolean
quote_count:
type: integer
quoted_status_id_str:
pattern: ^[0-9]+$
type: string
quoted_status_permalink:
$ref: '#/components/schemas/QuotedStatusPermalink'
reply_count:
type: integer
retweet_count:
@ -1666,6 +2061,24 @@ components:
type: boolean
required:
- followers
TweetPreviousCounts:
properties:
bookmark_count:
type: integer
favorite_count:
type: integer
quote_count:
type: integer
reply_count:
type: integer
retweet_count:
type: integer
required:
- bookmark_count
- favorite_count
- quote_count
- reply_count
- retweet_count
TweetResultByRestIdData:
properties:
tweetResult:
@ -1721,11 +2134,15 @@ components:
properties:
__typename:
$ref: '#/components/schemas/TypeName'
limitedActionResults:
additionalProperties: true
type: object
tweet:
$ref: '#/components/schemas/Tweet'
required:
- __typename
- tweet
- limitedActionResults
TwitterTimeFormat:
example: Sat Dec 31 23:59:59 +0000 2023
pattern: '^(Sun|Mon|Tue|Wed|Thu|Fri|Sat) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)
@ -1748,6 +2165,13 @@ components:
- Tweet
- User
- UserUnavailable
- Community
- CommunityDeleteActionUnavailable
- CommunityJoinAction
- CommunityLeaveActionUnavailable
- CommunityTweetPinActionUnavailable
- CommunityInvitesUnavailable
- CommunityJoinRequestsUnavailable
type: string
UnfavoriteTweet:
properties:
@ -1789,6 +2213,28 @@ components:
- expanded_url
- display_url
type: object
UrtEndpointOptions:
properties:
requestParams:
items:
$ref: '#/components/schemas/UrtEndpointRequestParams'
type: array
title:
type: string
required:
- title
- requestParams
type: object
UrtEndpointRequestParams:
properties:
key:
type: string
value:
type: string
required:
- key
- value
type: object
User:
properties:
__typename:
@ -1799,11 +2245,15 @@ components:
business_account:
additionalProperties: true
type: object
creator_subscriptions_count:
type: integer
has_graduated_access:
type: boolean
has_nft_avatar:
default: false
type: boolean
highlights_info:
$ref: '#/components/schemas/UserHighlightsInfo'
id:
pattern: ^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)?$
type: string
@ -1831,6 +2281,10 @@ components:
super_following:
default: false
type: boolean
user_seed_tweet_count:
type: integer
verification_info:
$ref: '#/components/schemas/UserVerificationInfo'
required:
- __typename
- affiliates_highlighted_label
@ -1849,6 +2303,15 @@ components:
required:
- mediatool_studio_library
type: object
UserHighlightsInfo:
properties:
can_highlight_tweets:
type: boolean
highlighted_tweets:
type: string
required:
- can_highlight_tweets
- highlighted_tweets
UserHighlightsTweetsData:
properties:
user:
@ -1990,10 +2453,15 @@ components:
verified_type:
enum:
- Business
- Government
type: string
want_retweets:
default: false
type: boolean
withheld_in_countries:
items:
type: string
type: array
required:
- blocked_by
- blocking
@ -2038,6 +2506,7 @@ components:
professional_type:
enum:
- Business
- Creator
type: string
rest_id:
pattern: ^[0-9]+$
@ -2172,6 +2641,71 @@ components:
oneOf:
- $ref: '#/components/schemas/User'
- $ref: '#/components/schemas/UserUnavailable'
UserValue:
properties:
id_str:
pattern: ^[0-9]+$
type: string
required:
- id_str
UserVerificationInfo:
properties:
is_identity_verified:
default: false
type: boolean
reason:
$ref: '#/components/schemas/UserVerificationInfoReason'
required:
- is_identity_verified
- reason
UserVerificationInfoReason:
properties:
description:
$ref: '#/components/schemas/UserVerificationInfoReasonDescription'
override_verified_year:
type: integer
verified_since_msec:
pattern: ^-?[0-9]+$
type: string
required:
- description
- verified_since_msec
- override_verified_year
UserVerificationInfoReasonDescription:
properties:
entities:
items:
$ref: '#/components/schemas/UserVerificationInfoReasonDescriptionEntities'
type: array
text:
type: string
required:
- text
- entities
UserVerificationInfoReasonDescriptionEntities:
properties:
from_index:
type: integer
ref:
$ref: '#/components/schemas/UserVerificationInfoReasonDescriptionEntitiesRef'
to_index:
type: integer
required:
- from_index
- to_index
- ref
UserVerificationInfoReasonDescriptionEntitiesRef:
properties:
url:
format: uri
type: string
url_type:
enum:
- ExternalUrl
type: string
required:
- url
- url_type
UsersResponse:
properties:
data:

View file

@ -2,10 +2,45 @@ components:
schemas:
AdditionalMediaInfo:
properties:
call_to_actions:
$ref: '#/components/schemas/AdditionalMediaInfoCallToActions'
description:
type: string
embeddable:
type: boolean
monetizable:
type: boolean
source_user:
$ref: '#/components/schemas/UserResultCore'
title:
type: string
required:
- monetizable
AdditionalMediaInfoCallToActions:
properties:
visit_site:
$ref: '#/components/schemas/AdditionalMediaInfoCallToActionsVisitSite'
required:
- visit_site
AdditionalMediaInfoCallToActionsVisitSite:
properties:
url:
format: uri
type: string
required:
- url
AuthorCommunityRelationship:
properties:
community_results:
$ref: '#/components/schemas/Community'
role:
enum:
- Member
type: string
user_results:
$ref: '#/components/schemas/UserResults'
required:
- community_results
BirdwatchEntity:
properties:
fromIndex:
@ -136,6 +171,201 @@ components:
required:
- create
type: object
Community:
properties:
result:
$ref: '#/components/schemas/CommunityData'
required:
- result
CommunityActions:
properties:
delete_action_result:
$ref: '#/components/schemas/CommunityDeleteActionResult'
join_action_result:
$ref: '#/components/schemas/CommunityJoinActionResult'
leave_action_result:
$ref: '#/components/schemas/CommunityLeaveActionResult'
pin_action_result:
$ref: '#/components/schemas/CommunityPinActionResult'
required:
- delete_action_result
- join_action_result
- leave_action_result
- pin_action_result
CommunityData:
properties:
__typename:
$ref: '#/components/schemas/TypeName'
actions:
$ref: '#/components/schemas/CommunityActions'
admin_results:
$ref: '#/components/schemas/UserResults'
created_at:
type: integer
creator_results:
$ref: '#/components/schemas/UserResults'
custom_banner_media:
additionalProperties: true
type: object
default_banner_media:
additionalProperties: true
type: object
description:
type: string
id_str:
pattern: ^[0-9]+$
type: string
invites_policy:
enum:
- MemberInvitesAllowed
type: string
invites_result:
$ref: '#/components/schemas/CommunityInvitesResult'
is_pinned:
type: boolean
join_policy:
enum:
- Open
type: string
join_requests_result:
$ref: '#/components/schemas/CommunityJoinRequestsResult'
member_count:
type: integer
members_facepile_results:
items:
$ref: '#/components/schemas/UserResults'
type: array
moderator_count:
type: integer
name:
type: string
primary_community_topic:
$ref: '#/components/schemas/PrimaryCommunityTopic'
question:
type: string
role:
enum:
- NonMember
type: string
rules:
items:
$ref: '#/components/schemas/CommunityRule'
type: array
search_tags:
items:
type: string
type: array
show_only_users_to_display:
items:
type: string
type: array
urls:
$ref: '#/components/schemas/CommunityUrls'
viewer_relationship:
additionalProperties: true
type: object
required:
- __typename
- id_str
- name
- description
- question
- search_tags
- primary_community_topic
- actions
- admin_results
- creator_results
- invites_result
- join_policy
- invites_policy
- is_pinned
- members_facepile_results
- moderator_count
- member_count
- role
- rules
CommunityDeleteActionResult:
properties:
__typename:
$ref: '#/components/schemas/TypeName'
reason:
enum:
- Unavailable
type: string
required:
- __typename
- reason
CommunityInvitesResult:
properties:
__typename:
$ref: '#/components/schemas/TypeName'
message:
type: string
reason:
enum:
- Unavailable
type: string
required:
- __typename
- reason
- message
CommunityJoinActionResult:
properties:
__typename:
$ref: '#/components/schemas/TypeName'
required:
- __typename
CommunityJoinRequestsResult:
properties:
__typename:
$ref: '#/components/schemas/TypeName'
required:
- __typename
CommunityLeaveActionResult:
properties:
__typename:
$ref: '#/components/schemas/TypeName'
message:
type: string
reason:
enum:
- ViewerNotMember
type: string
required:
- __typename
- reason
- message
CommunityPinActionResult:
properties:
__typename:
$ref: '#/components/schemas/TypeName'
required:
- __typename
CommunityRule:
properties:
description:
type: string
name:
type: string
rest_id:
pattern: ^[0-9]+$
type: string
required:
- rest_id
- name
CommunityUrls:
properties:
permalink:
$ref: '#/components/schemas/CommunityUrlsPermalink'
required:
- permalink
CommunityUrlsPermalink:
properties:
url:
format: uri
type: string
required:
- url
ContentEntryType:
enum:
- TimelineTimelineItem
@ -291,6 +521,13 @@ components:
type: object
required:
- tweet_results
DisplayTreatment:
properties:
actionText:
type: string
required:
- actionText
type: object
Entities:
properties:
hashtags:
@ -479,6 +716,15 @@ components:
Hashtag:
additionalProperties: true
type: object
Highlight:
properties:
textHighlights:
items:
$ref: '#/components/schemas/TextHighlight'
type: array
required:
- textHighlights
type: object
HomeTimelineHome:
properties:
home_timeline_urt:
@ -589,6 +835,8 @@ components:
expanded_url:
format: uri
type: string
ext_alt_text:
type: string
ext_media_availability:
$ref: '#/components/schemas/ExtMediaAvailability'
features:
@ -609,6 +857,12 @@ components:
$ref: '#/components/schemas/MediaOriginalInfo'
sizes:
$ref: '#/components/schemas/MediaSizes'
source_status_id_str:
pattern: ^[0-9]+$
type: string
source_user_id_str:
pattern: ^[0-9]+$
type: string
type:
enum:
- photo
@ -643,6 +897,8 @@ components:
expanded_url:
format: uri
type: string
ext_alt_text:
type: string
ext_media_availability:
$ref: '#/components/schemas/ExtMediaAvailability'
features:
@ -665,6 +921,12 @@ components:
$ref: '#/components/schemas/MediaOriginalInfo'
sizes:
$ref: '#/components/schemas/MediaSizes'
source_status_id_str:
pattern: ^[0-9]+$
type: string
source_user_id_str:
pattern: ^[0-9]+$
type: string
type:
enum:
- photo
@ -884,6 +1146,16 @@ components:
Session:
$ref: '#/components/schemas/Session'
type: object
PrimaryCommunityTopic:
properties:
topic_id:
pattern: ^[0-9]+$
type: string
topic_name:
type: string
required:
- topic_id
- topic_name
ProfileResponse:
properties:
data:
@ -896,6 +1168,37 @@ components:
$ref: '#/components/schemas/UserResultByScreenName'
required:
- user_result_by_screen_name
QuotedRefResult:
properties:
result:
$ref: '#/components/schemas/QuotedRefResultData'
required:
- result
QuotedRefResultData:
properties:
__typename:
$ref: '#/components/schemas/TypeName'
rest_id:
pattern: ^[0-9]+$
type: string
required:
- __typename
- rest_id
QuotedStatusPermalink:
properties:
display:
format: uri
type: string
expanded:
format: uri
type: string
url:
format: uri
type: string
required:
- url
- expanded
- display
Retweet:
properties:
legacy:
@ -1011,14 +1314,38 @@ components:
type: object
SocialContextLandingUrl:
properties:
Url:
url:
format: uri
type: string
urlType:
enum:
- DeepLink
- UrtEndpoint
type: string
urtEndpointOptions:
$ref: '#/components/schemas/UrtEndpointOptions'
type: object
SuperFollowsReplyUserResult:
properties:
result:
$ref: '#/components/schemas/SuperFollowsReplyUserResultData'
required:
- result
SuperFollowsReplyUserResultData:
properties:
__typename:
$ref: '#/components/schemas/TypeName'
legacy:
$ref: '#/components/schemas/SuperFollowsReplyUserResultLegacy'
required:
- __typename
- legacy
SuperFollowsReplyUserResultLegacy:
properties:
screen_name:
type: string
required:
- screen_name
Symbol:
additionalProperties: true
type: object
@ -1062,6 +1389,16 @@ components:
- type
- url
- urlType
TextHighlight:
properties:
endIndex:
type: integer
startIndex:
type: integer
required:
- startIndex
- endIndex
type: object
Timeline:
properties:
instructions:
@ -1273,6 +1610,8 @@ components:
$ref: '#/components/schemas/TypeName'
cursorType:
$ref: '#/components/schemas/CursorType'
displayTreatment:
$ref: '#/components/schemas/DisplayTreatment'
entryType:
$ref: '#/components/schemas/ContentEntryType'
itemType:
@ -1331,6 +1670,9 @@ components:
items:
$ref: '#/components/schemas/ModuleItem'
type: array
metadata:
additionalProperties: true
type: object
required:
- __typename
- entryType
@ -1340,6 +1682,8 @@ components:
properties:
__typename:
$ref: '#/components/schemas/TypeName'
highlights:
$ref: '#/components/schemas/Highlight'
itemType:
$ref: '#/components/schemas/ContentItemType'
promotedMetadata:
@ -1395,6 +1739,8 @@ components:
properties:
__typename:
$ref: '#/components/schemas/TypeName'
author_community_relationship:
$ref: '#/components/schemas/AuthorCommunityRelationship'
birdwatch_pivot:
$ref: '#/components/schemas/BirdwatchPivot'
card:
@ -1405,6 +1751,8 @@ components:
$ref: '#/components/schemas/TweetEditControl'
edit_prespective:
$ref: '#/components/schemas/TweetEditPrespective'
has_birdwatch_notes:
type: boolean
is_translatable:
default: false
type: boolean
@ -1412,8 +1760,12 @@ components:
$ref: '#/components/schemas/TweetLegacy'
note_tweet:
$ref: '#/components/schemas/NoteTweet'
previous_counts:
$ref: '#/components/schemas/TweetPreviousCounts'
quick_promote_eligibility:
type: object
quotedRefResult:
$ref: '#/components/schemas/QuotedRefResult'
quoted_status_result:
$ref: '#/components/schemas/ItemResult'
rest_id:
@ -1421,6 +1773,8 @@ components:
type: string
source:
type: string
superFollowsReplyUserResult:
$ref: '#/components/schemas/SuperFollowsReplyUserResult'
unified_card:
$ref: '#/components/schemas/UnifiedCard'
unmention_data:
@ -1451,6 +1805,10 @@ components:
type: string
url:
type: string
user_refs_results:
items:
$ref: '#/components/schemas/UserResults'
type: array
required:
- binding_values
- name
@ -1468,14 +1826,36 @@ components:
properties:
boolean_value:
type: boolean
image_color_value:
additionalProperties: true
type: object
image_value:
$ref: '#/components/schemas/TweetCardLegacyBindingValueDataImage'
scribe_key:
type: string
string_value:
type: string
type:
type: string
user_value:
$ref: '#/components/schemas/UserValue'
required:
- type
TweetCardLegacyBindingValueDataImage:
properties:
alt:
type: string
height:
type: integer
url:
format: uri
type: string
width:
type: integer
required:
- height
- width
- url
TweetCardPlatform:
properties:
audience:
@ -1585,6 +1965,8 @@ components:
type: integer
bookmarked:
type: boolean
conversation_control:
additionalProperties: true
conversation_id_str:
pattern: ^[0-9]+$
type: string
@ -1619,6 +2001,14 @@ components:
type: boolean
lang:
type: string
limited_actions:
enum:
- limited_replies
- community_tweet_non_member_public_community
- non_compliant
type: string
place:
additionalProperties: true
possibly_sensitive:
default: false
type: boolean
@ -1627,6 +2017,11 @@ components:
type: boolean
quote_count:
type: integer
quoted_status_id_str:
pattern: ^[0-9]+$
type: string
quoted_status_permalink:
$ref: '#/components/schemas/QuotedStatusPermalink'
reply_count:
type: integer
retweet_count:
@ -1666,6 +2061,24 @@ components:
type: boolean
required:
- followers
TweetPreviousCounts:
properties:
bookmark_count:
type: integer
favorite_count:
type: integer
quote_count:
type: integer
reply_count:
type: integer
retweet_count:
type: integer
required:
- bookmark_count
- favorite_count
- quote_count
- reply_count
- retweet_count
TweetResultByRestIdData:
properties:
tweetResult:
@ -1721,11 +2134,15 @@ components:
properties:
__typename:
$ref: '#/components/schemas/TypeName'
limitedActionResults:
additionalProperties: true
type: object
tweet:
$ref: '#/components/schemas/Tweet'
required:
- __typename
- tweet
- limitedActionResults
TwitterTimeFormat:
example: Sat Dec 31 23:59:59 +0000 2023
pattern: '^(Sun|Mon|Tue|Wed|Thu|Fri|Sat) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)
@ -1748,6 +2165,13 @@ components:
- Tweet
- User
- UserUnavailable
- Community
- CommunityDeleteActionUnavailable
- CommunityJoinAction
- CommunityLeaveActionUnavailable
- CommunityTweetPinActionUnavailable
- CommunityInvitesUnavailable
- CommunityJoinRequestsUnavailable
type: string
UnfavoriteTweet:
properties:
@ -1789,6 +2213,28 @@ components:
- expanded_url
- display_url
type: object
UrtEndpointOptions:
properties:
requestParams:
items:
$ref: '#/components/schemas/UrtEndpointRequestParams'
type: array
title:
type: string
required:
- title
- requestParams
type: object
UrtEndpointRequestParams:
properties:
key:
type: string
value:
type: string
required:
- key
- value
type: object
User:
properties:
__typename:
@ -1799,11 +2245,15 @@ components:
business_account:
additionalProperties: true
type: object
creator_subscriptions_count:
type: integer
has_graduated_access:
type: boolean
has_nft_avatar:
default: false
type: boolean
highlights_info:
$ref: '#/components/schemas/UserHighlightsInfo'
id:
pattern: ^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)?$
type: string
@ -1831,6 +2281,10 @@ components:
super_following:
default: false
type: boolean
user_seed_tweet_count:
type: integer
verification_info:
$ref: '#/components/schemas/UserVerificationInfo'
required:
- __typename
- affiliates_highlighted_label
@ -1849,6 +2303,15 @@ components:
required:
- mediatool_studio_library
type: object
UserHighlightsInfo:
properties:
can_highlight_tweets:
type: boolean
highlighted_tweets:
type: string
required:
- can_highlight_tweets
- highlighted_tweets
UserHighlightsTweetsData:
properties:
user:
@ -1990,10 +2453,15 @@ components:
verified_type:
enum:
- Business
- Government
type: string
want_retweets:
default: false
type: boolean
withheld_in_countries:
items:
type: string
type: array
required:
- blocked_by
- blocking
@ -2038,6 +2506,7 @@ components:
professional_type:
enum:
- Business
- Creator
type: string
rest_id:
pattern: ^[0-9]+$
@ -2172,6 +2641,71 @@ components:
oneOf:
- $ref: '#/components/schemas/User'
- $ref: '#/components/schemas/UserUnavailable'
UserValue:
properties:
id_str:
pattern: ^[0-9]+$
type: string
required:
- id_str
UserVerificationInfo:
properties:
is_identity_verified:
default: false
type: boolean
reason:
$ref: '#/components/schemas/UserVerificationInfoReason'
required:
- is_identity_verified
- reason
UserVerificationInfoReason:
properties:
description:
$ref: '#/components/schemas/UserVerificationInfoReasonDescription'
override_verified_year:
type: integer
verified_since_msec:
pattern: ^-?[0-9]+$
type: string
required:
- description
- verified_since_msec
- override_verified_year
UserVerificationInfoReasonDescription:
properties:
entities:
items:
$ref: '#/components/schemas/UserVerificationInfoReasonDescriptionEntities'
type: array
text:
type: string
required:
- text
- entities
UserVerificationInfoReasonDescriptionEntities:
properties:
from_index:
type: integer
ref:
$ref: '#/components/schemas/UserVerificationInfoReasonDescriptionEntitiesRef'
to_index:
type: integer
required:
- from_index
- to_index
- ref
UserVerificationInfoReasonDescriptionEntitiesRef:
properties:
url:
format: uri
type: string
url_type:
enum:
- ExternalUrl
type: string
required:
- url
- url_type
UsersResponse:
properties:
data:

View file

@ -71,10 +71,12 @@ components:
header:
type: object
additionalProperties: true # todo
clientEventInfo:
type: object
additionalProperties: true # todo
metadata:
type: object
additionalProperties: true # todo
TimelineTimelineCursor:
required:
@ -96,6 +98,16 @@ components:
stopOnEmptyResponse:
type: boolean
default: false
displayTreatment:
$ref: "#/components/schemas/DisplayTreatment"
DisplayTreatment:
type: object
required:
- "actionText"
properties:
actionText:
type: string
# ================= Module =================
@ -172,6 +184,8 @@ components:
promotedMetadata:
type: object
additionalProperties: true # todo
highlights:
$ref: "#/components/schemas/Highlight"
TimelineUser:
required:
@ -218,10 +232,57 @@ components:
properties:
urlType:
type: string # enum
enum: ["DeepLink"]
Url:
enum: ["DeepLink", "UrtEndpoint"]
url:
type: string # twitter://user?id=900282258736545792
format: uri
urtEndpointOptions:
$ref: "#/components/schemas/UrtEndpointOptions"
UrtEndpointOptions:
type: object
required:
- "title"
- "requestParams"
properties:
title:
type: string
requestParams:
type: array
items:
$ref: "#/components/schemas/UrtEndpointRequestParams"
UrtEndpointRequestParams:
type: object
required:
- "key"
- "value"
properties:
key:
type: string
value:
type: string
Highlight:
type: object
required:
- "textHighlights"
properties:
textHighlights:
type: array
items:
$ref: "#/components/schemas/TextHighlight"
TextHighlight:
type: object
required:
- "startIndex"
- "endIndex"
properties:
startIndex:
type: integer
endIndex:
type: integer
TimelinePrompt:
properties:

View file

@ -23,11 +23,15 @@ components:
required:
- "__typename"
- "tweet"
- "limitedActionResults"
properties:
__typename:
$ref: "./typename.yaml#/components/schemas/TypeName" # TweetWithVisibilityResults
tweet:
$ref: "#/components/schemas/Tweet"
limitedActionResults:
type: object
additionalProperties: true # todo
TweetTombstone: #remove tweet
properties:
@ -45,7 +49,6 @@ components:
# - "source"
# - "legacy"
- "views"
properties:
__typename:
$ref: "./typename.yaml#/components/schemas/TypeName" # null | Tweet
@ -82,6 +85,16 @@ components:
type: object
unified_card:
$ref: "#/components/schemas/UnifiedCard"
previous_counts:
$ref: "#/components/schemas/TweetPreviousCounts"
quotedRefResult:
$ref: "#/components/schemas/QuotedRefResult"
superFollowsReplyUserResult:
$ref: "#/components/schemas/SuperFollowsReplyUserResult"
has_birdwatch_notes:
type: boolean
author_community_relationship:
$ref: "#/components/schemas/AuthorCommunityRelationship"
TweetEditControl:
properties:
@ -230,6 +243,291 @@ components:
type: string
enum: [NoCard]
TweetPreviousCounts:
required:
- "bookmark_count"
- "favorite_count"
- "quote_count"
- "reply_count"
- "retweet_count"
properties:
bookmark_count:
type: integer
favorite_count:
type: integer
quote_count:
type: integer
reply_count:
type: integer
retweet_count:
type: integer
QuotedRefResult:
required:
- "result"
properties:
result:
$ref: "#/components/schemas/QuotedRefResultData"
QuotedRefResultData:
required:
- "__typename"
- "rest_id"
properties:
__typename:
$ref: "./typename.yaml#/components/schemas/TypeName" # Tweet
rest_id:
type: string
pattern: "^[0-9]+$"
SuperFollowsReplyUserResult:
required:
- "result"
properties:
result:
$ref: "#/components/schemas/SuperFollowsReplyUserResultData"
SuperFollowsReplyUserResultData:
required:
- "__typename"
- "legacy"
properties:
__typename:
$ref: "./../schemas/typename.yaml#/components/schemas/TypeName" # User
legacy:
$ref: "#/components/schemas/SuperFollowsReplyUserResultLegacy"
SuperFollowsReplyUserResultLegacy:
required:
- "screen_name"
properties:
screen_name:
type: string
AuthorCommunityRelationship:
required:
- "community_results"
properties:
community_results:
$ref: "#/components/schemas/Community"
role:
type: string
enum: [Member]
user_results:
$ref: "user.yaml#/components/schemas/UserResults"
Community:
required:
- "result"
properties:
result:
$ref: "#/components/schemas/CommunityData"
CommunityData:
required:
- "__typename"
- "id_str"
- "name"
- "description"
- "question"
- "search_tags"
- "primary_community_topic"
- "actions"
- "admin_results"
- "creator_results"
- "invites_result"
- "join_policy"
- "invites_policy"
- "is_pinned"
- "members_facepile_results"
- "moderator_count"
- "member_count"
- "role"
- "rules"
properties:
__typename:
$ref: "./typename.yaml#/components/schemas/TypeName" # Community
id_str:
type: string
pattern: "^[0-9]+$"
name:
type: string
description:
type: string
created_at:
type: integer
question:
type: string
search_tags:
type: array
items:
type: string
primary_community_topic:
$ref: "#/components/schemas/PrimaryCommunityTopic"
actions:
$ref: "#/components/schemas/CommunityActions"
admin_results:
$ref: "user.yaml#/components/schemas/UserResults"
creator_results:
$ref: "user.yaml#/components/schemas/UserResults"
invites_result:
$ref: "#/components/schemas/CommunityInvitesResult"
join_requests_result:
$ref: "#/components/schemas/CommunityJoinRequestsResult"
join_policy:
type: string
enum: [Open]
invites_policy:
type: string
enum: [MemberInvitesAllowed]
is_pinned:
type: boolean
members_facepile_results:
type: array
items:
$ref: "user.yaml#/components/schemas/UserResults"
moderator_count:
type: integer
member_count:
type: integer
role:
type: string
enum: [NonMember]
rules:
type: array
items:
$ref: "#/components/schemas/CommunityRule"
show_only_users_to_display:
type: array
items:
type: string
urls:
$ref: "#/components/schemas/CommunityUrls"
default_banner_media:
type: object
additionalProperties: true # todo
custom_banner_media:
type: object
additionalProperties: true # todo
viewer_relationship:
type: object
additionalProperties: true # todo
PrimaryCommunityTopic:
required:
- "topic_id"
- "topic_name"
properties:
topic_id:
type: string
pattern: "^[0-9]+$"
topic_name:
type: string
CommunityActions:
required:
- "delete_action_result"
- "join_action_result"
- "leave_action_result"
- "pin_action_result"
properties:
delete_action_result:
$ref: "#/components/schemas/CommunityDeleteActionResult"
join_action_result:
$ref: "#/components/schemas/CommunityJoinActionResult"
leave_action_result:
$ref: "#/components/schemas/CommunityLeaveActionResult"
pin_action_result:
$ref: "#/components/schemas/CommunityPinActionResult"
CommunityDeleteActionResult:
required:
- "__typename"
- "reason"
properties:
__typename:
$ref: "./typename.yaml#/components/schemas/TypeName" # CommunityDeleteActionUnavailable
reason:
type: string
enum: [Unavailable]
CommunityJoinActionResult:
required:
- "__typename"
properties:
__typename:
$ref: "./typename.yaml#/components/schemas/TypeName" # CommunityJoinAction
CommunityLeaveActionResult:
required:
- "__typename"
- "reason"
- "message"
properties:
__typename:
$ref: "./typename.yaml#/components/schemas/TypeName" # CommunityLeaveActionUnavailable
reason:
type: string
enum: [ViewerNotMember]
message:
type: string
CommunityPinActionResult:
required:
- "__typename"
properties:
__typename:
$ref: "./typename.yaml#/components/schemas/TypeName" # CommunityTweetPinActionUnavailable
CommunityInvitesResult:
required:
- "__typename"
- "reason"
- "message"
properties:
__typename:
$ref: "./typename.yaml#/components/schemas/TypeName" # CommunityInvitesUnavailable
reason:
type: string
enum: [Unavailable]
message:
type: string
CommunityJoinRequestsResult:
required:
- "__typename"
properties:
__typename:
$ref: "./typename.yaml#/components/schemas/TypeName" # CommunityJoinRequestsUnavailable
CommunityRule:
required:
- "rest_id"
- "name"
properties:
rest_id:
type: string
pattern: "^[0-9]+$"
name:
type: string
description:
type: string
CommunityUrls:
required:
- "permalink"
properties:
permalink:
$ref: "#/components/schemas/CommunityUrlsPermalink"
CommunityUrlsPermalink:
required:
- "url"
properties:
url:
type: string
format: uri
BirdwatchPivot:
required:
- "destinationUrl"
@ -346,6 +644,10 @@ components:
# {'platform': {'audience': {'name': 'production'}, 'device': {'name': 'Swift', 'version': '12'}}}
card_platform:
$ref: "#/components/schemas/TweetCardPlatformData"
user_refs_results:
type: array
items:
$ref: "user.yaml#/components/schemas/UserResults"
TweetCardPlatformData:
required:
@ -405,6 +707,37 @@ components:
type: string
type:
type: string
image_value:
$ref: "#/components/schemas/TweetCardLegacyBindingValueDataImage"
image_color_value:
type: object
additionalProperties: true # todo
user_value:
$ref: "#/components/schemas/UserValue"
UserValue:
required:
- "id_str"
properties:
id_str:
type: string
pattern: "^[0-9]+$"
TweetCardLegacyBindingValueDataImage:
required:
- "height"
- "width"
- "url"
properties:
height:
type: integer
width:
type: integer
url:
type: string
format: uri
alt:
type: string
TweetLegacy:
required:
@ -487,6 +820,21 @@ components:
in_reply_to_user_id_str:
type: string
pattern: "^[0-9]+$"
quoted_status_permalink:
$ref: "#/components/schemas/QuotedStatusPermalink"
quoted_status_id_str:
type: string
pattern: "^[0-9]+$"
conversation_control:
additionalProperties: true # todo
limited_actions:
type: string
enum:
- "limited_replies"
- "community_tweet_non_member_public_community"
- "non_compliant"
place:
additionalProperties: true # todo
SelfThread:
required:
@ -607,6 +955,14 @@ components:
additional_media_info:
type: object
additionalProperties: true # todo
source_user_id_str:
type: string
pattern: "^[0-9]+$"
source_status_id_str:
type: string
pattern: "^[0-9]+$"
ext_alt_text:
type: string
TweetLegacyScopes:
required:
@ -615,6 +971,22 @@ components:
followers:
type: boolean
QuotedStatusPermalink:
required:
- "url"
- "expanded"
- "display"
properties:
url:
type: string
format: uri
expanded:
type: string
format: uri
display:
type: string
format: uri
ExtendedEntities:
required:
- "media"
@ -677,6 +1049,14 @@ components:
$ref: "#/components/schemas/MediaOriginalInfo"
video_info:
$ref: "#/components/schemas/MediaVideoInfo"
source_user_id_str:
type: string
pattern: "^[0-9]+$"
source_status_id_str:
type: string
pattern: "^[0-9]+$"
ext_alt_text:
type: string
MediaOriginalInfo:
required:
@ -744,6 +1124,31 @@ components:
properties:
monetizable:
type: boolean
source_user:
$ref: "./user.yaml#/components/schemas/UserResultCore"
title: # null character
type: string
description: # null character
type: string
embeddable:
type: boolean
call_to_actions:
$ref: "#/components/schemas/AdditionalMediaInfoCallToActions"
AdditionalMediaInfoCallToActions:
required:
- "visit_site"
properties:
visit_site:
$ref: "#/components/schemas/AdditionalMediaInfoCallToActionsVisitSite"
AdditionalMediaInfoCallToActionsVisitSite:
required:
- "url"
properties:
url:
type: string
format: uri
MediaStats:
required:

View file

@ -23,4 +23,11 @@ components:
Tweet,
User,
UserUnavailable,
Community,
CommunityDeleteActionUnavailable,
CommunityJoinAction,
CommunityLeaveActionUnavailable,
CommunityTweetPinActionUnavailable,
CommunityInvitesUnavailable,
CommunityJoinRequestsUnavailable,
]

View file

@ -81,6 +81,14 @@ components:
- "Square"
professional:
$ref: "#/components/schemas/UserProfessional"
user_seed_tweet_count:
type: integer
highlights_info:
$ref: "#/components/schemas/UserHighlightsInfo"
creator_subscriptions_count:
type: integer
verification_info:
$ref: "#/components/schemas/UserVerificationInfo"
UserProfessional:
required:
@ -93,7 +101,7 @@ components:
pattern: "^[0-9]+$"
professional_type:
type: string
enum: ["Business"]
enum: ["Business", "Creator"]
category:
type: array
items:
@ -112,6 +120,79 @@ components:
icon_name:
type: string # IconBriefcaseStroke ?
UserHighlightsInfo:
required:
- "can_highlight_tweets"
- "highlighted_tweets"
properties:
can_highlight_tweets:
type: boolean
highlighted_tweets:
type: string
UserVerificationInfo:
required:
- "is_identity_verified"
- "reason"
properties:
is_identity_verified:
type: boolean
default: false
reason:
$ref: "#/components/schemas/UserVerificationInfoReason"
UserVerificationInfoReason:
required:
- "description"
- "verified_since_msec"
- "override_verified_year"
properties:
description:
$ref: "#/components/schemas/UserVerificationInfoReasonDescription"
verified_since_msec:
type: string
pattern: "^-?[0-9]+$"
override_verified_year:
type: integer
UserVerificationInfoReasonDescription:
required:
- "text"
- "entities"
properties:
text:
type: string
entities:
type: array
items:
$ref: "#/components/schemas/UserVerificationInfoReasonDescriptionEntities"
UserVerificationInfoReasonDescriptionEntities:
required:
- "from_index"
- "to_index"
- "ref"
properties:
from_index:
type: integer
to_index:
type: integer
ref:
$ref: "#/components/schemas/UserVerificationInfoReasonDescriptionEntitiesRef"
UserVerificationInfoReasonDescriptionEntitiesRef:
required:
- "url"
- "url_type"
properties:
url:
type: string
format: uri
url_type:
type: string
enum: ["ExternalUrl"]
UserLegacy:
required:
- "blocked_by"
@ -259,7 +340,11 @@ components:
default: false
verified_type:
type: string
enum: ["Business"]
enum: ["Business", "Government"]
withheld_in_countries:
type: array
items:
type: string # enum DE
UserUnavailable:
required:

View file

@ -65,12 +65,25 @@ def get_kwargs(key, additional):
return kwargs
def match_rate_zero(a, b, key, fn):
fn(a, b, key)
def match_rate_zero(a, b, base, key):
def get(obj, key):
if isinstance(obj, list):
return get(obj[key[0]], key[1:])
if obj.__dict__.get("actual_instance") is not None:
return get(obj.actual_instance, key)
if len(key) == 0:
return obj
return get(super_get(obj.__dict__, key[0]), key[1:])
if STRICT_MODE:
obj_name = type(get(base, key[:-1]))
obj_key = f"{obj_name.__name__}.{key[-1]}"
raise Exception(f"Not defined: {obj_key}\nContents: {b}")
return 0
def match_rate(a, b, key="", fn=lambda x: None):
def match_rate(a, b, base, key=""):
if isinstance(a, aenum.Enum):
a = a.value
if isinstance(b, aenum.Enum):
@ -83,22 +96,26 @@ def match_rate(a, b, key="", fn=lambda x: None):
return 1
if isinstance(a, list) and b is None and len(a) == 0:
return 1
if a is None and isinstance(b, dict) and len(b) == 0:
return 1
if isinstance(a, dict) and b is None and len(a) == 0:
return 1
if isinstance(a, dict) and isinstance(b, dict):
if len(a) == 0 and len(b) == 0:
return 1
marge_key = set(a.keys()) | set(b.keys())
data = [match_rate(a.get(k), b.get(k), [*key, k], fn) for k in marge_key]
data = [match_rate(a.get(k), b.get(k), base, [*key, k]) for k in marge_key]
return sum(data) / len(b)
if isinstance(a, list) and isinstance(b, list):
if len(a) == 0 and len(b) == 0:
return 1
if len(a) != len(b):
return match_rate_zero(a, b, key, fn)
data = [match_rate(a[i], b[i], [*key, i], fn) for i in range(len(a))]
return match_rate_zero(a, b, base, key)
data = [match_rate(a[i], b[i], base, [*key, i]) for i in range(len(a))]
return sum(data) / len(a)
if a == b:
return 1
return match_rate_zero(a, b, key, fn)
return match_rate_zero(a, b, base, key)
def save_cache(data):
@ -126,25 +143,10 @@ def task_callback(file, thread=True):
cache = json.load(f)
data = pt.__dict__[cache["type"]].from_json(cache["raw"])
def get(obj, key):
if isinstance(obj, list):
return get(obj[key[0]], key[1:])
if obj.__dict__.get("actual_instance") is not None:
return get(obj.actual_instance, key)
if len(key) == 0:
return obj
return get(super_get(obj.__dict__, key[0]), key[1:])
def match_rate_hook(a, b, key):
if STRICT_MODE:
obj_name = type(get(data, key[:-1]))
obj_key = f"{obj_name.__name__}.{key[-1]}"
raise Exception(f"Not defined: {obj_key}\nContents: {b}")
rate = match_rate(
data.to_dict(),
json.loads(cache["raw"]),
fn=match_rate_hook,
base=data,
)
return rate, file
except Exception:
@ -254,7 +256,11 @@ if __name__ == "__main__":
new_cursor = set(get_cursor(data, find_cursor)) - cursor_history
cursor_list.update(new_cursor)
rate = match_rate(data, json.loads(res.raw_data))
rate = match_rate(
data,
json.loads(res.raw_data),
res.data,
)
logger.info(f"Match rate: {rate}")
if data.get("errors") is not None:
@ -275,7 +281,11 @@ if __name__ == "__main__":
res = pt.UserApi(api_client).get_user_by_screen_name_with_http_info(**kwargs)
data = res.data.to_dict()
rate = match_rate(data, json.loads(res.raw_data))
rate = match_rate(
data,
json.loads(res.raw_data),
res.data,
)
logger.info(f"Match rate: {rate}")
screen_name = data["data"]["user"]["result"]["legacy"]["screen_name"]
if not screen_name == "a810810931931":
@ -290,7 +300,11 @@ if __name__ == "__main__":
res = pt.TweetApi(api_client).get_user_tweets_with_http_info(**kwargs)
data = res.data.to_dict()
rate = match_rate(data, json.loads(res.raw_data))
rate = match_rate(
data,
json.loads(res.raw_data),
res.data,
)
logger.info(f"Match rate: {rate}")
except Exception as e:
@ -309,7 +323,11 @@ if __name__ == "__main__":
res = pt.TweetApi(api_client).get_tweet_detail_with_http_info(**kwargs)
data = res.data.to_dict()
rate = match_rate(data, json.loads(res.raw_data))
rate = match_rate(
data,
json.loads(res.raw_data),
res.data,
)
logger.info(f"Match rate: {rate}")
except Exception as e:
error_dump(e)