music

package
v0.0.0-...-b0744fb Latest Latest
Warning

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

Go to latest
Published: Dec 15, 2022 License: MIT Imports: 26 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GlobalPlay

func GlobalPlay(songSig chan PkgSong)

Types

type MusicCommand

type MusicCommand struct {
	SpotifyTokenMutex sync.Mutex
	SpotifyToken      string
	// contains filtered or unexported fields
}

func NewMusicCommand

func NewMusicCommand(dg *discordgo.Session, opts MusicOptions) (*MusicCommand, error)

func (*MusicCommand) CheckVC

func (mc *MusicCommand) CheckVC(i *discordgo.InteractionCreate, reply bool) *VoiceInstance

func (*MusicCommand) InstallSlashCommands

func (m *MusicCommand) InstallSlashCommands(session *discordgo.Session) error

InstallSlashCommands registers the slash commands

func (*MusicCommand) Join

func (mc *MusicCommand) Join(i *discordgo.InteractionCreate, doNotReply bool) error

func (*MusicCommand) Leave

func (*MusicCommand) OfficialSearch

func (m *MusicCommand) OfficialSearch(query string) (string, string, string, error)

func (*MusicCommand) Pause

func (*MusicCommand) Play

func (*MusicCommand) Playlist

func (mc *MusicCommand) Playlist(i *discordgo.InteractionCreate)

func (*MusicCommand) Register

func (m *MusicCommand) Register()

func (*MusicCommand) Resume

func (mc *MusicCommand) Resume(i *discordgo.InteractionCreate)

func (*MusicCommand) SearchVoiceChannel

func (m *MusicCommand) SearchVoiceChannel(user string) (voiceChannelID string)

SearchVoiceChannel search the voice channel id into from guild.

func (*MusicCommand) Skip

func (*MusicCommand) SpotifyToSearch

func (m *MusicCommand) SpotifyToSearch(id string) []string

func (*MusicCommand) UnofficialSearch

func (m *MusicCommand) UnofficialSearch(query string) (string, string, string, error)

func (*MusicCommand) Volume

func (mc *MusicCommand) Volume(i *discordgo.InteractionCreate)

func (*MusicCommand) YoutubeFind

func (m *MusicCommand) YoutubeFind(searchString, uID, chID string, v *VoiceInstance) (song_struct PkgSong, err error)

type MusicOptions

type MusicOptions struct {
	YoutubeToken string
	S3Access     string
	S3Bucket     string
	S3Secret     string
	S3Region     string
	S3Endpoint   string
}

type PkgSong

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

type Response

type Response struct {
	Href  string `json:"href"`
	Items []struct {
		AddedAt time.Time `json:"added_at"`
		AddedBy struct {
			ExternalUrls struct {
				Spotify string `json:"spotify"`
			} `json:"external_urls"`
			Href string `json:"href"`
			ID   string `json:"id"`
			Type string `json:"type"`
			URI  string `json:"uri"`
		} `json:"added_by"`
		IsLocal      bool        `json:"is_local"`
		PrimaryColor interface{} `json:"primary_color"`
		SharingInfo  struct {
			ShareID  string `json:"share_id"`
			ShareURL string `json:"share_url"`
			URI      string `json:"uri"`
		} `json:"sharing_info"`
		Track struct {
			Album struct {
				AlbumType string `json:"album_type"`
				Artists   []struct {
					ExternalUrls struct {
						Spotify string `json:"spotify"`
					} `json:"external_urls"`
					Href string `json:"href"`
					ID   string `json:"id"`
					Name string `json:"name"`
					Type string `json:"type"`
					URI  string `json:"uri"`
				} `json:"artists"`
				ExternalUrls struct {
					Spotify string `json:"spotify"`
				} `json:"external_urls"`
				Href   string `json:"href"`
				ID     string `json:"id"`
				Images []struct {
					Height int    `json:"height"`
					URL    string `json:"url"`
					Width  int    `json:"width"`
				} `json:"images"`
				Name                 string `json:"name"`
				ReleaseDate          string `json:"release_date"`
				ReleaseDatePrecision string `json:"release_date_precision"`
				TotalTracks          int    `json:"total_tracks"`
				Type                 string `json:"type"`
				URI                  string `json:"uri"`
			} `json:"album"`
			Artists []struct {
				ExternalUrls struct {
					Spotify string `json:"spotify"`
				} `json:"external_urls"`
				Href string `json:"href"`
				ID   string `json:"id"`
				Name string `json:"name"`
				Type string `json:"type"`
				URI  string `json:"uri"`
			} `json:"artists"`
			DiscNumber  int  `json:"disc_number"`
			DurationMs  int  `json:"duration_ms"`
			Episode     bool `json:"episode"`
			Explicit    bool `json:"explicit"`
			ExternalIds struct {
				Isrc string `json:"isrc"`
			} `json:"external_ids"`
			ExternalUrls struct {
				Spotify string `json:"spotify"`
			} `json:"external_urls"`
			Href        string `json:"href"`
			ID          string `json:"id"`
			IsLocal     bool   `json:"is_local"`
			IsPlayable  bool   `json:"is_playable"`
			Name        string `json:"name"`
			Popularity  int    `json:"popularity"`
			PreviewURL  string `json:"preview_url"`
			Track       bool   `json:"track"`
			TrackNumber int    `json:"track_number"`
			Type        string `json:"type"`
			URI         string `json:"uri"`
		} `json:"track"`
		VideoThumbnail struct {
			URL interface{} `json:"url"`
		} `json:"video_thumbnail"`
	} `json:"items"`
}

type S3

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

func NewS3

func NewS3(endpoint, region, bucket, access, secret string) (*S3, error)

func (*S3) Get

func (s *S3) Get(file string) (io.ReadCloser, error)

func (*S3) Put

func (s *S3) Put(file string, data io.ReadSeeker) error

type Song

type Song struct {
	ChannelID string
	User      string
	ID        string
	VidID     string
	Title     string
	Duration  string
}

type TimeDuration

type TimeDuration struct {
	Day    int
	Hour   int
	Minute int
	Second int
}

func AddTimeDuration

func AddTimeDuration(t TimeDuration) (total TimeDuration)

AddTimeDuration calculate the total time duration

type VoiceInstance

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

func NewVoiceInstance

func NewVoiceInstance(birtate int, opts MusicOptions) *VoiceInstance

func (*VoiceInstance) DCA

func (v *VoiceInstance) DCA(name string)

DCA

func (*VoiceInstance) Pause

func (v *VoiceInstance) Pause()

Pause pause the audio

func (*VoiceInstance) PlayQueue

func (v *VoiceInstance) PlayQueue(song Song)

func (*VoiceInstance) QueueAdd

func (v *VoiceInstance) QueueAdd(song Song)

QueueAdd

func (*VoiceInstance) QueueClean

func (v *VoiceInstance) QueueClean()

QueueClean

func (*VoiceInstance) QueueGetSong

func (v *VoiceInstance) QueueGetSong() (song Song)

QueueGetSong

func (*VoiceInstance) QueueRemove

func (v *VoiceInstance) QueueRemove()

QueueRemove

func (*VoiceInstance) QueueRemoveFisrt

func (v *VoiceInstance) QueueRemoveFisrt()

QueueRemoveFirst

func (*VoiceInstance) QueueRemoveIndex

func (v *VoiceInstance) QueueRemoveIndex(k int)

QueueRemoveIndex

func (*VoiceInstance) QueueRemoveLast

func (v *VoiceInstance) QueueRemoveLast()

QueueRemoveLast

func (*VoiceInstance) QueueRemoveUser

func (v *VoiceInstance) QueueRemoveUser(user string)

QueueRemoveUser

func (*VoiceInstance) Resume

func (v *VoiceInstance) Resume()

Resume resume the audio

func (*VoiceInstance) SetVolume

func (v *VoiceInstance) SetVolume(vl int)

func (*VoiceInstance) Skip

func (v *VoiceInstance) Skip() bool

func (*VoiceInstance) Stop

func (v *VoiceInstance) Stop()

Stop stop the audio

type YTReply

type YTReply struct {
	Results []struct {
		Channel struct {
			ID              string `json:"id"`
			Title           string `json:"title"`
			URL             string `json:"url"`
			Snippet         string `json:"snippet"`
			ThumbnailSrc    string `json:"thumbnail_src"`
			VideoCount      string `json:"video_count"`
			SubscriberCount string `json:"subscriber_count"`
			Verified        bool   `json:"verified"`
		} `json:"channel,omitempty"`
		Video struct {
			ID           string `json:"id"`
			Title        string `json:"title"`
			URL          string `json:"url"`
			Duration     string `json:"duration"`
			Snippet      string `json:"snippet"`
			UploadDate   string `json:"upload_date"`
			ThumbnailSrc string `json:"thumbnail_src"`
			Views        string `json:"views"`
		} `json:"video,omitempty"`
		Uploader struct {
			Username string `json:"username"`
			URL      string `json:"url"`
			Verified bool   `json:"verified"`
		} `json:"uploader,omitempty"`
		Playlist struct {
			ID           string `json:"id"`
			Title        string `json:"title"`
			URL          string `json:"url"`
			ThumbnailSrc string `json:"thumbnail_src"`
			VideoCount   string `json:"video_count"`
		} `json:"playlist,omitempty"`
	} `json:"results"`
	Version          string `json:"version"`
	Parser           string `json:"parser"`
	Key              string `json:"key"`
	EstimatedResults string `json:"estimatedResults"`
	NextPageToken    string `json:"nextPageToken"`
}

Jump to

Keyboard shortcuts

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