kareila: (Default)
kareila ([personal profile] kareila) wrote in [site community profile] changelog2009-08-07 06:54 am

[dw-free] fix gmail threading on comment emails

[commit: http://hg.dwscoalition.org/dw-free/rev/658c278b78f5]

http://bugs.dwscoalition.org/show_bug.cgi?id=421

Append journal name and entry id to email subject.

Patch by [personal profile] janinedog.

Files modified:
  • cgi-bin/LJ/Event/JournalNewComment.pm
  • cgi-bin/talklib.pl
--------------------------------------------------------------------------------
diff -r 160d82e2137d -r 658c278b78f5 cgi-bin/LJ/Event/JournalNewComment.pm
--- a/cgi-bin/LJ/Event/JournalNewComment.pm	Fri Aug 07 00:45:49 2009 -0500
+++ b/cgi-bin/LJ/Event/JournalNewComment.pm	Fri Aug 07 01:53:44 2009 -0500
@@ -85,17 +85,22 @@ sub as_email_subject {
     my $edited = $self->comment->is_edited;
     my $lang = $u->prop('browselang');
 
+    my $entry_details = '';
+    if ( $self->comment->journal && $self->comment->entry ) {
+        $entry_details = ' [ ' . $self->comment->journal->display_name . ' - ' . $self->comment->entry->ditemid . ' ]';
+    }
+
     my $filename = $self->template_file_for(section => 'subject', lang => $lang);
     if ($filename) {
         # Load template file into template processor
         my $t = LJ::HTML::Template->new(filename => $filename);
-        $t->param(subject => $self->comment->subject_html);
+        $t->param( subject => $self->comment->subject_html . $entry_details );
         return $t->output;
     }
 
     my $key = 'esn.mail_comments.subject.';
     if ($self->comment->subject_orig) {
-        return LJ::strip_html($self->comment->subject_orig);
+        return LJ::strip_html( $self->comment->subject_orig . $entry_details );
     } elsif (LJ::u_equals($self->comment->poster, $u)) {
         $key .= $edited ? 'comment_you_edited' : 'comment_you_posted';
     } elsif ($self->comment->parent) {
@@ -111,7 +116,8 @@ sub as_email_subject {
             $key .= LJ::u_equals($self->comment->entry->poster, $u) ? 'reply_to_your_entry' : 'reply_to_an_entry';
         }
     }
-    return LJ::Lang::get_text($lang, $key);
+
+    return LJ::Lang::get_text( $lang, $key ) . $entry_details;
 }
 
 sub as_email_string {
diff -r 160d82e2137d -r 658c278b78f5 cgi-bin/talklib.pl
--- a/cgi-bin/talklib.pl	Fri Aug 07 00:45:49 2009 -0500
+++ b/cgi-bin/talklib.pl	Fri Aug 07 01:53:44 2009 -0500
@@ -2161,13 +2161,19 @@ my @_ml_strings_en = (
 );
 
 sub _format_headers {
-    my ($lang, $encoding, $comment, $u, $edited, $parent, $paru) = @_;
+    my ( $lang, $encoding, $comment, $u, $edited, $parent, $paru, $entry ) = @_;
 
     my $vars = {
         user            => $comment->{u} ? $comment->{u}->display_username : '',
         sitenameabbrev  => $LJ::SITENAMEABBREV,
         sitenameshort   => $LJ::SITENAMESHORT,
     };
+
+    my $entry_obj = LJ::Entry->new( $entry->{journalid}, ditemid => $entry->{ditemid} );
+    my $entry_details = '';
+    if ( $entry_obj && $entry_obj->journal ) {
+        $entry_details = ' [ ' . $entry_obj->journal->display_name . ' - ' . $entry_obj->ditemid . ' ]';
+    }
 
     my ($headersubject, $fromname);
     unless ($headersubject = $comment->{subject}) {
@@ -2187,6 +2193,8 @@ sub _format_headers {
         }
         $headersubject = LJ::Lang::get_text($lang, $key, undef, $vars);
     }
+
+    $headersubject .= $entry_details;
 
     if ($comment->{u}) {
         # external users has lj-logins as 'ext_*', so
@@ -2311,7 +2319,7 @@ sub mail_comments {
                 # Now we going to send email to '$paru'.
                 $lang = $paru->prop('browselang');
 
-                ($headersubject, $fromname) = _format_headers($lang, $encoding, $comment, $paru, $edited, $parent, $paru);
+                ($headersubject, $fromname) = _format_headers( $lang, $encoding, $comment, $paru, $edited, $parent, $paru, $item );
 
                 my $msg =  new MIME::Lite ('From' => "\"$fromname\" <$LJ::BOGUS_EMAIL>",
                                            'To' => $paru->email_raw,
@@ -2374,7 +2382,7 @@ sub mail_comments {
         # Now we going to send email to '$entryu'.
         $lang = $entryu->prop('browselang');
         $encoding = $entryu->mailencoding || "UTF-8";
-        ($headersubject, $fromname) = _format_headers($lang, $encoding, $comment, $entryu, $edited, $parent, $paru);
+        ($headersubject, $fromname) = _format_headers( $lang, $encoding, $comment, $entryu, $edited, $parent, $paru, $item );
 
         my $msg =  new MIME::Lite ('From' => "\"$fromname\" <$LJ::BOGUS_EMAIL>",
                                    'To' => $entryu->email_raw,
@@ -2445,7 +2453,7 @@ sub mail_comments {
         # Now we going to send email to '$u'.
         $lang = $u->prop('browselang');
         $encoding = $u->mailencoding || "UTF-8";
-        ($headersubject, $fromname) = _format_headers($lang, $encoding, $comment, $u, $edited, $parent, $paru);
+        ($headersubject, $fromname) = _format_headers( $lang, $encoding, $comment, $u, $edited, $parent, $paru, $item );
 
         my $msg = new MIME::Lite ('From' => "\"$fromname\" <$LJ::BOGUS_EMAIL>",
                                   'To' => $u->email_raw,
--------------------------------------------------------------------------------
yvi: Kaylee half-smiling, looking very pretty (Default)

[personal profile] yvi 2009-08-07 06:55 am (UTC)(link)
\o/
janinedog: (Default)

[personal profile] janinedog 2009-08-07 06:56 am (UTC)(link)
\o/
mark: A photo of Mark kneeling on top of the Taal Volcano in the Philippines. It was a long hike. (Default)

[staff profile] mark 2009-08-07 07:01 am (UTC)(link)
You are my sunshine.. my only sunshine.. you make me happyyyyy when Gmail's dumbbbbb...!
brewsternorth: Dreaming sheep with the flag of New York City (ny <3 dw)

[personal profile] brewsternorth 2009-08-10 04:58 pm (UTC)(link)
*bounces*

Yay!