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;