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", "loop", "random"
+# playback mode should be one of "one-shot", "loop", "random", "autoplay"
playback_mode = one-shot
+autoplay_length = 5
# target version, stable or testing (testing need to bot installed with git)
target_version = stable
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
rb_query = rbquery
rb_play = rbplay
-yt_query = ytquery
-yt_play = ytplay
+yt_search = ysearch
+yt_play = yplay
help = help
pause = pause
remove = rm
clear = clear
skip = skip
+last = last
current_music = np, now
volume = volume
kill = kill
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_volume = duckv
drop_database = dropdatabase
+rescan = rescan
[strings]
current_volume = Current volume: {volume}.
not_playing = Nothing is playing right now.
no_file = File not found.
wrong_pattern = Invalid regex: {error}.
-file_added = Added: {item}.
-multiple_file_added = Multiple files added:
+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:
bad_url = Bad URL requested.
preconfigurated_radio = Preconfigurated Radio available:
unable_download = Error while downloading music...
+unable_play = Unable to play {item}. Removed from the library.
which_command = Do you mean <br /> {commands}
-multiple_matches = Track not found! Possible candidates:
+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_radio = Now Playing Radio: <br /> <a href="{url}">{title}</a> <i>from</i> {name} <i>added by</i> {user}
-now_playing_file = Now Playing File:<br /> {artist} - {title} <i>added by</i> {user}
-now_playing_from_playlist = Now Playing URL:<br /> {title} <i>from playlist</i> <a href="{url}">{playlist}</a> <i>added by</i> {user}
-now_playing_url = Now Playing URL: <br /> <a href="{url}">{title}</a> <i>added by</i> {user}
+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 = This music is too long, skip!
-download_in_progress = Download of {item} in progress...
+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!
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>!ytplay</i> {{index}} to play the item you want. <br />
+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.
help = <h3>Commands</h3>
<b>Control</b>
<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)</li>
+ 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>
<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>!file </b>(or <b>!f</b>) {path/folder/index/keyword} - append file to the playlist by its path or index returned by !listfile </li>
+ <li> <b>!file </b>(or <b>!f</b>) {path/folder/index/keyword} - add a single file to the playlist by its path or index returned by !listfile </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} - append youtube or soundcloud music to the playlist </li>
- <li> <b>!<u>playl</u>ist </b> {url} [{offset}] - append items in a youtube or soundcloud playlist, and start with the {offset}-th item </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>t</u>ag </b> {tags} - add all items with tags {tags}, tags separated by ",". </li>
+ <li> <b>!<u>sh</u>ortlist </b> (or <b>!sl</b>) {indexes} - add {indexes}-th item 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>
<li> <b>!<u>rad</u>io </b> {url} - append a radio {url} to the playlist </li>
- <li> <b>!<u>l</u>istfile </b> [{pattern}] - display list of available files (that match the regex pattern if {pattern} is given) </li>
+ <li> <b>!<u>li</u>stfile </b> [{pattern}] - display list of available files (that match the regex pattern if {pattern} is given) </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>ytq</u>uery </b> {keyword} - query youtube. Use <i>!ytquery -n</i> to turn the page. </li>
- <li> <b>!<u>ytp</u>lay </b> {index} - play an item from the list returned by <i>!ytquery</i>. </li>
+ <li> <b>!<u>ys</u>earch </b> {keywords} - query youtube. Use <i>!ytquery -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>
+ </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>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>
admin_help = <h3>Admin command</h3>
<ul>
<li><b>!<u>k</u>ill </b> - kill the bot</li>
- <li><b>!<u>up</u>date </b> - update the bot</li>
- <li><b>!<u>userb</u>an </b> {user} - ban a user</li>
- <li><b>!<u>useru</u>nban </b> {user} - unban a user</li>
- <li><b>!<u>urlb</u>an </b> {url} - ban an url</li>
- <li><b>!<u>urlu</u>nban </b> {url} - unban an url</li>
- <li><b>!dropdatabase</b> - clear the entire database, YOU SHOULD KNOW WHAT YOU ARE DOING.</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> {url} - 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>