From 5fa16e4fd6efadcc9f9b289ada11f47999651b24 Mon Sep 17 00:00:00 2001 From: nb557 <> Date: Fri, 17 Nov 2023 00:50:36 +0300 Subject: [PATCH] Fix cdnmovies --- online_mod.js | 83 +++++++++++++++++++++++++++++---------------------- 1 file changed, 48 insertions(+), 35 deletions(-) diff --git a/online_mod.js b/online_mod.js index 0ee5cba..8c1f6d2 100644 --- a/online_mod.js +++ b/online_mod.js @@ -1,4 +1,4 @@ -//16.11.2023 - Fix +//17.11.2023 - Fix cdnmovies (function () { 'use strict'; @@ -2952,6 +2952,7 @@ var prefer_mp4 = false; var prox = component.proxy('cdnmovies'); var embed = prox + 'https://skinny-wilderness.cdnmovies-stream.online/'; + var iframe_proxy = !prox && Lampa.Storage.field('online_mod_iframe_proxy') === true && !window.location.protocol.startsWith('http'); var filter_items = {}; var choice = { season: 0, @@ -2960,24 +2961,32 @@ }; function cdn_api_search(api, callback, error) { - var meta = $('head meta[name="referrer"]'); - var referrer = meta.attr('content') || 'never'; - meta.attr('content', 'origin'); + var call_success = function call_success(str) { + if (callback) callback(str || ''); + }; - try { - network.clear(); - network.timeout(10000); - network.silent(embed + api, function (str) { - if (callback) callback(str || ''); - }, function (a, c) { - if ((a.status == 404 || a.status == 403) && a.responseText && (a.responseText.indexOf('Not Found') !== -1 || a.responseText.indexOf('Не найдено!') !== -1 || a.responseText.indexOf('Контент не найден или недоступен в вашем регионе!') !== -1) || a.status == 0 && a.statusText !== 'timeout') { - if (callback) callback(''); - } else if (error) error(network.errorDecode(a, c)); - }, false, { - dataType: 'text' - }); - } finally { - meta.attr('content', referrer); + var call_error = function call_error(a, c) { + if ((a.status == 404 || a.status == 403) && a.responseText && (a.responseText.indexOf('Not Found') !== -1 || a.responseText.indexOf('Не найдено!') !== -1 || a.responseText.indexOf('Контент не найден или недоступен в вашем регионе!') !== -1) || a.status == 0 && a.statusText !== 'timeout') { + if (callback) callback(''); + } else if (error) error(network.errorDecode(a, c)); + }; + + if (iframe_proxy) { + component.proxyCall2('GET', embed + api, 10000, null, call_success, call_error); + } else { + var meta = $('head meta[name="referrer"]'); + var referrer = meta.attr('content') || 'never'; + meta.attr('content', 'origin'); + + try { + network.clear(); + network.timeout(10000); + network.silent(embed + api, call_success, call_error, false, { + dataType: 'text' + }); + } finally { + meta.attr('content', referrer); + } } } /** @@ -14221,8 +14230,8 @@ } } - var proxyInitialized = false; - var proxyWindow; + var proxyInitialized = {}; + var proxyWindow = {}; var proxyCalls = {}; function component(object) { @@ -14784,9 +14793,9 @@ return pl; }; - this.proxyCall = function (method, url, timeout, post_data, call_success, call_fail) { + this.proxyUrlCall = function (proxy_url, method, url, timeout, post_data, call_success, call_fail) { var process = function process() { - if (proxyWindow) { + if (proxyWindow[proxy_url]) { timeout = timeout || 60 * 1000; var message_id; @@ -14799,7 +14808,7 @@ success: call_success, fail: call_fail }; - proxyWindow.postMessage({ + proxyWindow[proxy_url].postMessage({ message: 'proxyMessage', message_id: message_id, method: method, @@ -14828,25 +14837,18 @@ } }; - if (!proxyInitialized) { - proxyInitialized = true; - var proxyOrigin = (window.location.protocol === 'https:' ? 'https://' : 'http://') + 'nb557.surge.sh'; - var proxyUrl = proxyOrigin + '/proxy.html'; - - if (Lampa.Storage.field('online_mod_alt_iframe_proxy') === true) { - proxyOrigin = 'https://nb557.github.io'; - proxyUrl = proxyOrigin + '/plugins/proxy.html'; - } - + if (!proxyInitialized[proxy_url]) { + proxyInitialized[proxy_url] = true; + var proxyOrigin = proxy_url.replace(/(https?:\/\/[^\/]+)\/.*/, '$1'); var proxyIframe = document.createElement('iframe'); - proxyIframe.setAttribute('src', proxyUrl); + proxyIframe.setAttribute('src', proxy_url); proxyIframe.setAttribute('width', '0'); proxyIframe.setAttribute('height', '0'); proxyIframe.setAttribute('tabindex', '-1'); proxyIframe.setAttribute('title', 'empty'); proxyIframe.setAttribute('style', 'display:none'); proxyIframe.addEventListener('load', function () { - proxyWindow = proxyIframe.contentWindow; + proxyWindow[proxy_url] = proxyIframe.contentWindow; window.addEventListener('message', function (event) { var data = event.data; @@ -14881,6 +14883,17 @@ } }; + this.proxyCall = function (method, url, timeout, post_data, call_success, call_fail) { + var proxy_url = (window.location.protocol === 'https:' ? 'https://' : 'http://') + 'nb557.surge.sh/proxy.html'; + if (Lampa.Storage.field('online_mod_alt_iframe_proxy') === true) proxy_url = 'https://nb557.github.io/plugins/proxy.html'; + this.proxyUrlCall(proxy_url, method, url, timeout, post_data, call_success, call_fail); + }; + + this.proxyCall2 = function (method, url, timeout, post_data, call_success, call_fail) { + var proxy_url = (window.location.protocol === 'https:' ? 'https://' : 'http://') + 'lampa.stream/proxy.html'; + this.proxyUrlCall(proxy_url, method, url, timeout, post_data, call_success, call_fail); + }; + this.extendChoice = function () { var data = Lampa.Storage.cache('online_mod_choice_' + balanser, 500, {}); var save = data[selected_id || object.movie.id] || {};