Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Newest Node alert

by lakshmananindia (Chaplain)
on Apr 06, 2009 at 09:54 UTC ( #755673=CUFP: print w/replies, xml ) Need Help??

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 (Monsignor) 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.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: CUFP [id://755673]
Approved by herveus
help
Chatterbox?
[1nickt]: Corion this looks good, from the pod: "there are 9000+ variations that are detected correctly in the test files (see t/data/* for most of them). If you can think of any that I do not cover, please let me know."
[TCLion]: some moron put the date like this : Mon Feb 20 09:31:30 2017
[Corion]: 1nickt: Yes, the module sounds promising indeed
[1nickt]: "putting the date in correct order" how?
[Corion]: TCLion: Whee ;)
[TCLion]: need to put like this : 2017-02-20 09:30:53
[1nickt]: That's why I asked if you are using DateTime. It has a large number of supporting modules (the author likes the term 'eco-system') so if you are already creating a DateTime obj from your dates, this module would read in the mnoron-formatted 1s seamlessly
[TCLion]: when I put the date together it looks like : 2017-Feb-24 (month is the problem)
[1nickt]: good luck, then.
[TCLion]: looking at DateTime documentation in monastery now

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (12)
As of 2017-03-23 14:56 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Should Pluto Get Its Planethood Back?



    Results (288 votes). Check out past polls.