discord

package
v1.0.5 Latest Latest
Warning

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

Go to latest
Published: May 23, 2024 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ErrorMessageNotInVoiceChannel = "No estas en un canal de voz down. Tenes que unirte a uno para reproducir musica loco"
	ErrorMessageFailedToAddSong   = "No se pudo agregar la cancion kkkk"
)

Variables

This section is empty.

Functions

func GenerateAddedSongEmbed

func GenerateAddedSongEmbed(song *voice.Song, member *discordgo.Member) *discordgo.MessageEmbed

func GenerateAddingSongEmbed

func GenerateAddingSongEmbed(input string, member *discordgo.Member) *discordgo.MessageEmbed

func GenerateAskAddPlaylistEmbed

func GenerateAskAddPlaylistEmbed(songs []*voice.Song, requestor *discordgo.Member) *discordgo.MessageEmbed

func GenerateFailedToAddSongEmbed

func GenerateFailedToAddSongEmbed(input string, member *discordgo.Member) *discordgo.MessageEmbed

func GenerateFailedToFindSong

func GenerateFailedToFindSong(input string, member *discordgo.Member) *discordgo.MessageEmbed

Types

type DiscordResponseHandler

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

DiscordResponseHandler implementa la interfaz ResponseHandler para manejar respuestas a interacciones de Discord.

func NewDiscordResponseHandler

func NewDiscordResponseHandler(logger *zap.Logger) *DiscordResponseHandler

NewDiscordResponseHandler crea una nueva instancia de DiscordResponseHandler.

func (*DiscordResponseHandler) CreateFollowupMessage

func (h *DiscordResponseHandler) CreateFollowupMessage(session SessionService, interaction *discordgo.Interaction, params discordgo.WebhookParams) error

CreateFollowupMessage crea un mensaje de seguimiento para una interacción de Discord.

func (*DiscordResponseHandler) Respond

Respond responde a una interacción de Discord con la respuesta proporcionada.

func (*DiscordResponseHandler) RespondWithMessage

func (h *DiscordResponseHandler) RespondWithMessage(session SessionService, interaction *discordgo.Interaction, message string) error

RespondWithMessage responde a una interacción de Discord con un mensaje de texto.

type DiscordSessionService

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

DiscordSessionService es una implementación real de SessionService que envuelve discordgo.Session.

func NewSessionService

func NewSessionService(session *discordgo.Session) *DiscordSessionService

func (*DiscordSessionService) FollowupMessageCreate

func (s *DiscordSessionService) FollowupMessageCreate(i *discordgo.Interaction, wait bool, params *discordgo.WebhookParams) (*discordgo.Message, error)

func (*DiscordSessionService) InteractionRespond

type GuildID

type GuildID string

GuildID representa el ID de un servidor de Discord.

type InMemoryInteractionStorage

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

InMemoryInteractionStorage es una estructura de almacenamiento en memoria para interacciones.

func NewInMemoryStorage

func NewInMemoryStorage() *InMemoryInteractionStorage

NewInMemoryStorage crea una nueva instancia de InMemoryInteractionStorage con un mapa inicializado.

func (*InMemoryInteractionStorage) DeleteSongList

func (s *InMemoryInteractionStorage) DeleteSongList(channelID string)

DeleteSongList elimina la lista de canciones asociada al canal identificado por channelID.

func (*InMemoryInteractionStorage) GetSongList

func (s *InMemoryInteractionStorage) GetSongList(channelID string) []*voice.Song

GetSongList retorna la lista de canciones asociada al canal identificado por channelID.

func (*InMemoryInteractionStorage) SaveSongList

func (s *InMemoryInteractionStorage) SaveSongList(channelID string, list []*voice.Song)

SaveSongList guarda una lista de canciones en el canal identificado por channelID.

type InteractionHandler

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

InteractionHandler maneja las interacciones de Discord.

func NewInteractionHandler

func NewInteractionHandler(ctx context.Context, discordToken string, responseHandler ResponseHandler, session SessionService, songLookuper SongLookuper, storage InteractionStorage, cfg *config.Config) *InteractionHandler

NewInteractionHandler crea una nueva instancia de InteractionHandler.

func (*InteractionHandler) AddSongOrPlaylist

func (handler *InteractionHandler) AddSongOrPlaylist(s *discordgo.Session, ic *discordgo.InteractionCreate)

AddSongOrPlaylist maneja la adición de una canción o lista de reproducción.

func (*InteractionHandler) CheckVoiceChannelsPresence

func (handler *InteractionHandler) CheckVoiceChannelsPresence()

CheckVoiceChannelsPresence verifica la presencia de usuarios en los canales de voz y desconecta al bot si no hay usuarios presentes.

func (*InteractionHandler) GetPlayingSong

GetPlayingSong obtiene la canción que se está reproduciendo actualmente.

func (*InteractionHandler) GuildCreate

func (handler *InteractionHandler) GuildCreate(s *discordgo.Session, event *discordgo.GuildCreate)

GuildCreate se llama cuando el bot se une a un nuevo servidor.

func (*InteractionHandler) GuildDelete

func (handler *InteractionHandler) GuildDelete(s *discordgo.Session, event *discordgo.GuildDelete)

GuildDelete se llama cuando el bot es removido de un servidor.

func (*InteractionHandler) ListPlaylist

ListPlaylist lista las canciones en la lista de reproducción actual.

func (*InteractionHandler) PlaySong

PlaySong maneja el comando de reproducción de una canción.

func (*InteractionHandler) Ready

func (handler *InteractionHandler) Ready(s *discordgo.Session, event *discordgo.Ready)

Ready se llama cuando el bot está listo para recibir interacciones.

func (*InteractionHandler) RegisterEventHandlers

func (handler *InteractionHandler) RegisterEventHandlers(s *discordgo.Session)

RegisterEventHandlers registra los manejadores de eventos en la sesión de Discord.

func (*InteractionHandler) RemoveSong

RemoveSong elimina una canción de la lista de reproducción.

func (*InteractionHandler) SkipSong

SkipSong salta la canción actualmente en reproducción.

func (*InteractionHandler) StopPlaying

StopPlaying detiene la reproducción de música.

func (*InteractionHandler) WithLogger

func (handler *InteractionHandler) WithLogger(l *zap.Logger) *InteractionHandler

WithLogger establece el logger para InteractionHandler.

type InteractionStorage

type InteractionStorage interface {
	SaveSongList(channelID string, list []*voice.Song)
	GetSongList(channelID string) []*voice.Song
	DeleteSongList(channelID string)
}

InteractionStorage define la interfaz para el almacenamiento de interacciones.

type ResponseHandler

type ResponseHandler interface {
	Respond(session SessionService, interaction *discordgo.Interaction, response discordgo.InteractionResponse) error
	RespondWithMessage(session SessionService, interaction *discordgo.Interaction, message string) error
	CreateFollowupMessage(session SessionService, interaction *discordgo.Interaction, params discordgo.WebhookParams) error
}

ResponseHandler define la interfaz para manejar respuestas a interacciones de Discord.

type SessionService

type SessionService interface {
	InteractionRespond(i *discordgo.Interaction, r *discordgo.InteractionResponse) error
	FollowupMessageCreate(i *discordgo.Interaction, wait bool, params *discordgo.WebhookParams) (*discordgo.Message, error)
}

SessionService define la interfaz para los métodos de discordgo.Session que necesitamos.

type SlashCommandRouter

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

SlashCommandRouter enruta los comandos de barra oblicua en Discord.

func NewSlashCommandRouter

func NewSlashCommandRouter(commandPrefix string) *SlashCommandRouter

NewSlashCommandRouter crea una nueva instancia de SlashCommandRouter con el prefijo de comando especificado.

func (*SlashCommandRouter) AddSongOrPlaylistHandler

func (ch *SlashCommandRouter) AddSongOrPlaylistHandler(h func(*discordgo.Session, *discordgo.InteractionCreate)) *SlashCommandRouter

AddSongOrPlaylistHandler establece el manejador para el comando "add_song_playlist".

func (*SlashCommandRouter) GetCommandHandlers

func (ch *SlashCommandRouter) GetCommandHandlers() map[string]func(*discordgo.Session, *discordgo.InteractionCreate)

GetCommandHandlers devuelve los manejadores de los comandos de barra oblicua.

func (*SlashCommandRouter) GetComponentHandlers

func (ch *SlashCommandRouter) GetComponentHandlers() map[string]func(*discordgo.Session, *discordgo.InteractionCreate)

GetComponentHandlers devuelve los manejadores de los componentes.

func (*SlashCommandRouter) GetSlashCommands

func (ch *SlashCommandRouter) GetSlashCommands() []*discordgo.ApplicationCommand

GetSlashCommands devuelve los comandos de barra oblicua.

func (*SlashCommandRouter) ListHandler

ListHandler establece el manejador para el comando "list".

func (*SlashCommandRouter) PlayHandler

PlayHandler establece el manejador para el comando "play".

func (*SlashCommandRouter) PlayingNowHandler

PlayingNowHandler establece el manejador para el comando "playing".

func (*SlashCommandRouter) RemoveHandler

RemoveHandler establece el manejador para el comando "remove".

func (*SlashCommandRouter) SkipHandler

SkipHandler establece el manejador para el comando "skip".

func (*SlashCommandRouter) StopHandler

StopHandler establece el manejador para el comando "stop".

type SongLookuper

type SongLookuper interface {
	LookupSongs(ctx context.Context, input string) ([]*voice.Song, error)
}

SongLookuper define la interfaz para buscar canciones.

Directories

Path Synopsis
bot

Jump to

Keyboard shortcuts

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