# This code was forked from the LiveJournal project owned and operated
# by Live Journal, Inc. The code has been modified and expanded by
# Dreamwidth Studios, LLC. These files were originally licensed under
# the terms of the license supplied by Live Journal, Inc, which can
# currently be found at:
#
# http://code.livejournal.org/trac/livejournal/browser/trunk/LICENSE-LiveJournal.txt
#
# In accordance with the original license, this code and all its
# modifications are provided under the GNU General Public License.
# A copy of that license can be found in the LICENSE file included as
# part of this distribution.
package LJ::Event::OfficialPost;
use strict;
use LJ::Entry;
use Carp qw(croak);
use base 'LJ::Event::JournalNewEntry';
sub content {
my ( $self, $target, %opts ) = @_;
# force uncut for certain views (e-mail)
my $args =
$opts{full}
? {}
: { # double negatives, ouch!
ljcut_disable => !$target->cut_inbox,
cuturl => $self->entry->url
};
return $self->entry->event_html($args);
}
sub zero_journalid_subs_means { 'all' }
sub _construct_prefix {
my $self = shift;
return $self->{'prefix'} if $self->{'prefix'};
my ($classname) = ( ref $self ) =~ /Event::(.+?)$/;
return $self->{'prefix'} = 'esn.' . lc($classname);
}
sub matches_filter {
my ( $self, $subscr ) = @_;
return 0 unless $subscr->available_for_user;
return 1;
}
sub as_email_subject {
my $self = shift;
my $u = shift;
my $label = _construct_prefix($self);
# construct label
if ( $self->entry->subject_text ) {
$label .= '.subject';
}
else {
$label .= '.nosubject';
}
return LJ::Lang::get_default_text(
$label,
{
siteroot => $LJ::SITEROOT,
sitename => $LJ::SITENAME,
sitenameshort => $LJ::SITENAMESHORT,
subject => $self->entry->subject_text || '',
username => $self->entry->journal->display_username,
}
);
}
sub as_email_html {
my $self = shift;
my $u = shift;
return sprintf "%s
%s", $self->as_html($u), $self->content( $u, full => 1 );
}
sub as_email_string {
my $self = shift;
my $u = shift;
my $text = $self->content( $u, full => 1 );
$text =~ s/\n+/ /g;
$text =~ s/\s*<\s*br\s*\/?>\s*/\n/g;
$text = LJ::strip_html($text);
return sprintf "%s
%s", $self->as_string($u), $text;
}
sub as_html {
my $self = shift;
my $u = shift;
my $entry = $self->entry or return "(Invalid entry)";
return LJ::Lang::get_default_text(
_construct_prefix($self) . '.html2',
{
siteroot => $LJ::SITEROOT,
sitename => $LJ::SITENAME,
sitenameshort => $LJ::SITENAMESHORT,
subject => $self->entry->subject_text || '',
username => $entry->journal->ljuser_display,
url => $entry->url,
poster => $self->entry->poster->ljuser_display,
}
);
}
sub as_string {
my $self = shift;
my $u = shift;
my $entry = $self->entry or return "(Invalid entry)";
return LJ::Lang::get_default_text(
_construct_prefix($self) . '.string2',
{
siteroot => $LJ::SITEROOT,
sitename => $LJ::SITENAME,
sitenameshort => $LJ::SITENAMESHORT,
subject => $self->entry->subject_text || '',
username => $self->entry->journal->display_username,
url => $entry->url,
poster => $self->entry->poster->display_username,
}
);
}
sub subscription_as_html {
my ( $class, $subscr ) = @_;
return BML::ml( 'event.officialpost', { sitename => $LJ::SITENAME } )
; # $LJ::SITENAME makes a new announcement
}
1;