SYMBOL INDEX (200 symbols across 28 files) FILE: src/commands/base.ts method constructor (line 10) | constructor(commandManager?: any) { method sendError (line 15) | protected async sendError(message: any, error: string): Promise { method sendSuccess (line 19) | protected async sendSuccess(message: any, description: string): Promise<... method sendInfo (line 23) | protected async sendInfo(message: any, title: string, description: strin... method sendList (line 27) | protected async sendList(message: any, items: string[], type?: string): ... method sendPlaying (line 31) | protected async sendPlaying(message: any, title: string): Promise { method sendFinishMessage (line 35) | protected async sendFinishMessage(message: any): Promise { FILE: src/commands/config.ts class ConfigCommand (line 6) | class ConfigCommand extends BaseCommand { method execute (line 12) | async execute(context: CommandContext): Promise { method showConfig (line 40) | private async showConfig(context: CommandContext): Promise { method showParameter (line 70) | private async showParameter(context: CommandContext, parameter: string... method setParameter (line 83) | private async setParameter(context: CommandContext, parameter: string,... method isAdmin (line 174) | private isAdmin(userId: string): boolean { FILE: src/commands/help.ts class HelpCommand (line 5) | class HelpCommand extends BaseCommand { method constructor (line 10) | constructor(private commandManager: CommandManager) { method execute (line 14) | async execute(context: CommandContext): Promise { FILE: src/commands/list.ts class ListCommand (line 7) | class ListCommand extends BaseCommand { method execute (line 12) | async execute(context: CommandContext): Promise { FILE: src/commands/manager.ts class CommandManager (line 8) | class CommandManager { method constructor (line 12) | constructor() { method loadCommands (line 16) | private async loadCommands(): Promise { method isCommand (line 71) | private isCommand(obj: any): obj is new (commandManager?: CommandManag... method getCommand (line 81) | public getCommand(name: string): Command | null { method getAllCommands (line 86) | public getAllCommands(): Command[] { method executeCommand (line 90) | public async executeCommand(commandName: string, context: CommandConte... method getCommandList (line 106) | public getCommandList(): string { FILE: src/commands/ping.ts class PingCommand (line 4) | class PingCommand extends BaseCommand { method execute (line 9) | async execute(context: CommandContext): Promise { FILE: src/commands/play.ts class PlayCommand (line 9) | class PlayCommand extends BaseCommand { method constructor (line 16) | constructor() { method execute (line 21) | async execute(context: CommandContext): Promise { method handleLocalVideo (line 55) | private async handleLocalVideo(context: CommandContext, video: any): P... method handleUrl (line 67) | private async handleUrl(context: CommandContext, url: string): Promise... method handleSearchQuery (line 83) | private async handleSearchQuery(context: CommandContext, query: string... FILE: src/commands/preview.ts class PreviewCommand (line 8) | class PreviewCommand extends BaseCommand { method execute (line 13) | async execute(context: CommandContext): Promise { FILE: src/commands/queue.ts class QueueCommand (line 4) | class QueueCommand extends BaseCommand { method execute (line 9) | async execute(context: CommandContext): Promise { FILE: src/commands/skip.ts class SkipCommand (line 4) | class SkipCommand extends BaseCommand { method execute (line 10) | async execute(context: CommandContext): Promise { FILE: src/commands/status.ts class StatusCommand (line 4) | class StatusCommand extends BaseCommand { method execute (line 9) | async execute(context: CommandContext): Promise { FILE: src/commands/stop.ts class StopCommand (line 5) | class StopCommand extends BaseCommand { method execute (line 11) | async execute(context: CommandContext): Promise { FILE: src/commands/ytsearch.ts class YTSearchCommand (line 5) | class YTSearchCommand extends BaseCommand { method constructor (line 12) | constructor() { method execute (line 17) | async execute(context: CommandContext): Promise { FILE: src/config.ts constant VALID_VIDEO_CODECS (line 5) | const VALID_VIDEO_CODECS = ['VP8', 'H264', 'H265', 'VP9', 'AV1']; function parseVideoCodec (line 7) | function parseVideoCodec(value: string): "VP8" | "H264" | "H265" { function parsePreset (line 17) | function parsePreset(value: string): "ultrafast" | "superfast" | "veryfa... function parseBoolean (line 37) | function parseBoolean(value: string | undefined): boolean { function parseAdminIds (line 49) | function parseAdminIds(value: string): string[] { FILE: src/events/client/ready.ts function handleReady (line 5) | async function handleReady(client: Client): Promise { FILE: src/events/messageCreate.ts function handleMessageCreate (line 6) | async function handleMessageCreate( FILE: src/events/voiceStateUpdate.ts function handleVoiceStateUpdate (line 6) | async function handleVoiceStateUpdate( FILE: src/server/middleware/multer.ts type MulterFile (line 6) | interface MulterFile extends Express.Multer.File { FILE: src/server/public/js/main.js function setTheme (line 5) | function setTheme(isDark) { class ToastManager (line 22) | class ToastManager { method constructor (line 23) | constructor() { method init (line 32) | init() { method getIcon (line 50) | getIcon(type) { method getAriaRole (line 60) | getAriaRole(type) { method createToast (line 64) | createToast(message, type = 'info', title = '', duration = null) { method removeToast (line 130) | removeToast(toastId) { method manageQueue (line 153) | manageQueue() { method processQueue (line 163) | processQueue() { method success (line 172) | success(message, title = 'Success', duration = null) { method error (line 176) | error(message, title = 'Error', duration = null) { method warning (line 180) | warning(message, title = 'Warning', duration = null) { method info (line 184) | info(message, title = 'Info', duration = null) { function showToast (line 193) | function showToast(message, type = 'info', title = '', duration = null) { function showSuccessToast (line 198) | function showSuccessToast(message, title = 'Success', duration = null) { function showErrorToast (line 202) | function showErrorToast(message, title = 'Error', duration = null) { function showWarningToast (line 206) | function showWarningToast(message, title = 'Warning', duration = null) { function showInfoToast (line 210) | function showInfoToast(message, title = 'Info', duration = null) { function copyFileName (line 214) | function copyFileName(name) { function fallbackCopyTextToClipboard (line 228) | async function fallbackCopyTextToClipboard(text) { function initLazyLoading (line 268) | function initLazyLoading() { function initFormLoadingStates (line 296) | function initFormLoadingStates() { function showGlobalLoading (line 325) | function showGlobalLoading(message = 'Loading...') { function hideGlobalLoading (line 338) | function hideGlobalLoading() { function updateProgress (line 349) | function updateProgress(percentage) { function validateVideoFile (line 357) | function validateVideoFile(file) { function showDeleteModal (line 418) | function showDeleteModal(fileName, deleteUrl) { function handleDeleteSuccess (line 443) | function handleDeleteSuccess() { function startLocalUpload (line 460) | function startLocalUpload() { function cancelLocalUpload (line 528) | function cancelLocalUpload() { function resetLocalUpload (line 540) | function resetLocalUpload() { function startRemoteUpload (line 561) | function startRemoteUpload() { function cancelRemoteUpload (line 638) | function cancelRemoteUpload() { function resetRemoteUpload (line 649) | function resetRemoteUpload() { function formatFileSize (line 670) | function formatFileSize(bytes) { class PreviewImageManager (line 679) | class PreviewImageManager { method constructor (line 680) | constructor() { method init (line 684) | init() { method setupImageLoading (line 689) | setupImageLoading() { method setupLazyLoading (line 721) | setupLazyLoading() { method showLoadingState (line 754) | showLoadingState(container) { method showImageState (line 766) | showImageState(container) { method showErrorState (line 778) | showErrorState(container) { method retryLoad (line 790) | retryLoad(container) { class FaviconManager (line 814) | class FaviconManager { method constructor (line 815) | constructor() { method init (line 821) | init() { method updateFavicon (line 827) | updateFavicon() { method setupThemeListener (line 838) | setupThemeListener() { method setupLoadingListener (line 854) | setupLoadingListener() { method showLoading (line 876) | showLoading() { method hideLoading (line 880) | hideLoading() { FILE: src/server/utils/helpers.ts function stringify (line 2) | function stringify(obj: any): string { function prettySize (line 24) | function prettySize(bytes: number): string { FILE: src/services/media.ts class MediaService (line 11) | class MediaService { method constructor (line 14) | constructor() { method resolveMediaSource (line 18) | public async resolveMediaSource(url: string): Promise { method downloadYouTubeVideo (line 85) | public async downloadYouTubeVideo(url: string): Promise { method _resolveTwitchSource (line 101) | private async _resolveTwitchSource(url: string): Promise { method skipCurrent (line 90) | public async skipCurrent(message: Message): Promise { method playVideoFromQueueItem (line 138) | private async playVideoFromQueueItem(message: Message, queueItem: Queu... method getVideoParameters (line 155) | private async getVideoParameters(videoUrl: string): Promise<{ width: n... method ensureVoiceConnection (line 177) | private async ensureVoiceConnection(guildId: string, channelId: string... method setupStreamConfiguration (line 199) | private setupStreamConfiguration(videoParams?: { width: number, height... method executeStream (line 239) | private async executeStream(inputForFfmpeg: any, streamOpts: any, mess... method handleQueueAdvancement (line 278) | private async handleQueueAdvancement(message: Message): Promise { method handleDownload (line 305) | private async handleDownload(message: Message, videoSource: string, ti... method prepareVideoSource (line 335) | private async prepareVideoSource(message: Message, videoSource: string... method executeStreamWorkflow (line 350) | private async executeStreamWorkflow(input: any, options: any, message:... method finalizeStream (line 355) | private async finalizeStream(message: Message, tempFile: string | null... method playVideo (line 373) | public async playVideo(message: Message, videoSource: string, title?: ... method cleanupStreamStatus (line 403) | public async cleanupStreamStatus(): Promise { method stopAndClearQueue (line 432) | public async stopAndClearQueue(): Promise { FILE: src/types/index.ts type VideoFormat (line 1) | interface VideoFormat { type YouTubeVideo (line 11) | interface YouTubeVideo { type TwitchStream (line 20) | interface TwitchStream { type YTFormat (line 26) | interface YTFormat { type YTThumbnail (line 49) | interface YTThumbnail { type YTResponse (line 57) | interface YTResponse { type YTFlags (line 115) | interface YTFlags { type CommandContext (line 268) | interface CommandContext { type StreamStatus (line 276) | interface StreamStatus { type Video (line 289) | interface Video { type Command (line 294) | interface Command { type MediaSource (line 302) | interface MediaSource { type QueueItem (line 309) | interface QueueItem { type VideoQueue (line 321) | interface VideoQueue { FILE: src/utils/ffmpeg.ts function ffmpegScreenshot (line 7) | async function ffmpegScreenshot(video: string): Promise { function getVideoParams (line 53) | async function getVideoParams(videoPath: string): Promise<{ width: numbe... FILE: src/utils/shared.ts method status_idle (line 13) | status_idle(): ActivityOptions { method status_watch (line 23) | status_watch(name: string): ActivityOptions { method sendError (line 33) | async sendError(message: Message, error: string): Promise { method sendSuccess (line 41) | async sendSuccess(message: Message, description: string): Promise { method sendInfo (line 49) | async sendInfo(message: Message, title: string, description: string): Pr... method sendPlaying (line 57) | async sendPlaying(message: Message, title: string): Promise { method sendFinishMessage (line 68) | async sendFinishMessage(message: Message): Promise { method sendList (line 76) | async sendList(message: Message, items: string[], type?: string): Promis... method handleError (line 95) | async handleError(error: any, context: string, message?: Message): Promi... method withErrorHandling (line 106) | async withErrorHandling( method isValidUrl (line 127) | isValidUrl(input: string): boolean { method isLocalFile (line 143) | isLocalFile(filePath: string): boolean { FILE: src/utils/youtube.ts class Youtube (line 6) | class Youtube { method getVideoInfo (line 7) | async getVideoInfo(url: string): Promise { method searchAndGetPageUrl (line 29) | async searchAndGetPageUrl(title: string): Promise<{ pageUrl: string | ... method search (line 44) | async search(query: string, limit: number = 5): Promise { method getLiveStreamUrl (line 56) | async getLiveStreamUrl(youtubePageUrl: string): Promise { FILE: src/utils/yt-dlp.ts function args (line 45) | function args(url: string, options: Partial): string[] { function json (line 75) | function json(str: string) { function downloadExecutable (line 83) | async function downloadExecutable() { function exec (line 102) | function exec(url: string, options: Partial = {}, spawnOptions:... function ytdl (line 110) | async function ytdl(url: string, options: Partial = {}, spawnOp... function downloadToTempFile (line 141) | async function downloadToTempFile(url: string, options: Partial... function checkForUpdatesAndUpdate (line 192) | async function checkForUpdatesAndUpdate(): Promise {