Skip to content

Instantly share code, notes, and snippets.

@MacoTasu
Last active December 16, 2015 13:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MacoTasu/5444613 to your computer and use it in GitHub Desktop.
Save MacoTasu/5444613 to your computer and use it in GitHub Desktop.
script which contributes to irc from a command line
use strict;
use warnings;
use AnyEvent;
use AnyEvent::IRC::Client;
# conf
my $conf = {
irc => {
server => '*****',#server
channel => '#****',# channel
port => ****,#port number
ssl => 1,
nick => '****',#nickname
real => '****',#real name
password => '*****',#pass
},
};
my $cv = AnyEvent->condvar;
# new
my $irc = AnyEvent::IRC::Client->new;
#ssl enable
$irc->enable_ssl if $conf->{irc}{ssl};
$irc->reg_cb(
connect => sub {
my ($irc, $err) = @_;
if (defined $err) {
print "connect error: $err\n";
return;
}
print "connected.\n";
},
registered => sub {
print "registered.\n";
},
disconnect => sub {
print "disconnected.\n";
},
);
# connect to irc
$irc->connect($conf->{irc}{server}, $conf->{irc}{port},{ nick =>$conf->{irc}{nick} , $conf->{irc}{password} ? (password => $conf->{irc}{password}) : (),});
# join to channel
$irc->send_srv("JOIN", $conf->{irc}{channel});
# timer
my $watcher;
$watcher = AnyEvent->timer(
after => 10,#10sec
cb => sub {
# $ARGV[0] = message
$irc->send_chan($conf->{irc}{channel}, "NOTICE", $conf->{irc}{channel}, $ARGV[0]);
die;
}
);
$cv->recv;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment