<commit_before># Tetrad: cross-chat-platform integration

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

# Requirements

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

# Running:

Currently only runnable through IDEA. Add the following to your app args:

```
--config /path/to/your/service/config.yml
```

## 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.<commit_msg>Minor README update<commit_after># Tetrad: cross-chat-platform integration

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

# Requirements

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

# Running:

Currently only runnable through IDEA. Add the following to your app args:

```
--config /path/to/your/service/config.yml
```

Main class is `com.dmitriid.Tetrad`

## 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.
{'fraction_non_alphanumeric': 0.06384039900249376, 'fraction_numerical': 0.0, 'mean_word_length': 4.015, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6898003', 'n_tokens_mistral': 619, 'n_tokens_neox': 600, 'n_words': 289}