Mercurial > hg > scripts
changeset 6:6999ba7bf22b
Don't relol while idling (2 minutes of not participating in discussion)
author | Jordi Gutiérrez Hermoso <jordigh@gmail.com> |
---|---|
date | Thu, 20 Aug 2009 14:03:31 -0500 |
parents | 8f209cd0a7b6 |
children | 65035a108782 |
files | teh-lol.pl |
diffstat | 1 files changed, 9 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/teh-lol.pl +++ b/teh-lol.pl @@ -13,6 +13,8 @@ #You should have received a copy of the GNU General Public License #along with this program. If not, see <http://www.gnu.org/licenses/>. +use strict; + Xchat::register('teh lol', '0.1.3', 'lols back'); Xchat::hook_print('Channel Message', \&check_lol); @@ -23,8 +25,10 @@ sub check_lol { my $chan = Xchat::get_info("channel"); + my $timesince_lasttalk = time - Xchat::user_info -> {'lasttalk'}; - if ($_[0][1] =~ /\b(lo+l)\b/i) { + #Two minutes of not saying anything in the channel counts as idling + if ($_[0][1] =~ /\b(lo+l)\b/i and $timesince_lasttalk < 120) { my $lol = $1; @@ -40,10 +44,10 @@ $relol = "lol"; } - sleep(rand(5)); + - if (time - $timestamp{$chan} > 59 or - undef $timestamp{$chan} + if ( time - $timestamp{$chan} > 59 or + undef $timestamp{$chan} ) { #Delay the response a little, for maximum annoyance. @@ -53,11 +57,10 @@ $delay += ((length $relol) - 3 + rand(5)) * 0.069; } - Time::HiRes::usleep($delay); + Time::HiRes::usleep($delay+2); Xchat::command("say $relol"); } - $timestamp{$chan} = time; } return Xchat::EAT_NONE;