Help us shape the future of Go! Take the 2026 Go Developer Survey

streaming

package
v1.7.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 11, 2018 License: MIT Imports: 20 Imported by: 0

README

Streaming

Extends the built-in streaming status in discord with some extra utility features.

Redis layout:

Key Type Value
streaming_config:{{guildID}} Json encoded string The config for this server
currenly_streaming:{{guildID}} Set of user ID's Holds all the people yagpdb has currenly found streaming in this guild

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultConfig = &Config{
	Enabled:         false,
	AnnounceMessage: "OH WOWIE! **{{.User.Username}}** is currently streaming! Check it out: {{.URL}}",
}

Functions

func CheckGuildFull added in v1.4.1

func CheckGuildFull(gs *dstate.GuildState, fetchMembers bool)

func CheckPresence

func CheckPresence(client radix.Client, config *Config, ms *dstate.MemberState, gs *dstate.GuildState) error

func DisableStreamingRole added in v1.4.12

func DisableStreamingRole(guildID int64)

func GiveStreamingRole

func GiveStreamingRole(ms *dstate.MemberState, role int64, guild *discordgo.Guild)

func HandleGuildCreate

func HandleGuildCreate(evt *eventsystem.EventData)

func HandleGuildMemberUpdate

func HandleGuildMemberUpdate(evt *eventsystem.EventData)

func HandlePostStreaming

func HandlePostStreaming(w http.ResponseWriter, r *http.Request) interface{}

func HandlePresenceUpdate

func HandlePresenceUpdate(evt *eventsystem.EventData)

func HandleUpdateStreaming

func HandleUpdateStreaming(event *pubsub.Event)

YAGPDB event

func KeyCurrentlyStreaming

func KeyCurrentlyStreaming(gID int64) string

func RegisterPlugin

func RegisterPlugin()

func RemoveStreaming

func RemoveStreaming(client radix.Client, config *Config, guildID int64, ms *dstate.MemberState)

func RemoveStreamingRole

func RemoveStreamingRole(ms *dstate.MemberState, role int64, guildID int64)

func SendStreamingAnnouncement

func SendStreamingAnnouncement(config *Config, guild *dstate.GuildState, ms *dstate.MemberState)

Types

type CacheKey added in v1.7.4

type CacheKey int
const (
	CacheKeyConfig CacheKey = iota
)

type ConextKey

type ConextKey int
const (
	ConextKeyConfig ConextKey = iota
)

type Config

type Config struct {
	Enabled bool `json:"enabled" schema:"enabled"` // Wether streaming notifications is enabled or not

	// Give a role to people streaming
	GiveRole int64 `json:"give_role,string" schema:"give_role" valid:"role,true"`
	// Ignores people with this role, requirerole is ignored if this is set
	IgnoreRole int64 `json:"ban_role,string" schema:"ignore_role" valid:"role,true"`
	// Requires people to have this role
	RequireRole int64 `json:"require_role,string" schema:"require_role" valid:"role,true"`

	// Channel to send streaming announcements in
	AnnounceChannel int64 `json:"announce_channel,string" schema:"announce_channel" valid:"channel,true"`
	// The message
	AnnounceMessage string `json:"announce_message" schema:"announce_message" valid:"template,2000"`

	// Match the game name or title against these to filter users out
	GameRegex  string `json:"game_regex" schema:"game_regex" valid:"regex,2000"`
	TitleRegex string `json:"title_regex" schema:"title_regex" valid:"regex,2000"`
}

func BotCachedGetConfig added in v1.7.4

func BotCachedGetConfig(gs *dstate.GuildState) (*Config, error)

func GetConfig

func GetConfig(guildID int64) (*Config, error)

Returns he guild's conifg, or the defaul one if not set

func (*Config) MeetsRequirements added in v1.4.1

func (config *Config) MeetsRequirements(ms *dstate.MemberState) bool

func (*Config) Save

func (c *Config) Save(guildID int64) error

func (*Config) UnmarshalJSON

func (c *Config) UnmarshalJSON(b []byte) error

type LegacyConfig

type LegacyConfig struct {
	Enabled bool `json:"enabled" schema:"enabled"` // Wether streaming notifications is enabled or not

	// Give a role to people streaming
	GiveRole string `json:"give_role" schema:"give_role" valid:"role,true"`
	// Ignores people with this role, requirerole is ignored if this is set
	IgnoreRole string `json:"ban_role" schema:"ignore_role" valid:"role,true"`
	// Requires people to have this role
	RequireRole string `json:"require_role" schema:"require_role" valid:"role,true"`

	// Channel to send streaming announcements in
	AnnounceChannel string `json:"announce_channel" schema:"announce_channel" valid:"channel,true"`
	// The message
	AnnounceMessage string `json:"announce_message" schema:"announce_message" valid:"template,2000"`

	// Match the game name or title against these to filter users out
	GameRegex  string `json:"game_regex" schema:"game_regex" valid:"regex,2000"`
	TitleRegex string `json:"title_regex" schema:"title_regex" valid:"regex,2000"`
}

type Plugin

type Plugin struct{}

func (*Plugin) BotInit added in v1.4.1

func (p *Plugin) BotInit()

func (*Plugin) GuildMigrated added in v1.4.1

func (p *Plugin) GuildMigrated(gs *dstate.GuildState, toThisSlave bool)

func (*Plugin) InitWeb

func (p *Plugin) InitWeb()

func (*Plugin) Name

func (p *Plugin) Name() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL