#!/usr/local/bin/perl use strict; use warnings; use Carp; use User; use Sys::Lastlog; use Time::localtime; my $ll = Sys::Lastlog->new(); my $llent = $ll->getllnam( User->Login ); my $tm = localtime( $llent->ll_time() ); my $login_time = sprintf( "%02d:%02d:%02d on %04d/%02d/%02d", $tm->hour, $tm->min, $tm->sec, $tm->year + 1900, $tm->mon + 1, $tm->mday ); my %actions = ( 1800 => sub { passive_pop("Thirty minutes"); }, 3600 => sub { passive_pop("One hour"); }, 5400 => sub { passive_pop("One hour thirty minutes"); }, 7200 => sub { passive_pop("Two hours"); tattle_tail(); }, ); for my $duration ( sort { $a <=> $b } keys %actions ) { sleep 1 until time - $llent->ll_time >= $duration; $actions{$duration}->(); } sub passive_pop { my $m = shift @_; my @args = ( "kdialog", "--passivepopup", $m . " has passed since you logged in at:\n " . + $login_time, "120" ); system(@args) == 0 or croak "system @args failed: $?"; return; } sub tattle_tail { use MIME::Lite; my $msg = MIME::Lite->new( From => 'tattle_tail@domain.com', To => 'text@domain.com', Subject => 'The computer may have been left on', Data => 'Childname logged in at ' . $login_time, ); $msg->send; return; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Reminder for KDE Kid
by blokhead (Monsignor) on Sep 21, 2007 at 19:17 UTC | |
by KennV (Beadle) on Sep 22, 2007 at 04:57 UTC | |
by ruzam (Curate) on Oct 12, 2007 at 05:14 UTC | |
|
Re: Reminder for KDE Kid
by n8g (Sexton) on Sep 21, 2007 at 12:51 UTC | |
by KennV (Beadle) on Sep 21, 2007 at 13:17 UTC | |
|
Re: Reminder for KDE Kid
by Zen (Deacon) on Oct 23, 2007 at 21:58 UTC | |
|
Re: Reminder for KDE Kid
by Incorporeal (Initiate) on Oct 31, 2007 at 10:21 UTC |