Code Monkey home page Code Monkey logo

blackhole-bot's Introduction

Blackhole

This bot will connect to an IRC channel and a Jabber MUC, and relay everything back and forth, serving as a gateway.

Prerequisites

It is assumed that you have composer already installed. In order to run this as a service, systemd is required. This was built with Debian 8 in mind. I'm a Debian user, and rarely get onto other distos. If you'd like to further develop the installer, please create a PR and I'll be happy to include it =)

Quick install

The best way to install this project is with composer. In fact, it's the only supported method. IF you chose to grab the deps and install everything by hand, more power to you. I will not help you with this if you run into problems.

  1. Clone this repo
  2. run composer install
  3. run make
  4. run sudo make install
  5. edit /etc/blackhole-bot/blackhole.yml to suit your needs. It is recommended that you create a user for the bot to run as. You can grab the user's uid with id -u <username> and the gid with id -g <username>
  6. service blackhole-bot <start|stop|status> to control the bot after configuration.

Make Targets

  1. make - Builds the bot
  2. make install - Installs the bot and installs the systemd service file
  3. make uninstall - Uninstalls the bot
  4. make clean - Cleans the working directory

Development

Development can be done inside the vagrant vm...

  1. run vagrant up
  2. run vagrant ssh

For testing purposes you can run the bot with ./bin/bot. Make sure to copy config/blackhole.yml.sample to config/blackhole.yml and you're good to go.

  • For CLI options, run ./bin/bot -h

Contributing

Anyone is welcome to contribute to the project. Make a fork, make some changes, and create a pull-request to contribute. Please let it be known, I wont accept any pull requests with code that doesn't follow PSR/2, or anything that looks to be a mess.

Considerations

This bot is a side project. I will try to maintain it, but I make no promises. If you like it, contribute to it =)

Known issues

  • The XMPP library is bullshit. It desperately needs a replacement.

blackhole-bot's People

Contributors

jubaleth avatar

Watchers

 avatar  avatar  avatar

blackhole-bot's Issues

Unit tests

There are none, there should be some. That needs to happen.

Find new XMPP Lib

JAXL is horrible.

  1. I have no idea what the library is doing on the inside because everything is built in such a complicated way
  2. It doesn't use a PSR/3 logger so I can't redirect logging... Lame.
  3. (this should probably be #1) the code scares me. A lot.

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.