JJMumbleBot

A plugin-based All-In-One mumble bot solution in python 3.7+ with extensive features and support for custom plugins.

GPL-3.0 License

Stars
50
JJMumbleBot - v3.0.7 - Bug Fixes, New/Changed Commands

Published by DuckBoss over 4 years ago

Changes/New Updates

Help Commands

  • The !help command can now be used without any additional parameters to display the available help commands for all the plugins.
    Example Usage:
!help: Displays a list of the help commands for all the available plugins.
(or)
!help 'plugin_name': Displays all the commands available for the given plugin.

User Comment For Bot

  • Added new field : "DefaultComment" for users to add custom comments to bot via their config file.
  • The "DefaultComment" field is set to "Hello! I am JJMumbleBot" by default but can be changed by the user.
  • !comment command : Sets the bot's user comment with the given text.
!comment 'comment_text': Sets the bot's user comment with the given text.
  • !resetcomment command: Resets the bot's user comment to the default text.
!resetcomment: Resets the bot's user comment to the default text.

Youtube Plugin

  • The !link and !linkfront commands now displays an error when a playlist link is provided.
  • The !playlist command now displays an error when a playlist link isn't provided.

Other Updates and Bug Fixes

  • Removed debug print statements.
  • Changed AllowedRootChannelsForTempChannels value in the config_template.ini to "Root" instead of "Default" since that's what the default murmur server uses.
  • Added new field: SubHeaderTextColor to further customize the GUI text colors.
  • The wiki has been updated to reflect these changes/additions.

Thanks to @ajmandourah for pointing out many issues that were fixed in this update.

JJMumbleBot - v3.0.6 - Bug Fixes in config and youtube plugin

Published by DuckBoss over 4 years ago

All Updates

  • Fixed the !skipto and !playlist commands in the youtube plugin in the latest commit: c6234d7c7bde7822e911cd8c84332099976c7b17
  • Fixed the config issue with the wrong category name for TemporaryMediaDirectory 33652ec4b0d519a6e7c59c43265a577be88083b4
JJMumbleBot - v3.0.5 - Bug Fixes, Youtube Plugin Fixed! 🥳 🥳

Published by DuckBoss over 4 years ago

New Features

Sound Board Plugin

  • !sbskip command : Allows users to skip to 'X' seconds into the song.
!sbskip 'seconds' : Skips ahead in the current sound board track by the given amount of seconds.

Youtube Plugin

  • Fixed the youtube plugin, so videos work again!!! 🥳 🥳 🥳 🥳 🥳 🥳
  • The youtube plugin gives an error message when a thumbnail is not able to be retrieved.
JJMumbleBot - v3.0.4 - Bug Fixes, New Features, Wiki Updated

Published by DuckBoss over 4 years ago

New Features

Sound Board Plugin

  • Added !sbloop command which functions identically to the !sb command except the audio files loop until stopped.
!sbloop 'sound_clip': Plays a locally saved wav file, but endlessly loops until it is stopped.

Youtube Plugin

  • Added !loop command which toggles the youtube plugin queue's loop mode. If enabled, songs will loop endlessly unless skipped/stopped.
!loop: Toggles the loop mode for the youtube plugin.

Wiki

  • The wiki has been updated to v3.0+

All Updates

  • The !help command now displays the plugin name on the help screen.
  • Updated sound board to use 1024 byte buffers (up from 480).
  • Added new alias: !saferestart for the command !safereboot.
  • Added new metadata tags to allow the sound_board vlc instance to run with 'quiet mode' enabled or disabled.
  • Added new metadata tags to allow the youtube vlc instance to run with 'quiet mode' enabled or disabled.
  • Fixed Help data not updating in the database, when the html files are updated.
  • Updated all version numbers for plugins.
  • Updated bot version in metadata for 3.0.4 release.
  • Added missing !help command to privileges, metadata, and help html file.
  • Fixed issue where alias.csv files were missing for plugins.
  • Updated 'about' text in the config_template.
  • Removed unused reference to !botstatus command in help html file.
  • Updated the plugin template for custom third party plugin developers to be in line with v3.0+.
  • The wiki has been updated for v3.0+.
JJMumbleBot - v3.0.3 - New sound board command and various bug fixes

Published by DuckBoss over 4 years ago

New Features

  • Added the !sbplaying command to the sound_board plugin so users can now see what the currently playing sound_board track is.
!sbplaying: Displays the current sound board clip that is being played and the duration of the clip.

Bug Fixes And Other Updates

  • Removed code that attempted to filter out any sound clips over 6 seconds long that would have been played with the !sbrandom command.
  • Any sound board clip now has an equal chance of playing with the !sbrandom command.
  • Fixed typo in sound_board plugin so !sbrandom should work now.
  • The youtube plugin !song command now displays which plugin the command is coming from when a song is not being currently played.
JJMumbleBot - v3.0.2 - Fixed !sleep command and added missing metadata tags

Published by DuckBoss over 4 years ago

All Updates

  • Added missing metadata tag in youtube plugin.
  • Fixed !sleep command by adding it to the ThreadWaitForCommands list in the core_commands metadata.ini file.
JJMumbleBot - v3.0.1 - Fixed new aliases not registering properly at runtime

Published by DuckBoss over 4 years ago

All Updates

  • Fixed new aliases not registering properly at runtime
  • Removed submodule references from legacy branch
  • Added new items to .gitignore
JJMumbleBot - v3.0.0 - Major Overhaul Update

Published by DuckBoss over 4 years ago

NOTICE:

v3.0.0 does not currently have updated documentation. I am working on it!The release notes below will be updated with the new documentation links as soon as it is available, but for now they will just have placeholder texts.I will try to answer as many questions/issues as I can while the documentation is being updated.

Python Version

JJMumbleBot has been updated through multiple python revisions,
and with this update it will now require Python 3.7 or higher.

Aliases

There is now a global_aliases.csv file that must be placed in the JJMumbleBot/cfg/ directory, which will function similarly as the previous versions of the aliases.csv file.
In addition, individual plugins now require an aliases.csv file which will contain any command aliases related to that plugin.
The directory structure of this new system can be seen in the Plugins section below.

Plugins

Plugins are now separated into 'core' and 'extensions' folders.
Third party plugins that extend the functionality of the bot should be placed in the 'extensions' folder.
Various changes such as separating the help data and metadata into individual files have been made to improve the development and functionality of plugins.
Due to these changes, all existing custom third party plugins must be updated to the new format.

Plugin Development Changes

Plugins now require the following base heirarchy:

  • plugin_name/
    • resources/
      • strings.py:contains static string references using in the metadata/script
    • utility/ (optional directory to store utility scripts for your plugin)
    • help.html : contains the help data for the plugin commands
    • metadata.ini : contains plugin information and plugin-specific settings
    • privileges.csv : contains user privilege requirements for plugin commands
    • aliases.csv: contains aliases specifically to commands in the plugin
    • plugin_name.py : main driver python script for the plugin

Any additional utility files, scripts, folders or media can be added to this.
For more information on creating custom plugins, look at this documentation. ADD DOC HERE

Core Commands Plugin [NEW]

The core commands of the bot service has now been separated into it's own core plugin.
This plugin contains all critical service commands for the bot.
This includes all commands relating to aliases, rebooting, refreshing plugins, exiting the bot, etc.

Added new commands:

  • Clears the bot command history.
    !clearhistory

Bot Commands Plugin

Added new commands:

  • Removes the current channel if it's created by the bot service.
    !remove
  • Removed 'spam_test' command.

Text To Speech Plugin [NEW]

A plugin that allows users to type messages that can be read out by various TTS voices.
The plugin also allows users to download TTS clips to be played at a later time like the sound board plugin.

  • Stream TTS message with specified voice
    !tts 'voice_name' 'message'
  • Displays a list of all the TTS voices available
    !ttsvoices
  • Download TTS message with specified voice into a clip
    ttsdownload 'clip_name' 'voice_name' 'message'
  • Play existing TTS clip
    !ttsplay 'clip_name'
  • Delete existing TTS clips
    !ttsdelete 'clip_name'
  • Adjust TTS volume
    !ttsv '0...1'
  • And MORE...
    ...
    For a full list of commands, please check the documentation provided here. ADD DOC HERE

Auto-Updater Plugin [NEW]

A plugin that allows server administrators to check for bot dependency updates and update dependency packages as necessary
through commands in the plugin.

  • Check for updates on a dependency (example: pymumble)
    !checkforupdates youtube-dl
  • Update dependencies that are outdated (example: pymumble)
    !updatedependency pymumble

Other Updates

Removed Web Interface Plugin

The previous web interface plugin implementation was very messy and experimental.
I will be releasing v3.0.0 without a web interface plugin, and will work on implementing
it properly in the near future.

New Default Aliases

For the full list of default aliases, please check the documentation provided here. ADD DOC HERE

Safe Mode Changes

Users can now set what plugins are included in safe mode by modifying the 'SafeModePlugins' list in their bot config.
Please note that you should always include the 'bot_commands' and 'core_commands' plugins in the list of safe mode plugins!

JJMumbleBot - v2.3.2 - Bug Fixes in Sound_Board Plugin

Published by DuckBoss over 4 years ago

Release Notes

  • Fixed various path issues/bugs in the sound_board plugin that prevented users from playing audio clips.
JJMumbleBot - v2.3.1 - Web Interface Enhancements And Bug Fixes!

Published by DuckBoss over 5 years ago

Major Updates

Web Interface

  • Added clear history button to command history page
  • Added clear queue button to youtube queue page

Bug Fixes

  • Fixed the navigation bar on the web interface

Other Updates

  • Added missing third party licenses
  • Updated bot version to v2.3.1
  • Updated unit tests to v2.3.1

Note: Dependencies in this release may be outdated. Please update them after installation.

JJMumbleBot - v2.3.0 - Web Interface Updates And Lots Of Bug Fixes!

Published by DuckBoss over 5 years ago

Major Updates

Web Interface

  • The web interface has had a visual overhaul!
  • Changed error messages for incorrect command input.

Bug Fixes And Optimizations

  • Fixed an unresolved reference to the web interface causing it to not shutdown properly.
  • The web interface now recognizes when a command isn't entered in the field and gives an appropriate error.
  • Fixed cases where the bot doesn't download a required thumbnail and crashes.
  • Fixed a case where the bot doesn't properly pre-cache the next video thumbnail.
  • Fixed a case where clearing the queue got rid of the thumbnail for the currently playing song.
  • Youtube video thumbnails are now deleted when they are done playing so extremely large playlists won't store more than 1-3 thumbnail images at a time.
  • Any left over youtube video thumbnails are cleared when the audio thread is complete and the queue is empty.
  • Using the !stop command to stop the audio and clear the queue now also clears the thumbnails.
JJMumbleBot - v2.2.1 - Bug Fixes

Published by DuckBoss over 5 years ago

Bug Fixes

  • Fixed an issue with the web interface where aliases with multi-commands did not function as intended.
  • Fixed a rare case with the youtube plugin where the bot would crash after clearing a playlist in the queue.

Other Updates

  • Updated bot version to v2.2.1
  • Updated unit tests to v2.2.1
JJMumbleBot - v2.2.0 - Whisper Plugin, Web Interface Updates, And More!

Published by DuckBoss over 5 years ago

Major Updates

⚠️ This update modifies how echo/private commands are handled by the bot. Whisper targets override some echo commands such as !queue, !playlist, etc since they are the audio thread users. Other commands like !echo, !move, etc ignore whisper targets when sent by other users. This makes a lot of sense once you start to use commands with/without whispering enabled.

Whisper Plugin

  • The audio plugins can whisper audio to channels, users, or multiple users at the same time.
  • Allow echo commands to ignore whisper target when sent by other users.
!setwhisperuser 'username'  --> Sets the whisper target to the given user
!setwhisperchannel 'channelname' --> Sets the whisper target to the given channel
!clearwhisper --> Clears any previously set whisper target
!setwhisperme --> Sets the whisper target to the command sender.
!addwhisperuser 'username' --> Adds the given user to the whisper targets
!removewhisperuser 'username' --> Removes the given user from the multi-user whisper targets
!getwhisper --> Displays the current whisper target, if any.
  • Set some commands in bot_commands to ignore whisper target (such as !echo, !move, etc)
  • Set some commands in bot_commands to private message the command sender instead of echoing (such as !privileges, etc)
  • Some core commands also private message instead of echoing (such as !alias, !aliases, etc)

Web Interface Updates

  • Added a 'Command History' page that displays the command history list. Works similar to the !history command.
    image

Other Updates

  • Updated pymumble dependency to the newest stable version.
  • Updated youtube_dl and cheroot dependencies.
  • Updated help commands to include the new whisper plugin.
  • Reformatted the web interface html.
  • Added alias : !whisperme for the command : !setwhisperme
  • Updated unit tests for v2.2.0
  • Updated bot version to v2.2.0
JJMumbleBot - v2.1.0 - Web Interface, New Dependencies, Bug Fixes

Published by DuckBoss over 5 years ago

Major Updates

⚠️ Existing users will have to update their config.ini files with the new properties from the sample_config.ini template file under the templates directory.

Web Interface Support

  • Added a basic web interface to remotely send commands to the bot. This is especially useful when you need to send commands to the bot without logging into the mumble server.
  • The web interface can be disabled in the configs.ini file if you don't want it.
  • Make sure to add your bot to your privileges.csv file because the remote commands are executed as the bot user (not a client user). (The wiki's quick start guide has been updated for this)

image

Bug Fixes

  • Fixed !yt command not properly showing the full search results.

New Dependencies For Web Interface

  • cheroot
  • flask
  • wtforms

Other Updates

  • Updated bot version and youtube plugin to v2.1.0
  • Updated gitignore, unit tests, and travis CI files
  • Updated requirements file with new dependencies
  • Changed the bot shut down message
  • Updated README
JJMumbleBot - v2.0.1 - Minor Updates And Bug Fixes

Published by DuckBoss over 5 years ago

Bug Fixes

  • Fixed !sbreplay command for the sound board plugin.

Other Updates

  • Updated plugins and bot version to v2.0.1
  • Added the following aliases:
!imgl --> !imglist
!imgle --> !imglist_echo
!pl --> !playlist
!streamfront --> !linkfront
!rand_help --> !randomizer_help
JJMumbleBot - v2.0.0 - Major Reworks, Youtube AutoPlay, And More!

Published by DuckBoss over 5 years ago

Major Updates

⚠️ For existing users, this update contains changes to your config.ini file. Please look at the sample_config.ini file in the template folder.
⚠️ This update also contains changes to plugins which will require any custom user-made plugins to be updated. The changes are listed below.

Youtube Plugin

  • Added an 'Autoplay' feature which is enabled by default in the configs.ini file.
  • Optimized the youtube queue to add playlists 50x+ faster!
    This feature allows the youtube queue to automatically play the next song in the queue when it finishes.
  • Added !autoplay command to enable/disable autoplay for the youtube queue.
Usage:
!autoplay --> enables autoplay if disabled, disables if enabled.
  • Added !remove command to remove tracks from the youtube queue.
Usage:
!remove 5 --> Removes the 5th track in the queue (you can view the queue with !queue)
  • Added !linkfront command to priority insert direct link videos to the front of the queue
    It works similarly to the !link command but inserts to the front instead of the back of the queue,
Usage:
!linkfront my_yt_link --> Adds direct link video to the front of the queue
  • The !queue command now wraps the resulting list like the !sblist/!imglist commands so that it doesn't hit the mumble text limit if the user allows very large queues.

Changes To Plugins

  • The plugin template has been modified which requires all custom plugins to be updated.
  • Plugins no longer require a mumble reference passed through as a parameter, instead use GlobalMods mumble reference (all built-in plugins have been updated to reflect this change)
  • Plugins now require a 'is_audio_plugin' boolean method (all built-in plugins have been updated to reflect this change)
  • Removed uptime plugin and moved features to the core JJMumbleBot script

Bug Fixes

  • Fixed !uptime command to properly display the elapsed time
  • Fixed issues with safe mode

Other Updates

  • Safe mode now has a fixed tick rate of 0.2
  • Updated bot version to v2.0.0
  • Updated all built-in plugins to v2.0.0
  • Updated plugin template to have an additional method for checking if a plugin is an audio plugin (is_audio_plugin)
  • Updated all plugins as per template changes
  • Optimized all built-in plugins in one way or another (optimizing data usage, removing old code/imports)
  • Added helper scripts to the youtube and sound_board plugins to simplify code
  • Updated all plugins and scripts to use the GlobalMod mumble references
  • Removed uptime plugin and moved it's features to the core bot script
  • Removed uptime command from help plugin and moved it to bot_commands plugin help data
  • Lots and lots of back-end changes that will be too much to list (check commits)
  • Updated unit tests for v2.0.0
  • Updated dependency requirements
  • Added logging to more commands
  • Fully documented the config template
  • Moved bot version checking to GlobalMods instead of configs
  • PEP Updates
JJMumbleBot - v1.8.4 - Youtube Plugin - Playlist Support And New Commands!

Published by DuckBoss over 5 years ago

Major Updates

For existing users, this update contains changes to your config.ini file. Please look at the sample_config.ini file in the template folder.
(Added 'Youtube_MaxPlaylistLength=50' and 'Youtube_AllowPlaylistMax=true' under 'Plugin_Settings' section)

Youtube Plugin

  • Added !playlist command which will add all the songs in a youtube playlist to the queue.
Usage:
!playlist my_youtube_playlist_link --> Adds all the songs from the playlist into the queue.
  • Added !skipto command which will skip to the given track number in the queue.
Usage: 
!skipto 5 --> Skips to track #5 in the queue.
  • Added !shuffle command which will shuffle the tracks in the queue.
Usage:
!shuffle --> Shuffles all the tracks in the queue.

All Updates

  • Added !skipto and !shuffle to the youtube privileges csv file with a default privilege level of 2.
  • Added Youtube_MaxPlaylistLength in the config.ini file (default=50) which will limit the number of videos from a youtube playlist.
  • Added Youtube_AllowPlaylistMax in the config.ini file (default=true) which will allow users to play playlists up to the playlist length limit instead of rejecting the playlist if it exceeds the length limit.
  • The !clear command in the youtube plugin now deletes temporary thumbnail images when the queue is cleared.
  • Updated youtube plugin version to v1.8.4
  • Updated bot version to v1.8.4
JJMumbleBot - v1.8.3 - Images/Youtube Plugin Updates, PGUI Improvements, And More!

Published by DuckBoss over 5 years ago

Major Updates

For existing users, this update contains changes to your config.ini file. Please look at the sample_config.ini file in the template folder.
(Added 'Images_FrameColor=black' and 'Images_FrameSize' under 'Plugin_Settings' section)

Images Plugin

  • The images plugin now uses the PGUI system to push images to the mumble server.
  • Images posted in the mumble chat will have a frame added to it.
  • Added FrameColor support to PGUIs in the images plugin. The color is customizable in your config.ini file.
  • Added FrameSize support to PGUIs in the images plugin. The size is customizable in your config.ini file.

Example: Changing 'Images_FrameColor' value to 'blue' in the config (default=black):
This changes the frame around the image to the color blue.
image
Example: Changing 'Images_FrameSize' value to '0' in the config (default=5):
This changes the frame size around the image to 0 (no frame).
image

Image Source - Commons.wikimedia.org

Youtube Plugin

  • The youtube plugin frames thumbnail images from youtube videos better using the PGUI system.

All Updates

  • The image plugin now notifies users if they try to display an image that doesn't exist. (Works similarly to the sound_board plugin when trying to play a sound clip that doesn't exist)
  • Moved image handling code to a separate image_helper script
  • Added more helper methods to gui_helper script
  • Removed unused imports in various plugins
  • Fixed trailing whitespaces
  • Added italics method to gui_helper
  • Added underline method to gui_helper
  • Made caption text in quick_gui_img method optional
  • Updated pgui to allow pre-formatted image data
  • Updated images plugin to use pgui system
  • Updated youtube plugin to use refactored caption handling in pgui
  • Added container background color support to quick_gui_img method
  • Updated Travis CI
  • Updated unit tests
  • Updated image/youtube plugins to v1.8.3
  • Updated bot version to v1.8.3
JJMumbleBot - v1.8.2 - PGUI Image Support, Youtube Plugin Updates, Config Changes

Published by DuckBoss over 5 years ago

Major Updates:

PGUI Image Support

The PGUI System now has limited image support which is implemented in the youtube plugin update.

Youtube Plugin Update

Since the PGUI System has image support, the youtube plugin can now show you the youtube thumbnail for the currently playing video.
The !song command has also been updated to show thumbnail images.

New "Now Playing..." Message Examples:
image
image

Config Changes

In previous versions of JJMumbleBot, updating the bot overwrote configured config.ini files which made it inconvenient to update and reconfigure files every update. To resolve this, the bot now provides a 'sample_config.in' file in the templates folder which users must copy to the bot's root directory, rename it to 'config.ini' and configure as they please.
This is useful for existing users, who don't want their config files overwritten every update
I've updated the wiki's quick start guide to reflect this change for new users.

All Updates

  • The sound_board and images plugins now sort files alphabetically for !sblist/!imglist type commands.
  • Renamed config.ini to sample_config.ini and moved it to the templates folder. (updated wiki)
  • The repository no longer overwrites existing config.ini files when updating.
  • Basic image support in PGUI System
  • The youtube plugin now displays thumbnails for videos that are played.
  • The !song command in the youtube plugin displays the thumbnail when showing the current song.
  • Refactored some text for consistency.
  • Corrected quotations in gui_helper.
  • Increased default command tick rate speed to 0.01s instead of 0.1s
  • Updated the youtube plugin version to v1.8.2
  • Updated the images plugin version to v1.8.2
  • Updated bot version to v1.8.2
  • Travis CI unit testing integration
JJMumbleBot - v1.8.1 - Reconfigurable PGUI Settings, Bug Fixes, And More!

Published by DuckBoss over 5 years ago

Major Updates

Reconfigurable PGUI Settings

You can now change the default canvas colors, text colors, etc for the PGUI System in the config.ini file and customize it to your liking.
image

For more information on the Pseudo-GUI (PGUI) System, check the v1.8.0 release notes:
v1.8.0 Release

Bug Fixes

  • Fixed inconsistent spacing/newlines in various command outputs
  • Fixed inconsistent color scheming in the privileges python script
  • Fixed inconsistencies in PGUI outputs
  • Fixed empty output if there was exactly 50 images available
  • Fixed empty output if there was exactly 50 sound clips available
  • Fixed image/sound_board plugins not private messaging PGUI containers when they were supposed to
  • Added missing !imglist_echo command to privileges file

All Updates

  • Updated all built-in plugins to use the PGUI configs unless overriden
  • Added version information to !about command outputs
  • Left justified some PGUI elements
  • Left justified !imglist command PGUI output
  • Added cellpadding to the PGUI containers
  • Removed some unused code
  • Updated privileges script to use python3.6+ string formatting
  • Updated bot version to v1.8.1
  • Updated built-in plugins to v1.8.1