Giter Club home page Giter Club logo

chumbot's Introduction

Chumbot

The Conveying Harmonies Unto Mumble Bot, or Chumbot, is a Mumble soundboard and notification bot written in Python 3. Chumbot relies on the PYMUMBLE API, and requires libopus and ffmpeg to be available on the host machine.

Chumbot is currently not supported on Windows.

Installation

For users

The Chumbot client can be installed via pip:

pip install chumbot

For developers

Chumbot can be installed for development by first installing Poetry and running the following command within the project directory:

poetry install

Usage

The Chumbot interactive shell is run from the command line. Audio clips should be stored in mp3 format.

usage: chumbot [-h] [-u USERNAME] [-H HOST] [-P PORT] [-p PASSWORD] [-d]

Chumbot command-line interface

options:
  -h, --help            show this help message and exit
  -u USERNAME, --username USERNAME
                        specify Chumbot's username
  -H HOST, --host HOST  specify the Mumble host address
  -P PORT, --port PORT  specify the Mumble host port
  -p PASSWORD, --password PASSWORD
                        specify the Mumble host password
  -d, --debug           enable debug message printing

Once connected, Chumbot's default behavior is to move to the channel with the most users. Chumbot can be moved manually by turning off auto-move and using the move command from the interactive shell. (See the ChumShell for a list of all commands.)

Mumble users can interact with Chumbot by simply typing the names of audio clips (no extension) into the Mumble text chat. Multiple clips can be queued sequentially by typing them comma (,)-separated (white-space does not matter). Up to 10 clips can be queued at once, by default. Typing a * character will play a random sound. If only one random sound is played, the name of that sound clip will be displayed in Mumble text chat.

Mumble users can type list into Mumble chat to make Chumbot print the list of all clips into Mumble chat, broken up into segments of up to 50 clips per message, by default, due to character limits. Users can type ?string to display a list of all sound clips containing string in text chat.

Configuration

Chumbot configuration is stored in ~/.config/chumbot.ini. Chumbot must be configured to know where audio files are stored.

Chumbot can be configured to play a specific clip when a link or image is posted or when a user joins or leaves a channel. It can even be configured to play a personalized 'join' or 'disconnect' sound for each user.

An example chumbot.ini:

[mumble]
Username = chumbot
Host = example.murmur.nfoservers.com
Port = 2112
Password = 1234

[clips]
ClipDir = ~/chumbot-clips
LinkPostedClipName = link_clip
UserJoinedClipName = default_join_clip
UserLeftClipName = default_leave_clip

[join]
user1 = join_clip1
user2 = join_clip2
user3 = join_clip3

[disconnect]
user1 = disconnect_clip1
user2 = disconnect_clip2
user3 = disconnect_clip3

Contributing

Contributions are taken and any pull requests will be reviewed by me (eventually).

Please attempt to adhere to the coding practices in .pylintrc. Ensure no pylint warnings are generated before creating a PR.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.