Code Monkey home page Code Monkey logo

sftmumblebot's Introduction

Description

This bot provides a text bridge between an IRC channel and a Mumble server.

How to install/configure/run

You can directly run sftbot by typing ./run or python2 -m sftbot. To permanently install sftbot, type sudo ./setup.py install. Then, you can run it by typing sftbot.

You need to provide a config file that (among others) contains user credentials for the bot. An example conf file can be found in sftbot.conf.example.

You can either specify a conf file path as a command line argument (sftbot myconffile.conf), or place it at ./sftbot.conf or /etc/sftbot.conf.

Generating Self-Signed Certificates

This bot has the capabilities of using Mumble's built-in SSL authentication methods to authenticate and register your bot on the server. If certificates are not generated, the bot will still be able to join the server, but it cannot be registered as an authenticated user on the server. To use this feature, you can generate a self-signed SSL certificate for the bot by running the following line in the root of the sftmumblebot installation directory: $ openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem

If you permanently install the script, you should specificy an absolute path in front of the certicates on the sftbot.config file.

Behaviour

By default, the bot

  • Relays messages from a mumble channel to an IRC channel
  • Leaves the channel when somebody types 'gtfo'
  • Tries to reconnect on connection failures

However, this behaviour can be altered easily by editing sftbot/__main__.py, which contains several fairly self-explainatory callback functions that will be automatically invoked at the appropriate times. For example, certain IRC messages may be ignored by adding a line if message.contains('bannedtext'): return to the top of ircTextMessageCallback. More complex, 'botty' behaviour may be implemented the same way; note that you can call irc.sendTextMessage() and mumble.sendTextMessage() from everywhere within the callback functions.

Dependencies

  • python2
  • protobuf-python (Debian/Ubuntu package: python-protobuf, Arch package: python2-protobuf)

TODOs

Nice-to-have features (which we don't plan to implement right now, but feel free to do it yourself):

  • SSL certificate validation support
  • SSL client certificate support
  • More chat protocols (e.g. XMPP multi-user chat)
  • Init scripts for <your distribution here>

Misc

Mumble uses Google Protobuf for most of its communications; this means that one code file needs to be auto-generated (that's what the Makefile is there for). Unfortunately, protoc does not officially support python3, so we're forced to deal with python2 and all its string buffer ugliness.

Contact

You can find us at irc.freenode.net/#sfttech. If you found a bug, feel free to join and randomly insult channel OPs until someone fixes it (or bans you). Alternatively, fix it yourself and send a pull request.

Contributors/Copyright

See COPYING. The license is GPLv3 or higher.

sftmumblebot's People

Contributors

dopeghoti avatar jmactheattack avatar mic-e avatar thejj avatar thvortex avatar tslocum avatar

Stargazers

 avatar

Watchers

 avatar  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.