GithubHelp home page GithubHelp logo

eswcvlad / pymumble Goto Github PK

View Code? Open in Web Editor NEW

This project forked from azlux/pymumble

0.0 1.0 0.0 1.96 MB

Mumble client implementation in Python

License: GNU General Public License v3.0

Python 100.00%

pymumble's Introduction

PYMUMBLE python library

Description

This library acts as a mumble client, connecting to a murmur server, exchanging states and audio.

Build Status

The wiki/API explanation is HERE.

Installing/Getting started

Requirements

libopus is a mandatory OS library when sending and receiving audio. Please refer to your package manager to install it.

With pip

  • pip install pymumble
  • You need to import pymumble_py3 as pymumble into your code.

PyPI version Deployment script is available here

With git

  • git clone https://github.com/azlux/pymumble.git
  • pip3 install -r requirements.txt
  • You need to import pymumble.pymumble_py3 as pymumble into your code.
  • It's will be the same if you use a git sub-module

CHANGELOG

The changelog is available on the release note.

Applications list using pymumble

For client application examples, you can check this list :

Features

Currently implemented:

  • Compatible with Mumble 1.3 and normally until 1.2.2
  • Support OPUS. Speex is not supported
  • Receive and send audio, get users and channels status
  • Set properties for users (mute, comments, etc.) and go to a specific channel
  • Kick and ban users
  • Callback mechanism to react on server events
  • Manage the blobs (images, long comments, etc.)
  • Can send text messages to user and channel
  • Ping statistics
  • Audio targets (whisper, etc.)
  • Read ACL groups

What is missing:

I don't need these features, so if you want one, open an issue and I will work on it.

  • UDP media. Currently it works only in TCP tunneling mode (the standard fallback of Mumble when UDP is not working)
  • Some server management features (user creation, editing ACLs, etc.)
  • Positioning is not managed, but it should be easy to add
  • Probably a lot of other small features
  • WONTFIX The Python 2 version is available in the master branch. It's working! But since we have moved on to Python 3, the Python 2 version will not receive future improvements.

Architecture

The library is based on the Mumble object, which a thread. When started, it will try to connect to the server and start exchanging the connection messages. This thread implements a loop which takes care of the pings, sends commands to the server, checks for incoming messages including audio, and checks for audio to be sent out. The rate of this loop is controlled by how long it will wait for an incoming message before continuing.

You can check if the thread is alive with mumble_object.is_alive(). The Mumble thread will stop if it disconnects from the server. This can be useful if you need to restart the thread when using a supervisor.

Thanks

  • @raylu for making pymumble speak into channels
  • @schlarpc for fixes on buffer
  • @Robert904 for the inital pymumble implementation

This library is a fork of a fork of a fork (initial from https://github.com/Robert904/pymumble). But we will try to make pymumble better. So I consider this fork (the @Azlux one) the current live fork of pymumble.

pymumble's People

Contributors

anewusername avatar arnidagur avatar azlux avatar bafdyce avatar bitconnector avatar captainzidgel avatar dalrae1 avatar duckboss avatar evansloan avatar fanchenbao avatar gameoneyt avatar grandpa-g avatar infinisil avatar lamantal avatar lartza avatar martb avatar myrionphoenixmoon avatar pramadhana92 avatar raek avatar ranomier avatar raylu avatar robert904 avatar rotdrop avatar suyooo avatar terrygeng avatar tikki avatar wasauce avatar wyattporter avatar xefir avatar yquemener avatar

Watchers

 avatar

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.