From d86991455ddd1e428434bbf4d266b4af1200377f Mon Sep 17 00:00:00 2001 From: FoxRefire <155989196+FoxRefire@users.noreply.github.com> Date: Wed, 1 May 2024 03:23:08 +0900 Subject: [PATCH] Refactor: Code cleanup --- background.js | 36 ++++++++++++------------------------ popup.js | 16 ++++++++-------- python/pre.py | 18 ++++++++---------- 3 files changed, 28 insertions(+), 42 deletions(-) diff --git a/background.js b/background.js index 9df0a2a..153fba9 100644 --- a/background.js +++ b/background.js @@ -1,7 +1,7 @@ -let psshs=[]; -let requests=[]; -let bodys=[]; -let pageURL=""; +window.psshs=[]; +window.requests=[]; +window.bodys=[]; +window.pageURL=""; function convertHeaders(obj){ return JSON.stringify(Object.fromEntries(obj.map(header => [header.name, header.value]))) } @@ -10,10 +10,10 @@ function convertHeaders(obj){ chrome.webRequest.onBeforeSendHeaders.addListener( function(details) { if (details.method === "POST") { - requests.push({ + window.requests.push({ url:details.url, headers:convertHeaders(details.requestHeaders), - body:bodys.find((b) => b.id == details.requestId).body + body:window.bodys.find((b) => b.id == details.requestId).body }); } }, @@ -25,7 +25,7 @@ chrome.webRequest.onBeforeSendHeaders.addListener( chrome.webRequest.onBeforeRequest.addListener( function(details) { if (details.method === "POST") { - bodys.push({ + window.bodys.push({ body:btoa(String.fromCharCode(...new Uint8Array(details.requestBody.raw[0]['bytes']))), id:details.requestId }); @@ -40,13 +40,13 @@ chrome.runtime.onMessage.addListener( function (request, sender, sendResponse) { switch(request.type){ case "RESET": - psshs=[]; - requests=[]; - bodys=[]; + window.psshs=[]; + window.requests=[]; + window.bodys=[]; break; case "PSSH": - psshs.push(request.text) - pageURL=request.pageURL + window.psshs.push(request.text) + window.pageURL=request.pageURL break; } } @@ -60,15 +60,3 @@ chrome.browserAction.onClicked.addListener(function(tab) { height: 600 }); }); - -window.getPsshs = () => { - return psshs; -}; - -window.getRequests = () => { - return requests; -}; - -window.getPageURL = () => { - return pageURL; -}; diff --git a/popup.js b/popup.js index 70f0229..678fdb2 100644 --- a/popup.js +++ b/popup.js @@ -1,6 +1,6 @@ -let psshs=chrome.extension.getBackgroundPage().getPsshs(); -let requests=chrome.extension.getBackgroundPage().getRequests(); -let pageURL=chrome.extension.getBackgroundPage().getPageURL(); +let psshs=chrome.extension.getBackgroundPage().psshs; +let requests=chrome.extension.getBackgroundPage().requests; +let pageURL=chrome.extension.getBackgroundPage().pageURL; async function guess(){ //Init Pyodide @@ -8,16 +8,16 @@ async function guess(){ await pyodide.loadPackage(["certifi-2024.2.2-py3-none-any.whl","charset_normalizer-3.3.2-py3-none-any.whl","construct-2.8.8-py2.py3-none-any.whl","idna-3.6-py3-none-any.whl","packaging-23.2-py3-none-any.whl","protobuf-4.24.4-cp312-cp312-emscripten_3_1_52_wasm32.whl","pycryptodome-3.20.0-cp35-abi3-emscripten_3_1_52_wasm32.whl","pymp4-1.4.0-py3-none-any.whl","pyodide_http-0.2.1-py3-none-any.whl","pywidevine-1.8.0-py3-none-any.whl","requests-2.31.0-py3-none-any.whl","urllib3-2.2.1-py3-none-any.whl"].map(e=>"wheels/"+e)) //Configure Guesser - let vars=`pssh="${document.getElementById('pssh').value}"\n` - vars+=`licUrl="${requests[userInputs['license']]['url']}"\n` - vars+=`licHeaders='${requests[userInputs['license']]['headers'].replace(/\\/g, "\\\\")}'\n` - vars+=`licBody="${requests[userInputs['license']]['body']}"\n` + pyodide.globals.set("pssh", document.getElementById('pssh').value); + pyodide.globals.set("licUrl", requests[userInputs['license']]['url']); + pyodide.globals.set("licHeaders", requests[userInputs['license']]['headers']); + pyodide.globals.set("licBody", requests[userInputs['license']]['body']); let pre=await fetch('python/pre.py').then(res=>res.text()) let after=await fetch('python/after.py').then(res=>res.text()) let scheme=await fetch(`python/schemes/${document.getElementById("scheme").value}.py`).then(res=>res.text()) //Get result - let result = await pyodide.runPythonAsync([vars, pre, scheme, after].join("\n")); + let result = await pyodide.runPythonAsync([pre, scheme, after].join("\n")); document.getElementById('result').value=result; //Save history diff --git a/python/pre.py b/python/pre.py index ad76a85..9c7ea22 100644 --- a/python/pre.py +++ b/python/pre.py @@ -17,24 +17,22 @@ except OSError: print("device.wvd not found! looking for device_client_id_blob and device_private_key...") cID=await (await pyfetch("device_client_id_blob")).bytes() pKey=await (await pyfetch("device_private_key")).bytes() - device = Device(client_id=cID, - private_key=pKey, - type_=DeviceTypes['ANDROID'], - security_level=3, - flags=None) + except OSError: try: print("device_client_id_blob and device_private_key not found! looking for client_id.bin and private_key.pem...") cID=await (await pyfetch("client_id.bin")).bytes() pKey=await (await pyfetch("private_key.pem")).bytes() - device = Device(client_id=cID, - private_key=pKey, - type_=DeviceTypes['ANDROID'], - security_level=3, - flags=None) + except OSError: raise FileNotFoundError("CDM Keys not found!, RTFM!") + else: + device = Device(client_id=cID, + private_key=pKey, + type_=DeviceTypes['ANDROID'], + security_level=3, + flags=None) # load cdm cdm = Cdm.from_device(device)