critter

Chat bot relaying messages between IRC and Gitter irc gitter chatbot bridge
HEAD Latest release released
oprypin/critter
16 2
Oleh Prypin

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 sign up for a separate GitHub account for the bot, then sign into 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.

critter:
  github: oprypin/critter
  
License MIT
Crystal >= 0.34.0

Authors

Dependencies 1

  • emoji
    {'github' => 'veelenga/emoji.cr'}

Development Dependencies 0

Dependents 0

Last synced .
search fire star recently