Skip to content
This repository has been archived by the owner on Aug 2, 2023. It is now read-only.
/ critter Public archive

Chat bot relaying messages between IRC and Gitter

License

Notifications You must be signed in to change notification settings

oprypin/critter

Repository files navigation

Critter

Chat bot relaying messages between IRC and Gitter

Requires Crystal 0.34 or later to compile.

Check it out: on Gitter / #critterbot on Libera.Chat

The messages are sent from one nickname – a special bot account, both on IRC and Gitter. It looks like this:

  • Gitter:

    Oleh Prypin @BlaXpirit 23:25
    Writing from Gitter

    Bridge bot @bot 23:27
    <BlaXpirit> Writing from IRC

  • IRC:

    [23:25] <bot> <BlaXpirit> Writing from Gitter

    [23:27] <BlaXpirit> Writing from IRC

The bot replies to mentions and private messages, giving information about itself. It does not respond to !commands of any sort.

Long/multiline messages (primarily code pastes) from Gitter are collapsed when sending to IRC, but a link to the original message is provided.

Usage example:

critter \
--irc-host=irc.libera.chat --irc-port=6697 --irc-ssl=yes --irc-nick=FromGitter    \
--irc-password='Pa$$word' --gitter-api-key=da39a3ee5e6b4b0d3255bfef95601890afd80709 \
--contact-info="Contact ... on Libera.Chat or email bridge@example.org for support"    \
--irc-channel=##my-channel --gitter-room=CoolDude/testing \;                        \
--irc-channel=#cool-thing  --gitter-room=CoolOrg/thing

Full list of supported options

The program accepts only named options, and they must be in the form option=value (dashes optional, spaces and alternative forms --option value forbidden). Normally it bridges only 1 IRC channel with 1 Gitter room but multiple configurations can be supplied: if there is an argument which is a semicolon ; by itself, it ends one set of options and starts another. Options that are the same as in the previous set don't need to be specified. So the example above bridges ##my-channel with CoolDude/testing, and completely separately #cool-thing with CoolOrg/thing, which is comparable to just running two separate instances of the program, except then they wouldn't be able to have the same nickname on the same IRC server.

It is not possible to bridge e.g. two IRC channels with this CLI but editing the program to do so is not difficult.

You should # for a separate GitHub account for the bot, then #to Gitter based on it and get an API key. It helps being creative with the bot's nickname, e.g. FromIRC and FromGitter, so the intent is clear.

About

Chat bot relaying messages between IRC and Gitter

Topics

Resources

License

Stars

Watchers

Forks