52 lines
1.4 KiB
Perl
52 lines
1.4 KiB
Perl
package Bot::BasicBot::Pluggable::Module::RssPromote;
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
use Data::Dumper;
|
|
|
|
use base qw(Bot::BasicBot::Pluggable::Module);
|
|
use HTML::TreeBuilder;
|
|
use LWP::UserAgent;
|
|
|
|
my $regurl = "http://www.dirkocraft.com/regbackend";
|
|
my $command = ".c group %s Resident";
|
|
my $adminchan = "#dirkocraft-alert";
|
|
my $welcomemsg = "Welcome to &9Dirkocraft&4, &6%s";
|
|
my $ua = LWP::UserAgent->new();
|
|
|
|
sub help {return ""}
|
|
|
|
our %seenusers;
|
|
|
|
our $counter = 0;
|
|
sub tick { # called every 5 seconds
|
|
my $self = shift; # get ourself, duh
|
|
|
|
unless ($counter++ % 3) {# every 15 seconds, 3 * 5 seconds, check the feed
|
|
my $res = $ua->get($regurl);
|
|
if ($res->is_success()) {
|
|
my $cont = $res->content();
|
|
my $root = HTML::TreeBuilder->new_from_content($cont);
|
|
my $users_elem = $root->look_down(_tag => "div", class => qr/view-registrationbackendstupid/);
|
|
my $ulist = $users_elem->format();
|
|
|
|
my @users = ($ulist =~ m/\*\s*(\w+)/g);
|
|
|
|
for my $user (@users) {
|
|
if (!exists($seenusers{$user})) {
|
|
$seenusers{$user} = 1;
|
|
my $cmd = sprintf($command, $user);
|
|
my $welcome = sprintf($welcomemsg, $user);
|
|
$self->say({body => $cmd, channel => $adminchan });
|
|
$self->say({body => $welcome, channel => $adminchan });
|
|
}
|
|
}
|
|
} else {
|
|
printf "Damn: %s\n",$res->status_line();
|
|
}
|
|
|
|
};
|
|
}
|
|
|
|
1;
|