mirror of
https://github.com/krau/SaveAny-Bot.git
synced 2026-05-10 17:52:44 +08:00
* feat: WIP. add parser functionality and text message handling * fix: use json to marshal js result * feat: add metadata handling and version validation for jsParser * refactor: rename parser package to parsers and restructure parser handling * refactor: core code struct and impl parse task handle * feat: impl parsed download * fix: seek cache file when processing tph picture * feat: implement parsed task handling and progress tracking * feat: enhance task processing with concurrency control and progress tracking * feat: add resource ID generation and improve resource processing handling * feat: improve message formatting in parsed text and progress completion * feat: add example js plugin * feat: implement Twitter parser * fix: twitter parse video json decode error * feat: impl stream mode for parse task
123 lines
4.4 KiB
Go
123 lines
4.4 KiB
Go
package twitter
|
|
|
|
// type AutoGenerated struct {
|
|
// Code int `json:"code"`
|
|
// Message string `json:"message"`
|
|
// Tweet struct {
|
|
// URL string `json:"url"`
|
|
// ID string `json:"id"`
|
|
// Text string `json:"text"`
|
|
// RawText struct {
|
|
// Text string `json:"text"`
|
|
// Facets []struct {
|
|
// Type string `json:"type"`
|
|
// Indices []int `json:"indices"`
|
|
// Original string `json:"original"`
|
|
// ID string `json:"id,omitempty"`
|
|
// Display string `json:"display,omitempty"`
|
|
// Replacement string `json:"replacement,omitempty"`
|
|
// } `json:"facets"`
|
|
// } `json:"raw_text"`
|
|
// Author struct {
|
|
// ID string `json:"id"`
|
|
// Name string `json:"name"`
|
|
// ScreenName string `json:"screen_name"`
|
|
// AvatarURL string `json:"avatar_url"`
|
|
// BannerURL interface{} `json:"banner_url"`
|
|
// Description string `json:"description"`
|
|
// Location string `json:"location"`
|
|
// URL string `json:"url"`
|
|
// Followers int `json:"followers"`
|
|
// Following int `json:"following"`
|
|
// Joined string `json:"joined"`
|
|
// Likes int `json:"likes"`
|
|
// MediaCount int `json:"media_count"`
|
|
// Protected bool `json:"protected"`
|
|
// Website struct {
|
|
// URL string `json:"url"`
|
|
// DisplayURL string `json:"display_url"`
|
|
// } `json:"website"`
|
|
// Tweets int `json:"tweets"`
|
|
// AvatarColor interface{} `json:"avatar_color"`
|
|
// } `json:"author"`
|
|
// Replies int `json:"replies"`
|
|
// Retweets int `json:"retweets"`
|
|
// Likes int `json:"likes"`
|
|
// Bookmarks int `json:"bookmarks"`
|
|
// CreatedAt string `json:"created_at"`
|
|
// CreatedTimestamp int `json:"created_timestamp"`
|
|
// PossiblySensitive bool `json:"possibly_sensitive"`
|
|
// Views int `json:"views"`
|
|
// IsNoteTweet bool `json:"is_note_tweet"`
|
|
// CommunityNote interface{} `json:"community_note"`
|
|
// Lang string `json:"lang"`
|
|
// ReplyingTo interface{} `json:"replying_to"`
|
|
// ReplyingToStatus interface{} `json:"replying_to_status"`
|
|
// Media struct {
|
|
// All []struct {
|
|
// URL string `json:"url"`
|
|
// ThumbnailURL string `json:"thumbnail_url"`
|
|
// Duration int `json:"duration"`
|
|
// Width int `json:"width"`
|
|
// Height int `json:"height"`
|
|
// Format string `json:"format"`
|
|
// Type string `json:"type"`
|
|
// Variants []struct {
|
|
// Bitrate int `json:"bitrate"`
|
|
// ContentType string `json:"content_type"`
|
|
// URL string `json:"url"`
|
|
// } `json:"variants"`
|
|
// } `json:"all"`
|
|
// Photos []struct {
|
|
// Type string `json:"type"`
|
|
// URL string `json:"url"`
|
|
// Width int `json:"width"`
|
|
// Height int `json:"height"`
|
|
// } `json:"photos"`
|
|
// Videos []struct {
|
|
// URL string `json:"url"`
|
|
// ThumbnailURL string `json:"thumbnail_url"`
|
|
// Duration int `json:"duration"`
|
|
// Width int `json:"width"`
|
|
// Height int `json:"height"`
|
|
// Format string `json:"format"`
|
|
// Type string `json:"type"`
|
|
// Variants []struct {
|
|
// Bitrate int `json:"bitrate"`
|
|
// ContentType string `json:"content_type"`
|
|
// URL string `json:"url"`
|
|
// } `json:"variants"`
|
|
// } `json:"videos"`
|
|
// } `json:"media"`
|
|
// Source string `json:"source"`
|
|
// TwitterCard string `json:"twitter_card"`
|
|
// Color interface{} `json:"color"`
|
|
// Provider string `json:"provider"`
|
|
// } `json:"tweet"`
|
|
// }
|
|
|
|
type FxTwitterApiResp struct {
|
|
Code int `json:"code"`
|
|
Message string `json:"message"`
|
|
Tweet struct {
|
|
URL string `json:"url"`
|
|
ID string `json:"id"`
|
|
Text string `json:"text"`
|
|
Author struct {
|
|
ID string `json:"id"`
|
|
Name string `json:"name"`
|
|
ScreenName string `json:"screen_name"`
|
|
Protected bool `json:"protected"`
|
|
} `json:"author"`
|
|
PossiblySensitive bool `json:"possibly_sensitive"`
|
|
IsNoteTweet bool `json:"is_note_tweet"`
|
|
Lang string `json:"lang"`
|
|
Media struct {
|
|
All []struct {
|
|
URL string `json:"url"`
|
|
Type string `json:"type"`
|
|
} `json:"all"`
|
|
} `json:"media"`
|
|
} `json:"tweet"`
|
|
}
|