From b79b835579ab3062117f2ba38947c06caa72644a Mon Sep 17 00:00:00 2001 From: Pragmatic Software Date: Sun, 24 May 2015 06:17:56 -0700 Subject: [PATCH] Add nick field to WrongAnswers; don't update average if > 10 mins elapsed since question asked --- modules/cjeopardy/QStatskeeper.pm | 13 ++++++++----- modules/cjeopardy/cjeopardy_answer.pl | 4 ++-- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/modules/cjeopardy/QStatskeeper.pm b/modules/cjeopardy/QStatskeeper.pm index cd0a935a..c7438c35 100644 --- a/modules/cjeopardy/QStatskeeper.pm +++ b/modules/cjeopardy/QStatskeeper.pm @@ -57,6 +57,7 @@ SQL CREATE TABLE IF NOT EXISTS WrongAnswers ( id INTEGER, answer TEXT NOT NULL COLLATE NOCASE, + nick TEXT NOT NULL COLLATE NOCASE, count INTEGER DEFAULT 1 ) SQL @@ -170,7 +171,7 @@ sub get_wrong_answers { } sub add_wrong_answer { - my ($self, $id, $answer) = @_; + my ($self, $id, $answer, $nick) = @_; $answer = lc $answer; $answer =~ s/^\s+|\s+$//g; @@ -187,19 +188,21 @@ sub add_wrong_answer { if (not $found_ans) { eval { - my $sth = $self->{dbh}->prepare("INSERT INTO WrongAnswers (id, answer) VALUES (?, ?)"); + my $sth = $self->{dbh}->prepare("INSERT INTO WrongAnswers (id, answer, nick) VALUES (?, ?, ?)"); $sth->bind_param(1, $id); $sth->bind_param(2, $answer); + $sth->bind_param(3, $nick); $sth->execute(); }; print STDERR $@ if $@; } else { $found_ans->{count}++; eval { - my $sth = $self->{dbh}->prepare("UPDATE WrongAnswers SET count = ? WHERE id = ? AND answer = ?"); + my $sth = $self->{dbh}->prepare("UPDATE WrongAnswers SET count = ?, nick = ? WHERE id = ? AND answer = ?"); $sth->bind_param(1, $found_ans->{count}); - $sth->bind_param(2, $id); - $sth->bind_param(3, $answer); + $sth->bind_param(2, $nick); + $sth->bind_param(3, $id); + $sth->bind_param(4, $answer); $sth->execute(); }; print STDERR $@ if $@; diff --git a/modules/cjeopardy/cjeopardy_answer.pl b/modules/cjeopardy/cjeopardy_answer.pl index 859105b8..af95afc6 100755 --- a/modules/cjeopardy/cjeopardy_answer.pl +++ b/modules/cjeopardy/cjeopardy_answer.pl @@ -189,7 +189,7 @@ foreach my $answer (@valid_answers) { $qdata->{last_correct_time} = gettimeofday; $qdata->{last_correct_nick} = $nick; - if (gettimeofday - $qdata->{last_touched} < 60 * 5) { + if (gettimeofday - $qdata->{last_asked} < 60 * 10) { $qdata->{average_answer_time} *= $qdata->{correct} - 1; $qdata->{average_answer_time} += $elapsed; $qdata->{average_answer_time} /= $qdata->{correct}; @@ -356,7 +356,7 @@ if ($qdata->{wrong_streak} > $qdata->{highest_wrong_streak}) { $qdata->{highest_wrong_streak} = $qdata->{wrong_streak}; } -$qstats->add_wrong_answer($id, $lctext); +$qstats->add_wrong_answer($id, $lctext, $nick); my %streaks = ( 5 => "Guessing, are we, $nick?",