#!/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; }
In reply to Reminder for KDE Kid by KennV
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |