Скрипт для определения времени простоя пользователя.
Ничего нового, просто немного переделанный алиас
iw (как альтернативный вариант):
####################################################################
# Discription: Скрипт для отображения времени простоя пользователя #
# Autor: piratix #
# Date: 12 Oct 2010 06:20:07 AM #
# Version: 0.5 #
# KVIrc: 4.0.2 Insomnia #
# Source: base alias "/iw" #
# Comment: for nice K1t <3 #
####################################################################
if(!$0) // если не указан ник, показываем как использовать
{
echo $tr("Usage:","defscript")
echo " /iw <nick>"
}
else
{
awhois -i ($0) // выполняем awhois с -i для $0
{
echo =========================================;
if(!$isEmpty($5)) // если пусто, то нет в сети
{
%s=$5; // время простоя
if(%s>86400)
{ %d=$(%s/86400); } // дни
if(%s<86400)
{ %d=0; }
%s-=$(%d*86400);
if(%s>3600)
{ %h=$(%s/3600); } // часы
if(%s<3600)
{ %h=0; }
%s-=$(%h*3600);
if(%s>60)
{ %m=$(%s/60); } // минуты
if(%s<60)
{ %m=0; }
%s-=$(%m*60); // секунды
echo Время простоя $b()$0$b(): %d:%h:%m:%s (дни:часы:минуты:секунды);
%s=$5; // время простоя
if(%s<86400) // если время простоя меньше суток
{
// разница между текущим временем и временем простоя
%s=$((($date(H)*60*60)+$($date(M)*60)+$date(S))-%s);
if(%s<$5) // если "утро" :) (idle: 5ч, time: 3ч утра)
{ %s=$(86400-(-1*%s)); }
if(%s>3600)
{ %h=$(%s/3600); } // часы
if(%s<3600)
{ %h=0; }
%s-=$(%h*3600);
if(%s>60)
{ %m=$(%s/60); } // минуты
if(%s<60)
{ %m=0; }
%s-=$(%m*60); // секунды
if(%h>24)
{ %h-=24; }
echo Последняя активность $b()$0$b(): %h:%m:%s;
}
else if(%s>=86400) // если время простоя больше суток или равно им
{
%d=$($date(d)-$(%s/86400)); //день месяца
%s-=$($(%s/86400)*86400); // время простоя (меньше суток)
// разница между текущим временем и временем простоя
// без учёта кол-ва полныйх суток в idle
%s=$((($date(H)*60*60)+$($date(M)*60)+$date(S))-%s);
if(%s<$5) // если "утро" :) (idle: 5ч, time: 3ч утра)
{ %s=$(86400-(-1*%s)); %d--; }
if(%s>3600)
{ %h=$(%s/3600); } // часы
if(%s<3600)
{ %h=0; }
%s-=$(%h*3600);
if(%s>60)
{ %m=$(%s/60); } // минуты
if(%s<60)
{ %m=0; }
%s-=$(%m*60); // секунды
if(%h>24)
{ %h-=24; }
echo Последняя активность $b()$0$b(): %d $date(B) %h:%m:%s;
}
}
else
{
echo Невозможно вывести время простоя $b()$0$b() (возможно его/её нет в сети).;
}
echo =========================================;
}
}
18.10.2010
версия 0.5:
* - исправлено неправильное отображение времени последней активности (иногда показывает 25 часов) :/
if(%h>24)
{ %h-=24; }