Make WordPress Core

Ticket #32069: 32069.diff

File 32069.diff, 8.0 KB (added by stephdau, 9 years ago)
  • src/wp-admin/includes/class-wp-press-this.php

     
    438438        private function _limit_embed( $src ) {
    439439                $src = $this->_limit_url( $src );
    440440
     441                if ( empty( $src ) )
     442                        return '';
     443
    441444                if ( preg_match( '/\/\/(m|www)\.youtube\.com\/(embed|v)\/([^\?]+)\?.+$/', $src, $src_matches ) ) {
    442445                        // Embedded Youtube videos (www or mobile)
    443446                        $src = 'https://www.youtube.com/watch?v=' . $src_matches[3];
     
    453456                } else if ( preg_match( '/\/\/(www\.)?dailymotion\.com\/embed\/video\/([^\/\?]+)([\/\?]{1}.+)?/', $src, $src_matches ) ) {
    454457                        // Embedded Daily Motion videos
    455458                        $src = 'https://www.dailymotion.com/video/' . $src_matches[2];
    456                 } else if ( ! preg_match( '/\/\/(m|www)\.youtube\.com\/watch\?/', $src )          // Youtube video page (www or mobile)
    457                             && ! preg_match( '/\/youtu\.be\/.+$/', $src )                         // Youtu.be video page
    458                             && ! preg_match( '/\/\/vimeo\.com\/[\d]+$/', $src )                   // Vimeo video page
    459                             && ! preg_match( '/\/\/(www\.)?dailymotion\.com\/video\/.+$/', $src ) // Daily Motion video page
    460                             && ! preg_match( '/\/\/soundcloud\.com\/.+$/', $src )                 // SoundCloud audio page
    461                             && ! preg_match( '/\/\/twitter\.com\/[^\/]+\/status\/[\d]+$/', $src ) // Twitter status page
    462                             && ! preg_match( '/\/\/vine\.co\/v\/[^\/]+/', $src ) ) {              // Vine video page
    463                         $src = '';
     459                } else {
     460                        require_once( ABSPATH . WPINC . '/class-oembed.php' );
     461                        $oembed = _wp_oembed_get_object();
     462
     463                        if ( ! $oembed->get_provider( $src, array( 'discover' => false ) ) ) {
     464                                $src = '';
     465                        }
    464466                }
    465467
    466468                return $src;
     
    927929        public function get_embeds( $data ) {
    928930                $selected_embeds = array();
    929931
     932                // Make sure to add the Pressed page if it's a valid oembed itself
     933                if ( ! empty ( $data['u'] ) && $this->_limit_embed( $data['u'] ) ) {
     934                        $data['_embeds'][] = $data['u'];
     935                }
     936
    930937                if ( ! empty( $data['_embeds'] ) ) {
    931938                        foreach( $data['_embeds'] as $src ) {
    932939                                $prot_relative_src = preg_replace( '/^https?:/', '', $src );
     
    10911098
    10921099                $default_html = array( 'quote' => '', 'link' => '', 'embed' => '' );
    10931100
    1094                 require_once( ABSPATH . WPINC . '/class-oembed.php' );
    1095                 $oembed = _wp_oembed_get_object();
    1096 
    1097                 if ( ! empty( $data['u'] ) && $oembed->get_provider( $data['u'], array( 'discover' => false ) ) ) {
     1101                if ( $this->_limit_embed( $data['u'] ) ) {
    10981102                        $default_html['embed'] = '<p>[embed]' . $data['u'] . '[/embed]</p>';
    10991103
    11001104                        if ( ! empty( $data['s'] ) ) {
  • src/wp-admin/js/bookmarklet.js

     
    6666                form.appendChild( input );
    6767        }
    6868
    69         if ( href.match( /\/\/(www|m)\.youtube\.com\/watch/ ) ||
    70                 href.match( /\/\/vimeo\.com\/(.+\/)?([\d]+)$/ ) ||
    71                 href.match( /\/\/(www\.)?dailymotion\.com\/video\/.+$/ ) ||
    72                 href.match( /\/\/soundcloud\.com\/.+$/ ) ||
    73                 href.match( /\/\/twitter\.com\/[^\/]+\/status\/[\d]+$/ ) ||
    74                 href.match( /\/\/vine\.co\/v\/[^\/]+/ ) ) {
    75 
    76                 add( '_embeds[]', href );
    77         }
    78 
    7969        metas = head.getElementsByTagName( 'meta' ) || [];
    8070
    8171        for ( var m = 0; m < metas.length; m++ ) {
  • src/wp-admin/js/bookmarklet.min.js

     
    1 (function(a,b,c,d){function e(a,c){if("undefined"!=typeof c){var d=b.createElement("input");d.name=a,d.value=c,d.type="hidden",p.appendChild(d)}}var f,g,h,i,j,k,l,m,n,o=a.encodeURIComponent,p=b.createElement("form"),q=b.getElementsByTagName("head")[0],r="_press_this_app",s=!0;if(d){if(!c.match(/^https?:/))return void(top.location.href=d);if(d+="&u="+o(c),c.match(/^https:/)&&d.match(/^http:/)&&(s=!1),a.getSelection?h=a.getSelection()+"":b.getSelection?h=b.getSelection()+"":b.selection&&(h=b.selection.createRange().text||""),d+="&buster="+(new Date).getTime(),s||(b.title&&(d+="&t="+o(b.title.substr(0,256))),h&&(d+="&s="+o(h.substr(0,512)))),f=a.outerWidth||b.documentElement.clientWidth||600,g=a.outerHeight||b.documentElement.clientHeight||700,f=800>f||f>5e3?600:.7*f,g=800>g||g>3e3?700:.9*g,!s)return void a.open(d,r,"location,resizable,scrollbars,width="+f+",height="+g);(c.match(/\/\/(www|m)\.youtube\.com\/watch/)||c.match(/\/\/vimeo\.com\/(.+\/)?([\d]+)$/)||c.match(/\/\/(www\.)?dailymotion\.com\/video\/.+$/)||c.match(/\/\/soundcloud\.com\/.+$/)||c.match(/\/\/twitter\.com\/[^\/]+\/status\/[\d]+$/)||c.match(/\/\/vine\.co\/v\/[^\/]+/))&&e("_embeds[]",c),i=q.getElementsByTagName("meta")||[];for(var t=0;t<i.length&&!(t>200);t++){var u=i[t],v=u.getAttribute("name"),w=u.getAttribute("property"),x=u.getAttribute("content");x&&(v?e("_meta["+v+"]",x):w&&e("_meta["+w+"]",x))}j=q.getElementsByTagName("link")||[];for(var y=0;y<j.length&&!(y>=50);y++){var z=j[y],A=z.getAttribute("rel");("canonical"===A||"icon"===A||"shortlink"===A)&&e("_links["+A+"]",z.getAttribute("href"))}b.body.getElementsByClassName&&(k=b.body.getElementsByClassName("hfeed")[0]),k=b.getElementById("content")||k||b.body,l=k.getElementsByTagName("img")||[];for(var B=0;B<l.length&&!(B>=100);B++)n=l[B],n.src.indexOf("avatar")>-1||n.className.indexOf("avatar")>-1||n.width&&n.width<256||n.height&&n.height<128||e("_images[]",n.src);m=b.body.getElementsByTagName("iframe")||[];for(var C=0;C<m.length&&!(C>=50);C++)e("_embeds[]",m[C].src);b.title&&e("t",b.title),h&&e("s",h),p.setAttribute("method","POST"),p.setAttribute("action",d),p.setAttribute("target",r),p.setAttribute("style","display: none;"),a.open("about:blank",r,"location,resizable,scrollbars,width="+f+",height="+g),b.body.appendChild(p),p.submit()}})(window,document,top.location.href,window.pt_url);
    2  No newline at end of file
     1(function(a,b,c,d){function e(a,c){if("undefined"!=typeof c){var d=b.createElement("input");d.name=a,d.value=c,d.type="hidden",p.appendChild(d)}}var f,g,h,i,j,k,l,m,n,o=a.encodeURIComponent,p=b.createElement("form"),q=b.getElementsByTagName("head")[0],r="_press_this_app",s=!0;if(d){if(!c.match(/^https?:/))return void(top.location.href=d);if(d+="&u="+o(c),c.match(/^https:/)&&d.match(/^http:/)&&(s=!1),a.getSelection?h=a.getSelection()+"":b.getSelection?h=b.getSelection()+"":b.selection&&(h=b.selection.createRange().text||""),d+="&buster="+(new Date).getTime(),s||(b.title&&(d+="&t="+o(b.title.substr(0,256))),h&&(d+="&s="+o(h.substr(0,512)))),f=a.outerWidth||b.documentElement.clientWidth||600,g=a.outerHeight||b.documentElement.clientHeight||700,f=800>f||f>5e3?600:.7*f,g=800>g||g>3e3?700:.9*g,!s)return void a.open(d,r,"location,resizable,scrollbars,width="+f+",height="+g);i=q.getElementsByTagName("meta")||[];for(var t=0;t<i.length&&!(t>200);t++){var u=i[t],v=u.getAttribute("name"),w=u.getAttribute("property"),x=u.getAttribute("content");x&&(v?e("_meta["+v+"]",x):w&&e("_meta["+w+"]",x))}j=q.getElementsByTagName("link")||[];for(var y=0;y<j.length&&!(y>=50);y++){var z=j[y],A=z.getAttribute("rel");("canonical"===A||"icon"===A||"shortlink"===A)&&e("_links["+A+"]",z.getAttribute("href"))}b.body.getElementsByClassName&&(k=b.body.getElementsByClassName("hfeed")[0]),k=b.getElementById("content")||k||b.body,l=k.getElementsByTagName("img")||[];for(var B=0;B<l.length&&!(B>=100);B++)n=l[B],n.src.indexOf("avatar")>-1||n.className.indexOf("avatar")>-1||n.width&&n.width<256||n.height&&n.height<128||e("_images[]",n.src);m=b.body.getElementsByTagName("iframe")||[];for(var C=0;C<m.length&&!(C>=50);C++)e("_embeds[]",m[C].src);b.title&&e("t",b.title),h&&e("s",h),p.setAttribute("method","POST"),p.setAttribute("action",d),p.setAttribute("target",r),p.setAttribute("style","display: none;"),a.open("about:blank",r,"location,resizable,scrollbars,width="+f+",height="+g),b.body.appendChild(p),p.submit()}})(window,document,top.location.href,window.pt_url);
     2 No newline at end of file