This repository has been archived on 2022-04-16. You can view files and clone it, but cannot push or open issues or pull requests.
omordl/structs.go

106 lines
2.5 KiB
Go

package main
type Config struct {
ClientId string `json:"client_id"`
ClientSecret string `json:"client_secret"`
}
type Data struct {
AuthorizationHeader string `json:"authorization_header"`
AuthorizationExpiry int64 `json:"authorization_expiry"`
}
type TokenResponse struct {
AccessToken string `json:"access_token"`
TokenType string `json:"token_type"`
ExpiresIn int64 `json:"expires_in"`
}
type GalleryData struct {
Items []struct {
Id int `json:"id"`
MediaId string `json:"media_id"`
} `json:"items"`
}
func (s GalleryData) Len() int {
return len(s.Items)
}
func (s GalleryData) Swap(i, j int) {
s.Items[i], s.Items[j] = s.Items[j], s.Items[i]
}
func (s GalleryData) Less(i, j int) bool {
return s.Items[i].Id < s.Items[j].Id
}
type PreviewSource struct {
Url string `json:"url"`
}
type Submission struct {
CrosspostParent string `json:"crosspost_parent"`
// we don't care about the list, just does it exist or not
CrosspostParentList []interface{} `json:"crosspost_parent_list"`
Url string `json:"url"`
IsVideo bool `json:"is_video"`
SecureMedia struct {
RedditVideo struct {
HlsUrl string `json:"hls_url"`
DashUrl string `json:"dash_url"`
FallbackUrl string `json:"fallback_url"`
} `json:"reddit_video"`
} `json:"secure_media"`
IsGallery bool `json:"is_gallery"`
GalleryData *GalleryData `json:"gallery_data"`
MediaMetadata map[string]struct {
Status string `json:"status"`
S struct {
U string `json:"u"`
Mp4 string `json:"mp4"`
Gif string `json:"gif"`
} `json:"s"`
} `json:"media_metadata"`
IsRedditMediaDomain bool `json:"is_reddit_media_domain"`
Preview *struct {
Images []struct {
Variants struct {
Mp4 struct {
Source *PreviewSource `json:"source"`
} `json:"mp4"`
Gif struct {
Source *PreviewSource `json:"source"`
} `json:"gif"`
} `json:"variants"`
Source *PreviewSource `json:"source"`
} `json:"images"`
} `json:"preview"`
IsSelf bool `json:"is_self"`
Title string `json:"title"`
Domain string `json:"domain"`
}
type SubmissionResponseItem struct {
Data struct {
Children []struct {
Data *Submission `json:"data"`
} `json:"children"`
} `json:"data"`
}
type ImgurImage struct {
Hash string `json:"hash"`
Ext string `json:"ext"`
}
type ImgurResponse struct {
Data struct {
Images []ImgurImage `json:"images"`
} `json:"data"`
}
type GfycatResponse struct {
GfyItem struct {
Mp4Url string `json:"mp4Url"`
} `json:"gfyItem"`
}