.



on-line?
? ?
Ru.Board » » » Opera Presto ( 26)

: gyra, Maz

   •
: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191

     

gyra

Moderator
| | | |
| 25  Oep Presto || , v12 (Blink) - ec
Opera Presto 12.18 [15.02.2016]
Windows: x86 | x64 | Linux: x86/x64 | Mac OS X: x86/x64
--- / - ---
cao:
 - USB- [Stand-alone installation USB] ! ...
 - [All users on this computer] ...
 - [Current user] ...

:
  • (opera:config) | |
  • " " ( )
  • - "/"
  • | 12.15-16-17
  • YouTube

    Presto:
  • ////
  • ,
  • /
  • | Opera AC
  • forum.timsky.ru , Opera 12.15 [ ]
  • MyOpera.net |
  • OperaFan.net | ( -)
  • | | .

  • : 7378 | . 18-02-2006 | : 00:39 05-11-2017 | : VladDr, 02:46 21-09-2019
    raddyst

    Gold Member
    | | | |
    WatsonRus
    :
    , M$ , XP , 12.18 , XP?  

    , - .

    : 6936 | . 08-03-2010 | : 17:31 06-11-2017
    gyra

    Moderator
    | | | |
    WatsonRus
    raddyst
    .

    : 7378 | . 18-02-2006 | : 18:08 06-11-2017
    Ilya_SpongeBob

    Full Member
    | | | |
    9.29 12.18 .. https - -. 12.18 ? .. , .

    : 464 | . 16-02-2011 | : 19:05 06-11-2017
    YaZritelVANOMASA

    Junior Member
    | | | |
    web skype ?

    : 58 | . 23-08-2017 | : 19:16 06-11-2017
    VladDr

    Advanced Member
    | | | |
    adasiko, e a c ey "opoee" NT5.x.
     
    raddyst
    :
    ,

    oc o e ao . A ec ec, o pa o o ce.

    : 1923 | . 05-06-2010 | : 19:25 06-11-2017
    raddyst

    Gold Member
    | | | |
    VladDr
    :
    oc o e ao . A ec ec, o pa o o ce.

    , , . "" - ...

    : 6936 | . 08-03-2010 | : 19:38 06-11-2017
    VladDr

    Advanced Member
    | | | |

    :
    9.29 12.18 .. https - -.

    : poae a . px, oopoe e oepa v. o 12.18, peao peye ee pecypco o eo cooa pa a ae cepepo, a ooae. E o xoa yoyo 9-, ce o ye o peaoao oey ~10 e aa oep oca o oo e ao, e e oo..

    : 1923 | . 05-06-2010 | : 19:42 06-11-2017
    Alex_Qwerty

    Advanced Member
    | | | |
    Ilya_SpongeBob

    :
    // ==UserScript==
    // @include *
    // ==/UserScript==
     
    if(document.contentType.indexOf('image/')==0 && document.contentType.indexOf('svg')==-1) {
        window.donotrun=true;
     
        window.addEventListener('load', function(){
            if (!document.title) document.title = window.location.pathname.match(/([^\/]*)\/*$/)[1];
            var img = document.querySelector('img');
            if (img.naturalWidth && img.naturalHeight) document.title += ' (' + img.naturalWidth + '\xd7' + img.naturalHeight + ')';
        },false);
    }
     

    : 1827 | . 09-09-2006 | : 19:52 06-11-2017
    billibons

    Advanced Member
    | | | |
    Alex_Qwerty
    , , , ?

    : 1393 | . 15-12-2005 | : 20:48 06-11-2017
    Ilya_SpongeBob

    Full Member
    | | | |
    Alex_Qwerty , .. ...
     
    VladDr
    :
    : poae a . px, oopoe e oepa v. o 12.18, peao peye ee pecypco o eo cooa pa a ae cepepo
    , , 9.27? ECDHE, , -- , . -- , .

    : 464 | . 16-02-2011 | : 20:55 06-11-2017 | : Ilya_SpongeBob, 21:04 06-11-2017
    VladDr

    Advanced Member
    | | | |
    Ilya_SpongeBob
    :
    , 9.27?

    Bo e: oco c oo ECDSA c eca https o CloudFlare.

    : 1923 | . 05-06-2010 | : 21:24 06-11-2017
    MERCURY127



    Gold Member
    | | | |

    :
    ... - , .  
    , .
    ?

    : 9081 | . 03-08-2008 | : 21:29 06-11-2017 | : MERCURY127, 21:30 06-11-2017
    dansn

    Junior Member
    | | | |
    Youtube flash - . Youtube flash player_Decipher patched_v1.zip - , crossdomain.xml. FlashProxy5.zip - , . . winxp c flash18.

    : 138 | . 06-02-2008 | : 01:10 07-11-2017
    Rwd

    Full Member
    | | | |
    Fartman

    :
    : https://www.youtube.com/watch?v=8f2ZeHaAHvY   FlashProxy4.zip

    FlashProxy5 .

    : 558 | . 11-11-2016 | : 02:13 07-11-2017
    Alex_Qwerty

    Advanced Member
    | | | |

    :
    // ==UserScript==
    // @include *.youtube.com/*
    // @include *.youtube-nocookie.com/*
    // @include *.youtubeeducation.com/*
    // ==/UserScript==
    (function(opera){
     
        var ScriptName = 'youtube_fuck_html5.js v17';
     
        var conf = {
              relatedVideos : false        // click title if not works
            , blockPlayerBase : true
            , videoQuality : 'auto'        // highres hd1440 hd1080 hd720 large medium small tiny auto
            , autoplay : 1                // 1 0; not in background; not in iframe
            , del43 : true                // remove format 43 (webm 640x360); can help switching to 720
            , noSubtitles: true            // they don't works
            , swf : 'https://s.ytimg.com/yts/swfbin/player-vfljf_kbO/watch_as3.swf'    // dead
            //, swf : 'https://s.ytimg.com/yts/swfbin/player-vfljf_kbO/watch_as3-vfl7SkMGe.swf'    // dead
            , deleteCookies: [
                //'VISITOR_INFO1_LIVE'    // messes with signatures
            ]
            , addParams: {
                  theme: 'dark'        // dark, light
                , color: 'red'        // red, white
                //, hl: 'en'
            }
            //, wmode : 'direct'    // window, direct, opaque, transparent, gpu https://helpx.adobe.com/ru/flash/kb/flash-object-embed-tag-attributes.html
        }
     
    /*
    Need something against crossdomain.xml and watch_as3.swf
     
    Filters for Proxomitron:
     
    [Patterns]
    Name = "youtube dash manifest fix"
    Active = TRUE
    URL = "manifest.googlevideo.com(:443|)/api/manifest/dash/"
    Limit = 256
    Match = "(<SegmentList>)\1(<SegmentURL media="\2")\3"
    Replace = "\1<Initialization sourceURL="\2"/>\3"
     
     
     
    [HTTP headers]
    In = FALSE
    Out = TRUE
    Key = "URL: youtube crossdomain.xml"
    URL = "([^/]++.|)(youtube(-nocookie|education|).com|ytimg.com|googlevideo.com)(:443|)/crossdomain.xml$RDIR(http://local.ptron/crossdomain.xml)"
     
    In = FALSE
    Out = TRUE
    Key = "URL: youtube watch_as3.swf"
    URL = "s.ytimg.com(:443|)/yts/swfbin/player-*watch_as3.swf$RDIR(http://local.ptron/watch_as3.swf)"
     
    In = FALSE
    Out = TRUE
    Key = "Accept-encoding: youtube no gzip, enable filtering"
    URL = "manifest.googlevideo.com(:443|)/$FILTER(True)"
     
     
     
    crossdomain.xml (put in Proxomitron\html\):
     
    <?xml version="1.0"?>
    <cross-domain-policy>
      <allow-access-from domain="*" />
    </cross-domain-policy>
     
    */
     
        var sts, pr, formats={};
     
        document.createElement("video").constructor.prototype.canPlayType = function(type){return ""};    // disable HTML5
     
        var showConf = true;
        function log(str){
            opera.postError(ScriptName + (str?': '+str:'')+(showConf?'\nconf='+JSON.stringify(conf):''));
            showConf = false;
        }
     
        //https://learn.javascript.ru/cookie
        function setCookie(name, value, options) {options = options || {};var expires = options.expires;if (typeof expires == "number" && expires) {var d = new Date();d.setTime(d.getTime() + expires * 1000);expires = options.expires = d;}if (expires && expires.toUTCString) {options.expires = expires.toUTCString();}value = encodeURIComponent(value);var updatedCookie = name + "=" + value;for (var propName in options) {updatedCookie += "; " + propName;var propValue = options[propName];if (propValue !== true) {updatedCookie += "=" + propValue;}}document.cookie = updatedCookie;}
        function deleteCookie(name, options) {options=options||{}; options.expires=-1; setCookie(name, "", options)}
     
     
        if (conf.deleteCookies) for (var i=0; i<conf.deleteCookies.length; i++) {
            deleteCookie(conf.deleteCookies[i],{domain:location.hostname});
            deleteCookie(conf.deleteCookies[i],{domain:location.hostname.replace(/^www\./,'.')});
            deleteCookie(conf.deleteCookies[i],{domain:location.hostname.replace(/^www\./,'')});
        }
     
        //opera.postError(ScriptName);
        opera.addEventListener("BeforeScript",function(e){
            if (e.element.src.match(/\/yts\/jsbin\/player.*?\/base\.js/)) {
                sts = e.element.text.match(/[{,]sts:(\d+)[},]/);
                sts=sts&&sts[1];
                if (sts) {
                    log('player: '+e.element.src+'\nsts='+sts+'\nUA='+navigator.userAgent);
                    if (conf.blockPlayerBase) {
                        if (window.canBlockPlayerBase) {
                            var decf = e.element.text.match(/=function\(a\){(a=a.split\(""\)[^}]*?;return a.join\(""\))};/);
                            decf = decf && decf[1];
                            var deco = decf && decf.match(/([\w$_]+)\.[\w$_]+\(a,\d+\);/);
                            deco = deco && e.element.text.match(new RegExp('var '+deco[1]+'={[\\w$_]+:function\\(a[\\s\\S]*?};'))
                            deco = deco && deco[0];
                            if (decf && deco) {
                                decodeSignature = new Function('a', deco+decf);
                                e.preventDefault();
                                log('blocked player base.js: '+e.element.src);
                            } else {
                                log("error: can't get decoder from player base.js")
                            }
                        } else {
                            log('blockPlayerBase requires blockYoutubeScripts in youtube_fix.js');
                        }
                    } else {
                        e.element.text = e.element.text.replace('=function(a){a=a.split("")','=decodeSignature=function(a){a=a.split("")');
                    }
                }
            }
        },false);
     
        function getField(obj) {
            var tmp = obj;
            if (tmp) for (var i=1; i<arguments.length; i++) {
                tmp = tmp[arguments[i]];
                if (!tmp) break;
            }
            return tmp;
        }
     
        function xhr(url, method, post, xml, headers){
            var x = new XMLHttpRequest();
            x.open(method || 'GET', url, false);
            if (headers) for (var i=0; i<headers.length; i++) x.setRequestHeader(headers[i][0], headers[i][1]);
            x.send(post);
            return xml?x.responseXML:x.responseText;
        }
     
        function splitKV(str) {
            var o = {};
            var tmp;
            var re = /([\da-z_]+)=([^&]*)/gi;
            while ( (tmp = re.exec(str))!==null ) { o[tmp[1]] = decodeURIComponent(tmp[2].replace(/\+/g,' '));    }
            return o;
        }
     
        function concatKV(obj){
            var tmp = [];
            for (var n in obj) tmp.push(n+'='+encodeURIComponent(obj[n]).replace(/,/g,'%2C') );
            return tmp.join('&');
        }
     
        var onceFix = true;
        function fix(str){
            var tmp = str.split(',');
            for (var i=tmp.length-1; i>=0; i--) {
                var obj = splitKV(tmp[i]);
                del(obj,['xtags']);
                if (conf.del43 && obj.itag==43) {
                    tmp.splice(i,1);    // del
                    log('removed format 43')
                } else if (obj.clen==0 && obj.url.indexOf('live=1')==-1) {
                    tmp.splice(i,1);    // del
                    log('removed clen==0 itag='+obj.itag);
                } else if (obj.s) {
                    obj.itag = parseInt(obj.itag);
                    if (formats[obj.itag]) {
                        obj.url = formats[obj.itag];
                        delete obj.s;
                    } else if (!window.decodeSignature) {
                        if (onceFix) onceFix = log('error: no decodeSignature()')
                        return str;
                    } else {
                        obj.url += '&'+(obj.sp||'signature')+'='+decodeSignature(obj.s);
                        delete obj.s;
                    }
                    tmp[i] = concatKV(obj);
                }
            }
            return tmp.join(',');
        }
     
        function del(obj,arr){ for (var d in arr) delete obj[arr[d]]; }
        function set(obj,arr){ for (var d in arr) obj[d]=arr[d]; }
        function setNew(obj,arr){ for (var d in arr) if (typeof(obj[d])=='undefined') obj[d]=arr[d]; }
     
        if (location.pathname.indexOf('/embed/')==0 || location.pathname=='/watch' && window==window.top) document.addEventListener('DOMContentLoaded',function(){
            var errMsg = document.querySelector('#unavailable-message');
            var div;
            var selectors = ['div.html5-video-player', 'div#player-api', 'div#player'];
            for (var i=0,s; s=selectors[i]; i++) if (div = document.querySelector(s)) break;
            if (!div) {
                log('player div not found');
            } else {
                log('found div:'+(div.id?' id="'+div.id+'"':'') + (div.className?' class="'+div.className+'"':''));
                if (!sts) log('warning: sts from /player-./base.js not found! Check content blocker.');
                div.classList.remove('off-screen-target');
                div.innerHTML = '<br><br>'+ScriptName;
                var u = document.querySelector('div#player-unavailable');
                if (u) u.parentNode.removeChild(u);
                var id = (''+location).match(/\/embed\/([\da-z_-]{11})/i) || (''+location).match(/[&?]v=([\da-z_-]{11})/i);
                id = id&&id[1];
                if (!id) {
                    div.innerHTML += ' - no video id';
                    return log('no video id');
                }
     
                var bg = 'https://i.ytimg.com/vi/'+id+'/hqdefault.jpg';
                var info, infoLength, status, reason;
                function gvi(data) {
                    var url = '/get_video_info?html5=1&asv=3&ps=default'+(sts?'&sts='+sts:'')+'&video_id='+id+(data||'');
                    info = xhr(url);
                    if (info.indexOf('status=')==-1) info = xhr(url);    // second try
                    infoLength = info.length;
                    info = splitKV(info);
                    if (info.player_response) info.player_response = JSON.parse(info.player_response);
                    status = getField(info, "player_response", 'playabilityStatus', 'status');
                    if (status) status=status.toLowerCase();
                    reason = getField(info, "player_response", 'playabilityStatus', 'reason');
     
    //alert(JSON.stringify(info,null,'\t'))
                }
                gvi();
                if (status=="unplayable") {
                    if (reason.indexOf("youtube.com/watch")!=-1) {
                        var page = xhr('/watch?v='+id);
                        var tmp = page.match(/ytplayer.config = ({.*?});ytplayer/);
                        info = JSON.parse(tmp[1]).args;
                        if (info.player_response) info.player_response = JSON.parse(info.player_response);
                        status = getField(info, "player_response", 'playabilityStatus', 'status');
                        if (status) status=status.toLowerCase();
                        reason = getField(info, "player_response", 'playabilityStatus', 'reason');
    //alert(JSON.stringify(tmp,null,'\t'))
     
                    } else {
                        gvi('&eurl=http://www.google.com/');
                    }
                }
     
                if (status!='ok') {
                    div.innerHTML = '<br><br>'+reason;
                    return log('reason: '+reason);
                }
     
                log(JSON.stringify({cbr:info.cbr, cbrver:info.cbrver, cbrand:info.cbrand, infoLength:infoLength}));
                if (!conf.relatedVideos) delete info.rvs;
                del (info, ['ppv_remarketing_url','remarketing_url', 'allowed_ads', 'survey_smartpixel_url']);
                pr = info.player_response;
                if (pr) {
                    var sd = pr.streamingData || {};
                    var tmp = sd.formats;
                    if (tmp) for (var i=0; i<tmp.length; i++) formats[parseInt(tmp[i].itag)]=tmp[i].url;
                    tmp = sd.adaptiveFormats;
                    if (tmp) for (var i=0; i<tmp.length; i++) formats[parseInt(tmp[i].itag)]=tmp[i].url;
                    // manifests don't work?
                    //if (!info.dashmpd) info.dashmpd = sd.dashManifestUrl;
                    //if (!info.hlsvp) info.hlsvp = sd.hlsManifestUrl;
                    if (getField(pr, 'playabilityStatus', 'status')=="UNPLAYABLE") return div.innerHTML = '<br><br>' + pr.playabilityStatus.reason;
                }
     
     
                //var eventid = (info.url_encoded_fmt_stream_map||info.adaptive_fmts).match(/ei%3D([^%]+)/)[1];
                var crap = {
                      storyboard_spec: getField(pr, 'storyboards', 'playerStoryboardSpecRenderer', 'spec')
                          || "http://i9.ytimg.com/sb/LpWKhuvcXGU/storyboard3_L$L/$N.jpg?sqp=ovOX_wMGCMLdv58F|48#27#100#10#10#0#default#rs$AOn4CLCZ4iJXVfCkSXp3QGpGckl5vCoKAA|80#45#76#10#10#1000#M$M#rs$AOn4CLCLFHKsZ4N97Z2y-gYuQauK7NH3SQ|160#90#76#5#5#1000#M$M#rs$AOn4CLDLKWOa64VAWs_XCvNKMPnOd1xWCQ"
                    , token: 'fuck'
                    , length_seconds: getField(pr, 'videoDetails', 'lengthSeconds')
                    , title: getField(pr, 'videoDetails', 'title')
                    , video_id: getField(pr, 'videoDetails', 'videoId')
                }
    //alert(JSON.stringify(crap,null,'\t'))
                setNew(info, crap);
     
     
                if (conf.noSubtitles) {
                    del(info, ['ttsurl','caption_tracks','caption_audio_tracks', 'cc_asr', 'cc3_module', 'caption_translation_languages', 'cc_font']);
                    info.has_cc = 'False';
                } else {
                    var tmp = JSON.parse(info.player_response||'{}');
                    if (tmp.captions) {
                        tmp = tmp.captions.playerCaptionsTracklistRenderer.captionTracks
                    }
     
                }
                if (conf.del43 && info.fmt_list) info.fmt_list = info.fmt_list.replace('43/640x360,','');
                if (conf.addParams) set(info, conf.addParams);
                if (conf.videoQuality) info.vq = conf.videoQuality;
                info.autoplay = conf.autoplay && !document.hidden && window==window.top && 1 || 0;
                if (info.url_encoded_fmt_stream_map) info.url_encoded_fmt_stream_map = fix(info.url_encoded_fmt_stream_map);
                if (info.adaptive_fmts) info.adaptive_fmts = fix(info.adaptive_fmts);
     
     
     
                if (info.dashmpd) info.dashmpd = info.dashmpd.replace(/\/s\/([\dA-F.]+)/,function(a,s){return '/signature/'+decodeSignature(s)});
                set(info, {no_stats:1, allow_embed:1, no_get_video_log:1, rmkt:0, rtl:0, ad3_module:0, ad_preroll:0, enable_cardio:0
                    , enable_cardio_before_playback:0, advideo:0, skl:1});
                del(info, ['player_response']);    // for some videos
                del(info, ['fflags']);
    //alert(JSON.stringify(info,null,'\t'));
                info = concatKV(info);
                var wmode = conf.wmode ? 'wmode="'+conf.wmode+'"' : '';
                div.innerHTML = '<embed src="'+conf.swf+'" flashvars="'+info+'" '+wmode+' style="background: url('+bg+') center no-repeat" type="application/x-shockwave-flash" width=100% height=100% allowfullscreen="true" allowscriptaccess="always" bgcolor="#000000" />'
            } // !div
        },false);
     
    })(opera)
     

     
     
     

    :
     
    // ==UserScript==
    // @include *//youtube.com/*
    // @include *.youtube.com/*
    // @include *//youtube-nocookie.com/*
    // @include *.youtube-nocookie.com/*
    // @include *//youtubeeducation.com/*
    // @include *.youtubeeducation.com/*
    // @exclude http://tparser.org/*
    // ==/UserScript==
     
    if ( document.contentType=='text/html' || (''+location).match(/[/.]youtube(-nocookie|education|).com\/v\//) ) (function(opera){
     
    var ScriptName = 'youtube_fix.js v13';
     
    var conf = {
     fixObjects : true// object -> iframe
    , fixInsertedObjects : {
     enabled: true// may break sites; use whitelist or // @exclude *
    , blacklist : ['translate.yandex.ru'] // [] - works anywhere; ['tparser.org']
    , whitelist : [] // [] - works anywhere; ['3dnews.ru', 'livejournal.com']
    }
    , blockYoutubeScripts : true// except player base.js
    //, loadComments : true// don't works
    , addLinksInEmbeds : true
    , loadThumbnails : true
    , fixList : true// for long channel lists
    }
     
    var showConf = true;
    function log(str){
    opera.postError(ScriptName +(str?': '+str:'')+(showConf?'\nconf='+JSON.stringify(conf):''));
    showConf = false;
    }
     
    function findHost(hosts, host){
    var flag = -1;
    while (flag==-1 && host) {
    flag = hosts.indexOf(host);
    host = host.replace(/^[^.]*\.?/,'');
    }
    return flag;
    }
    var youtubeHosts = ['youtube.com','youtube-nocookie.com','youtubeeducation.com'];
     
    function create(el, cn, ih){var tmp=document.createElement(el); if(cn)tmp.className=cn; tmp.innerHTML=ih||''; return tmp; }
     
    function xhr(url, method, post, xml, headers){
    var x = new XMLHttpRequest();
    x.open(method || 'GET', url, false);
    if (headers) for (var i=0; i<headers.length; i++) x.setRequestHeader(headers[i][0], headers[i][1]);
    x.send(post);
    return xml?x.responseXML:x.responseText;
    }
     
    var isYoutube = findHost(youtubeHosts, location.hostname)!=-1;
     
    var v = isYoutube && location.pathname.match(/^\/v\/([\da-z_-]{11})/i);
    if (v) {
    stop();
    log('redirecting to /embed/');
    location = '/embed/'+v[1];
    }
     
    var videoId = (''+location).match(/[&?]v=([\da-z_-]{11})/i) || (''+location).match(/\/embed\/([\da-z_-]{11})/i);
    videoId = videoId && videoId[1];
     
     
    if (conf.blockYoutubeScripts && isYoutube) {
    var once = true;
    window.canBlockPlayerBase = true;
    var needPlayerBase = true;
    var func = function(){};
    requestAnimationFrame = func;
    writeEmbed = func;
    writeLightweightEmbed = func;
    spf = {script:{path:func, declare:func}};
       ytcsi = {info: func, tick:func};
    yt = {config_:{}, pushConfigArray:func, setMsg:func}
     
    yt.setConfig = function(o,v){
    if (v) { yt.config_[o]=v } else {for (var k in o) yt.config_[k]=o[k]}
    if (needPlayerBase && o && o.PLAYER_CONFIG && o.PLAYER_CONFIG.assets && o.PLAYER_CONFIG.assets.js) {
    var s = document.createElement('script');
    s.src = o.PLAYER_CONFIG.assets.js;
    document.body.appendChild(s);
    log('inserted player base.js: '+s.src);
    needPlayerBase = false;
    }
    }
     
    var moreButton;
     
    opera.addEventListener("BeforeExternalScript",function(e){
    if (e.element.src.match(/\/yts\/jsbin\/player.*?\/base\.js/)) {
    needPlayerBase = false;
    } else {
    e.preventDefault();
    if (once) once = log('blocking youtube scripts...');
    }
     
    if (!moreButton) {
    moreButton = document.querySelector('button[data-uix-load-more-href]');
    if (moreButton){
    var L=document.selectNodes('//link[@rel="next"]');
    for (var l=0; l<L.length; l++) { L[l].parentNode.removeChild(L[l]);};
    var ln=document.createElement('link');
    ln.rel='next';
    ln.href="javascript:document.querySelector('button[data-uix-load-more-href]').click()";
    document.body.appendChild(ln);
    opera.postError(ScriptName+' FF');
    }
    }
    },false);
    }
     
     
    document.addEventListener('DOMContentLoaded',function(){
     
    var tmp = document.querySelectorAll('a[href*="youtube.com/edit?"]');
    for (var i=0,a; a=tmp[i]; i++) {
    var id = a.href.match(/[?&]video_id=([\da-z_-]{11})/i);
    if (id) a.href = 'https://www.youtube.com/watch?v='+id[1];
    }
     
    if (conf.fixObjects) {
     
    function fixObjects(embeds) {
    for (var i=0,e,o; e=embeds[i]; i++){
    o=e.parentNode.tagName.toLowerCase()=='object'? e.parentNode : e;
    var vid = o.outerHTML.match(/youtube(?:education|-nocookie|)\.com\/v\/([\da-z_-]{11})/i);
    if (vid=vid&&vid[1]) {
    var iframe = document.createElement('iframe');
    var width = o.width || o.style.width || '640px';
    var height = o.height || o.style.height || '480px';
    if (!/[a-zA-Z%]+$/.test(width)) width +='px';
    if (!/[a-zA-Z%]+$/.test(height)) height +='px';
    //iframe.style = "width: "+width+" !important ; height: "+height + ' !important';
    iframe.style = "width: "+width+"; height: "+height;
    if (o.className) iframe.className = o.className;
    if (o.id) iframe.id = o.id;
    iframe.src = 'https://www.youtube.com/embed/'+vid; // youtube-nocookie.com not always works
    o.parentNode.insertBefore(iframe, o);
    o.parentNode.removeChild(o);
    log('replaced object in html: '+vid);
    }
    }
    }
    fixObjects(document.querySelectorAll('object'));
    fixObjects(document.querySelectorAll('embed'));
     
    var fixInsertedObjectsEnabled = (conf.fixInsertedObjects && conf.fixInsertedObjects.enabled) && !isYoutube
    && (window != window.top ? document.body.innerHTML.length>0 : true) // scriptweeder iframe
    && (!conf.fixInsertedObjects.whitelist || (!conf.fixInsertedObjects.whitelist.length || findHost(conf.fixInsertedObjects.whitelist, location.hostname)!=-1) )
    && (!conf.fixInsertedObjects.blacklist || (!conf.fixInsertedObjects.blacklist.length || findHost(conf.fixInsertedObjects.blacklist, location.hostname)==-1) );
    if (fixInsertedObjectsEnabled) {
    log('warning: fixInsertedObjects may break sites');
    document.addEventListener('DOMNodeInserted', function(e){
    if (e.target.innerHTML && /youtube(education|-nocookie|)\.com\/v\//.test(e.target.innerHTML)) {
    log('DOMNodeInserted');
    var tmp = e.target.outerHTML.replace(/<object[\s\S]*?youtube(?:education|-nocookie|)\.com\/v\/([\da-z_-]{11})[\s\S]*?<\/object>/ig, function(o,id){
    var tmp = o.match(/^<object[\s\S]*?>/i)[0];
    var width = tmp.match(/width\s*[:=]\s*(\d\w*)/);
    width = width&&width[1] || '640px';
    var height = tmp.match(/height\s*[:=]\s*(\d\w*)/);
    height = height&&height[1] || '480px';
    if (!/[a-zA-Z%]+$/.test(width)) width +='px';
    if (!/[a-zA-Z%]+$/.test(height)) height +='px';
    return '<iframe src="https://www.youtube.com/embed/'+id+'" style="width: '+width+' !important; height: '+height+' !important"></iframe>';
    });
    if (e.target.outerHTML!= tmp) e.target.outerHTML = tmp;
    }
    }, false);
    }
    }
     
    if (isYoutube && conf.loadThumbnails) {
    var pics = document.querySelectorAll('img[data-thumb]');
    for (var i=0; i<pics.length; i++) pics[i].src = pics[i].getAttribute('data-thumb');
    }
     
     
    if (conf.loadComments && conf.blockYoutubeScripts && isYoutube && location.pathname=='/watch' && window==window.top) {
    var tmp = document.querySelector('#watch-discussion');
    if (!tmp) {
    log('no #watch-discussion');
    } else {
    tmp.style.display='none';
    var comments = create('div', 'crutch-comments-container');
    comments.appendChild(create('div', 'crutch-comments-total', 'comments disabled ?'))
    tmp.parentNode.insertBefore(comments, tmp);
    var headers = [['Content-Type', 'application/x-www-form-urlencoded'],['X-YouTube-Identity-Token'," "]];
    var c = xhr('/watch_fragments2_ajax?v='+videoId+'&tr=scroll&distiller=1&ctoken='+window.yt.config_.COMMENTS_TOKEN+'&frags=comments&spf=load', 'POST'
    , 'session_token='+encodeURIComponent(window.yt.config_.XSRF_TOKEN)+'&client_url='+location, false, headers);
    if (c.indexOf('{')!=-1) {
    c = JSON.parse(c);
    //alert(JSON.stringify(c,null,'\t'));
    //alert(c.content_html);
    comments.innerHTML = c.content_html;
    log('comments');
    }
    }
    }
     
    if (conf.blockYoutubeScripts && isYoutube && location.pathname=='/watch' && window==window.top) {
    var s = document.createElement('style');
    s.appendChild(document.createTextNode('#watch-description + .yt-uix-expander-collapsed-body {display:none !important} .yt-uix-expander-collapsed #watch-description-text {max-height: 100% !important}'));
    document.body.appendChild(s);
    }
     
    var id = window.yt && yt.config_ && yt.config_.VIDEO_ID;
    if (conf.addLinksInEmbeds && !location.pathname.indexOf('/embed/') && id) {
    var pics = id && window.yt.config_.PLAYER_CONFIG.args || {};
    var img = pics.iurlmaxres || pics.iurlhq720 || pics.iurlsd || pics.iurl || 'http://i.ytimg.com/vi/'+id+'/hqdefault.jpg';
    var span = document.createElement('span');
    span.innerHTML = '&nbsp;<a href="http://www.youtube.com/watch?v='+id+'" target="_blank">link</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="'+img+'" target="_blank">img</a>';
    span.style='position:absolute; top:0; left:0; background:white';
    document.body.appendChild(span);
    }
     
    // load more videos
    if (conf.blockYoutubeScripts && isYoutube) {
    var more = document.querySelector('button[data-uix-load-more-href]');
    if (more) {
    loadNextPage = function(){
    var next = this.getAttribute('data-uix-load-more-href');
    var targetid = this.getAttribute('data-uix-load-more-target-id');
    if (next) {
    var tmp = xhr(next);
    tmp = JSON.parse(tmp);
    var html = tmp.content_html;
    //alert(html)
    html = html.replace(/src="\/yts\/img\/pixel-[^>]*?data-thumb="/g,'src="');
    if (conf.fixList) {
    var tmp2 = document.createElement('span');
    tmp2.innerHTML = html;
    //var html2=[];
    var videos = tmp2.querySelectorAll('li.yt-shelf-grid-item');
    for (var i=0; i<videos.length; i++) {
    var v = videos[i];
    var url = v.querySelector('a').href;
    var thumb = v.querySelector('img').src;
    var time = v.querySelector('.video-time');
    var info = v.querySelector('.yt-lockup-meta-info');
    var title = v.querySelector('h3');
    v.innerHTML = ('<a href="'+url+'"><img src="'+thumb+'">'+'</a><br>'+title.outerHTML+'<br>'+info.outerHTML+time.innerText);
    }
    //alert(html2)
    //html = html2.join('');
    document.getElementById(targetid).insertAdjacentElement('beforeend', tmp2);
    } else {
    document.getElementById(targetid).insertAdjacentHTML('beforeend', html);
    }
    if (tmp.load_more_widget_html) {
    next = tmp.load_more_widget_html.match(/data-uix-load-more-href="([^"]+)/);
    if (next) this.setAttribute('data-uix-load-more-href', next[1]);
    } else {
    this.parentNode.removeChild(this);
    }
    }
    }
    more.onclick = loadNextPage;
    }
    }
     
    // first video in channel
    var upsell = document.querySelector('#upsell-video');
    if (upsell) {
    id = upsell.getAttribute('data-video-id');
    if (id) upsell.innerHTML = '<a href="/watch?v='+id+'"><img src="https://i.ytimg.com/vi/'+id+'/mqdefault.jpg"></a>';
    }
     
    },false);
     
    })(opera)
     


    : 1827 | . 09-09-2006 | : 09:23 07-11-2017 | : Alex_Qwerty, 15:02 30-07-2019
    freeman440

    Silver Member
    | | | |
    Alex_Qwerty
    ,
     
    :
    Rwd
    :
    FlashProxy5 .

    : 2290 | . 17-09-2008 | : 10:53 07-11-2017
    kianID



    Member
    | | | |
    freeman440: (10:53 07-11-2017)
    :

    . .
     
     Rwd: (02:13 07-11-2017)
    :
    FlashProxy5 .

    , - , .

    : 222 | . 04-01-2012 | : 11:17 07-11-2017
    Rwd

    Full Member
    | | | |
    freeman440
    kianID
    . , :   - , - ?

    : 558 | . 11-11-2016 | : 11:56 07-11-2017
    kianID



    Member
    | | | |
    Rwd: (11:56 07-11-2017)
    , , ?

    : 222 | . 04-01-2012 | : 11:59 07-11-2017
    Rwd

    Full Member
    | | | |
    kianID
    . - , , .
     
    :

    : 558 | . 11-11-2016 | : 12:02 07-11-2017
         

    : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191

    Ru.Board » » » Opera Presto ( 26)

    :
    :


    , .


    e-mail

    ?



    Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.Board
    © Ru.Board 2000-2018

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    .ru