Documentation ¶
Index ¶
- Constants
- Variables
- func HandleMessageCreate(evt *eventsystem.EventData) (retry bool, err error)
- func HandleSaveStatsSettings(w http.ResponseWriter, r *http.Request) (web.TemplateData, error)
- func HandleStatsCharts(w http.ResponseWriter, r *http.Request, isPublicAccess bool) interface{}
- func HandleStatsHtml(w http.ResponseWriter, r *http.Request, isPublicAccess bool) (web.TemplateData, error)
- func HandleStatsJson(w http.ResponseWriter, r *http.Request, isPublicAccess bool) interface{}
- func MarkGuildAsToBeChecked(guildID int64)
- func RegisterPlugin()
- func RoundHour(t time.Time) time.Time
- func StartMigrationToV2Format() error
- type ChannelStats
- type ChartDataPeriod
- type ChartResponse
- type CompressedStats
- type Compressor
- type DailyStats
- type FormData
- type GuildStatsFrame
- type MigrationProgress
- type MigrationSubProgress
- type Plugin
- func (p *Plugin) AddCommands()
- func (p *Plugin) BotInit()
- func (p *Plugin) InitWeb()
- func (p *Plugin) LoadServerHomeWidget(w http.ResponseWriter, r *http.Request) (web.TemplateData, error)
- func (p *Plugin) OnNewPremiumGuild(guildID int64) error
- func (p *Plugin) PluginInfo() *common.PluginInfo
- func (p *Plugin) RunBackgroundWorker()
- func (p *Plugin) StopBackgroundWorker(wg *sync.WaitGroup)
- type QueuedAction
- type ServerStatsConfig
Constants ¶
View Source
const (
RedisKeyLastHourlyRan = "serverstats_last_hourly_worker_ran"
)
Variables ¶
View Source
var PageHTML string
View Source
var WebConfigCache = rcache.NewInt(cacheConfigFetcher, time.Minute)
View Source
var WebStatsCache = rcache.New(cacheChartFetcher, time.Minute)
Functions ¶
func HandleMessageCreate ¶
func HandleMessageCreate(evt *eventsystem.EventData) (retry bool, err error)
func HandleSaveStatsSettings ¶
func HandleSaveStatsSettings(w http.ResponseWriter, r *http.Request) (web.TemplateData, error)
func HandleStatsCharts ¶
func HandleStatsCharts(w http.ResponseWriter, r *http.Request, isPublicAccess bool) interface{}
func HandleStatsHtml ¶
func HandleStatsHtml(w http.ResponseWriter, r *http.Request, isPublicAccess bool) (web.TemplateData, error)
Somewhat dirty - should clean up this mess sometime
func HandleStatsJson ¶
func HandleStatsJson(w http.ResponseWriter, r *http.Request, isPublicAccess bool) interface{}
func MarkGuildAsToBeChecked ¶
func MarkGuildAsToBeChecked(guildID int64)
func RegisterPlugin ¶
func RegisterPlugin()
func StartMigrationToV2Format ¶
func StartMigrationToV2Format() error
Types ¶
type ChannelStats ¶
type ChartDataPeriod ¶
type ChartDataPeriod struct { T time.Time `json:"t"` Joins int `json:"joins"` Leaves int `json:"leaves"` NumMembers int `json:"num_members"` MaxOnline int `json:"max_online"` Messages int `json:"num_messages"` }
type ChartResponse ¶
type ChartResponse struct { Days int `json:"days"` Data []*ChartDataPeriod `json:"data"` }
func CacheGetCharts ¶
func CacheGetCharts(guildID int64, days int, ctx context.Context) *ChartResponse
type CompressedStats ¶
type Compressor ¶
type Compressor struct {
// contains filtered or unexported fields
}
func (*Compressor) RunCompressionLegacy ¶
func (c *Compressor) RunCompressionLegacy(t time.Time) error
type DailyStats ¶
type DailyStats struct { ChannelMessages map[string]*ChannelStats `json:"channels_messages"` JoinedDay int `json:"joined_day"` LeftDay int `json:"left_day"` Online int `json:"online_now"` TotalMembers int `json:"total_members_now"` }
func RetrieveDailyStats ¶
func RetrieveDailyStats(t time.Time, guildID int64) (*DailyStats, error)
type GuildStatsFrame ¶
type MigrationProgress ¶
type MigrationProgress struct { MsgPeriods *MigrationSubProgress MemberPeriods *MigrationSubProgress }
func GetMigrationV2Progress ¶
func GetMigrationV2Progress() (*MigrationProgress, error)
type MigrationSubProgress ¶
func (*MigrationSubProgress) IsRunning ¶
func (m *MigrationSubProgress) IsRunning() bool
type Plugin ¶
type Plugin struct {
// contains filtered or unexported fields
}
func (*Plugin) AddCommands ¶
func (p *Plugin) AddCommands()
func (*Plugin) LoadServerHomeWidget ¶
func (p *Plugin) LoadServerHomeWidget(w http.ResponseWriter, r *http.Request) (web.TemplateData, error)
func (*Plugin) OnNewPremiumGuild ¶
func (*Plugin) PluginInfo ¶
func (p *Plugin) PluginInfo() *common.PluginInfo
func (*Plugin) RunBackgroundWorker ¶
func (p *Plugin) RunBackgroundWorker()
func (*Plugin) StopBackgroundWorker ¶
type ServerStatsConfig ¶
ServerStatsConfig represents a configuration for a server reason we dont reference the model directly is because i need to figure out a way to migrate them over to the new schema, painlessly.
func BotCachedFetchGuildConfig ¶
func BotCachedFetchGuildConfig(ctx context.Context, guildID int64) (*ServerStatsConfig, error)
func GetConfigWeb ¶
func GetConfigWeb(guildID int64) *ServerStatsConfig
func (*ServerStatsConfig) ParseChannels ¶
func (s *ServerStatsConfig) ParseChannels()
Source Files ¶
Click to show internal directories.
Click to hide internal directories.