Last active
May 10, 2019 19:48
-
-
Save caasi/2280e315d552c00529d13469dae33261 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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