User:HighInBC/MCP/RTCWatcher

This is a plugin, not a stand alone program.

This program is licensed under the GFDL

package HBCPlugins::RTCWatcher; use    strict; use    Data::Dumper; use    URI::Escape; our    $self;

sub new { shift; $self = shift; bless($self); &{$self->{shared}{add_job}}(\&contact_irc_plugin, 0);

return $self; }

sub contact_irc_plugin { $self->{IRCFeed} = $self->{shared}{$self->{params}{irc_label}} || die; my $esc = chr(0x03); my $url_pattern = $esc.'02(.*?)'.$esc; foreach my $user (@{${$self}{params}{users}}) {   $self->{IRCFeed}->add_hook(        {         'check'        => sub                 {                my $statement = shift;                my $esc = chr(0x03);                my $name_pattern = $esc.'03(.*?)'.$esc;                if (($statement =~ m|$name_pattern|i) && ($1 eq $user))                  {                  $statement =~ m|$url_pattern|i;                  return $1;                  }                else                  {                  return 0;                  }                },         'callback'     => sub                 {                shift;                my $url = shift;                system(${$self}{params}{browser_path},$url);                },        }); } foreach my $page (@{${$self}{params}{pages}}) {   $self->{IRCFeed}->add_hook(        {         'check'        => sub                 {                my $statement = shift;                my $article_pattern = 'title=(.*?)&';                $statement =~ m|$article_pattern|i;                my $article = uri_unescape($1);                $article =~ s|_| |g;                if ((lc($page) eq lc($article)))                  {                  $statement =~ m|$url_pattern|i;                  return $1;                  }                else                  {                  return 0;                  }                },         'callback'     => sub                 {                shift;                my $url = shift;                system(${$self}{params}{browser_path},$url);                },        }); } return; }
 * 1)  warn Dumper(${$self}{params});

1;