structs in structs

This commit is contained in:
blank X 2021-11-17 22:46:06 +07:00
parent a61f3468ee
commit e4586cd5f3
Signed by: blankie
GPG Key ID: CC15FC822C7F61F5
1 changed files with 41 additions and 63 deletions

View File

@ -16,23 +16,11 @@ type TokenResponse struct {
ExpiresIn int64 `json:"expires_in"` ExpiresIn int64 `json:"expires_in"`
} }
type RedditVideo struct {
HlsUrl string `json:"hls_url"`
DashUrl string `json:"dash_url"`
FallbackUrl string `json:"fallback_url"`
}
type SecureMedia struct {
RedditVideo *RedditVideo `json:"reddit_video"`
}
type GalleryDataItem struct {
Id int `json:"id"`
MediaId string `json:"media_id"`
}
type GalleryData struct { type GalleryData struct {
Items []GalleryDataItem `json:"items"` Items []struct {
Id int `json:"id"`
MediaId string `json:"media_id"`
} `json:"items"`
} }
func (s GalleryData) Len() int { func (s GalleryData) Len() int {
@ -45,61 +33,51 @@ func (s GalleryData) Less(i, j int) bool {
return s.Items[i].Id < s.Items[j].Id return s.Items[i].Id < s.Items[j].Id
} }
// despite the name, it is not several items, but one
// ???
type MediaMetadataItemS struct {
U string `json:"u"`
Mp4 string `json:"mp4"`
Gif string `json:"gif"`
}
type MediaMetadataItem struct {
Status string `json:"status"`
S *MediaMetadataItemS `json:"s"`
}
type PreviewSource struct { type PreviewSource struct {
Url string `json:"url"` Url string `json:"url"`
} }
type PreviewVariants struct {
Mp4 *PreviewSource `json:"mp4"`
Gif *PreviewSource `json:"gif"`
}
type PreviewImage struct {
Variants *PreviewVariants `json:"variants"`
}
type Preview struct {
Images []PreviewImage `json:"images"`
Source *PreviewSource `json:"source"`
}
type Submission struct { type Submission struct {
CrosspostParent string `json:"crosspost_parent"` CrosspostParent string `json:"crosspost_parent"`
// we don't care about the list, just does it exist or not // we don't care about the list, just does it exist or not
CrosspostParentList []interface{} `json:"crosspost_parent_list"` CrosspostParentList []interface{} `json:"crosspost_parent_list"`
Url string `json:"url"` Url string `json:"url"`
IsVideo bool `json:"is_video"` IsVideo bool `json:"is_video"`
SecureMedia *SecureMedia `json:"secure_media"` SecureMedia struct {
IsGallery bool `json:"is_gallery"` RedditVideo struct {
GalleryData *GalleryData `json:"gallery_data"` HlsUrl string `json:"hls_url"`
MediaMetadata map[string]MediaMetadataItem `json:"media_metadata"` DashUrl string `json:"dash_url"`
IsRedditMediaDomain bool `json:"is_reddit_media_domain"` FallbackUrl string `json:"fallback_url"`
Preview *Preview `json:"preview"` } `json:"reddit_video"`
IsSelf bool `json:"is_self"` } `json:"secure_media"`
Title string `json:"title"` IsGallery bool `json:"is_gallery"`
} GalleryData *GalleryData `json:"gallery_data"`
MediaMetadata map[string]struct {
type SubmissionChild struct { Status string `json:"status"`
Data *Submission `json:"data"` S struct {
} U string `json:"u"`
Mp4 string `json:"mp4"`
type SubmissionResponseItemData struct { Gif string `json:"gif"`
Children []SubmissionChild `json:"children"` } `json:"s"`
} `json:"media_metadata"`
IsRedditMediaDomain bool `json:"is_reddit_media_domain"`
Preview struct {
Images []struct {
Variants struct {
Mp4 *PreviewSource `json:"mp4"`
Gif *PreviewSource `json:"gif"`
} `json:"variants"`
} `json:"images"`
Source *PreviewSource `json:"source"`
} `json:"preview"`
IsSelf bool `json:"is_self"`
Title string `json:"title"`
} }
type SubmissionResponseItem struct { type SubmissionResponseItem struct {
Data SubmissionResponseItemData `json:"data"` Data struct {
Children []struct {
Data *Submission `json:"data"`
} `json:"children"`
} `json:"data"`
} }