PerlからSkypeでチャット

m/今日/昨日/の捨てコード。

#!/usr/local/bin/perl

use strict;
use warnings;
use Win32::OLE;
use Encode;
use utf8;
use Time::HiRes qw/sleep/;

# perl skype.pl username message [sleep=0]

# username = 送信したい相手のID
# message  = 送信する内容
# sleep    = 送信間隔

my $user_name = shift || die 'user name';
my $message   = decode('shiftjis',shift || die 'message');
my $sleep     = shift || 0;
die 'sleep num' unless $sleep =~ /^[\d.]+$/;

my $skype = Win32::OLE->new('Skype4COM.Skype');
$skype->Client->Start unless $skype->Client->IsRunning;

my $user = $skype->User($user_name);
my $chat = $skype->CreateChatWith($user->Handle);
$chat->OpenWindow;

for my $n ( split //, $message ) {
    $chat->SendMessage(encode('shiftjis',$n));
    sleep $sleep if $sleep;
}

指定した相手に対して一文字ずつに分解したメッセージを送信する嫌がらせ・・・ゲフンゲフン、をするコードです。

送信間隔も指定できて2秒間隔とかにしたらイライラ度MAX間違いなし!

更にイライラ度を限界突破させるべくこんなコードも書いてみました。

#!/usr/local/bin/perl

use strict;
use warnings;
use Win32::OLE;
use Encode;
use utf8;
use Acme::Oppai;
use Time::HiRes qw/sleep/;

# perl skype.pl username [sleep=0]

# username = 送信したい相手のID
# sleep    = 送信間隔

my $user_name = shift || die 'user name';
my $sleep     = shift || 0;
die 'sleep num' unless $sleep =~ /^[\d.]+$/;

my $skype = Win32::OLE->new('Skype4COM.Skype');
$skype->Client->Start unless $skype->Client->IsRunning;

my $user = $skype->User($user_name);
my $chat = $skype->CreateChatWith($user->Handle);
$chat->OpenWindow;

my $oppai = Acme::Oppai->new(use_utf8 => 1);
$oppai->oppai for 0..50;
my @msg;
my $i = 2;
for my $str ( split /\n/, "$oppai" ) {
    push @msg,'.'.("\n" x 40) unless $i = ++$i % 3;
    $msg[-1] .= $str.".\n";
}

for my $str ( @msg ) {
    $chat->SendMessage(encode('shiftjis',$str));
    sleep $sleep if $sleep;
}

これを実行すると「おっぱい!おっぱい!」とSkype上でAAがアニメーションを始めます。とてもウザい。まさにウザい。なんだこのウザさは。

良い子はマネしないで下さい。