Giter Site home page Giter Site logo

tetrad's Introduction

Tetrad: cross-chat-platform integration CircleCI

Send messages from an XMPP chatroom to a Slack channel and vice versa. Connect Telegram groups. Have four-five-six-way chats.

The tetrad name comes from tetra meaning "four" and d for "daemon", as originally it was going to connect four platforms.

The word "тетрадь" (tetrádʹ [tʲɪˈtratʲ]) means "exercise book, notebook" in Russian, hence the icon (I know it's a clipboard, not a notebook, but I like it :) ).

Chat platforms supported as of version 0.2

  • Slack
  • XMPP
  • Telegram
  • IRC

Note: you can have two-way communication between any of these services

Requirements

  • This code
  • An MQTT server with anon user enabled running on local server (set broker urls in configs)

Running:

Fat jar

mvn package

and then

java -jar tetrad-0.1-with-dependencies.jar --config /path/to/config.yml

Docker

See Dockerfile.build and Dockerfile.run. The Dockerfile.run currently in repo will start several different services. Use it to create your own configurations

Makefile

Run make all to build source code, create and run docker images. Rum make run to just run the created docker image

What

Config files specify what exactly tetrad should be running. These could be services or mappers.

Services

These will listen to all incoming messages from a service (Slack, Telegram etc.) and post them to a firehose queue in MQTT.

They will listen to a specified mqtt topic and post messages on that topic back to the service.

See X-service.yml for sample service configs.

Mappers

A mapping will listen to all messages on the firehose mqtt topic, will convert the message according to a configuration and post the new message back to a specified mqtt topic.

See X-to-Y.yml for samle mapping configs.

Transformations

Additionally apply a random transformation on a FirehoseMessage.

Before the messages get to firehose

See config/samples/slack-service.yml for samle transformation config.

Before the messages get to the dedicated service

See config/samples/slack-to-xmpp.yml for samle transformation config.

Credits

Icon made by Dario Ferrando from www.flaticon.com is licensed by CC 3.0 BY

tetrad's People

Contributors

dmitriid avatar cy6erbr4in avatar

Stargazers

 avatar  avatar Friedrich von Never avatar

Watchers

 avatar

Forkers

cy6erbr4in

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.