summaryrefslogtreecommitdiff
path: root/bucky2/lib/Bucky/SVN.pm
blob: 76fd391232efe819eb484792d1c9ea6ba43800a8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
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__;
<table id="svn" cellpadding=0 cellspacing=0 style="border: 1px solid #333;">
__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 = "<b style='font-weight:bold;text-shadow:1px 0 0 #eee;border-right:1px solid #ddd;padding-right:3px;'>" . $svn->{'comment'};
		$comment =~ s/: /<\/b> /;
                my $cc = "cc" . $r;
		$out .= <<__SVN__;
<tr>
<td style="border: 1px solid #333;" align="center">
<a href="$user_profile"><img src="$user_img" border=0></a><!--<br><small>$user</small>-->
</td>
<td style="border: 1px solid #333; padding: 3px" class="cc$r">
<span style="float: right;color:#888;font-size:10px;">$date</span>
<small style="font-size:10px;">$comment</small>
</td>
</small>
</tr>
__SVN__
		}
	$out .= <<__FOOT__;
</table>
__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;