summaryrefslogtreecommitdiff
path: root/lib/message.pm
diff options
context:
space:
mode:
authorJules Laplace <carbon@melanarchy.org>2013-08-02 17:14:41 -0500
committerJules Laplace <carbon@melanarchy.org>2013-08-02 17:14:41 -0500
commite9192b3d42660a5781101df4357d276318151e8a (patch)
tree059eb6ace6147cf9559af74ed1ab5e221c80e280 /lib/message.pm
parent79670053c7247d3a49b607960efd284e93f057e5 (diff)
cgi-bin & lib
Diffstat (limited to 'lib/message.pm')
-rw-r--r--lib/message.pm195
1 files changed, 195 insertions, 0 deletions
diff --git a/lib/message.pm b/lib/message.pm
new file mode 100644
index 0000000..4dad0d6
--- /dev/null
+++ b/lib/message.pm
@@ -0,0 +1,195 @@
+sub send_message
+ {
+ my ($message) = @_;
+ new_message("$sender.outbox", $message);
+ new_message("$recipient.inbox", $message);
+ }
+
+sub display_message
+ {
+ my $message = shift;
+ my $image = get_profile_image($message->{sender}, $AVATAR_MED_PREFIX);
+ print qq!<center>!;
+ print qq!<table width=400 border=0 cellpadding=0 cellspacing=0>!;
+ print qq!<tr><td class="bluebox">!;
+
+ print qq(<table width=100% border=0 cellpadding=0 cellspacing=0>);
+ print qq(<tr>);
+ if ($image != -1)
+ {
+ print qq(<td rowspan=2 align="left" valign="middle" width=).($AVATAR_MED_WIDTH+10).qq(>);
+ print qq(<a href="$BUCKY/profile/$message->{sender}">);
+ print qq(<img src="$image" width="$AVATAR_MED_WIDTH" height="$AVATAR_MED_WIDTH" border=1">);
+ print qq(</a>);
+ print qq(</td>);
+ }
+
+ print qq!<td align=left valign=bottom>!;
+ print qq!<b><big>$message->{subject}</big></b>!;
+ print qq!</td></tr>!;
+ print qq!<tr><td align=left valign=top>!;
+ print qq!<small>!;
+ print qq!sent by <a href="$BUCKY/profile/$message->{sender}">$message->{sender}</a> !;
+ print qq!on </small>!.(verbosedate($message->{date}));
+# print qq! <small>(!.get_age($message->{date}).qq! ago)</small>!;
+ print qq!</td></tr>!;
+
+ print qq!<tr><td colspan=2>!;
+ print qq!<hr noshade color="$BUCKY_COLOR_HR">!;
+ print qq!</td></tr>!;
+
+ print qq!<tr><td align=left valign=top height=310 colspan=2 style="padding: 0px 20px 0px 20px;">\n!;
+ print linebr($message->{body});
+ print qq!</td></tr>!;
+
+ print qq!<tr><td colspan=2>!;
+ print qq!<hr noshade color="$BUCKY_COLOR_HR">!;
+ print qq!</td></tr>!;
+
+ print qq!<tr><td align=right colspan=2>!;
+ print qq!<small>!;
+ if ($message->{mbox} =~ /drafts/)
+ {
+ print qq{[<a href="$BUCKY/message?c=r&id=$message->{id}">edit</a>] };
+ }
+ else
+ {
+ print qq{[<a href="$BUCKY/message?c=r&id=$message->{id}">reply</a>] };
+ }
+ print qq![<a href="$BUCKY/message?c=d&id=$message->{id}">delete</a>]!;
+ print qq!</small>!;
+ print qq!</td></tr>!;
+ print qq!</td></tr></table>!;
+ print qq!</center>!;
+ }
+
+sub message_list
+ {
+ my ($messages, $box) = @_;
+ my $r = 0;
+
+ if ($DEBUG)
+ {
+ print qq!Printing message list. Message ids:!;
+ for (my $i = 0; $i < @$messages; $i++)
+ { print $messages->[$i]->{id}." "; }
+ print qq!<p>\n\n!;
+ }
+
+ if ($messages == -1)
+ {
+ print qq[<br><span style="margin-left: 50px;"><b><big>No messages in this mailbox!</big></b></span>];
+ return;
+ }
+
+ print qq!<table border=0 cellpadding=0 cellspacing=0 class="threadmain" width=750>!;
+
+ foreach my $message (@$messages)
+ {
+ display_message_row($message, $box, $r);
+ $r = $r ? 0 : 1;
+ }
+
+ print "</table>\n\n";
+ }
+
+sub display_message_row
+ {
+ my ($m, $box, $r) = @_;
+ my $color = carbondate($m->{date});
+
+ if ($DEBUG)
+ {
+ print qq!Displaying message $m->{id}\n!;
+ }
+
+ print qq[<tr>];
+
+ print qq[<td align="right" valign="middle" nowrap>&nbsp;];
+ print "<small>";
+ if ($m->{sender} eq "system")
+ {
+ print qq(system);
+ }
+ elsif ($m->{sender} eq $USER->{username})
+ {
+ print qq[to <a href="$BUCKY/profile/$m->{recipient}" class="quietlink">$m->{recipient}</a>];
+ }
+ else
+ {
+ print qq[<a href="$BUCKY/profile/$$m{sender}" class="quietlink">$$m{sender}</a>];
+ }
+ print qq[&nbsp;&middot;&nbsp;];
+ print "</small>";
+ print "</td>";
+
+ print qq[<td align="left" valign="middle" nowrap class="plain$r" width=300 nowrap>];
+ print qq[<span class="threadname" style="white-space:nowrap;">];
+ if ($$m{unread})
+ { print qq[<b><a href="$BUCKY/inbox/$m->{id}">$m->{subject}</a></b>]; }
+ else
+ { print qq[<a href="$BUCKY/inbox/$m->{id}">$m->{subject}</a>]; }
+ print qq[</span>];
+ print "</td>";
+
+ my ($tddate, $tdtime) = verbosedatetime($m->{date});
+ print qq[<td align="right" valign="middle" nowrap style="padding-right: 0px; margin-right: 0px;">];
+ print qq[<span class="$color">$tddate&nbsp;</span>];
+ print "</td>";
+ print qq[<td align="left" valign="middle" nowrap style="padding-left: 0px; margin-left: 0px; padding-top: 2px;">];
+ print qq[<span class="$color"><small>$tdtime</small></span>];
+ print "</td>";
+
+ print qq[<td align="right" valign="middle" nowrap style="padding-right: 10px; margin-left: 0px; padding-top: 2px;">];
+ print qq[<small>].hushsize($m->{size},.0000001,1).qq[</small>];
+ print "</td>";
+
+ print qq[<td align=left valign=middle><small>];
+ if ($box =~ /drafts/)
+ {
+ print qq{[<a href="$BUCKY/message?c=r&id=$m->{id}">edit</a>] };
+ }
+ else
+ {
+ print qq{[<a href="$BUCKY/message?c=r&id=$m->{id}">reply</a>] };
+ }
+ print qq{[<a href="$BUCKY/message?c=d&id=$m->{id}">delete</a>]};
+ print qq[</small></td>];
+
+ print qq[</tr>\n];
+ }
+
+# sort methods
+# title, date, size, files, username
+
+sub get_sort_method
+ {
+ my ($s, $o) = @_;
+
+ if ($o eq "a")
+ {
+ if ($s eq "t") { return \&sort_by_subject; }
+ elsif ($s eq "s") { return \&sort_by_sender; }
+ elsif ($s eq "d") { return \&sort_by_date; }
+ }
+ elsif ($o eq "d")
+ {
+ if ($s eq "t") { return \&rsort_by_subject; }
+ elsif ($s eq "s") { return \&rsort_by_sender; }
+ elsif ($s eq "d") { return \&rsort_by_date; }
+ }
+ else
+ { return \&rsort_by_date; }
+ }
+
+sub sort_by_subject { sort { uc($a->{subject}) cmp uc($b->{subject}) } @_; }
+sub rsort_by_subject { sort { uc($b->{subject}) cmp uc($a->{subject}) } @_; }
+sub sort_by_date { sort { $a->{date} <=> $b->{date} } @_; }
+sub rsort_by_date { sort { $b->{date} <=> $a->{date} } @_; }
+sub sort_by_sender { sort { uc($a->{sender}) cmp uc($b->{sender}) } @_; }
+sub rsort_by_sender { sort { uc($b->{sender}) cmp uc($a->{sender}) } @_; }
+
+
+1;
+
+