# MumbleDJ # By Matthieu Grieger # Copyright (c) 2016 Matthieu Grieger (MIT License) # config.yaml api_keys: # YouTube API key. youtube: "" # SoundCloud API key. # NOTE: The API key is your client ID. soundcloud: "" defaults: # Default comment to be applied to bot. # NOTE: If you do not want a comment by default, set to empty string (""). comment: "Hello! I am a bot. Type !help for a list of commands." # Default channel for the bot to enter upon connection. # NOTE: If you wish for the bot to connect to the root channel, set to empty string (""). channel: "" # Command to use to play audio files. The two supported choices are "ffmpeg" and "avconv". player_command: "ffmpeg" queue: # Ratio that must be met or exceeded to trigger a track skip. track_skip_ratio: 0.5 # Ratio that must be met or exceeded to trigger a playlist skip. playlist_skip_ratio: 0.5 # Maximum track duration in seconds. Set to 0 for unrestricted duration. max_track_duration: 0 # Maximum tracks per playlist. Set to 0 for unrestricted playlists. max_tracks_per_playlist: 50 # Is shuffling enabled when the bot starts? automatic_shuffle_on: false # Announce track information at the beginning of audio playback? announce_new_tracks: true connection: # Address bot should attempt to connect to. address: "127.0.0.1" # Port bot should attempt to connect to. port: "64738" # Password for connecting to server. # NOTE: If no password, set to empty string (""). password: "" # Username for MumbleDJ. username: "MumbleDJ" # Should the bot attempt an insecure connection? # An insecure connection does not verify the certificate of the server for # consistency. It is best to leave this on, but disable it if you are having # issues connecting to a server or are running multiple instances of MumbleDJ. insecure: false # Filepath to certificate file. # NOTE: If no certificate file is needed, set to empty string (""). cert: "" # Filepath to certificate key file. # NOTE: If no key is needed, set to empty string (""). key: "" # Access tokens to initialize the bot with, separated by commas. # NOTE: If no access tokens are needed, set to empty string (""). access_tokens: "" # Should the bot automatically attempt to retry connection to a server after disconnecting? retry_enabled: true # How many times should the bot attempt to reconnect to the server? retry_attempts: 10 # How many seconds should the bot wait in-between connection retry attempts? retry_interval: 5 cache: # Cache songs as they are downloaded? enabled: false # Maximum total file size of cache directory in MiB. maximum_size: 512 # Period of time that should elapse before a song is cleared from the cache, in hours. expire_time: 24 # Period of time between each check of the cache for expired items, in minutes. check_interval: 5 # Directory to store cached items. Environment variables are able to be used here. directory: "$HOME/.cache/mumbledj" volume: # Default volume. default: 0.2 # Lowest volume allowed. lowest: 0.01 # Highest volume allowed. highest: 0.8 admins: # Enable admins? # NOTE: If this is set to false, any command can be executed by any user. enabled: true # List of admin names. # NOTE: It is recommended that the names in this list are registered on the # server so that imposters cannot execute admin commands. names: - "SuperUser" commands: # Character used to designate commands from normal text messages. # NOTE: Only one character (the first) is used. prefix: "!" common_messages: no_tracks_error: "There are no tracks in the queue." caching_disabled_error: "Caching is currently disabled." # Below is a list of the commands supported by MumbleDJ. Each command has # three configurable options: # aliases: A list of names that can be used to execute the command. # is_admin: true = only admins can execute the command, false = anyone can execute the command. # description: Description shown for the command when the help command is executed. # messages: Various messages that may be sent as a text message from the command. Useful for translating # strings to other languages. Do NOT remove strings that begin with "%" (such as "%s", "%d", etc.) # as they substituted with runtime data. Removing these strings will cause the bot to misbehave. add: aliases: - "add" - "a" is_admin: false description: "Adds a track or playlist from a media site to the queue." messages: no_url_error: "A URL must be supplied with the add command." no_valid_tracks_error: "No valid tracks were found with the provided URL(s)." tracks_too_long_error: "Your track(s) were either too long or an error occurred while processing them. No track(s) have been added." one_track_added: "%s added 1 track to the queue:
%s from %s" many_tracks_added: "%s added %d tracks to the queue." num_tracks_too_long: "
%d tracks could not be added due to error or because they are too long." addnext: aliases: - "addnext" - "an" is_admin: true description: "Adds a track or playlist from a media site as the next item in the queue." # addnext uses the messages defined for add. cachesize: aliases: - "cachesize" - "cs" is_admin: true description: "Outputs the file size of the cache in MiB if caching is enabled." messages: current_size: "The current size of the cache is %.2v MiB." currenttrack: aliases: - "currenttrack" - "currentsong" - "current" is_admin: false description: "Outputs information about the current track in the queue if one exists." messages: current_track: "The current track is %s, added by %s." forceskip: aliases: - "forceskip" - "fs" is_admin: true description: "Immediately skips the current track." messages: track_skipped: "The current track has been forcibly skipped by %s." forceskipplaylist: aliases: - "forceskipplaylist" - "fsp" is_admin: true description: "Immediately skips the current playlist." messages: no_playlist_error: "The current track is not part of a playlist." playlist_skipped: "The current playlist has been forcibly skipped by %s." help: aliases: - "help" - "h" is_admin: false description: "Outputs this list of commands." messages: commands_header: "
Commands:
" admin_commands_header: "
Admin Commands:
" joinme: aliases: - "joinme" - "join" is_admin: true description: "Moves MumbleDJ into your current channel if not playing audio to someone else." messages: others_are_listening_error: "Users in another channel are listening to me." in_your_channel: "I am now in your channel!" kill: aliases: - "kill" - "k" is_admin: true description: "Stops the bot and cleans its cache directory." listtracks: aliases: - "listtracks" - "listsongs" - "list" - "l" is_admin: false description: "Outputs a list of the tracks currently in the queue." messages: invalid_integer_error: "An invalid integer was supplied." track_listing: "%d: %s, added by %s.
" move: aliases: - "move" - "m" is_admin: true description: "Moves the bot into the Mumble channel provided via argument." messages: no_channel_provided_error: "A destination channel must be supplied to move the bot." channel_doesnt_exist_error: "The provided channel does not exist." move_successful: "You have successfully moved the bot to %s." nexttrack: aliases: - "nexttrack" - "nextsong" - "next" is_admin: false description: "Outputs information about the next track in the queue if one exists." messages: current_track_only_error: "The current track is the only track in the queue." next_track: "The next track is %s, added by %s." numcached: aliases: - "numcached" - "nc" is_admin: true description: "Outputs the number of tracks cached on disk if caching is enabled." messages: num_cached: "There are currently %d items stored in the cache." numtracks: aliases: - "numtracks" - "numsongs" - "nt" is_admin: false description: "Outputs the number of tracks currently in the queue." messages: one_track: "There is currently 1 track in the queue." plural_tracks: "There are currently %d tracks in the queue." pause: aliases: - "pause" is_admin: false description: "Pauses audio playback." messages: no_audio_error: "Either the audio is already paused, or there are no tracks in the queue." paused: "%s has paused audio playback." reload: aliases: - "reload" - "r" is_admin: true description: "Reloads the configuration file." messages: reloaded: "The configuration file has been successfully reloaded." reset: aliases: - "reset" - "re" is_admin: true description: "Resets the queue by removing all queue items." messages: queue_reset: "%s has reset the queue." resume: aliases: - "resume" is_admin: false description: "Resumes audio playback." messages: audio_error: "Either the audio is already playing, or there are no tracks in the queue." resumed: "%s has resumed audio playback." setcomment: aliases: - "setcomment" - "comment" - "sc" is_admin: true description: "Sets the comment displayed next to MumbleDJ's username in Mumble." messages: comment_removed: "The comment for the bot has been successfully removed." comment_changed: "The comment for the bot has been successfully changed to the following: %s" shuffle: aliases: - "shuffle" - "shuf" - "sh" is_admin: true description: "Randomizes the tracks currently in the queue." messages: not_enough_tracks_error: "There are not enough tracks in the queue to execute a shuffle." shuffled: "The audio queue has been shuffled." skip: aliases: - "skip" - "s" is_admin: false description: "Places a vote to skip the current track." messages: already_voted_error: "You have already voted to skip this track." voted: "%s has voted to skip the current track." skipplaylist: aliases: - "skipplaylist" - "sp" is_admin: false description: "Places a vote to skip the current playlist." messages: no_playlist_error: "The current track is not part of a playlist." already_voted_error: "You have already voted to skip this playlist." voted: "%s has voted to skip the current playlist." toggleshuffle: aliases: - "toggleshuffle" - "toggleshuf" - "togshuf" - "tsh" is_admin: true description: "Toggles automatic track shuffling on/off." messages: toggled_off: "Automatic shuffling has been toggled off." toggled_on: "Automatic shuffling has been toggled on." version: aliases: - "version" - "v" is_admin: false description: "Outputs the current version of MumbleDJ." messages: version: "MumbleDJ version: %s" volume: aliases: - "volume" - "vol" is_admin: false description: "Changes the volume if an argument is provided, outputs the current volume otherwise." messages: parsing_error: "The requested volume could not be parsed." out_of_range_error: "Volumes must be between the values %.2f and %.2f." current_volume: "The current volume is %.2f." volume_changed: "%s has changed the volume to %.2f."