Skip to content

Instantly share code, notes, and snippets.

@caasi
Last active May 10, 2019 19:48
Show Gist options
  • Save caasi/2280e315d552c00529d13469dae33261 to your computer and use it in GitHub Desktop.
Save caasi/2280e315d552c00529d13469dae33261 to your computer and use it in GitHub Desktop.
use strict;
use warnings;
our $VERSION = '0.1';
our %IRSSI = (
authors => 'caasi Huang',
contact => 'caasi.igd at gmail.com',
name => 'bridged_rename',
description => 'rewrite bridged messages',
license => 'MIT',
);
use Irssi qw(
signal_add_first
signal_continue
settings_add_str
settings_get_str
);
sub to_irc_message {
my ($host, $nick, $msg) = @_;
$nick =~ s/\s/_/g;
return ":$nick$host:$msg";
}
sub rewrite_message {
my ($server, $raw) = @_;
my $tg_bot_name = settings_get_str('teleirc_bot_name');
if (my @args = $raw =~ /^:\Q$tg_bot_name\E_*(.*):<(.*?)> (.*)/) {
return signal_continue($server, to_irc_message(@args));
}
my $slack_bot_name = settings_get_str('slack_bot_name');
if (my @args = $raw =~ /^:\Q$slack_bot_name\E_*(.*):(.*)\@slack-legacy: (.*)/) {
return signal_continue($server, to_irc_message(@args));
}
}
settings_add_str('misc', 'teleirc_bot_name', 'tgBot');
settings_add_str('misc', 'slack_bot_name', 'slackbot');
signal_add_first('server incoming' => \&rewrite_message)
sub rewrite_message {
my ($server, $msg, $nick, $address, $target) = @_;
my $tg_bot_name = settings_get_str('teleirc_bot_name');
if ($nick =~ /^\Q$tg_bot_name\E/){
if($msg =~ s/^<\002(.*?)\002> //){
$nick = $1;
signal_continue($server, $msg, $nick , $address, $target);
}
if($msg =~ s/^\* \002(.*?)\002 //){
$nick = $1;
signal_stop();
signal_emit('message irc action', $server, $msg, $nick, $address, $target);
}
}
}
settings_add_str('misc', 'teleirc_bot_name', '[r_r]');
signal_add_first('message public', 'rewrite_message');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment