diff --git a/Src/Api/altadefinizione/Player/supervideo.py b/Src/Api/altadefinizione/Player/supervideo.py index f708d57..7269ccc 100644 --- a/Src/Api/altadefinizione/Player/supervideo.py +++ b/Src/Api/altadefinizione/Player/supervideo.py @@ -7,12 +7,12 @@ import logging # External libraries import httpx +import jsbeautifier from bs4 import BeautifulSoup # Internal utilities from Src.Util.headers import get_headers -from Src.Util.os import run_node_script, run_node_script_api class VideoSource: @@ -119,14 +119,7 @@ class VideoSource: """ for script in soup.find_all("script"): if "eval" in str(script): - - # WITH INSTALL NODE JS - #new_script = str(script.text).replace("eval", "var a = ") - #new_script = new_script.replace(")))", ")));console.log(a);") - #return run_node_script(new_script) - - # WITH API - return run_node_script_api(script.text) + return jsbeautifier.beautify(script.text) return None @@ -170,13 +163,14 @@ class VideoSource: logging.error("Failed to fetch supervideo content.") return None - result = self.get_result_node_js(supervideo_soup) - if not result: - logging.error("No video URL found in script.") - return None + # Find master playlist + data_js = self.get_result_node_js(supervideo_soup) + + match = re.search(r'sources:\s*\[\{\s*file:\s*"([^"]+)"', data_js) + if match: + return match.group(1) - master_playlist = str(result).split(":")[3].split('"}')[0] - return f"https:{master_playlist}" + return None except Exception as e: logging.error(f"An error occurred: {e}") diff --git a/Src/Api/cb01/Player/maxstream.py b/Src/Api/cb01/Player/maxstream.py index 105afed..e6c9ebe 100644 --- a/Src/Api/cb01/Player/maxstream.py +++ b/Src/Api/cb01/Player/maxstream.py @@ -7,12 +7,12 @@ import logging # External libraries import httpx +import jsbeautifier from bs4 import BeautifulSoup # Internal utilities from Src.Util.headers import get_headers -from Src.Util.os import run_node_script, run_node_script_api class VideoSource: @@ -121,14 +121,14 @@ class VideoSource: for script in soup.find_all("script"): if "eval(function(p,a,c,k,e,d)" in script.text: - # Execute the script using the run_node_script_api function - text_run_node_js = run_node_script_api(script.text) + # Execute the script using + data_js = jsbeautifier.beautify(script.text) # Extract the .m3u8 URL from the script's output - m3u8_match = re.search(r'src:"(https://.*?\.m3u8)"', text_run_node_js) + match = re.search(r'sources:\s*\[\{\s*src:\s*"([^"]+)"', data_js) - if m3u8_match: - self.m3u8_url = m3u8_match.group(1) + if match: + self.m3u8_url = match.group(1) logging.info(f"M3U8 URL: {self.m3u8_url}") break diff --git a/Src/Api/guardaserie/Player/supervideo.py b/Src/Api/guardaserie/Player/supervideo.py index c578e10..ec00a85 100644 --- a/Src/Api/guardaserie/Player/supervideo.py +++ b/Src/Api/guardaserie/Player/supervideo.py @@ -1,17 +1,18 @@ # 26.05.24 +import re import sys import logging # External libraries import httpx +import jsbeautifier from bs4 import BeautifulSoup # Internal utilities from Src.Util.headers import get_headers -from Src.Util.os import run_node_script, run_node_script_api class VideoSource: @@ -84,14 +85,7 @@ class VideoSource: """ for script in soup.find_all("script"): if "eval" in str(script): - - # WITH INSTALL NODE JS - #new_script = str(script.text).replace("eval", "var a = ") - #new_script = new_script.replace(")))", ")));console.log(a);") - #return run_node_script(new_script) - - # WITH API - return run_node_script_api(script.text) + return jsbeautifier.beautify(script.text) return None @@ -113,13 +107,14 @@ class VideoSource: logging.error("Failed to parse HTML content.") return None - result = self.get_result_node_js(soup) - if not result: - logging.error("No video URL found in script.") - return None + # Find master playlist + data_js = self.get_result_node_js(soup) + + match = re.search(r'sources:\s*\[\{\s*file:\s*"([^"]+)"', data_js) + if match: + return match.group(1) - master_playlist = str(result).split(":")[3].split('"}')[0] - return f"https:{master_playlist}" + return None except Exception as e: logging.error(f"An error occurred: {e}") diff --git a/Src/Util/os.py b/Src/Util/os.py index ffafa73..b50284d 100644 --- a/Src/Util/os.py +++ b/Src/Util/os.py @@ -341,135 +341,6 @@ def get_system_summary(): -# --> OS MANAGE NODE JS -def is_node_installed() -> bool: - """ - Checks if Node.js is installed on the system. - - Returns: - bool: True if Node.js is installed, False otherwise. - """ - try: - # Run the command 'node -v' to get the Node.js version - result = subprocess.run(['node', '-v'], capture_output=True, text=True, check=True) - - # If the command runs successfully and returns a version number, Node.js is installed - if result.stdout.startswith('v'): - return True - - except (subprocess.CalledProcessError, FileNotFoundError): - # If there is an error running the command or the command is not found, Node.js is not installed - return False - - return False - -def run_node_script(script_content: str) -> str: - """ - Runs a Node.js script and returns its output. - - Parameters: - script_content (str): The content of the Node.js script to run. - - Returns: - str: The output of the Node.js script. - """ - - # Check if Node.js is installed - if not is_node_installed(): - raise EnvironmentError("Node.js is not installed on the system.") - - # Write the script content to a temporary file - with open('script.js', 'w') as file: - file.write(script_content) - - try: - # Run the Node.js script using subprocess and capture the output - result = subprocess.run(['node', 'script.js'], capture_output=True, text=True, check=True) - return result.stdout - - except subprocess.CalledProcessError as e: - raise RuntimeError(f"Error running Node.js script: {e.stderr}") - - finally: - # Clean up the temporary script file - import os - os.remove('script.js') - -def run_node_script_api(script_content: str) -> str: - """ - Runs a Node.js script and returns its output. - - Parameters: - script_content (str): The content of the Node.js script to run. - - Returns: - str: The output of the Node.js script. - """ - - headers = { - 'accept': '*/*', - 'accept-language': 'it-IT,it;q=0.9,en-US;q=0.8,en;q=0.7', - 'dnt': '1', - 'origin': 'https://onecompiler.com', - 'priority': 'u=1, i', - 'referer': 'https://onecompiler.com/javascript', - 'user-agent': get_headers() - } - - json_data = { - 'name': 'JavaScript', - 'title': '42gyum6qn', - 'version': 'ES6', - 'mode': 'javascript', - 'description': None, - 'extension': 'js', - 'languageType': 'programming', - 'active': False, - 'properties': { - 'language': 'javascript', - 'docs': False, - 'tutorials': False, - 'cheatsheets': False, - 'filesEditable': False, - 'filesDeletable': False, - 'files': [ - { - 'name': 'index.js', - 'content': script_content - }, - ], - 'newFileOptions': [ - { - 'helpText': 'New JS file', - 'name': 'script${i}.js', - 'content': "/**\n * In main file\n * let script${i} = require('./script${i}');\n * console.log(script${i}.sum(1, 2));\n */\n\nfunction sum(a, b) {\n return a + b;\n}\n\nmodule.exports = { sum };", - }, - { - 'helpText': 'Add Dependencies', - 'name': 'package.json', - 'content': '{\n "name": "main_app",\n "version": "1.0.0",\n "description": "",\n "main": "HelloWorld.js",\n "dependencies": {\n "lodash": "^4.17.21"\n }\n}', - }, - ], - }, - '_id': '42gcvpkbg_42gyuud7m', - 'user': None, - 'visibility': 'public', - } - - # Return error - response = httpx.post('https://onecompiler.com/api/code/exec', headers=headers, json=json_data, timeout=15) - response.raise_for_status() - - if response.status_code == 200: - return str(response.json()['stderr']).split("\n")[1] - - else: - logging.error("Cant connect to site: onecompiler.com") - sys.exit(0) - - - - # --> OS FILE VALIDATOR # List of invalid characters for Windows filenames diff --git a/config.json b/config.json index 1ebc96c..73cc701 100644 --- a/config.json +++ b/config.json @@ -97,7 +97,7 @@ "domain": "to" }, "cb01": { - "domain": "ventures" + "domain": "software" } } } \ No newline at end of file diff --git a/run.py b/run.py index 7702ca0..020dcb8 100644 --- a/run.py +++ b/run.py @@ -125,7 +125,7 @@ def initialize(): # Attempting GitHub update try: - git_update() + #git_update() print() except: console.log("[red]Error with loading github.")