Documentation ¶
Index ¶
- Constants
- type Comment
- func (ldc *Comment) GetAuthor() string
- func (ldc *Comment) GetBody() string
- func (ldc *Comment) GetCreated() float64
- func (ldc *Comment) GetId() string
- func (ldc *Comment) GetParentId() string
- func (ldc *Comment) GetScore() float64
- func (ldc *Comment) GetSubreddit() string
- func (ldc *Comment) IsComment() bool
- func (ldc *Comment) IsCommentReply() bool
- func (ldc *Comment) IsRoot() bool
- type CommentJson
- type CommentJsonData
- type CommentJsonDataThing
- type CommentJsonDataThingData
- type CommentListing
- type CommentListingData
- type CommentListingDataChildrenData
- type CommentWrap
- func (c CommentWrap) CreatedAt() float64
- func (c CommentWrap) GetAuthor() string
- func (c CommentWrap) GetAuthorId() string
- func (c CommentWrap) GetBody() string
- func (c CommentWrap) GetDowns() float64
- func (c CommentWrap) GetId() string
- func (c CommentWrap) GetParentId() string
- func (c CommentWrap) GetScore() float64
- func (c CommentWrap) GetSubreddit() string
- func (c CommentWrap) GetSubredditId() string
- func (c CommentWrap) GetUps() float64
- func (c CommentWrap) IsApproved() bool
- func (c CommentWrap) IsAuthor() bool
- func (c CommentWrap) IsRemoved() bool
- func (c CommentWrap) IsSticky() bool
- type Credentials
- type Gilding
- type Me
- type MeFeatures
- type MeSubFeature
- type PostAward
- type PostAwardIcon
- type PostListing
- type PostListingChild
- func (plc *PostListingChild) GetAge() float64
- func (plc *PostListingChild) GetAuthor() string
- func (plc *PostListingChild) GetAuthorFlair() string
- func (plc *PostListingChild) GetAuthorId() string
- func (plc *PostListingChild) GetCommentCount() float64
- func (plc *PostListingChild) GetCreated() float64
- func (plc *PostListingChild) GetCrosspostCount() float64
- func (plc *PostListingChild) GetDowns() float64
- func (plc *PostListingChild) GetId() string
- func (plc *PostListingChild) GetPermalink() string
- func (plc *PostListingChild) GetScore() float64
- func (plc *PostListingChild) GetSubreddit() string
- func (plc *PostListingChild) GetSubredditId() string
- func (plc *PostListingChild) GetText() string
- func (plc *PostListingChild) GetTimeCreated() float64
- func (plc *PostListingChild) GetTitle() string
- func (plc *PostListingChild) GetUps() float64
- func (plc *PostListingChild) GetUrl() string
- type PostListingChildData
- type PostListingData
- type PostPreview
- type PostPreviewImage
- type PostPreviewImageResolutions
- type PostPreviewImageSource
- type Reddit
- func (c *Reddit) Approve(comment_id string) error
- func (c *Reddit) Comment(submission_id, text string) (*CommentWrap, error)
- func (c *Reddit) Compose(to, subject, text string) error
- func (c *Reddit) DeleteComment(comment_id string) error
- func (c *Reddit) Distinguish(comment_id string, how string, sticky bool) error
- func (c *Reddit) EditComment(comment_id, text string) (*CommentWrap, error)
- func (c *Reddit) GetComment(id string) (*Comment, error)
- func (c *Reddit) GetSubmission(id string) (*PostListing, error)
- func (c *Reddit) GetSubmissionComments(sr string, post_id string, sort string, limit int) ([]Comment, []string, error)
- func (c *Reddit) GetSubmissionFromComment(comment_id string) (string, error)
- func (c *Reddit) GetSubreddit(name string) (*Subreddit, error)
- func (c *Reddit) GetSubredditComments(sr string, sort string, tdur string, limit int) ([]Comment, error)
- func (c *Reddit) GetSubredditCommentsAfter(sr string, sort string, last string, limit int) ([]Comment, error)
- func (c *Reddit) GetSubredditPosts(sr string, sort string, tdur string, limit int) ([]PostListingChild, error)
- func (c *Reddit) GetSubredditPostsAfter(sr string, last string, limit int) ([]PostListingChild, error)
- func (c *Reddit) GetUser(name string) (*Redditor, error)
- func (c *Reddit) ListUnreadMessages() ([]Comment, error)
- func (c *Reddit) Me() (*Me, error)
- func (c *Reddit) MiraRequest(method string, target string, payload map[string]string) ([]byte, error)
- func (c *Reddit) ReadAllMessages() error
- func (c *Reddit) ReadMessage(message_id string) error
- func (c *Reddit) Reply(comment_id string, text string) (*CommentWrap, error)
- func (c *Reddit) SetClient(client *http.Client)
- func (c *Reddit) SetDefault()
- func (r *Reddit) StreamCommentReplies() (<-chan Comment, chan bool)
- func (r *Reddit) StreamNewComments(sr string) (<-chan Comment, chan bool)
- func (r *Reddit) StreamNewPosts(sr string) (<-chan PostListingChild, chan bool)
- func (c *Reddit) Submit(sr string, title string, text string) (*Submission, error)
- func (c *Reddit) SubredditUpdateSidebar(sr, text string) ([]byte, error)
- type RedditVals
- type Redditor
- type RedditorData
- type Streaming
- type Submission
- type SubmissionJson
- type SubmissionJsonData
- type Subreddit
- func (s Subreddit) GetCreated() float64
- func (s Subreddit) GetDescription() string
- func (s Subreddit) GetDisplayName() string
- func (s Subreddit) GetId() string
- func (s Subreddit) GetName() string
- func (s Subreddit) GetPublicDescription() string
- func (s Subreddit) GetSubscribers() float64
- func (s Subreddit) GetUrl() string
- func (s Subreddit) IsOver18() bool
- type SubredditData
- type Subreddit_s
Constants ¶
const ( RedditBase = "https://www.reddit.com/" RedditOauth = "https://oauth.reddit.com" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Comment ¶
type Comment struct { Kind string `json:"kind"` Data CommentListingDataChildrenData `json:"data"` }
func (*Comment) GetCreated ¶
func (*Comment) GetParentId ¶
func (*Comment) GetSubreddit ¶
func (*Comment) IsCommentReply ¶
type CommentJson ¶
type CommentJson struct { Errors []string `json:"errors"` Data CommentJsonData `json:"data"` }
type CommentJsonData ¶
type CommentJsonData struct {
Things []CommentJsonDataThing `json:"things"`
}
type CommentJsonDataThing ¶
type CommentJsonDataThing struct { Kind string `json:"kind"` Data CommentJsonDataThingData `json:"data"` }
type CommentJsonDataThingData ¶
type CommentJsonDataThingData struct { AuthorFlairBackgroundColor string `json:"author_flair_background_color"` TotalAwardsReceived float64 `json:"total_awards_received"` ApprovedAtUtc string `json:"approved_at_utc"` Distinguished string `json:"distinguished"` ModReasonBy string `json:"mod_reason_by"` BannedBy string `json:"banned_by"` AuthorFlairType string `json:"author_flair_type"` RemovalReason string `json:"removal_reason"` LinkId string `json:"link_id"` AuthorFlairTemplateId string `json:"author_flair_template_id"` Likes bool `json:"likes"` Replies string `json:"replies"` UserReports []string `json:"user_reports"` Saved bool `json:"saved"` Id string `json:"id"` BannedAtUtc string `json:"banned_at_utc"` ModReasonTitle string `json:"mod_reason_title"` Gilded float64 `json:"gilded"` Archived bool `json:"archived"` NoFollow bool `json:"no_follow"` Author string `json:"author"` RteMode string `json:"rte_mode"` CanModPost bool `json:"can_mod_post"` CreatedUtc float64 `json:"created_utc"` SendReplies bool `json:"send_replies"` ParentId string `json:"parent_id"` Score float64 `json:"score"` AuthorFullname string `json:"author_fullname"` ApprovedBy string `json:"approved_by"` Mod_note string `json:"mod_note"` AllAwardings []string `json:"all_awardings"` SubredditId string `json:"subreddit_id"` Body string `json:"body"` Edited bool `json:"edited"` Gildings Gilding `json:"gildings"` AuthorFlairCssClass string `json:"author_flair_css_class"` Name string `json:"name"` AuthorPatreonFlair bool `json:"author_patreon_flair"` Downs float64 `json:"downs"` AuthorFlairRichtext []string `json:"author_flair_richtext"` IsSubmitter bool `json:"is_submitter"` CollapsedReason string `json:"collapsed_reason"` BodyHtml string `json:"body_html"` Stickied bool `json:"stickied"` CanGild bool `json:"can_gild"` Removed bool `json:"removed"` Approved bool `json:"approved"` AuthorFlairTextColor string `json:"author_flair_text_color"` ScoreHidden bool `json:"score_hidden"` Permalink string `json:"permalink"` NumReports float64 `json:"num_reports"` Locked bool `json:"locked"` ReportReasons []string `json:"report_reasons"` Created float64 `json:"created"` Subreddit string `json:"subreddit"` AuthorFlairText string `json:"author_flair_text"` Spam bool `json:"spam"` Collapsed bool `json:"collapsed"` SubredditNamePrefixed string `json:"subreddit_name_prefixed"` Controversiality float64 `json:"controversiality"` IgnoreReports bool `json:"ignore_reports"` ModReports []string `json:"mod_reports"` SubredditType string `json:"subreddit_type"` Ups float64 `json:"ups"` }
type CommentListing ¶
type CommentListing struct { Kind string `json:"kind"` Data CommentListingData `json:"data"` }
func (*CommentListing) GetChildren ¶
func (l *CommentListing) GetChildren() []Comment
type CommentListingData ¶
type CommentListingDataChildrenData ¶
type CommentListingDataChildrenData struct { FirstMessage string `json:"first_message"` FirstMessageName string `json:"first_message_name"` Subreddit string `json:"subreddit"` Likes string `json:"likes"` Replies string `json:"replies"` Id string `json:"id"` Subject string `json:"subject"` WasComment bool `json:"was_comment"` Score float64 `json:"score"` Author string `json:"author"` NumComments float64 `json:"num_comments"` ParentId string `json:"parent_id"` SubredditNamePrefixed string `json:"subreddit_name_prefixed"` New bool `json:"new"` Body string `json:"body"` LinkTitle string `json:"link_title"` Dest string `json:"dest"` BodyHtml string `json:"body_html"` Name string `json:"name"` Created float64 `json:"created"` Created_utc float64 `json:"created_utc"` Context string `json:"context"` Distinguished string `json:"distinguished"` Children []string `json:"children"` }
type CommentWrap ¶
type CommentWrap struct {
Json CommentJson `json:"json"`
}
func (CommentWrap) CreatedAt ¶
func (c CommentWrap) CreatedAt() float64
Get the UNIX timestamp when the comment was created
func (CommentWrap) GetAuthor ¶
func (c CommentWrap) GetAuthor() string
Get the name of the author. With no u/ preppended
func (CommentWrap) GetAuthorId ¶
func (c CommentWrap) GetAuthorId() string
Get the name of the author. With no u/ preppended
func (CommentWrap) GetId ¶
func (c CommentWrap) GetId() string
Get ID of the comment. Should be something "t1_..."
func (CommentWrap) GetParentId ¶
func (c CommentWrap) GetParentId() string
Get ID of the comment. Should be something "t1_..."
func (CommentWrap) GetScore ¶
func (c CommentWrap) GetScore() float64
Get the score of the comment (Ups - Downs)
func (CommentWrap) GetSubreddit ¶
func (c CommentWrap) GetSubreddit() string
Get the subreddit's name. With no r/ preppended
func (CommentWrap) GetSubredditId ¶
func (c CommentWrap) GetSubredditId() string
func (CommentWrap) GetUps ¶
func (c CommentWrap) GetUps() float64
Get the number of upvotes on the comment
func (CommentWrap) IsApproved ¶
func (c CommentWrap) IsApproved() bool
Return true if the comment is approved, false otherwise
func (CommentWrap) IsAuthor ¶
func (c CommentWrap) IsAuthor() bool
Return true if the author is submission's author, false otherwise
func (CommentWrap) IsRemoved ¶
func (c CommentWrap) IsRemoved() bool
Return true if the comment is removed, false otherwise
func (CommentWrap) IsSticky ¶
func (c CommentWrap) IsSticky() bool
Return true if the comment is stickied, false otherwise
type Credentials ¶
type Credentials struct { ClientId string ClientSecret string Username string Password string UserAgent string }
func ReadCredsFromEnv ¶
func ReadCredsFromEnv() Credentials
Assuming that they all exist. Probably a bad idea. We can expand it later and do a more aggressive error handling.
func ReadCredsFromFile ¶
func ReadCredsFromFile(file string) Credentials
type Me ¶
type Me struct { IsEmployee bool `json:"is_employee"` SeenLayoutSwitch bool `json:"seen_layout_switch"` HasVisitedNewProfile bool `json:"has_visited_new_profile"` PrefNoProfanity bool `json:"pref_no_profanity"` HasExternalAccount bool `json:"has_external_account"` PrefGeopopular string `json:"pref_geopopular"` SeenRedesignModal bool `json:"seen_redesign_modal"` PrefShowTrending bool `json:"pref_show_trending"` Subreddit Subreddit_s `json:"subreddit"` IsSponsor bool `json:"is_sponsor"` GoldExpiration float64 `json:"gold_expiration"` HasGoldSubscription bool `json:"has_gold_subscription"` NumFriends float64 `json:"num_friends"` Features MeFeatures `json:"features"` HasAndroidSubscription bool `json:"has_android_subscription"` Verified bool `json:"verified"` NewModmailExists bool `json:"new_modmail_exists"` PrefAutoplay bool `json:"pref_autoplay"` Coins float64 `json:"coins"` HasPaypalSubscription bool `json:"has_paypal_subscription"` HasSubscribedToPremium bool `json:"has_subscribed_to_premium"` Id string `json:"id"` HasStripeSubscription bool `json:"has_stripe_subscription"` SeenPremiumAdblockModal bool `json:"seen_premium_adblock_modal"` CanCreateSubreddit bool `json:"can_create_subreddit"` Over18 bool `json:"over_18"` IsGold bool `json:"is_gold"` IsMod bool `json:"is_mod"` SuspensionExpirationUtc float64 `json:"suspension_expiration_utc"` HasVerifiedEmail bool `json:"has_verified_email"` IsSuspended bool `json:"is_suspended"` PrefVideoAutoplay bool `json:"pref_video_autoplay"` InChat bool `json:"in_chat"` InRedesignBeta bool `json:"in_redesign_beta"` IconImg string `json:"icon_img"` HasModMail bool `json:"has_mod_mail"` PrefNightmode bool `json:"pref_nightmode"` OauthClientId bool `json:"oauth_client_id"` HideFromRobots bool `json:"hide_from_robots"` LinkKarma float64 `json:"link_karma"` ForcePasswordReset bool `json:"force_password_reset"` InboxCount float64 `json:"inbox_count"` PrefTopKarmaSubreddits bool `json:"pref_top_karma_subreddits"` HasMail bool `json:"has_mail"` PrefShowSnoovatar bool `json:"pref_show_snoovatar"` Name string `json:"name"` PrefClickgadget float64 `json:"pref_clickgadget"` Created float64 `json:"created"` GoldCreddits float64 `json:"gold_creddits"` HasIosSubscription bool `json:"has_ios_subscription"` PrefShowTwitter bool `json:"pref_show_twitter"` InBeta bool `json:"in_beta"` CommentKarma float64 `json:"comment_karma"` HasSubscribed bool `json:"has_subscribed"` SeenSubredditChatFtux bool `json:"seen_subreddit_chat_ftux"` }
type MeFeatures ¶
type MeFeatures struct { RichtextPreviews bool `json:"richtext_previews"` DoNotTrack bool `json:"do_not_track"` ChatSubreddit bool `json:"chat_subreddit"` Chat bool `json:"chat"` SeqRandomizeSort bool `json:"seq_randomize_sort"` Sequence bool `json:"sequence"` MwebXpromoRevampV2 MeSubFeature `json:"mweb_xpromo_revamp_v2"` MwebXpromoFloat64erstitialCommentsIos bool `json:"mweb_xpromo_float64erstitial_comments_ios"` ChatReddarReports bool `json:"chat_reddar_reports"` ChatRollout bool `json:"chat_rollout"` MwebXpromoFloat64erstitialCommentsAndroid bool `json:"mwev_xpromo_float64erstitial_comments_android"` ChatGroutRollout bool `json:"chat_group_rollout"` MwebLinkTab MeSubFeature `json:"mweb_link_tab"` SpezModal bool `json:"spez_modal"` CommunityAwards bool `json:"community_awards"` DefaultSrsHoldout MeSubFeature `json:"default_srs_holdout"` ChatUserSettings bool `json:"chat_user_settings"` DualWriteUserPrefs bool `json:"dual_write_user_prefs"` MwebXpromoModalListingClickDailyDismissibleAndroid bool `json:"mweb_xpromo_modal_listing_click_daily_dismissible_ios"` MwebXpromoModalListingClickDailyDismisssibleIos bool `json:"mweb_xpromo_modal_listing_click_daily_dismissible_android"` }
type MeSubFeature ¶
type PostAward ¶
type PostAward struct { IsEnabled bool `json:"is_enabled"` Count float64 `json:"count"` SubredditId string `json:"subreddit_id"` Description string `json:"description"` CoinReward float64 `json:"coin_reward"` IconWidth float64 `json:"icon_width"` IconUrl string `json:"icon_url"` DaysOfPremium float64 `json:"days_of_premium"` IconHeight float64 `json:"icon_height"` ResizedIcons []PostAwardIcon `json:"resized_icons"` DaysOfDripExtension float64 `json:"days_of_drip_extension"` AwardType string `json:"award_type"` CoinPrice float64 `json:"coin_price"` Id string `json:"id"` Name string `json:"name"` }
type PostAwardIcon ¶
type PostListing ¶
type PostListing struct { Kind string `json:"kind"` Data PostListingData `json:"data"` }
func (*PostListing) GetChildren ¶
func (p *PostListing) GetChildren() []PostListingChild
type PostListingChild ¶
type PostListingChild struct { Kind string `json:"kind"` Data PostListingChildData `json:"data"` After string `json:"after"` Before string `json:"before"` }
func (*PostListingChild) GetAge ¶
func (plc *PostListingChild) GetAge() float64
func (*PostListingChild) GetAuthor ¶
func (plc *PostListingChild) GetAuthor() string
func (*PostListingChild) GetAuthorFlair ¶
func (plc *PostListingChild) GetAuthorFlair() string
func (*PostListingChild) GetAuthorId ¶
func (plc *PostListingChild) GetAuthorId() string
func (*PostListingChild) GetCommentCount ¶
func (plc *PostListingChild) GetCommentCount() float64
func (*PostListingChild) GetCreated ¶
func (plc *PostListingChild) GetCreated() float64
func (*PostListingChild) GetCrosspostCount ¶
func (plc *PostListingChild) GetCrosspostCount() float64
func (*PostListingChild) GetDowns ¶
func (plc *PostListingChild) GetDowns() float64
func (*PostListingChild) GetId ¶
func (plc *PostListingChild) GetId() string
func (*PostListingChild) GetPermalink ¶
func (plc *PostListingChild) GetPermalink() string
func (*PostListingChild) GetScore ¶
func (plc *PostListingChild) GetScore() float64
func (*PostListingChild) GetSubreddit ¶
func (plc *PostListingChild) GetSubreddit() string
func (*PostListingChild) GetSubredditId ¶
func (plc *PostListingChild) GetSubredditId() string
func (*PostListingChild) GetText ¶
func (plc *PostListingChild) GetText() string
func (*PostListingChild) GetTimeCreated ¶
func (plc *PostListingChild) GetTimeCreated() float64
func (*PostListingChild) GetTitle ¶
func (plc *PostListingChild) GetTitle() string
func (*PostListingChild) GetUps ¶
func (plc *PostListingChild) GetUps() float64
func (*PostListingChild) GetUrl ¶
func (plc *PostListingChild) GetUrl() string
type PostListingChildData ¶
type PostListingChildData struct { ApprovedAtUtc float64 `json:"approved_at_utc"` Subreddit string `json:"subreddit"` Selftext string `json:"selftext"` AuthorFullname string `json:"author_fullname"` Saved bool `json:"saved"` ModReasonTitle string `json:"mod_reason_title"` Gilded float64 `json:"gilded"` Clicked bool `json:"clicked"` Title string `json:"title"` LinkFlairRichtext string `json:"link_flair_richtext"` SubredditNamePrefixed string `json:"subreddit_name_prefixed"` Hidden bool `json:"hidden"` Pwls float64 `json:"pwls"` LinkFlairCssClass string `json:"link_flair_css_class"` Downs float64 `json:"downs"` ThumbnailHeight float64 `json:"thumbnail_height"` HideScore bool `json:"hide_score"` Name string `json:"name"` Quarantine bool `json:"quarantine"` LinkFlairTextColor string `json:"link_flair_text_color"` AuthorFlairBackgroundColor string `json:"author_flair_background_color"` SubredditType string `json:"subreddit_type"` Ups float64 `json:"ups"` TotalAwardsReceived float64 `json:"total_awards_received"` MediaEmbed []string `json:"media_embed"` ThumbnailWidth float64 `json:"thumbnail_width"` AuthorFlairTemplateId string `json:"author_flair_template_id"` IsOriginalContent bool `json:"is_original_content"` UserReports []string `json:"user_reports"` SecureMedia string `json:"secure_media"` IsRedditMediaDomain bool `json:"is_reddit_media_domain"` IsMeta bool `json:"is_meta"` Category string `json:"category"` SecureMediaEmbed []string `json:"secure_media_embed"` LinkFlairText string `json:"link_flair_text"` CanModPost bool `json:"can_mod_post"` Score float64 `json:"score"` ApprovedBy string `json:"approved_by"` Thumbnail string `json:"thumbnail"` Edited bool `json:"edited"` AuthorFlairCssClass string `json:"author_flair_css_class"` AuthorFlairRichtext []string `json:"author_flair_richtext"` Gildings map[string]float64 `json:"gildings"` PostHint string `json:"post_hint"` ContentCategories []string `json:"content_categories"` IsSelf bool `json:"is_self"` ModNote string `json:"mod_note"` Created float64 `json:"created"` LinkFlairType string `json:"link_flair_type"` Wls float64 `json:"wls"` BannedBy string `json:"banned_by"` AuthorFlairType string `json:"author_flair_type"` Domain string `json:"domain"` SelftextHtml string `json:"selftext_html"` Likes float64 `json:"likes"` SuggestedSort string `json:"suggested_sort"` BannedAtUtc float64 `json:"banned_at_utc"` ViewCount float64 `json:"view_count"` Archived bool `json:"archived"` NoFollow bool `json:"no_follow"` IsCrosspostable bool `json:"is_crosspostable"` Pinned bool `json:"pinned"` Over18 bool `json:"over_18"` Preview PostPreview `json:"preview"` Awardings []PostAward `json:"all_awardings"` MediaOnly bool `json:"media_only"` CanGild bool `json:"can_gild"` Spoiler bool `json:"spoiler"` Locked bool `json:"locked"` AuthorFlairText string `json:"author_flair_text"` Visited bool `json:"visited"` NumReports float64 `json:"num_reports"` Distinguished bool `json:"distinguished"` SubredditId string `json:"subreddit_id"` ModReasonBy string `json:"mod_reason_by"` RemovalReason string `json:"removal_reason"` LinkFlairBackgroundColor string `json:"link_flair_background_color"` Id string `json:"id"` IsRobotIndexable bool `json:"is_robot_indexable"` ReportReasons string `json:"report_reasons"` Author string `json:"author"` NumCrossposts float64 `json:"num_crossposts"` NumComments float64 `json:"num_comments"` SendReplies bool `json:"send_replies"` WhitelistStatus string `json:"whitelist_status"` ContestMode bool `json:"contest_mode"` ModReports []string `json:"mod_reports"` AuthorPatreonFlair bool `json:"author_patreon_flair"` AuthorFlairTextColor string `json:"author_flair_text_color"` Permalink string `json:"permalink"` ParentWhitelistStatus string `json:"parent_whitelist_status"` Stickied bool `json:"stickied"` Url string `json:"url"` SubredditSubscribers float64 `json:"subreddit_subscribers"` CreatedUtc float64 `json:"created_utc"` Media []string `json:"media"` IsVideo bool `json:"is_video"` }
type PostListingData ¶
type PostListingData struct { Modhash string `json:"modhash"` Dist float64 `json:"dist"` Children []PostListingChild `json:"children"` }
type PostPreview ¶
type PostPreview struct { Images []PostPreviewImage `json:"images"` Enabled bool `json:"enabled"` }
type PostPreviewImage ¶
type PostPreviewImage struct { Source PostPreviewImageSource `json:"source"` Resolutions PostPreviewImageResolutions `json:"resolutions"` Variants []string `json:"variants"` Id string `json:"id"` }
type PostPreviewImageSource ¶
type Reddit ¶
type Reddit struct { Token string `json:"access_token"` Duration float64 `json:"expires_in"` Creds Credentials Stream Streaming Values RedditVals Client *http.Client }
func Authenticate ¶
func Authenticate(c *Credentials) (*Reddit, error)
Returns an access_token acquired using the provided credentials
func Init ¶
func Init(c Credentials) (*Reddit, error)
When we initialize the Reddit instance, automatically start a goroutine that will update the token every 45 minutes. The auto_refresh should not be accessible to the end user as it is an internal method
func (*Reddit) DeleteComment ¶
func (*Reddit) Distinguish ¶
func (*Reddit) EditComment ¶
func (c *Reddit) EditComment(comment_id, text string) (*CommentWrap, error)
func (*Reddit) GetSubmission ¶
func (c *Reddit) GetSubmission(id string) (*PostListing, error)
func (*Reddit) GetSubmissionComments ¶
func (*Reddit) GetSubmissionFromComment ¶
This function will return the submission id of a comment
Comment id has form of t1_... where submission is prefixed with t3_...
Comment structures in themselves do not have submission id included, they only have a parent_id field that points to a parent comment or a submission. If it does not point directly at the submission, we need to make iterative calls until we bump into an id that fits the submission prefix. It may take several calls.
For example:
- If comment is first-level, we make one call to get the object and extract the submission id. If you already have a Go struct at hand, please just invoke .GetParentId() to get the parent id
- If comment is second-level, it would take two calls to extact the submission id. If you want to save a call, you can pass a parent_id instead that would take 1 call instead of 2.
- If comment is N-level, it would take N calls. If you aleady have an object, just pass in its object, so it would take N-1 calls.
NOTE: If any error occurs, the method will return on error object. If it takes more than 12 calls, the function bails out.
func (*Reddit) GetSubredditComments ¶ added in v1.1.0
func (*Reddit) GetSubredditCommentsAfter ¶ added in v1.1.0
func (*Reddit) GetSubredditPosts ¶
func (c *Reddit) GetSubredditPosts(sr string, sort string, tdur string, limit int) ([]PostListingChild, error)
Get submisssions from a subreddit up to a specified limit sorted by the given parameter
Sorting options: "hot", "new", "top", "rising", "controversial", "random"
Time options: "all", "year", "month", "week", "day", "hour"
Limit is any numerical value, so 0 <= limit <= 100
func (*Reddit) GetSubredditPostsAfter ¶
func (c *Reddit) GetSubredditPostsAfter(sr string, last string, limit int) ([]PostListingChild, error)
Get submisssions from a subreddit up to a specified limit sorted by the given parameters and with specified anchor
Sorting options: "hot", "new", "top", "rising", "controversial", "random"
Limit is any numerical value, so 0 <= limit <= 100
Anchor options are submissions full thing, for example: t3_bqqwm3
func (*Reddit) ListUnreadMessages ¶
func (*Reddit) MiraRequest ¶ added in v1.1.0
func (*Reddit) ReadAllMessages ¶
func (*Reddit) ReadMessage ¶
func (*Reddit) SetDefault ¶
func (c *Reddit) SetDefault()
func (*Reddit) StreamCommentReplies ¶
c is the channel with all unread messages stop is the channel to stop the stream. Do stop <- true to stop the loop
func (*Reddit) StreamNewComments ¶ added in v1.1.0
c is the channel with all comments stop is the channel to stop the stream. Do stop <- true to stop the loop
func (*Reddit) StreamNewPosts ¶
func (r *Reddit) StreamNewPosts(sr string) (<-chan PostListingChild, chan bool)
type RedditVals ¶
type RedditVals struct {
GetSubmissionFromCommentTries int
}
type Redditor ¶
type Redditor struct { Kind string `json:"kind"` Data RedditorData `json:"data"` }
func (*Redditor) GetCommentKarma ¶
func (*Redditor) GetCreated ¶
func (*Redditor) GetDescription ¶
func (*Redditor) GetLinkKarma ¶
func (*Redditor) IsEmployee ¶
type RedditorData ¶
type RedditorData struct { IsEmployee bool `json:"is_employee"` IconImg string `json:"icon_img"` PrefShowSnoovatar bool `json:"pref_show_snoovatar"` Name string `json:"name"` IsFriend bool `json:"is_friend"` Created float64 `json:"created"` HasSubscribed bool `json:"has_subscribed"` HideFromRobots bool `json:"hide_from_robots"` CreatedUtc float64 `json:"created_utc"` LinkKarma float64 `json:"link_karma"` CommentKarma float64 `json:"comment_karma"` IsGold bool `json:"is_gold"` IsMod bool `json:"is_mod"` Verified bool `json:"verified"` Subreddit Subreddit_s `json:"subreddit"` HasVerifiedEmail bool `json:"has_verified_email"` Id string `json:"id"` }
type Submission ¶
type Submission struct {
Json SubmissionJson `json:"json"`
}
func (*Submission) GetDraftsCount ¶
func (s *Submission) GetDraftsCount() float64
func (*Submission) GetId ¶
func (s *Submission) GetId() string
Get the ID of the submission in form "t3_..."
func (*Submission) GetUrl ¶
func (s *Submission) GetUrl() string
type SubmissionJson ¶
type SubmissionJson struct { Errors []string `json:"errors"` Data SubmissionJsonData `json:"data"` }
type SubmissionJsonData ¶
type Subreddit ¶
type Subreddit struct { Kind string `json:"kind"` Data SubredditData `json:"data"` }
func (Subreddit) GetCreated ¶
func (Subreddit) GetDescription ¶
func (Subreddit) GetDisplayName ¶
func (Subreddit) GetPublicDescription ¶
func (Subreddit) GetSubscribers ¶
type SubredditData ¶
type SubredditData struct { UserFlairBackgroundColor string `json:"user_flair_background_color"` SubmitTextHtml string `json:"submit_text_html"` RestrictPosting bool `json:"restrict_posting"` UserIsBanned bool `json:"user_is_banned"` FreeFormReports bool `json:"free_form_reports"` WikiEnabled string `json:"wiki_enabled"` UserIsMuted bool `json:"user_is_muted"` UserCanFlairInSr string `json:"user_can_flair_in_sr"` DisplayName string `json:"display_name"` HeaderImg string `json:"header_img"` Title string `json:"title"` IconSize []float64 `json:"icon_size"` PrimaryColor string `json:"primary_color"` ActiveUserCount float64 `json:"active_user_count"` IconImg string `json:"icon_img"` AccountsActive float64 `json:"accounts_active"` PublicTraffic bool `json:"public_traffic"` Subscribers float64 `json:"subscribers"` UserFlairRichtext string `json:"user_flair_richtext"` VideostreamLinksCount float64 `json:"videostream_links_count"` Name string `json:"name"` Quarantine bool `json:"quarantine"` HideAds bool `json:"hide_ads"` EmojisEnabled bool `json:"emojis_enabled"` AdvertiserCategory string `json:"advertiser_category"` PublicDescription string `json:"public_description"` CommentScoreHideMins float64 `json:"comment_score_hide_mins"` UserHasFavorited bool `json:"user_has_favorited"` UserFlairTemplateId string `json:"user_flair_template_id"` CommunityIcon string `json:"community_icon"` BannerBackgroundImage string `json:"banner_background_image"` OriginalContentTagEnabled bool `json:"original_content_tag_enabled"` SubmitText string `json:"submit_text"` DescriptionHtml string `json:"description_html"` SpoilersEnabled bool `json:"spoilers_enabled"` HeaderTitle string `json:"header_title"` HeaderSize string `json:"header_size"` UserFlairPosition string `json:"user_flair_position"` AllOriginalContent bool `json:"all_original_content"` HasMenuWidget bool `json:"has_menu_widget"` IsEnrolledInNewModmail bool `json:"is_enrolled_in_new_modmail"` KeyColor string `json:"key_color"` EventPostsEnabled bool `json:"event_posts_enabled"` CanAssignUserFlair bool `json:"can_assign_user_flair"` Created float64 `json:"created"` Wls string `json:"wls"` ShowMediaPreview bool `json:"show_media_preview"` SubmissionType string `json:"submission_type"` UserIsSubscriber bool `json:"user_is_subscriber"` DisableContributorRequests bool `json:"disable_contributor_requests"` AllowVideogifs bool `json:"allow_videogifs"` UserFlairType string `json:"user_flair_type"` CollapseDeletedComments bool `json:"collapse_deleted_comments"` EmojisCustomSize string `json:"emojis_custom_size"` PublicDescriptionHtml string `json:"public_description_html"` AllowVideos bool `json:"allow_videos"` NotificationLevel string `json:"notification_level"` CanAssignLinkFlair bool `json:"can_assign_link_flair"` AccountsActiveIsFuzzed bool `json:"accounts_active_is_fuzzed"` SubmitTextLabel string `json:"submit_text_label"` LinkFlairPosition string `json:"link_flair_position"` UserSrFlairEnabled bool `json:"user_sr_flair_enabled"` UserFlairEnabledInSr bool `json:"user_flair_enabled_in_sr"` AllowDiscovery bool `json:"allow_discovery"` UserSrThemeEnabled bool `json:"user_sr_theme_enabled"` LinkFlairEnabled bool `json:"link_flair_enabled"` SubredditType string `json:"subreddit_type"` SuggestedCommentSort string `json:"suggested_comment_sort"` BannerImg string `json:"banner_img"` UserFlairText string `json:"user_flair_text"` BannerBackgroundColor string `json:"banner_background_color"` ShowMedia bool `json:"show_media"` Id string `json:"id"` UserIsModerator bool `json:"user_is_moderator"` Over18 bool `json:"over18"` Description string `json:"description"` SubmitLinkLabel string `json:"submit_link_label"` UserFlairTextColor string `json:"user_flair_text_color"` RestrictCommenting bool `json:"restrict_commenting"` UserFlairCssClass string `json:"user_flair_css_class"` AllowImages bool `json:"allow_images"` Lang string `json:"lang"` WhitelistStatus string `json:"whitelist_status"` Url string `json:"url"` CreatedUtc float64 `json:"created_utc"` BannerSize []float64 `json:"banner_size"` MobileBannerImage string `json:"mobile_banner_image"` UserIsContributor bool `json:"user_is_contributor"` }
type Subreddit_s ¶
type Subreddit_s struct { DefaultSet bool `json:"default_set"` UserIsContributor bool `json:"user_is_contributor"` BannerImg string `json:"banner_img"` DisableContributorRequests bool `json:"disable_contributor_requests"` UserIsBanned bool `json:"user_is_banned"` FreeFormReports bool `json:"free_form_reports"` CommunityIcon string `json:"community_icon"` ShowMedia bool `json:"show_media"` IconColor string `json:"icon_color"` UserIsMuted bool `json:"user_is_muted"` DisplayName string `json:"display_name"` HeaderImg string `json:"header_img"` // * Title string `json:"title"` Over18 bool `json:"over_18"` IconSize []float64 `json:"icon_size"` PrimaryColor string `json:"primary_color"` IconImg string `json:"icon_img"` Description string `json:"description"` HeaderSize string `json:"header_size"` // * RestrictPosting bool `json:"restrict_posting"` RestrictCommenting bool `json:"restrict_commenting"` Subscribers float64 `json:"subscribers"` IsDefaultIcon bool `json:"is_default_icon"` LinkFlairPosition string `json:"link_flair_position"` DisplayNamePrefixed string `json:"display_name_prefixed"` KeyColor string `json:"key_color"` Name string `json:"name"` IsDefaultBanner bool `json:"is_default_banner"` Url string `json:"url"` BannerSize []float64 `json:"banner_size"` UserIsModerator bool `json:"user_is_moderator"` PublicDescription string `json:"public_description"` LinkFlairEnabled bool `json:"link_flair_enabled"` SubredditType string `json:"subreddit_type"` UserIsSubscriber bool `json:"user_is_subscriber"` }
Source Files ¶
- auth.go
- comment.go
- comment_struct.go
- commentlisting.go
- commentlisting_struct.go
- const.go
- me_struct.go
- mira.go
- post.go
- post_struct.go
- reddit.go
- reddit_struct.go
- redditor.go
- redditor_struct.go
- response.go
- response_struct.go
- streaming.go
- submission.go
- submission_struct.go
- subreddit.go
- subreddit_struct.go
- utils.go