Skip to content

Releases: DuckBoss/JJMumbleBot

v4.2.1 - FFmpeg Playback and Config Fixes

16 Sep 21:44
e6e6e3d
Compare
Choose a tag to compare

FFmpeg Playback Fix

  • Fixed FFmpeg playback issue where the youtube video would stop playing 2/3rds of the way through because the URL expires. FFmpeg now auto-regenerates the URL when this error occurs.

FFmpeg Config Fix

  • Fixed 'FfmpegRunQuiet' config parameter.

Other Updates

  • Removed additional deprecated references to VLC.

v4.2.0 - Audio Library Changes, Many Plugin Updates, New Wiki, Etc.

16 Sep 07:12
Compare
Choose a tag to compare

NOTE: This update replaces the previous VLC requirement with FFmpeg.

This should be a performance boost and will have fewer dependencies since ffmpeg doesn't have a lot of extra packages like vlc.

  • Existing users:
    • please make sure to install FFmpeg for your system, and you can delete VLC as it is no longer required. Make sure to update your config.ini file.
  • New users:

Major Updates

Replaced VLC with FFmpeg

  • Experimenting with using FFMPEG directly instead of VLC.
  • This change should theoretically not be noticeable to any users.

Bot Commands Plugin

  • Added new command: !cmdsearch
    • Search for a command from the full list of commands available using fuzzy-searching to find the closest results.
      !cmdsearch 'command_name' : Search for a command from the full list of commands available.

Sound Board Plugin

  • !sbdownload command now supports an optional parameter providing a timestamp range to trim the downloaded clip.
    !sbdownload 'youtube_link' 'file_name' 'H:M:S-H:M:S'
    Example:
    !sbdownload https://youtu.be/bqDrftAxYpk test_file 0:1:10-0:2:15
  • Added new alias: sbd - !sbdownload
    !sbd 'youtube_link' 'file_name'
  • sound_board files played with !sb/!sbnow/!sbquiet/!sbquietnow can now loop tracks when loop mode is enabled.
    • sound_board files played with !sbrandom/!sbrandomnow don't loop.

Images Plugin

  • Added new command: !imgsearch
    Search for a command from the full list of images available using fuzzy-searching to find the closest results.
    • !imgsearch 'image_name': Searches through locally stored images and returns the closest results.
  • Fixed !post command.
  • The !post command now displays an error message when a common http error occurs.

Server Tools Plugin [NEW]

The server_tools plugin is an administrative plugin for high-permission users to set callback methods to mumble server events.
For now, the plugin contains callback events to play an audio clip when users join the server. This is an optional feature, configurable in the plugins' metadata.ini file.
Note: Any audio clips from the sound_board permanent directory can be used.
Note: The user connection audio feature is disabled by default and can be turned on in the metadata.ini file

  • Supports generic connection sound clips for all users, and per-user connection sound clips
    • Added new command: !setdefaultconnectionsound
      !setdefaultconnectionsound 'audio_clip_name': Sets the generic audio clip that is played when a user joins the server.
    • Added new command: !clearuserconnectionsound
      !clearuserconnectionsound 'username': Clears the audio clip associated with the given username.
    • Added new command: !getuserconnectionsound
      !getuserconnectionsound 'username': Displays the audio clip set to play whenever the given username connects to the server.
    • Added new command: !setuserconnectionsound
      !setuserconnectionsound 'username' 'audio_clip_name': Sets the audio clip that will play whenever the given user connects to the server.

New Wiki/DocumentationWebsite

  • There is a new custom built wiki website which is designed to be easily updated with changes in the repository and new JJMumbleBot versions.
    Visit the new wiki here: JJMumbleBot Wiki

Other Updates

  • Updated versions to v4.2.0
  • Updated youtube_dl dependency version to 2020.9.14
  • Fixed various small bugs

v4.1.0 - New Plugin Callback System, Sound Board Updates

12 Sep 22:59
Compare
Choose a tag to compare

NOTICE: This update DOES NOT require any config changes, so it is a relatively easy update!

Major Updates

New Callback System for easy custom plugin callbacks to Mumble server events

I created a new extensive callback system that all plugins can use to directly interface with mumble server events such as receiving audio, messages, user connection/disconnection, etc.

For example, if you want a plugin to execute some code in response to a user connecting to the server, that is now possible!
Possible uses of this system:

  • Create a custom plugin callback to play an audio clip when a user connects to the server.
  • Create a custom plugin callback to display a message when it receives audio data from a user.

You can create a custom callback in any plugin to react to server events however you want!

Sound Board Plugin (New Optional Feature)

  • The sound board is now capable of playing a sound clip whenever a user connects to the server. This is configurable in the sound board plugins metadata.ini file. This is an optional feature
; Play a selected audio clip when a user joins the server. (Set this to True to enable)
PlayAudioClipOnUserJoin = False
; If PlayAudioClipOnUserJoin is set to True, specify the track name (without file extension) below.
AudioClipToPlayOnUserJoin =

v4.0.0 - Major Changes, New Features, Bug Fixes

01 Aug 01:09
5143bd8
Compare
Choose a tag to compare

This is a major update which fundamentally changes a lot of internal systems of the bot.
Please refer to the wiki for a quick-start guide and additional documentation.
Click here to view the Wiki

  • For existing users: I suggest setting this up like a new user instead of updating your existing build. This is because this major update changes how aliases are handled, and there are many additions to the config.ini file.

Have any questions or need help?

  • Post an issue using the 'Question' template: Github Issues
  • If your question/help contains private/personal information, you can email me directly at [email protected]

Major Updates

Security Update - New Startup Procedure

  • The server ip/port/password is no longer saved in the config.ini file, so you need to enter it as a launch parameter like so:
    python JJMumbleBot/ -ip 127.0.0.1 -port 63478 -password mypassword
  • If your server doesn't require a password, you don't need to add the launch parameter.

Updated Web Interface

  • A fully functional media player is available in the web interface to control the bot audio.
    image

Reworked Commands/Aliases Processing System

  • New alias processing so that aliases work regardless of what command token you use (ex: !echo/~echo/$echo)
Old: !alias test !echo this | !echo is | !echo a | !echo test
New: !setalias test (echo) this | (echo) is | (echo) a | (echo) test
  • To update any existing aliases you have saved, simply follow the template above and surround the command in brackets without the presence of the command token.

Audio Commands Core Plugin - Centralized audio controls for whatever plugin is using the audio interface.

  • !volume/!pause/!resume/!replay/!shuffle/!skip/!stop/!loop/etc etc.... are commands for the audio interface that will work across any audio plugin (no more separate commands for each plugin, like !sbstop or !ytstop, etc.)
  • Improved "Do Not Interrupt" system so audio plugins don't accidentally play over each other
  • Improved track looping system (no longer interrupts audio/queue)
  • Implemented callback system so audio plugins can react to events in the audio interface.
  • Optional Audio Ducking so the bot automatically lowers the volume when it detects people talking in the channel.
  • New volume fading feature so that changes in volume are smooth and not abrupt.
  • Audio threads are created from the audio interface library which improve performance and memory usage.
  • For a full list of commands, use the !help command.

Media Plugin (Formerly 'Youtube Plugin'): Major improvements

  • Youtube plugin has been renamed to Media Plugin since SoundCloud support has been added.
  • SoundCloud URL support (no playlists support).
  • Youtube playlists generation has been sped up a lot, so it won't take forever to load (and no audio breaks when generating).
  • Faster youtube searching and video loading.
  • Improved thumbnail image retrieval and management.
  • Optional proxy url support for media plugin for users that use proxy servers.
  • Optional cookies file support for media plugin for users that may hit rate-limits.
  • For a full list of commands, use the !help command.

Sound Board Plugin - Major improvements

  • Support for queuing sound board clips (optional feature, default behaviour is still the same as v3.0+).
  • New commands: !sbnow/!sbquiet/!sbquietnow/!sbrandomnow/etc etc
    • Commands with quiet in them won't message the channel when the track starts playing.
    • Commands with now in them will override any existing queue and play the track immediately.
  • Updated sound_board plugin to use any vlc-supported file type (you can use webm, mp3, wav, etc etc).
  • Updated !sbdownload command to download youtube videos as 'webm' file types to save 50x-100x storage space.
  • Added !sbsearch command that uses fuzzy-searching techniques to find files most closely matching the search query.
  • For a full list of commands, use the !help command.

Randomizer Plugin

  • Added !d20roll command to roll d20 dices.
  • For a full list of commands, use the !help command.

Dependencies

  • New dependencies:
    - fuzzywuzzy (fuzzy-searching library)
    - python-Levenshtein (increases fuzzy-searching performance up to 10x)
  • Removed dependencies:
    - psutil

Third-Party Plugin Development

  • Plugin development is easier than ever for JJMumbleBot! Please refer to the wiki for more information and check the plugin_template.py python file in the cfg/templates/ directory to get started.
  • New callback-based command processing in plugins which make adding new commands super easy.
    • No more long if-else statements, just add your command name to the metadata.ini file for your plugin and write a method prefixed with cmd for the command.
    • Example: def cmd_mycommand(self, data):
    • Check the wiki for more information on plugin development.
  • Any audio plugin (third-party or not) can easily use this audio interface to make plugin development fast.
  • Centralized audio information handling which means that web interface development for audio plugins will be a lot easier.

Other

  • Improved support for custom fonts/background colors in GUI system.
  • Optional auto-reconnect on bot disconnection.
  • All plugins have been updated to use v4.0.0+ systems and have been redesigned from scratch.
  • Updated QSU web page for v4.0.0 configs.
  • LOTS OF BUG FIXES (way too many to explain)

v3.1.3 - Bug Fixes, New Customization Options

13 Jul 19:00
feba2aa
Compare
Choose a tag to compare

New Customization Options

Youtube Search Results Length

  • Youtube search results length can now be customized in the metadata.ini file in the youtube plugin.
; Max number of search results to be shown by the !yt command.
MaxSearchLength = 10

Internal Database

  • Made automatic database backup optional.
    This can be set in your config.ini file (refer to the config_template.ini file for existing users)
; Enable or disable automatic internal database backups
EnableDatabaseBackup = True

Bug Fixes and Other Updates

  • Fixed issue where new users couldn't launch the bot because it was trying to backup a pre-existing internal database.
  • Fixed index out of range error when youtube search results were fewer than expected.
  • Fixed issue with youtube search results not working for most videos (this was caused by a major youtube infrastructure change).
  • Updated quick setup utility web interface to include the new config parameters.
  • Updated Pillow dependency to v7.2.0
  • Updated pymumble dependency to v1.3.1
  • The wiki has been updated to reflect the changes made to the config/metadata files.

v3.1.2 - Major Web Interface Upgrades, New Sound Board Commands

22 Jun 06:47
Compare
Choose a tag to compare

New Features

Sound Board Plugin

  • Added !sbquiet and !sbloopquiet commands to the sound board plugin.
    These commands work identically to !sb/!sbloop commands except there is no message displaying the current sound clip to the channel.

Web Interface

  • Redesigned the web interface to have a Dark Theme
  • Downloading the bot report from the web interface now includes additional information.
  • The up-time of the bot is now visible in the web interface
  • The channels/users in the server are updated live in the web interface
  • The most recently outputted message from the bot is displayed in the web interface
  • Added favicon.ico to the web interface

Web Interface Preview Image

image

v3.1.1 - Patch for youtube thumbnails

16 Jun 19:15
Compare
Choose a tag to compare

Youtube keeps changing their infrastructure and their most recent change seems to have broken youtube-dl's system to collect thumbnail images correctly.

Some videos are currently downloading webp thumbnail images instead of the supported jpg images. This is incompatible with mumble, and I have provided a small patch in this update until youtube-dl can resolve the issue.

This patch may be removed in the future when youtube-dl is able to resolve the issue.

All Updates

  • Patched an issue with webp images being downloaded by youtube-dl instead of jpg images.
  • Fixed inaccuracy with youtube plugin help data.
  • Updated youtube plugin to v3.1.1
  • Updated requirements.txt with the newest youtube-dl version.
  • Added FAQ wiki link to the ReadMe file.

v3.1.0 - Web Interface, Database Backups, Updated PGUI, etc.

15 Jun 21:01
Compare
Choose a tag to compare

Note: Keep your dependencies up to date! The requirements.txt package versions will probably be outdated by the time you download this release.

New Features

Web Interface (Optional Feature)

I've implemented a basic web interface that shows the currently active plugins and allows
commands to be sent remotely to the bot.
This is just a basic interface, and will be improved over time to include more features.
Please refer to the Quick Start Guide and the Config.ini Reference in the Wiki for setup information

  • The introduction of the optional web interface brings 3 new dependencies:
    • websockets : Used for providing continuous live data between the bot and web interface.
    • flask : Provides a web page for the interface, and allows commands to be sent remotely.
    • gevent : Production-ready server for the web interface.
  • Added button for downloading bot/system reports as a JSON file. It currently has limited information but will be more useful when the interface is expanded to include more features.

PGUI Updates

  • Custom default font for PGUI content
    • The default font can be set in the PGUI section of the config.ini file. By default, the font is set to 'Calibri'.
  • Support for background colors in PGUI elements

Core Commands

  • New command: !pgui_stress_test
!pgui_stress_test 'num of lines': Runs a PGUI stress test by creating multiple lines of PGUI elements.

Quick Setup Utility

  • Updated the quick setup utility to include all the changes to the config.ini, so using the QSU should be up to date for config file generation.

Database Backups

  • The internal database is backed up to the JJMumbleBot/cfg/backups folder everytime the bot is launched. The file name is created with a date-stamp.

Other Updates

  • Improved startup logging/console outputs.
  • Removed debugs, optimized data handling
  • Added notice about murmur text-message length allowances to ReadMe and Wiki
  • Various bug fixes

v3.0.9 - Bug Fixes And Optimizations

14 Jun 16:11
Compare
Choose a tag to compare

Note: If your !help commands don't function correctly, update to this version and regenerate your database. You don't need to reconfigure any configs, plugins, etc.

Refer to the Quick Start Guide and New Version Update Guide if this is your first time updating the bot.

All Updates

  • Fixed missing field in the quick setup utility web page. Configs generated from the QSU should be fully functional now.
  • Fixed !help command showing incorrect plugin names
  • Fixed typo that caused incorrect formatting in randomizer plugin help data
  • Fixed log/print message for inserting help data into the database.
  • Made some internal database optimizations when importing new data.
  • Fixed importing issue with help data from plugins. The !help 'plugin_name' command should now work correctly.
    • Thanks to @ajmandourah for bringing up the issue with the help commands.
  • Fixed incorrect message being displayed when removing aliases from the database.
  • Fixed run-time error when trying to retrieve an alias from the database that doesn't exist.
  • Removed various debug statements.

v3.0.8 - New/Changed Commands, Quick Setup Utility For Configs

14 Jun 00:20
727abea
Compare
Choose a tag to compare

New/Changed Features

Quick Setup Utility - Web Interface For Config.ini Creation

  • I've made a simple config.ini generator as a web page on my github repository pages.
    All it does is help you set up your config.ini file and generates one for you to download and use for your bot.
    Link: Config.ini Generator

Sound Board Plugin

  • Renamed !sbskip to !sbseek in the sound_board plugin, it still works the same as before.
  • Updated sound board error message for !sbseek

Youtube Plugin

  • Made some optimizations to the youtube plugin.
  • Updated web interfacing code to use requests instead of urllib.
  • Added !seek command
!seek 'seconds' : Skips ahead in the track by the given amount of seconds.

Help Plugin

  • Revised the formatting of the !help command to separate the core/extension plugins. (Improved readability)

The wiki has been updated to reflect the changes in this update.