madeon (madeon) wrote in changelog,
madeon
madeon
changelog

[livejournal] r19844: LJSV-1286: Attribute source_user accepts...

Committer: sbelyaev
LJSV-1286: Attribute source_user accepts current user.
U   trunk/cgi-bin/LJ/EmbedModule.pm
U   trunk/htdocs/update.bml
Modified: trunk/cgi-bin/LJ/EmbedModule.pm
===================================================================
--- trunk/cgi-bin/LJ/EmbedModule.pm	2011-08-25 09:19:11 UTC (rev 19843)
+++ trunk/cgi-bin/LJ/EmbedModule.pm	2011-08-25 09:20:43 UTC (rev 19844)
@@ -126,32 +126,32 @@
             ) .
             ">" . $opts{expand_to_link}->{caption} . "</a>";
     } elsif ($opts{get_video_id}) {
-        my $code = $class->module_content(moduleid  => $attrs{id}, journalid => $journal->id);        
+        my $code = $class->module_content(moduleid  => $attrs{id}, journalid => $journal->id);
 
         my $out=  '<lj-embed id="'. $attrs{id} .'" ';
 
         # LJSUP-8992
         if ($code =~ m!src=["']?http://www\.youtube\.com/(?:v|embed)/([\w\d\_\-]+)['"]?!) {
             $out .= 'vid="'.$1.'" source="youtube" ';
-        } elsif ($code =~ m!src=["']?http://player\.vimeo\.com/video/(\d+)[?'"]?! || 
+        } elsif ($code =~ m!src=["']?http://player\.vimeo\.com/video/(\d+)[?'"]?! ||
                  $code =~ m!=["']?http://vimeo\.com/moogaloop\.swf\?[\d\w\_\-\&\;\=]*clip_id=(\d+)[&'"]?! ) {
             $out .= 'vid="'.$1.'" source="vimeo" ';
         } elsif ($code =~ m!=["']?http://video\.rutube\.ru/([\dabcdef]+)['"]?!) {
             $out .= 'vid="'.$1.'" source="rutube" ';
         } elsif ($code =~ m!=["']?http://static\.video\.yandex\.ru/([\d\w\/\-\_\.]+)['"]?!) {
-            $out .= 'vid="'.$1.'" source="yandex" '; 
+            $out .= 'vid="'.$1.'" source="yandex" ';
         } elsif ($code =~ m!http://img\.mail\.ru.+movieSrc=([\w\d\/\_\-\.]+)["']?!) {
             $out .= 'vid="'.$1.'" source="mail.ru" ';
         } elsif ($code =~ m!http://(vkontakte\.ru|vk\.com)/video_ext!) {
             $out .= 'source="'.$1.'" ';
             my %fields = ($code =~ /(oid|id|hash)=([\dabcdef]+)/gm);
             $fields{vid} =  delete $fields{id};
-            $out .= $_.'="'.$fields{$_}.'" ' foreach (keys %fields);    
+            $out .= $_.'="'.$fields{$_}.'" ' foreach (keys %fields);
         }
         $out .= '/>';
 
         return $out;
-        
+
     } else {
         @opts{qw /width height/} = @attrs{qw/width height/};
         return $class->module_iframe_tag($journal, $attrs{id}, %opts)
@@ -211,7 +211,7 @@
         $tag = lc $tag;
         my $newstate = undef;
         my $reconstructed = $class->reconstruct($token);
-        
+
         if ($state == REGULAR) {
             if ($tag eq 'lj-embed' && $type eq 'S' && ! $attr->{'/'}) {
                 # <lj-embed ...>, not self-closed
@@ -225,8 +225,13 @@
                      $attr->{'source_user'} && $attr->{'/'}) {
 
                 my $u = LJ::load_user($attr->{'source_user'});
-
                 if ($u) {
+                    if ($journal->equals($u)) {
+                        $newstate = EXPLICIT;     # save embed id, width and height if they do exist in attributes
+                        $embed_attrs{id} = $attr->{id} if $attr->{id};
+                        $embed_attrs{width} = ($attr->{width} > MAX_WIDTH ? MAX_WIDTH : $attr->{width}) if $attr->{width};
+                        $embed_attrs{height} = ($attr->{height} > MAX_HEIGHT ? MAX_HEIGHT : $attr->{height}) if $attr->{height};
+                    } else {
                     $newstate = REGULAR;
                     $embed = $class->module_content( moduleid  => $attr->{id},
                                                      journalid => $u->id );
@@ -240,6 +245,7 @@
                             $embed_attrs{height} = $attr->{height} > MAX_HEIGHT ? MAX_HEIGHT : $attr->{height};
                         }
                     }
+                  }
                 }
             } elsif (($tag eq 'object' || $tag eq 'embed' || $tag eq 'iframe') && $type eq 'S') {
                 # <object> or <embed>
@@ -528,10 +534,10 @@
                 $selfclose = 1;
                 next;
             }
-            
+
             ## Remove "data" attribute from <object data="..."> constructs.
-            ## Right now attribute is silently dropped. 
-            ## TODO: pass a flag to outer scope that it was dropped, so that 
+            ## Right now attribute is silently dropped.
+            ## TODO: pass a flag to outer scope that it was dropped, so that
             ## ljprotocol can notify user by throwing an error.
             if ($tag eq 'object' && $name eq 'data') {
                 next;

Modified: trunk/htdocs/update.bml
===================================================================
--- trunk/htdocs/update.bml	2011-08-25 09:19:11 UTC (rev 19843)
+++ trunk/htdocs/update.bml	2011-08-25 09:20:43 UTC (rev 19844)
@@ -28,7 +28,7 @@
         $$body = "<?badinput?>";
         return;
     }
-    
+
     ## This header is to pass page content through IE8 XSS Filter.
     ## See also htdocs/preview/entry.bml.
     LJ::Request->header_out("X-XSS-Protection" => 0);
@@ -48,7 +48,7 @@
 
     # get remote and see if they can post right now
     my $remote = LJ::get_remote();
-    
+
     # Should we show try and buy
     my $show_trynbuy = LJ::TryNBuy->can_enable($remote) || LJ::TryNBuy->active($remote);
 
@@ -155,7 +155,7 @@
         my $text = LJ::Widget::QotD->qotd_display_embed( questions => [ $qotd ], form_disabled => 1 );
         $$head .= "<script type=\"text/javascript\">LiveJournal.qotdText = \"" . LJ::ejs($text) . "\";</script>";
     }
-    
+
     if ($url) {
         ## currently, the URL is for YouTube only.
         ## in future support for other quick embeds will be added.
@@ -183,12 +183,9 @@
             unless ($event) {
                 $event = $entry->event_raw;
                 my $journalu = $entry->journal;
+                LJ::EmbedModule->add_user_to_embed($journalu, \$event);
 
-                if (!$journalu->equals($remote)) {
-                    LJ::EmbedModule->add_user_to_embed($journalu, \$event);
-                }
-
-                $event = LJ::Lang::ml("repost.wrapper", { 
+                $event = LJ::Lang::ml("repost.wrapper", {
                                             username => $entry->poster->username,
                                             url      => $entry->url,
                                             subject  => $subject,
@@ -197,7 +194,6 @@
                 $reposted_from = $entry->url;
             }
         }
-        
     }
 
     # try to call a hook to fill in the fields
@@ -232,7 +228,7 @@
     my $errors = {};
     my $showform = $POST{'showform'} || $auth_missing;                            # show entry form
     my $preview = $POST{'action:preview'};
-    
+
         # are we spellchecking before we post?
     my $did_spellcheck; my $spellcheck_html;
     if ($LJ::SPELLER && $POST{'action:spellcheck'}) {
@@ -315,7 +311,7 @@
             $entry->{prop_opt_default_nocomments} = $remote->prop('opt_showtalklinks');
             $entry->{prop_last_fm_user} = $remote->prop('last_fm_user');
         }
-        
+
         if ($did_post) {
             $entry->{$_} = $POST{$_} foreach keys %POST;
 
@@ -351,7 +347,7 @@
         }
 
         $$body .= "\n\n<form method='post' action='update.bml$getextra' id='updateForm' name='updateForm'>\n\n";
-        
+
         $$body .= LJ::form_auth();
 
         if ($reposted_from) {
@@ -374,7 +370,6 @@
         </script>
 LIKE_FAQ
         $$body .= $js;
-	
         $$body .= LJ::Widget::SettingWindow->render;
 
         return;

Tags: bml, livejournal, madeon, pm
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments