Compare commits
3 Commits
98486b062b
...
8a28f01992
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8a28f01992 | ||
|
|
952e509e92 | ||
|
|
eecb73a718 |
@@ -598,7 +598,7 @@ sub say {
|
|||||||
|
|
||||||
for my $s (@_) {
|
for my $s (@_) {
|
||||||
if ($s =~ /^PRIVMSG /) {
|
if ($s =~ /^PRIVMSG /) {
|
||||||
foreach my $buf (split_irc_msg ($s)) {
|
foreach my $buf (split_irc_msg ($self, $s)) {
|
||||||
my $string = $buf;
|
my $string = $buf;
|
||||||
_utf8_off ($buf);
|
_utf8_off ($buf);
|
||||||
$self->{socket}->syswrite( $buf . "\r\n");
|
$self->{socket}->syswrite( $buf . "\r\n");
|
||||||
@@ -681,6 +681,7 @@ sub health {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub split_irc_msg {
|
sub split_irc_msg {
|
||||||
|
my $self = shift;
|
||||||
my $str = shift;
|
my $str = shift;
|
||||||
chomp $str;
|
chomp $str;
|
||||||
|
|
||||||
@@ -701,8 +702,13 @@ sub split_irc_msg {
|
|||||||
$prefix = CORE::join ':', @message;
|
$prefix = CORE::join ':', @message;
|
||||||
$prefix .= ':';
|
$prefix .= ':';
|
||||||
} else {
|
} else {
|
||||||
$prefix = CORE::join ':', @message;
|
if ($message [1] eq $self->{nick} || $message [1] eq $self->{in}->{nick}) {
|
||||||
$prefix .= ', ';
|
$prefix = CORE::join ':', @message;
|
||||||
|
$prefix .= ', ';
|
||||||
|
} else {
|
||||||
|
$prefix = CORE::join ':', @message;
|
||||||
|
$prefix .= ':';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$MAXLEN = $MAXLEN - bytes::length ($prefix) - 100;
|
$MAXLEN = $MAXLEN - bytes::length ($prefix) - 100;
|
||||||
|
|||||||
@@ -140,7 +140,7 @@ sub init {
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
$bot->helps(
|
$bot->helps (
|
||||||
anek => "$c->{csign}anek - рандомный анекдот с anekdot.ru",
|
anek => "$c->{csign}anek - рандомный анекдот с anekdot.ru",
|
||||||
анек => "$c->{csign}анек - рандомный анекдот с anekdot.ru",
|
анек => "$c->{csign}анек - рандомный анекдот с anekdot.ru",
|
||||||
анекдот => "$c->{csign}анекдот - рандомный анекдот с anekdot.ru",
|
анекдот => "$c->{csign}анекдот - рандомный анекдот с anekdot.ru",
|
||||||
@@ -149,7 +149,12 @@ sub init {
|
|||||||
rabbit => "$c->{csign}rabbit - рандомный кролик",
|
rabbit => "$c->{csign}rabbit - рандомный кролик",
|
||||||
кролик => "$c->{csign}кролик - рандомный кролик",
|
кролик => "$c->{csign}кролик - рандомный кролик",
|
||||||
cat => "$c->{csign}cat - рандомная кошечка",
|
cat => "$c->{csign}cat - рандомная кошечка",
|
||||||
|
coin => "$c->{csign}cat - подбросить монетку - орёл или решка?",
|
||||||
|
монетка => "$c->{csign}cat - подбросить монетку - орёл или решка?",
|
||||||
кис => "$c->{csign}кис - рандомная кошечка",
|
кис => "$c->{csign}кис - рандомная кошечка",
|
||||||
|
dice => "$c->{csign}dice - бросить кости",
|
||||||
|
roll => "$c->{csign}roll - бросить кости",
|
||||||
|
кости => "$c->{csign}кости - бросить кости",
|
||||||
dig => "$c->{csign}dig - заняться археологией",
|
dig => "$c->{csign}dig - заняться археологией",
|
||||||
копать => "$c->{csign}копать - заняться археологией",
|
копать => "$c->{csign}копать - заняться археологией",
|
||||||
drink => "$c->{csign}drink - какой сегодня праздник?",
|
drink => "$c->{csign}drink - какой сегодня праздник?",
|
||||||
|
|||||||
52
lib/Bot/IRC/ReJoin.pm
Normal file
52
lib/Bot/IRC/ReJoin.pm
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
package Bot::IRC::ReJoin;
|
||||||
|
# Re-Join to channel on /kick
|
||||||
|
|
||||||
|
use 5.018;
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use utf8;
|
||||||
|
use open qw (:std :utf8);
|
||||||
|
use English qw ( -no_match_vars );
|
||||||
|
use Encode qw (_utf8_on);
|
||||||
|
|
||||||
|
our $VERSION = '1.35'; # VERSION
|
||||||
|
|
||||||
|
# Most gears are spinning here.
|
||||||
|
sub init {
|
||||||
|
my ($bot) = @_;
|
||||||
|
|
||||||
|
$bot->hook (
|
||||||
|
{
|
||||||
|
command => 'KICK',
|
||||||
|
},
|
||||||
|
|
||||||
|
sub {
|
||||||
|
my $bot = shift;
|
||||||
|
my $msg = shift;
|
||||||
|
|
||||||
|
# fix some utf8 flags, that are lost
|
||||||
|
_utf8_on $msg->{forum};
|
||||||
|
_utf8_on $msg->{full_text};
|
||||||
|
_utf8_on $msg->{user};
|
||||||
|
|
||||||
|
my ($who, $why) = split / \:/, $msg->{text}, 2;
|
||||||
|
|
||||||
|
if ($who eq $bot->{nick}) {
|
||||||
|
$bot->note ("I was kicked from $msg->{forum} by $msg->{nick} with reason $why");
|
||||||
|
sleep 5;
|
||||||
|
$bot->join ($msg->{forum});
|
||||||
|
$bot->note ("Re-joining to $msg->{forum}");
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
1;
|
||||||
|
|
||||||
|
__END__
|
||||||
|
|
||||||
|
# vim: set ft=perl noet ai ts=4 sw=4 sts=4:
|
||||||
@@ -60,6 +60,26 @@ sub Command {
|
|||||||
$reply = Weather ($city) =~ tr/\n/ /r;
|
$reply = Weather ($city) =~ tr/\n/ /r;
|
||||||
} elsif (substr ($text, 1) eq 'anek' || substr ($text, 1) eq 'анек' || substr ($text, 1) eq 'анекдот' ) {
|
} elsif (substr ($text, 1) eq 'anek' || substr ($text, 1) eq 'анек' || substr ($text, 1) eq 'анекдот' ) {
|
||||||
$reply = Anek ();
|
$reply = Anek ();
|
||||||
|
} elsif (substr ($text, 1) eq 'coin' || substr ($text, 1) eq 'монетка') {
|
||||||
|
if (rand (101) < 0.016) {
|
||||||
|
$reply = "ребро";
|
||||||
|
} else {
|
||||||
|
if (irand (2) == 0) {
|
||||||
|
if (irand (2) == 0) {
|
||||||
|
$reply = 'орёл';
|
||||||
|
} else {
|
||||||
|
$reply = 'аверс';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (irand (2) == 0) {
|
||||||
|
$reply = 'решка';
|
||||||
|
} else {
|
||||||
|
$reply = 'реверс';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} elsif (substr ($text, 1) eq 'roll' || substr ($text, 1) eq 'dice' || substr ($text, 1) eq 'кости') {
|
||||||
|
$reply = sprintf "На первой кости выпало %d, а на второй — %d.", irand (6) + 1, irand (6) + 1;
|
||||||
} elsif (substr ($text, 1) eq 'version' || substr ($text, 1) eq 'ver') {
|
} elsif (substr ($text, 1) eq 'version' || substr ($text, 1) eq 'ver') {
|
||||||
$reply = 'Версия нуль.чего-то_там.чего-то_там';
|
$reply = 'Версия нуль.чего-то_там.чего-то_там';
|
||||||
} elsif (substr ($text, 1) eq 'help' || substr ($text, 1) eq 'помощь') {
|
} elsif (substr ($text, 1) eq 'help' || substr ($text, 1) eq 'помощь') {
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ sub RunIRCBot {
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
$bot->load ('OnMessage'); # our main plugin that handles all the incomming messages, mostly
|
$bot->load ('OnMessage', 'ReJoin'); # our main plugin that handles all the incomming messages, mostly
|
||||||
$bot->helps(
|
$bot->helps(
|
||||||
about => 'I am just another chatty bot.',
|
about => 'I am just another chatty bot.',
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user