diff options
| author | Jules Laplace <carbon@melanarchy.org> | 2013-09-12 13:25:13 -0500 |
|---|---|---|
| committer | Jules Laplace <carbon@melanarchy.org> | 2013-09-12 13:25:13 -0500 |
| commit | de2c01c711867eb764b295ca33e0b764ca1b4011 (patch) | |
| tree | 8d09287734540bd3b0e8e76943577d3ad66248f7 | |
| parent | d6a423cd5249ea09d9fbcab130cd38fd252eee05 (diff) | |
bury a thread
| -rwxr-xr-x | cgi-bin/bury | 39 | ||||
| -rw-r--r-- | lib/db.pm | 26 |
2 files changed, 65 insertions, 0 deletions
diff --git a/cgi-bin/bury b/cgi-bin/bury new file mode 100755 index 0000000..9aa43b8 --- /dev/null +++ b/cgi-bin/bury @@ -0,0 +1,39 @@ +#!/usr/bin/perl +######################################### +# not bless +######################################### + +use localbucky; + +$dbh = DBI->connect ($dsn); + +our ($USER, $lastlog) = checkin(); +logout() unless ($USER != -1); + +my $id = $input->{id}; +if (get_thread($id) == -1) + { error("no such thread"); } +my $changed_date = get_most_recent_change($id); +if ($changed_date > 0) { + print $id . "\n"; + print $changed_date . "\n"; + update_thread_lastmodified($id, $changed_date); +} +redirect("$BUCKY/index"); + +$dbh->disconnect (); + +sub get_most_recent_change { + my ($id) = @_; + my $files = get_recent_files($id); + my $comments_date = get_thread_comment_modified($id); + my $date = 0; + if ($files != -1) { + my $d = $files->[-1]->{'date'}; + $date = $d >= $date ? $d : $date; + } + if ($comments != -1) { + my $d = $comments_date; + $date = $d >= $date ? $d : $date; + } +} @@ -944,6 +944,24 @@ sub get_recent_files return \@rows; } +sub get_thread_comment_modified + { + my ($id) = @_; + my $query; + + $id = $dbh->quote($id); + $query = "SELECT MAX(date) FROM comments WHERE id=$id"; + + $sth = $dbh->prepare($query); + $sth->execute(); + my ($date) = $sth->fetchrow_array(); + $sth->finish(); + + if ($date == 0) + { return -1; } + + return $date; + } @@ -1684,6 +1702,14 @@ sub update_thread_size $rows = $dbh->do($query); } +sub update_thread_lastmodified + { + my ($id, $disp) = @_; + $id = $dbh->quote($id); + $disp = $dbh->quote($disp); + $query = "UPDATE threads SET lastmodified=$disp WHERE id=$id"; + $dbh->do($query); + } sub update_thread_display { my ($id, $disp) = @_; |
