package Bucky::SVN; use base "Bucky"; use Bucky::Session; sub svn_secret { return shift->config("SVN_SECRET"); } sub list { my ($self, $count) = @_; $count ||= 7; return $self->db->select("svn", "ORDER BY date DESC LIMIT $count"); } sub query_incoming { my ($self) = @_; my $session = new Bucky::Session; error() unless scalar $session->q->param && length $session->q->param("secret") && $session->q->param("secret") eq $self->svn_secret(); if ($session->q->param("user")) { print $self->query_add($session); } else { print "Content-type: text/html\n\n"; print $self->query_list; } } sub query_list { my ($self) = @_; my $svns = $self->list; my $out .= <<__HEAD__; __HEAD__ my $r = 0; foreach my $svn (@$svns) { $r = $r ? 0 : 1; my $user = $svn->{'user'}; $user = "default" if $user eq "root"; my $user_profile = "/cgi-bin/bucky/profile/$user"; my $user_img = "/bucky/data/profile/.thumb/am.$user.jpg"; my $date = $self->get_age($svn->{'date'}); # my $revision = $svn->{'revision'}; my $comment = $svn->{'comment'}; my $cc = "cc" . $r; $out .= <<__SVN__; __SVN__ } $out .= <<__FOOT__;
$date $comment
__FOOT__ return $out; } sub query_add { my ($self, $session) = @_; # my $revision = $session->q->param("revision"); my $user = $session->q->param("user"); my $revision = 1; my $comment = $session->q->param("comment"); my $date = time; error("missing some parameters\npossible: secret, user, revision, comment\n") unless $user && $comment && $revision && $self->is_number($revision) && length $user && length $comment; my $query = { user => $user, comment => $comment, revision => $revision, date => $date, }; if (my $id = $self->db->insert("svn", $query)) { success("Successfully inserted $id"); } else { error("Unable to insert!"); } } sub success { my ($success) = @_; $success ||= "NICE ONE"; print "Content-type: text/plain\n\nSUCCESS: $success"; exit; } sub error { my ($error) = @_; $error ||= "SORRY GUY"; print "Content-type: text/plain\n\nERROR: $error"; exit; } 1;