http://www.perlmonks.org?node_id=755673

Hi monks I did a program which will alert the user with TK message box, once a new node is posted in our perlmonks website under perlquestion category.

I don't know weather anyone did this already or not. I just did my part

If you have any suggestions please reply

use LWP; use XML::Simple; use Tk; while(1) { my $oldnode_id=0; if ( -e "./.perlmonks_recent" ) { open (FILE,"./.perlmonks_recent") or die "Cannot open the file + .perlmonks\n"; $oldnode_id=<FILE>; chomp $oldnode_id; close FILE; } my $browser = LWP::UserAgent->new; my $response = $browser->get('http://www.perlmonks.org/?node_id=30 +175;types=perlquestion'); my $ticker=XMLin($response->content); my $currnode_id=$ticker->{NODE}[0]->{node_id}; if($currnode_id > $oldnode_id) { my $mw=new MainWindow; $mw->withdraw(); $mw->messageBox(-icon => 'info', -message =>"Hai Lakshmanan! T +here is a new node titled $ticker->{NODE}[0]->{content}", -title => " +$ticker->{NODE}[0]->{authortitle}", -type => 'ok'); $mw->destroy(); } open (FILE,'>',"./.perlmonks_recent") or die "Cannot open the file +\n"; print FILE $currnode_id; close FILE; sleep(300); }
--Lakshmanan G.

The great pleasure in my life is doing what people say you cannot do.


Replies are listed 'Best First'.
Re: Newest Node alert
by blokhead (Monsignor) on Apr 06, 2009 at 15:44 UTC
    Following What XML generators are currently available on PerlMonks?, you may want to use a URL like:
    http://www.perlmonks.org/?node_id=30175;types=perlquestion;days=0.0034 +7
    This will only look for nodes created in the last 0.00347 days, which is 5 minutes (the amount of time your script sleeps between polls). It's a little unnecessary load on the server, perhaps, to fetch the information for the older irrelevant nodes. Also, it eliminates the need to store a "last seen" node ID.

    I also notice that your script will not announce more than one node if multiple new nodes show up in the same 5 minute window.

    blokhead

      Thanks blokhead for your suggestion. I understood the days=. I'll try that. Its only the start. I'll find a way to make my script to announce, if more than one node is posted within 5 minutes. Thanks a lot for your suggestion.

      --Lakshmanan G.

      The great pleasure in my life is doing what people say you cannot do.


Re: Newest Node alert
by jwkrahn (Abbot) on Apr 06, 2009 at 19:20 UTC

    I would use something like "$ENV{HOME}/.perlmonks_recent" instead of "./.perlmonks_recent" or you may not know where your ".perlmonks_recent" file is being saved today.