chatmanager

package
v0.0.0-...-e9c30ff Latest Latest
Warning

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

Go to latest
Published: Apr 20, 2024 License: Apache-2.0 Imports: 28 Imported by: 0

Documentation

Index

Constants

View Source
const MessageAttachmentTypeTenorGif = "tenorgif"

MessageAttachmentTypeTenorGif is the identifier for attachments of the Tenor GIF type

Variables

This section is empty.

Functions

This section is empty.

Types

type DisabledReason

type DisabledReason int

DisabledReason specifies the reason why chat is disabled

const (
	DisabledReasonUnspecified DisabledReason = iota
	DisabledReasonModeratorNotPresent
)

func (DisabledReason) SerializeForAPI

func (r DisabledReason) SerializeForAPI() proto.ChatDisabledReason

type GifSearchResult

type GifSearchResult struct {
	ID                 string
	Title              string
	PreviewURL         string
	PreviewFallbackURL string
	Width              int
	Height             int
	PointsCost         int
}

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

Manager handles the chat system

func New

func New(log *log.Logger, statsClient *statsd.Client,
	store chat.Store, moderationStore moderation.Store, blockStore blockeduser.Store,
	userSerializer auth.APIUserSerializer, pointsManager *pointsmanager.Manager, snowflakeNode *snowflake.Node,
	tenorAPIkey string) (*Manager, error)

New returns an initialized chat Manager

func (*Manager) BlockUser

func (c *Manager) BlockUser(ctx context.Context, userToBlock, blockedBy auth.User) error

func (*Manager) ChatEmotes

func (c *Manager) ChatEmotes(ctx context.Context) ([]*types.ChatEmote, error)

func (*Manager) CreateMessage

func (c *Manager) CreateMessage(ctx context.Context, author auth.User, content string, reference *chat.Message, attachments []chat.MessageAttachmentStorage) (*chat.Message, error)

func (*Manager) CreateSystemMessage

func (c *Manager) CreateSystemMessage(ctx context.Context, content string) (*chat.Message, error)

func (*Manager) DeleteMessage

func (c *Manager) DeleteMessage(ctx context.Context, id snowflake.ID) (*chat.Message, error)

func (*Manager) DisableChat

func (c *Manager) DisableChat(reason DisabledReason)

func (*Manager) EnableChat

func (c *Manager) EnableChat()

func (*Manager) Enabled

func (c *Manager) Enabled() (bool, DisabledReason)

func (*Manager) GetNickname

func (c *Manager) GetNickname(ctxCtx context.Context, user auth.User) *string

func (*Manager) GifSearch

func (c *Manager) GifSearch(ctx context.Context, user auth.User, query string, pos string) ([]*GifSearchResult, string, error)

func (*Manager) IsUserConnected

func (c *Manager) IsUserConnected(user auth.User) bool

func (*Manager) LoadMessage

func (c *Manager) LoadMessage(ctx context.Context, id snowflake.ID) (*chat.Message, error)

func (*Manager) LoadMessagesBetween

func (c *Manager) LoadMessagesBetween(ctx context.Context, includeShadowbanned auth.User, since, until time.Time) ([]*chat.Message, error)

func (*Manager) LoadNumLatestMessages

func (c *Manager) LoadNumLatestMessages(ctx context.Context, includeShadowbanned auth.User, num int) ([]*chat.Message, []*proto.ChatMessage, error)

func (*Manager) LoadNumLatestMessagesFromUser

func (c *Manager) LoadNumLatestMessagesFromUser(ctx context.Context, user auth.User, num int) ([]*chat.Message, []*proto.ChatMessage, error)

func (*Manager) LoadUsersBlockedBy

func (c *Manager) LoadUsersBlockedBy(ctx context.Context, blockedBy auth.User) ([]string, error)

func (*Manager) OnChatDisabled

func (c *Manager) OnChatDisabled() event.Event[DisabledReason]

OnChatDisabled returns an event that is fired when chat is disabled

func (*Manager) OnChatEnabled

func (c *Manager) OnChatEnabled() event.NoArgEvent

OnChatEnabled returns an event that is fired when chat is enabled

func (*Manager) OnMessageCreated

func (c *Manager) OnMessageCreated() event.Event[MessageCreatedEventArgs]

OnMessageCreated returns an event that is fired when a new chat message is created

func (*Manager) OnMessageDeleted

func (c *Manager) OnMessageDeleted() event.Event[snowflake.ID]

OnMessageDeleted returns an event that is fired when a chat message is deleted

func (*Manager) OnUserBlockedBy

func (c *Manager) OnUserBlockedBy() event.Keyed[string, string]

OnUserBlockedBy returns a keyed event whose key is the reward address of an user and is fired when that user blocks another user The blocked user will be sent as the event argument

func (*Manager) OnUserChangedNickname

func (c *Manager) OnUserChangedNickname() event.Keyed[string, string]

OnUserChangedNickname returns a keyed event whose key is the reward address of the user that changed nickname The new nickname will be sent as the event argument

func (*Manager) OnUserUnblockedBy

func (c *Manager) OnUserUnblockedBy() event.Keyed[string, string]

OnUserUnblockedBy returns a keyed event whose key is the reward address of an user and is fired when that user unblocks another user The unblocked user will be sent as the event argument

func (*Manager) RegisterUserConnection

func (c *Manager) RegisterUserConnection(user auth.User) func()

func (*Manager) SetAttachmentLoaderForType

func (c *Manager) SetAttachmentLoaderForType(attachmentType string, loader chat.AttachmentLoader)

func (*Manager) SetNickname

func (c *Manager) SetNickname(ctxCtx context.Context, user auth.User, nickname *string, bypassRatelimit bool) error

func (*Manager) SetSlowModeEnabled

func (c *Manager) SetSlowModeEnabled(enabled bool)

func (*Manager) SlowModeEnabled

func (c *Manager) SlowModeEnabled() bool

func (*Manager) TenorGifAttachmentCostForUser

func (c *Manager) TenorGifAttachmentCostForUser(ctx context.Context, user auth.User) (int, error)

func (*Manager) UnblockUser

func (c *Manager) UnblockUser(ctx context.Context, blockID string, blockedBy auth.User) error

func (*Manager) UnblockUserByAddress

func (c *Manager) UnblockUserByAddress(ctx context.Context, address string, blockedBy auth.User) error

type MessageAttachmentTenorGifStorage

type MessageAttachmentTenorGifStorage struct {
	ID   string
	Cost int
}

MessageAttachmentTenorGifStorage is the storage model for a Tenor GIF attachment. Implements MessageAttachmentStorageWithCost

func (MessageAttachmentTenorGifStorage) AttachmentType

func (a MessageAttachmentTenorGifStorage) AttachmentType() string

func (*MessageAttachmentTenorGifStorage) PointsCost

func (a *MessageAttachmentTenorGifStorage) PointsCost() int

func (*MessageAttachmentTenorGifStorage) PointsTxType

func (*MessageAttachmentTenorGifStorage) SerializeForDatabase

func (a *MessageAttachmentTenorGifStorage) SerializeForDatabase(context.Context) string

type MessageAttachmentTenorGifView

type MessageAttachmentTenorGifView struct {
	ID               string
	VideoURL         string
	VideoFallbackURL string
	Title            string
	Width            int
	Height           int
}

MessageAttachmentTenorGifView is the view model for a Tenor GIF attachment. Implements MessageAttachmentView

func (*MessageAttachmentTenorGifView) SerializeForAPI

func (*MessageAttachmentTenorGifView) SerializeForJS

func (a *MessageAttachmentTenorGifView) SerializeForJS(context.Context, *goja.Runtime) map[string]interface{}

func (*MessageAttachmentTenorGifView) SerializeForModLog

func (a *MessageAttachmentTenorGifView) SerializeForModLog(context.Context) string

type MessageCreatedEventArgs

type MessageCreatedEventArgs struct {
	Message                *chat.Message
	ProtobufRepresentation *proto.ChatMessage
}

MessageCreatedEventArgs contains the values for the MessageCreated event

Directories

Path Synopsis
Package tenorclient provides primitives to interact with the openapi HTTP API.
Package tenorclient provides primitives to interact with the openapi HTTP API.

Jump to

Keyboard shortcuts

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