# ========================================================
#  botamusique Default Configuration File
#  Version 6
# ========================================================
#  WARNING:
#           ******************************
#           **DO NOT MODIFIED THIS FILE.**
#           ******************************
#
#           Please create your own configuration file, and
#           ONLY ADD ITEMS YOU WANT TO MODIFY into it. Other
#           items will be loaded from this file automatically.
#           DO NOT DIRECTLY COPY THIS FILE.
#
#           That is because this file will be overridden
#           during updates. New options will be added and
#           old options (like [strings]) will be updated.
# ========================================================

[server]
host = 127.0.0.1
port = 64738
password =
channel =
# example: token1,token2
tokens =
certificate =

[bot]
username = botamusique
comment = Hi, I'm here to play radio, local music or youtube/soundcloud music. Have fun!
# default volume from 0 to 1.
volume = 0.1
# playback mode should be one of "one-shot", "repeat", "random", "autoplay"
playback_mode = one-shot
autoplay_length = 5
clear_when_stop_in_oneshot = False

# target version, stable or testing (testing need to bot installed with git)
target_version = stable

# Users allowed to kill the bot, or ban URLs.
admin = User1;User2;
# Folder that stores your local songs.
music_folder = music_folder/
# Folder that stores the downloaded music.
tmp_folder = /tmp/
pip3_path = venv/bin/pip
auto_check_update = True
logfile =

# in MB, 0 for no cache, -1 for unlimited size
tmp_folder_max_size = 10

# how many times the bot will try to download an item
download_attempts = 2

ignored_folders = tmp
ignored_files = Thumbs.db

announce_current_music = True
allow_other_channel_message = False
allow_private_message = True

# 'save_music_library': If this is set True, the bot will save the metadata of music into the database.
save_music_library = True

# 'refresh_cache_on_startup': If this is set true, the bot will refresh its music directory cache when starting up.
#  But it won't reload metadata from each files. If set to False, it will used the cache last time.
refresh_cache_on_startup = True

# If save_playlist is set True, the bot will save current
# playlist before quitting and reload it the next time it start.
save_playlist = True

# Maximum track played when a playlist is added.
max_track_playlist = 20

# Maximum music duration (minutes)
max_track_duration = 60

# If ducking is enabled, the bot will automatically attenuate its volume when someone is talking.
ducking = False
ducking_volume = 0.05
ducking_threshold = 3000

# if when_nobody_in_channel is enabled and the bot is left alone, action are make :
# "pause" (pause current song), "pause_resume" (pause current song and resume once somebody reenters the channel), "stop" (also clears playlist) or "nothing" (keep playing music)
when_nobody_in_channel = nothing

[webinterface]
# Set enabled to True if you'd like to use the web interface to manage your playlist, upload files, etc.
enabled = False
is_web_proxified = True
listening_addr = 127.0.0.1
listening_port = 8181
web_logfile =

auth_method = none
user = 
password =
max_attempts = 10

access_address = http://127.0.0.1:8181

flask_secret = ChangeThisPassword

upload_enabled = True
max_upload_file_size = 30M

[debug]
# Set ffmpeg to True if you want to display DEBUG level log of ffmpeg.
ffmpeg = False
redirect_ffmpeg_log = True
mumbleConnection = False

# This is a list of default radio stations.
[radio]
ponyville = http://192.99.131.205:8000/stream.mp3 "Here a command of !radio comment"
luna = http://radio.ponyvillelive.com:8002/stream "calm and orchestra music"
radiobrony = http://62.210.138.34:8000/live "Brony music of a friend"
jazz = http://jazz-wr04.ice.infomaniak.ch/jazz-wr04-128.mp3 "Jazz Yeah !"





# ========================================================
# WARNING: WE DO NOT SUGGEST YOU MODIFY THE FOLLOWING
#          PARTS, EXCEPT YOU KNOW WHAT YOU ARE DOING.
# ========================================================
[commands]
# This is a list of characters the bot recognizes as command prefix.
command_symbol = !:！
# This option split username, in case you use such kind of mumo plugins https://wiki.mumble.info/wiki/Mumo#Set_Status
split_username_at_space = False


play_file = file, f
play_file_match = filematch, fm
play_url = url
play_radio = radio
play_playlist = playlist

rb_query = rbquery
rb_play = rbplay

yt_search = ysearch
yt_play = yplay

help = help
pause = pause
play = p, play
stop = stop
remove = rm
clear = clear
skip = skip
last = last
current_music = np, now
volume = volume
kill = kill
stop_and_getout = oust
joinme = joinme
queue = queue
repeat = repeat
random = random
mode = mode
update = update
list_file = listfile

play_tag = tag
add_tag = addtag
remove_tag = untag
find_tagged = findtagged, ft
search = search
delete_from_library = delete
add_from_shortlist = shortlist, sl

user_ban = userban
user_unban = userunban
url_ban = urlban
url_ban_list = urlbanlist
url_unban = urlunban

ducking = duck
ducking_threshold = duckthres
ducking_volume = duckv

drop_database = dropdatabase
rescan = rescan

requests_webinterface_access = web
list_webinterface_user = webuserlist
add_webinterface_user = webuseradd
remove_webinterface_user = webuserdel
change_user_password = password

[strings]
current_volume = Current volume: {volume}.
current_ducking_volume = Volume on ducking: {volume}.
change_volume = Volume set to {volume} by {user}.
change_ducking_volume = Volume on ducking set to {volume} by {user}.
bad_command = {command}: command not found.
bad_parameter = {command}: invalid parameter.
error_executing_command = {command}: Command failed with error: {error}.
not_admin = You are not an admin!
not_playing = Nothing is playing right now.
no_file = File not found.
wrong_pattern = Invalid regex: {error}.
file_added  = Added {item}.
file_deleted  = Deleted {item} from the library.
multiple_file_added  = Multiple items added:
multiple_file_deleted  = Multiple items deleted from the library:
multiple_file_found  = Found:
page_instruction = Page {current}/{total}. Use <i>!{command} {{page}}</i> to navigate.
records_omitted = ...
bad_url = Bad URL requested.
preconfigurated_radio = Preconfigurated Radio available:
unable_download = Unable to download <b>{item}</b>. Removed from the library.
unable_play = Unable to play <b>{item}</b>. Removed from the library.
which_command = Do you mean <br /> {commands}
multiple_matches = File not found! Possible candidates:
queue_contents = Items on the playlist:
queue_empty = Playlist is empty!
invalid_index = Invalid index <i>{index}</i>. Use '!queue' to see your playlist.
now_playing = Playing {item}
radio = Radio
file = File
url_from_playlist = URL
url = URL
radio_item = <a href="{url}"><b>{title}</b></a> <i>from</i> {name} <i>added by</i> {user}
file_item = <b>{artist} - {title}</b> <i>added by</i> {user}
url_from_playlist_item = <a href="{url}"><b>{title}</b></a> <i>from playlist</i> <a href="{playlist_url}">{playlist}</a> <i>added by</i> {user}
url_item = <a href="{url}"><b>{title}</b></a> <i>added by</i> {user}
not_in_my_channel = You're not in my channel, command refused!
pm_not_allowed = Private message aren't allowed.
too_long = <b>{song}</b> is too long, removed from playlist!
download_in_progress = Download of <b>{item}</b> in progress...
removing_item = Removed entry {item} from playlist.
user_ban = You are banned, not allowed to do that!
url_ban = This url is banned!
rb_query_result = This is the result of your query, send !rbplay 'ID' to play a station:
rb_play_empty = Please specify a radio station ID!
paused = Music paused.
stopped = Music stopped.
cleared = Playlist emptied.
database_dropped = Database dropped. All records have gone.
new_version_found = <h2>Update Available!</h2> Version {new_version} of botamusique is available! <hr />
                    <h3>Changelog</h3> {changelog} <hr /> Send <i>!update</i> to update!
update_successful = <h2>botamusique v{version} Installed!</h2><hr />
                    <h3>Changelog</h3> {changelog} <hr /> Visit <a href="https://github.com/azlux/botamusique">our github repo</a> for more details!
start_updating = Start updating...
file_missed = Music file '{file}' missed! This item has been removed from the playlist.
unknown_mode = Unknown playback mode '{mode}'. It should be one of <i>one-shot</i>, <i>repeat</i>, <i>random</i>.
current_mode = Current playback mode is <i>{mode}</i>.
change_mode = Playback mode set to <i>{mode}</i> by {user}.
repeat = Repeat {song} for {n} times.
yt_result = Youtube query result: {result_table} Use <i>!sl {{indexes}}</i> to play the item you want. <br />
            <i>!ytquery -n</i> for the next page.
yt_no_more = No more results!
yt_query_error = Unable to query youtube!
playlist_fetching_failed = Unable to fetch the playlist!
cache_refreshed = Cache refreshed!
added_tags = Added tags <i>{tags}</i> to <b>{song}</b>.
added_tags_to_all = Added tags <i>{tags}</i> to songs on the playlist.
removed_tags = Removed tags <i>{tags}</i> from <b>{song}</b>.
removed_tags_from_all = Removed tags <i>{tags}</i> from songs on the playlist.
cleared_tags = Removed all tags from <b>{song}</b>.
cleared_tags_from_all = Removed all tags from songs on the playlist.
shortlist_instruction = Use <i>!sl {indexes}</i> to play the item you want.
auto_paused = Use <i>!play</i> to resume music!
webpage_address= Your own address to access the web interface is <a href="{address}">{address}</a>
web_user_list = Following users has the privilege to access the web interface: <br /> {users}
user_password_set = Your password has been updated.
command_disabled = {command}: command disabled!

help = <h3>Commands</h3>
       <b>Control</b>
       <ul>
       <li> <b>!play </b> (or <b>!p</b>) [{num}] - resume from pausing / start to play (the num-th song is num if given) </li>
       <li> <b>!<u>pa</u>use </b> - pause </li>
       <li> <b>!<u>st</u>op </b> - stop playing </li>
       <li> <b>!<u>sk</u>ip </b> - jump to the next song </li>
       <li> <b>!<u>la</u>st </b> - jump to the last song </li>
       <li> <b>!<u>v</u>olume </b> {volume} - get or change the volume (from 0 to 100) </li>
       <li> <b>!<u>m</u>ode </b> [{mode}] - get or set the playback mode, {mode} should be one of <i>one-shot</i> (remove
       item once played), <i>repeat</i> (looping through the playlist), <i>random</i> (randomize the playlist),
       <i>autoplay</i> (randomly grab something from the music library).</li>
       <li> <b>!duck </b> on/off - enable or disable ducking function </li>
       <li> <b>!duckv </b> - set the volume of the bot when ducking is activated </li>
       <li> <b>!<u>duckt</u>hres </b> - set the threshold of volume to activate ducking (3000 by default) </li>
       <li> <b>!<u>o</u>ust </b> - stop playing and go to default channel </li>
       </ul>
       <b>Playlist</b>
       <ul>
       <li> <b>!<u>n</u>ow </b> (or <b>!np</b>) - display the current song </li>
       <li> <b>!<u>q</u>ueue </b> - display items in the playlist </li>
       <li> <b>!<u>t</u>ag </b> {tags} - add all items with tags {tags}, tags separated by ",". </li>
       <li> <b>!file </b>(or <b>!f</b>) {path/folder/keyword} - add a single file to the playlist by its path or keyword in its path. </li>
       <li> <b>!<u>filem</u>atch </b>(or <b>!fm</b>) {pattern} - add all files that match regex {pattern} </li>
       <li> <b>!<u>ur</u>l </b> {url} - add Youtube or SoundCloud music </li>
       <li> <b>!<u>playl</u>ist </b> {url} [{offset}] - add all items in a Youtube or SoundCloud playlist, and start with the {offset}-th item </li>
       <li> <b>!<u>rad</u>io </b> {url} - append a radio {url} to the playlist </li>
       <li> <b>!<u>rbq</u>uery </b> {keyword} - query http://www.radio-browser.info for a radio station </li>
       <li> <b>!<u>rbp</u>lay </b> {id} - play a radio station with {id} (eg. !rbplay 96746) </li>
       <li> <b>!<u>ys</u>earch </b> {keywords} - query youtube. Use <i>!ysearch -n</i> to turn the page. </li>
       <li> <b>!<u>yp</u>lay </b> {keywords} - add the first search result of {keywords} into the playlist.</li>
       <li> <b>!<u>sh</u>ortlist </b> (or <b>!sl</b>) {indexes/*} - add {indexes}-th item (or all items if * is given) on the shortlist. </li>
       <li> <b>!rm </b> {num} - remove the num-th song on the playlist </li>
       <li> <b>!<u>rep</u>eat </b> [{num}] - repeat current song {num} (1 by default) times.</li>
       <li> <b>!<u>ran</u>dom </b> - randomize the playlist.</li>
       </ul>
       <b>Music Library</b>
       <ul>
       <li> <b>!<u>se</u>arch </b> {keywords} - find item with {keywords} in the music library, keywords separated by space.</li>
       <li> <b>!<u>li</u>stfile </b> [{pattern}] - display list of available files (whose paths match the regex pattern if {pattern} is given) </li>
       <li> <b>!<u>addt</u>ag </b> [{index}] {tags} - add {tags} to {index}-th(current song if {index} is omitted) item on the playlist, tags separated by ",". </li>
       <li> <b>!<u>addt</u>ag </b> * {tags} - add {tags} to all items on the playlist. </li>
       <li> <b>!<u>un</u>tag </b> [{index/*}] {tags}/* - remove {tags}/all tags from {index}-th(current song if {index} is omitted) item on the playlist. </li>
       <li> <b>!<u>fin</u>dtagged </b> (or <b>!ft</b>) {tags} - find item with {tags} in the music library. </li>
       <li> <b>!<u>del</u>ete </b> {index} - delete {index}-th item on the shortlist from the music library. </li>
       </ul>
       <b>Other</b>
       <ul>
       <li> <b>!<u>j</u>oinme {token} </b> - join your own channel with {token}.</li>
       </ul>

admin_help = <h3>Admin command</h3>
             <ul>
             <li><b>!<u>k</u>ill </b> - kill the bot</li>
             <li><b>!update </b> - update the bot</li>
             <li><b>!userban </b> {user}  - ban a user</li>
             <li><b>!userunban </b> {user}  - unban a user</li>
             <li><b>!urlbanlist </b>  - list banned url</li>
             <li><b>!urlban </b> [{url}]  - ban {url} (or current item's url by default) and remove this url from the library.</li>
             <li><b>!urlunban </b> {url}  - unban {url}</li>
             <li><b>!rescan </b> {url}  - rebuild local music file cache</li>
             <li><b>!dropdatabase</b> - clear the entire database, you will lose all settings and music library.</li>
             </ul>


