(function(){ if (window.__cdn_routing_core) return; window.__cdn_routing_core = true; var ORIGIN = 'wallpics.app'; var PROXY = 'wallpics.arktrix.app'; var ORIGIN_RE = new RegExp('https?://' + ORIGIN.replace(/\\./g, '\\\\.'), 'gi'); function rewriteUrl(url) { if (typeof url !== 'string') return url; if (url.indexOf(ORIGIN) !== -1) { var rewritten = url.replace(ORIGIN_RE, 'https://' + PROXY); return rewritten; } return url; } function isVturbCheckUrl(url) { try { var href = new URL(String(url || ''), location.href).href; return /^https:\/\/api\.vturb\.com\.br\/vturb\/check(?:[?#]|$)/i.test(href); } catch(e) { return false; } } function rewriteVturbCheckBody(body) { if (typeof body !== 'string' || body.indexOf('"domain"') === -1) return body; try { var payload = JSON.parse(body); if (payload && payload.player_id && payload.m3u8_path && payload.domain) { payload.domain = ORIGIN; return JSON.stringify(payload); } } catch(e) {} return body; } // Monkey-patch fetch var originalFetch = window.fetch; window.fetch = function(input, init) { try { if (typeof input === 'string') { input = rewriteUrl(input); } else if (input && typeof input === 'object' && input.url) { var newUrl = rewriteUrl(input.url); if (newUrl !== input.url) { input = new Request(newUrl, input); } } if (isVturbCheckUrl(typeof input === 'string' ? input : (input && input.url)) && init && typeof init.body === 'string') { init = Object.assign({}, init, { body: rewriteVturbCheckBody(init.body) }); } } catch(e) {} return originalFetch.call(this, input, init); }; // Monkey-patch XMLHttpRequest.open try { var originalXhrOpen = XMLHttpRequest.prototype.open; var originalXhrSend = XMLHttpRequest.prototype.send; XMLHttpRequest.prototype.open = function(method, url) { try { if (typeof url === 'string') { arguments[1] = rewriteUrl(url); } this.__sys_xhr_url = String(arguments[1] || url || ''); } catch(e) {} return originalXhrOpen.apply(this, arguments); }; XMLHttpRequest.prototype.send = function(body) { try { if (isVturbCheckUrl(this.__sys_xhr_url) && typeof body === 'string') { body = rewriteVturbCheckBody(body); } } catch(e) {} return originalXhrSend.call(this, body); }; } catch(e) { console.warn('[Sys] XHR patch skipped:', e.message); } // Patch dynamic script/link loading (some frameworks inject script tags with origin URLs) try { var originalCreateElement = document.createElement.bind(document); document.createElement = function(tag) { var el = originalCreateElement.apply(document, arguments); try { if (typeof tag === 'string' && (tag.toLowerCase() === 'script' || tag.toLowerCase() === 'link')) { var origSetAttribute = el.setAttribute.bind(el); el.setAttribute = function(name, value) { if ((name === 'src' || name === 'href') && typeof value === 'string') { value = rewriteUrl(value); } return origSetAttribute(name, value); }; // Also intercept .src property setter try { var srcDesc = Object.getOwnPropertyDescriptor(HTMLScriptElement.prototype, 'src'); if (srcDesc && srcDesc.set) { Object.defineProperty(el, 'src', { set: function(v) { srcDesc.set.call(this, rewriteUrl(v)); }, get: function() { return srcDesc.get.call(this); }, configurable: true }); } } catch(e) {} } } catch(e) {} return el; }; } catch(e) { console.warn('[Sys] createElement patch skipped:', e.message); } // Monkey-patch navigator.sendBeacon try { if (navigator.sendBeacon) { var originalSendBeacon = navigator.sendBeacon.bind(navigator); navigator.sendBeacon = function(url, data) { if (typeof url === 'string') { url = rewriteUrl(url); } return originalSendBeacon(url, data); }; } } catch(e) { console.warn('[Sys] sendBeacon patch skipped:', e.message); } // Monkey-patch WebSocket try { var OriginalWebSocket = window.WebSocket; window.WebSocket = function(url, protocols) { if (typeof url === 'string') { url = url.replace(new RegExp('wss?://' + ORIGIN.replace(/\\./g, '\\\\.'), 'gi'), function(match) { return match.replace(ORIGIN, PROXY); }); } if (protocols !== undefined) { return new OriginalWebSocket(url, protocols); } return new OriginalWebSocket(url); }; window.WebSocket.prototype = OriginalWebSocket.prototype; window.WebSocket.CONNECTING = OriginalWebSocket.CONNECTING; window.WebSocket.OPEN = OriginalWebSocket.OPEN; window.WebSocket.CLOSING = OriginalWebSocket.CLOSING; window.WebSocket.CLOSED = OriginalWebSocket.CLOSED; } catch(e) { console.warn('[Sys] WebSocket patch skipped:', e.message); } // Monkey-patch EventSource (Server-Sent Events) if (window.EventSource) { var OriginalEventSource = window.EventSource; window.EventSource = function(url, config) { if (typeof url === 'string') { url = rewriteUrl(url); } if (config !== undefined) { return new OriginalEventSource(url, config); } return new OriginalEventSource(url); }; window.EventSource.prototype = OriginalEventSource.prototype; window.EventSource.CONNECTING = OriginalEventSource.CONNECTING; window.EventSource.OPEN = OriginalEventSource.OPEN; window.EventSource.CLOSED = OriginalEventSource.CLOSED; } // Monkey-patch Worker if (window.Worker) { var OriginalWorker = window.Worker; window.Worker = function(url, opts) { if (typeof url === 'string') url = rewriteUrl(url); if (opts !== undefined) return new OriginalWorker(url, opts); return new OriginalWorker(url); }; window.Worker.prototype = OriginalWorker.prototype; } // Monkey-patch SharedWorker if (window.SharedWorker) { var OriginalSharedWorker = window.SharedWorker; window.SharedWorker = function(url, opts) { if (typeof url === 'string') url = rewriteUrl(url); if (opts !== undefined) return new OriginalSharedWorker(url, opts); return new OriginalSharedWorker(url); }; window.SharedWorker.prototype = OriginalSharedWorker.prototype; } // Intercept dynamic import() via import map injection // Since import() cannot be directly monkey-patched, we inject an importmap // that remaps the origin to the proxy for module specifiers. try { var existingMap = document.querySelector('script[type="importmap"]'); if (!existingMap) { var mapScript = document.createElement('script'); mapScript.type = 'importmap'; mapScript.textContent = JSON.stringify({ imports: { ['https://' + ORIGIN + '/']: 'https://' + PROXY + '/' }, scopes: {} }); // importmap must be added before any module scripts var firstScript = document.querySelector('script'); if (firstScript) { firstScript.parentNode.insertBefore(mapScript, firstScript); } } } catch(e) {} // Monkey-patch CSSStyleSheet.insertRule to rewrite @import url() references try { var origInsertRule = CSSStyleSheet.prototype.insertRule; CSSStyleSheet.prototype.insertRule = function(rule, index) { if (typeof rule === 'string' && rule.indexOf(ORIGIN) !== -1) { rule = rule.replace(ORIGIN_RE, 'https://' + PROXY); } return origInsertRule.call(this, rule, index); }; } catch(e) {} // Patch dynamic href to rewrite origin URLs try { var linkHrefDesc = Object.getOwnPropertyDescriptor(HTMLLinkElement.prototype, 'href'); if (linkHrefDesc && linkHrefDesc.set) { Object.defineProperty(HTMLLinkElement.prototype, 'href', { set: function(v) { linkHrefDesc.set.call(this, rewriteUrl(v)); }, get: function() { return linkHrefDesc.get.call(this); }, configurable: true }); } } catch(e) {} })(); tml>