Documentation ¶
Index ¶
- Constants
- Variables
- func CreatePostMessage(post *reddit.Link) (string, *discordgo.MessageEmbed)
- func FindFeed(feeds []*models.RedditFeed, id int64) *models.RedditFeed
- func HandleModify(w http.ResponseWriter, r *http.Request) interface{}
- func HandleNew(w http.ResponseWriter, r *http.Request) interface{}
- func HandleReddit(w http.ResponseWriter, r *http.Request) interface{}
- func HandleRemove(w http.ResponseWriter, r *http.Request) interface{}
- func MaxFeedForCtx(ctx context.Context) int
- func RegisterPlugin()
- func UserAgent() string
- type CreateForm
- type CtxKey
- type LegacySubredditWatchItem
- type Plugin
- type PostFetcher
- type PostHandler
- type PostHandlerImpl
- type RatelimitWindow
- type Ratelimiter
- type RedditIdSlice
- type UpdateForm
Constants ¶
View Source
const ( FilterNSFWNone = 0 // allow both nsfw and non nsfw content FilterNSFWIgnore = 1 // only allow non-nsfw content FilterNSFWRequire = 2 // only allow nsfw content )
View Source
const ( // Max feeds per guild GuildMaxFeedsNormal = 100 GuildMaxFeedsPremium = 1000 )
View Source
const ( MaxPostsHourFast = 300 MaxPostsHourSlow = 200 )
View Source
const DBSchema = `` /* 465-byte string literal not displayed */
Variables ¶
View Source
var ( ClientID = os.Getenv("YAGPDB_REDDIT_CLIENTID") ClientSecret = os.Getenv("YAGPDB_REDDIT_CLIENTSECRET") RedirectURI = os.Getenv("YAGPDB_REDDIT_REDIRECT") RefreshToken = os.Getenv("YAGPDB_REDDIT_REFRESHTOKEN") )
View Source
var KeyLastScannedPostIDFast = "reddit_last_post_id"
View Source
var KeyLastScannedPostIDSlow = "reddit_slow_last_post_id"
Functions ¶
func CreatePostMessage ¶ added in v1.4.1
func CreatePostMessage(post *reddit.Link) (string, *discordgo.MessageEmbed)
func FindFeed ¶ added in v1.15.1
func FindFeed(feeds []*models.RedditFeed, id int64) *models.RedditFeed
func HandleModify ¶
func HandleModify(w http.ResponseWriter, r *http.Request) interface{}
func HandleReddit ¶
func HandleReddit(w http.ResponseWriter, r *http.Request) interface{}
func HandleRemove ¶
func HandleRemove(w http.ResponseWriter, r *http.Request) interface{}
func MaxFeedForCtx ¶ added in v1.6.0
func RegisterPlugin ¶
func RegisterPlugin()
Types ¶
type CreateForm ¶ added in v1.15.1
type LegacySubredditWatchItem ¶ added in v1.15.1
type LegacySubredditWatchItem struct { Sub string `json:"sub"` Guild string `json:"guild"` Channel string `json:"channel"` ID int `json:"id"` UseEmbeds bool `json:"use_embeds"` }
func FindLegacyWatchItem ¶ added in v1.15.1
func FindLegacyWatchItem(source []*LegacySubredditWatchItem, id int) *LegacySubredditWatchItem
func GetLegacyConfig ¶ added in v1.15.1
func GetLegacyConfig(key string) ([]*LegacySubredditWatchItem, error)
func (*LegacySubredditWatchItem) Remove ¶ added in v1.15.1
func (item *LegacySubredditWatchItem) Remove() error
func (*LegacySubredditWatchItem) Set ¶ added in v1.15.1
func (item *LegacySubredditWatchItem) Set() error
type Plugin ¶
type Plugin struct {
// contains filtered or unexported fields
}
func (*Plugin) HandleMQueueError ¶
func (p *Plugin) HandleMQueueError(elem *mqueue.QueuedElement, err error)
Remove feeds if they don't point to a proper channel
func (*Plugin) RemoveGuild ¶
type PostFetcher ¶
type PostFetcher struct { Name string LastScannedPostIDKey string LastID int64 StopChan chan *sync.WaitGroup // contains filtered or unexported fields }
PostFetcher is responsible from fetching posts from reddit at a given interval and delay delay bieng it will make sure not to call the handler on posts newer than the given delay
func NewPostFetcher ¶
func NewPostFetcher(redditClient *greddit.Client, slow bool, handler PostHandler) *PostFetcher
func (*PostFetcher) GetNewPosts ¶
func (p *PostFetcher) GetNewPosts() ([]*greddit.Link, error)
func (*PostFetcher) Run ¶ added in v1.15.1
func (p *PostFetcher) Run()
type PostHandler ¶ added in v1.15.1
func NewPostHandler ¶ added in v1.15.1
func NewPostHandler(slow bool) PostHandler
type PostHandlerImpl ¶ added in v1.15.1
type PostHandlerImpl struct { Slow bool // contains filtered or unexported fields }
func (*PostHandlerImpl) FilterFeeds ¶ added in v1.15.1
func (p *PostHandlerImpl) FilterFeeds(feeds []*models.RedditFeed, post *reddit.Link) []*models.RedditFeed
func (*PostHandlerImpl) HandleRedditPosts ¶ added in v1.15.1
func (p *PostHandlerImpl) HandleRedditPosts(links []*reddit.Link)
type RatelimitWindow ¶ added in v1.13.1
type Ratelimiter ¶ added in v1.13.1
type Ratelimiter struct { Windows []*RatelimitWindow // contains filtered or unexported fields }
func NewRatelimiter ¶ added in v1.13.1
func NewRatelimiter() *Ratelimiter
func (*Ratelimiter) CheckIncrement ¶ added in v1.13.1
func (*Ratelimiter) FullGC ¶ added in v1.13.1
func (r *Ratelimiter) FullGC(t time.Time)
func (*Ratelimiter) RunGCLoop ¶ added in v1.13.1
func (r *Ratelimiter) RunGCLoop()
type RedditIdSlice ¶
type RedditIdSlice []string
func (RedditIdSlice) Len ¶
func (r RedditIdSlice) Len() int
Len is the number of elements in the collection.
func (RedditIdSlice) Less ¶
func (r RedditIdSlice) Less(i, j int) bool
Less reports whether the element with index i should sort before the element with index j.
func (RedditIdSlice) Swap ¶
func (r RedditIdSlice) Swap(i, j int)
Swap swaps the elements with indexes i and j.
Source Files ¶
Click to show internal directories.
Click to hide internal directories.