File Coverage

File:lib/Bot/IRC/Join.pm
Coverage:45.2%

linestmtbrancondsubpodtimecode
1package Bot::IRC::Join;
2# ABSTRACT: Bot::IRC Join and Part Channels; Remember State
3
4
1
1
1
14
10
52
use strict;
5
1
1
1
10
5
1679
use warnings;
6
7# VERSION
8
9sub init {
10
1
0
6
    my ($bot) = @_;
11
1
8
    $bot->load('Store');
12
13    $bot->hook(
14        {
15            to_me => 1,
16            text  => qr/\bjoin\s+(?<channel>\S+)/i,
17        },
18        sub {
19
0
0
            my ( $bot, $in, $m ) = @_;
20
21
0
0
            if ( $m->{channel} =~ /^#\w+$/ ) {
22
0
0
                $bot->reply( 'I will attempt to join: ' . $m->{channel} );
23
0
0
                $bot->join( $m->{channel} );
24            }
25            else {
26
0
0
                $bot->reply( '"' . $m->{channel} . q{" doesn't appear to be a channel I can join.} );
27            }
28        },
29
1
22
    );
30
31    $bot->hook(
32        {
33            to_me => 1,
34            text  => qr/\b(?:part|leave)\s+(?<channel>\S+)/i,
35        },
36        sub {
37
0
0
            my ( $bot, $in, $m ) = @_;
38
39
0
0
            if ( $m->{channel} =~ /^#\w+$/ ) {
40
0
0
                $bot->reply( 'I will depart: ' . $m->{channel} );
41
0
0
                $bot->part( $m->{channel} );
42            }
43            else {
44
0
0
                $bot->reply( '"' . $m->{channel} . q{" doesn't appear to be a valid channel name.} );
45            }
46        },
47
1
14
    );
48
49
1
8
    $bot->helps(
50        join => 'Join and part channels. Usage: join <channel>, part <channel>.',
51    );
52}
53
541;