summaryrefslogtreecommitdiffstats
path: root/scripts/discord_unbridge.pl
blob: 9a7bd57c365297999283deb675d0a75f23dea9c3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
use strict;
use warnings;
use Irssi;

our $VERSION = '1.6';
our %IRSSI = (
    authors     => 'Idiomdrottning',
    contact     => 'sandra.snan@idiomdrottning.org',
    name        => 'discord_unbridge.pl',
    description => 'In channels with a discord bridge, turns "<bridge> <Sender> Message" into "<Sender> Message", and hides spoilers.',
    license     => 'Public Domain',
    url         => 'https://idiomdrottning.org/discord_unbridge.pl',
);

# HOWTO:
#
# set $bridgename to your bot's name, default is Yoda50.
#
# Regardless, to use the script just
#   /load discord_unbridge.pl
#
# NOTE:
#
# git clone https://idiomdrottning.org/discord_unbridge.pl
# for version history and to send patches.
#
# Based on discord_unhilight by Christoffer Holmberg, in turn
# based on slack_strip_auto_cc.pl by Ævar Arnfjörð Bjarmason.

my $bridgename = "Yoda50";

sub msg_bot_clean {
    my ($server, $data, $nick, $nick_and_address) = @_;
    my ($target, $message) = split /:/, $data, 2;
    my ($name, $text) = $message =~ /< *([^>]*)> (.*)/s;
    if ($text && $nick eq $bridgename) {
        $nick = $name;
        $message = $text;
    }
    $message =~ s/\|\|([^|]+)\|\|/1,1$1/g;
    my $new_data = "$target:$message";
    Irssi::signal_continue($server, $new_data, $nick, $nick_and_address);
}

Irssi::signal_add('event privmsg', 'msg_bot_clean');