Skip to content

Instantly share code, notes, and snippets.

@hidek
Created November 29, 2011 04:31
Show Gist options
  • Select an option

  • Save hidek/1403420 to your computer and use it in GitHub Desktop.

Select an option

Save hidek/1403420 to your computer and use it in GitHub Desktop.
tgsk
use strict;
use warnings;
use AnySan;
use AnySan::Provider::IRC;
use Acme::AKB48;
my %config = (
nickname => 'YOUR_NICKNAME'
server => 'YOUR_SERVER',
port => YOUR_PORT,
channel => 'YOUR_CHANNEL'
);
my @mix = (
'タイガー!ファイヤー!サイバー!ファイバー!ダイバー!バイバー!ジャージャー!',
'虎!火!人造!繊維!海女!振動!化繊飛除去!',
'チャペ!アペ!カラ!キナ!ララ!トゥスケ!ミョーホントゥースケ!'
);
my $mix_cnt = 0;
my $akb = Acme::AKB48->new;
my $irc = irc(
$config{server},
nickname => $config{nickname},
channels => { $config{channel} => {} },
);
AnySan->register_listener(
echo => {
cb => sub {
my $receive = shift;
return unless $receive->message =~ /^!tgsk/;
my $mes = say_catch( $receive->message );
$irc->send_message( $mes, channel => $config{channel}, );
}
}
);
AnySan->run;
sub say_catch {
my $receive = shift;
my ( $commnad, $name ) = split( / /, $receive );
my $mes = '';
if ( $name =~ /^よっしゃいくぞ/ ) {
$mes = $mix[$mix_cnt];
$mix_cnt++;
$mix_cnt = 0 if $mix_cnt > scalar(@mix) - 1;
}
else {
if ($name) {
my @member = $akb->select( 'name' => $name );
@member = $akb->select( 'nickname' => $name ) unless @member;
$mes = $member[0]->catchphrase if @member;
}
}
if ( !$mes ) {
my @member = $akb->members();
my $m = $member[ int( rand( scalar @member ) ) ];
my $nick = $m->nickname;
$mes = "超絶かわいい!" . $nick->[0] . '!';
}
return $mes;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment