leapchat icon indicating copy to clipboard operation
leapchat copied to clipboard

Create IRC-to-LeapChat proxy as to enable reuse of existing IRC chat bots

Open elimisteve opened this issue 6 years ago • 1 comments

TL;DR of architecture: IRC bot => local trusted IRC proxy => remote untrusted LeapChat server


the IRC bot won't actually connect to a normal IRC network

it'll connect to a local proxy/API thing

Let's break this down into steps... Say you want to have a bot in LeapChat

so you write a LeapChat bot in Go or JS/TS that connects to a LeapChat server

the bot just needs a URL like https://www.leapchat.org/#ThawHuddlingRaspberryGooeyCaviarUnquenchedUnzipCufflinkDorsalGuacamoleEditorShirtBackpackMassagerShirtAjarRhapsodyOzoneSniffVestibuleLikewiseOxygenEnsembleFootpathBabbling

then bam, it has what it needs to connect

the bot can now read and write chat messages from that chat room

suppose we add a feature to the bot so that when it sees a message that begins with

!time

it replies into the chat room with the current time in UTC

now suppose we want to add a portscanning feature to this bot

we could write it in Go or JS/TS, but we'd like to use an existing chat bot that already has this functionality

and that bot is an IRC bot

so instead of building it ourselves, we build an IRC-to-LeapChat translation API, which is basically an "IRC proxy"

So instead of our original LeapChat bot, we have two pieces: the portscanner bot, and a local-to-the-portscanner-bot's-machine IRC-to-LeapChat proxy.

This proxy parses LeapChat messages coming from the server, decrypts them, formats them as IRC messages, then sends those messages to the local IRC bot.

In the other direction: the proxy reads the IRC message from the bot (that contains the result of a portscan, for example), encrypts it and formats it for LeapChat, then sends it to the LeapChat server it is connected to


There are some open questions, like: does the IRC bot think it's connected to multiple rooms?

Talk to @elimisteve if you'd like to get started with this task!

elimisteve avatar Jan 02 '19 08:01 elimisteve

I'd forgotten about this. Very interesting alternative to creating an entirely new TUI client for encrypted apps...

elimisteve avatar Jan 22 '23 05:01 elimisteve