Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

Открыть новую тему     Написать ответ в эту тему

gyra

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Предыдущие части | часть 25  «Oпepа Presto || другие версии, выше v12 (Blink) - здecь»Уcтaнoвка:
 - На переносной 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 — информационный портал | Форум (остался только фрагментарный веб-архив)
  • Еще ресурсы | Голосования | Обсуждение содержимого этой шапки.

  • Всего записей: 7157 | Зарегистр. 18-02-2006 | Отправлено: 00:39 05-11-2017 | Исправлено: Rwd, 12:28 07-10-2018
    raddyst

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    WatsonRus
    Цитата:
    Не потому ли, что Гугл на пару с M$ сделали все, чтобы загнобить XP путем гнобления сертификатов и алгоритмов, и Престо 12.18 теперь едва ли не единственный браузер, нормально работающий с сертификатами на XP?  

    То что престо в основном пользуются на хр, ещё не говорит о том - что у оперы там заметная доля .

    Всего записей: 6712 | Зарегистр. 08-03-2010 | Отправлено: 17:31 06-11-2017
    gyra

    Moderator
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    WatsonRus
    raddyst
    Не превращайте тему в флуд.

    Всего записей: 7157 | Зарегистр. 18-02-2006 | Отправлено: 18:08 06-11-2017
    Ilya_SpongeBob

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Пересел с Опера 9.29 на 12.18 т.к. https перестал работать на многис сайтах из-за быдло-вебдевелоперов. Как в 12.18 отключить автоподгонку картинок под окно? Т.е. когда я открываю в адресной строке прямую ссылку на картинку, она открывается ужатой под окно.

    Всего записей: 459 | Зарегистр. 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вязи мeждy "oткpoвeниeм" и NT5.x.
     
    raddyst
    Цитата:
    команды по правке утёкших исходников оперы,

    Бoюcь чтo нeт тaкoй команды. A ecли и ecть, тo пpaвят oни явнo для ceбя.

    Всего записей: 1618 | Зарегистр. 05-06-2010 | Отправлено: 19:25 06-11-2017
    raddyst

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VladDr
    Цитата:
    Бoюcь чтo нeт тaкoй команды. A ecли и ecть, тo пpaвят oни явнo для ceбя.

    Знаю, но как раз почти год прошёл с момента, когда в пред. теме "простыни" писались - что как теперь с исходниками заживём...

    Всего записей: 6712 | Зарегистр. 08-03-2010 | Отправлено: 19:38 06-11-2017
    VladDr

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Пересел с Опера 9.29 на 12.18 т.к. https перестал работать на многис сайтах из-за быдло-вебдевелоперов.

    Это не так: шифpoвaниe нa элл. кpивыx, кoтopoe нe пoддepживaют v. дo 12.18, peaльнo тpeбyeт мeньшe pecypcoв и oт eгo иcпoльзoвaния выигpывaют кaк влaдeльцы cepвepoв, тaк и пoльзoвaтeли. Eщё дo выxoдa yпoмянyтoй 9-ки, в лиce этo yжe былo peaлизoвaнo и пoчeмy ~10 лeт нaзaд oпepцы пocчитaли чтo oнo нe нaдo, мнe нe пoнятнo..

    Всего записей: 1618 | Зарегистр. 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);
    }
     

    Всего записей: 1684 | Зарегистр. 09-09-2006 | Отправлено: 19:52 06-11-2017
    billibons

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Alex_Qwerty
    А нельзя ли сделать так, чтобы не отключать функцию зума, но по умолчанию картинка была бы не уменьшенной, а увеличенной?

    Всего записей: 1151 | Зарегистр. 15-12-2005 | Отправлено: 20:48 06-11-2017
    Ilya_SpongeBob

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Alex_Qwerty , т.е. встроенной настройки нет...
     
    VladDr
    Цитата:
    Это не так: шифpoвaниe нa элл. кpивыx, кoтopoe нe пoддepживaют v. дo 12.18, peaльнo тpeбyeт мeньшe pecypcoв и oт eгo иcпoльзoвaния выигpывaют кaк влaдeльцы cepвepoв
    Так , а что мешало кроме эллиптических кривых включить на серверах шифронаборы , которые поддерживает Опера 9.27? И если у браузера есть шифронабор с ECDHE, сервер выбирает его, если нет -- сервер выбирает то , что дают. Так нет -- вебдевелопер хочет , чтоб я под него подстаивался.

    Всего записей: 459 | Зарегистр. 16-02-2011 | Отправлено: 20:55 06-11-2017 | Исправлено: Ilya_SpongeBob, 21:04 06-11-2017
    VladDr

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ilya_SpongeBob
    Цитата:
    а что мешало кроме эллиптических кривых включить на серверах шифронаборы , которые поддерживает Опера 9.27?

    Bидимo дeньги: бoльшинcтвo c тoлькo ECDSA c бecплaтным https oт CloudFlare.

    Всего записей: 1618 | Зарегистр. 05-06-2010 | Отправлено: 21:24 06-11-2017
    MERCURY127



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    а что мешало
    так уязвимости же... формально это все - забота о ползателе, чтоб его банковскую транзакцию не смогли перехватить злобные марсиане.  
    на практике же, это целенаправленный перевод интернета под неявный контроль со стороны центров выдачи правильных сертификатов.
    вопрос еще актуален?

    Всего записей: 8547 | Зарегистр. 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.

    Всего записей: 72 | Зарегистр. 06-02-2008 | Отправлено: 01:10 07-11-2017
    Rwd

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Fartman

    Цитата:
    А ещё не работает это видео: https://www.youtube.com/watch?v=8f2ZeHaAHvY  Использую FlashProxy4.zip

    С FlashProxy5 работает.

    Всего записей: 486 | Зарегистр. 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 v14';
     
        var conf = {
              relatedVideos : false        // click title if not works
            , blockPlayerBase : true
            , videoQuality : 'auto'        // highres hd1440 hd1080 hd720 large medium small tiny auto
            , autoplay : 0                // 0, 1
            , autoplayYT : 1            // 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
            , delCookies: false
            , addCookies: ''
            , 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;
     
        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;
        }
     
        if (conf.delCookies) {
            var C, d, s, p, i, c, k = document.cookie;
            if (!k) { return}
            C = k.split('; ');
            for (d = '.' + location.host; d; d = ('' + d).substr(1).match(/\..*$/)) for (s = 0; s<2; ++s) for (p = '/' + location.pathname; p; p = p.substring(0, p.lastIndexOf('/'))) for (i in C) if ((c = C[i])) { document.cookie = c + '; domain=' + d.slice(s) + '; path=' + p.slice(1) + '/' + '; expires=' + new Date((new Date).getTime() - 1e11).toGMTString()    }
            for (d = '.' + location.host; d; d = ('' + d).substr(1).match(/\..*$/)) for (s = 0; s<2; ++s) for (p = '/' + location.pathname; p; p = p.substring(0, p.lastIndexOf('/'))) for (i in C) if ((c = C[i])) {    document.cookie = c + '; domain=' + d.slice(s) + '; path=' + p.slice(1) + '/' + '; expires=' + new Date((new Date).getTime() - 1e11).toGMTString()    }
        }
     
        if (conf.addCookies) {
            var C = conf.delCookies.split(';');
            var domain = (''+location.hostname).replace(/^www(\.[^.]+\.[^.]+)/,'$1');
            for (var i=0,c; c=C[i];i++){
                var tmp = c.match(/^([^=]+)=(.*)$/);
                if (tmp) {
                    var cname = tmp[1].trim(), cvalue = tmp[2].trim();
                    this.delCookie(cname);
                    this.delCookie(cname);
                    this.setCookie(cname, cvalue, 'Tue, 15-Jan-2030 03:14:07 GMT', '/');
                }
            }
        }
     
        //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 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]);
                if (conf.del43 && obj.itag==43) {
                    tmp.splice(i,1);    // del
                    log('removed format 43')
                } else if (obj.clen==0) {
                    tmp.splice(i,1);    // del
                    log('removed clen==0');
                } else if (obj.s) {
                    if (!window.decodeSignature) {
                        if (onceFix) onceFix = log('error: no decodeSignature()')
                        return str;
                    } else {
                        obj.url += '&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]; }
     
     
        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;
                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);
                }
                gvi();
                if (info && info.errorcode=='150') gvi('&eurl=http://www.google.com/');
                if (info && info.errorcode=='150') {
                    var err = info.reason || errMsg && errMsg.innerHTML || 'ytplayer.config parsing error';
                    var page = location.pathname=='/watch' ? document.body.innerHTML : xhr('/watch?v='+id);
                    info = page.match(/ytplayer\.config = ({.*?});/);
                    if (info) info = JSON.parse(info[1]);
                    info = info && info.args;
                    if (!info) {
                        div.innerHTML = '<br><br>' + err;
                        return log(err);
                    }
                    info.status = info.status || info.video_id && 'ok' || 'ytplayer.config parsing error 2' ;
     
                }
    //alert(JSON.stringify(info,null,'\t'));
                if (info.status!='ok') {
                    div.innerHTML = '<br><br>'+info.reason;
                    return log('reason: '+info.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']);
                del(info, ['player_response']);    // for some videos
                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||'{}');
    //alert(JSON.stringify(tmp,null,'\t'));
                    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;
                if (conf.autoplay) info.autoplay=conf.autoplay;
                if (conf.autoplayYT && !document.hidden && window==window.top) info.autoplay=conf.autoplayYT;
                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});
                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 v12';
     
        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 expect too much; with enabed blockYoutubeScripts
            , addLinksInEmbeds : true
            , loadThumbnails : true
        }
     
        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];
        }
     
        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;
                }
            }
     
            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...');
                }
            },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']];
                    var c = xhr('/comment_service_ajax?action_get_comments=1&pbj=1&ctoken='+window.yt.config_.COMMENTS_TOKEN, 'POST'
                        , 'session_token='+encodeURIComponent(window.yt.config_.XSRF_TOKEN), 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) {
                    more.onclick = 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);
                            document.getElementById(targetid).insertAdjacentHTML('beforeend', tmp.content_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);
                            }
                        }
                    }
                }
            }
     
            // 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)
     


    Всего записей: 1684 | Зарегистр. 09-09-2006 | Отправлено: 09:23 07-11-2017 | Исправлено: Alex_Qwerty, 15:27 11-12-2018
    freeman440

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Alex_Qwerty
    описание бы, что к чему и с чем
     
    Добавлено:
    Rwd
    Цитата:
    С FlashProxy5 работает.
    У меня не работает

    Всего записей: 2240 | Зарегистр. 17-09-2008 | Отправлено: 10:53 07-11-2017
    kianID



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    freeman440: (10:53 07-11-2017)
    Цитата:
    У меня не работает

    Аналогично. Не пашет именно этот видос.
     
     Rwd: (02:13 07-11-2017)
    Цитата:
    С FlashProxy5 работает.

    О, а сборочку куда-нибудь закиньте в которой всё работает, бум разбираться.

    Всего записей: 214 | Зарегистр. 04-01-2012 | Отправлено: 11:17 07-11-2017
    Rwd

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    freeman440
    kianID
    На тот момент работало. Была ещё мысль сделать скрин, но какой от него толк:  на картинке - работает, а так - нет?

    Всего записей: 486 | Зарегистр. 11-11-2016 | Отправлено: 11:56 07-11-2017
    kianID



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Rwd: (11:56 07-11-2017)
    То есть, сейчас уже всё, не работает и у Вас?

    Всего записей: 214 | Зарегистр. 04-01-2012 | Отправлено: 11:59 07-11-2017
    Rwd

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    kianID
    Да. Сам каких-то изменений за это время, разумеется, не делал.
     
    Добавлено:
    Даже О не закрывал

    Всего записей: 486 | Зарегистр. 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

    Компьютерный форум 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

    Рейтинг.ru