import re import time import asyncio import aiohttp from typing import Optional base_url = "https://www.blackbox.ai" headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36', } # Cache variables cached_hid = None cache_time = 0 CACHE_DURATION = 36000 # Cache duration in seconds (10 hours) async def getHid(force_refresh: bool = False) -> Optional[str]: global cached_hid, cache_time current_time = time.time() # Check if a forced refresh is needed or if the cached values are still valid. if not force_refresh and cached_hid and (current_time - cache_time) < CACHE_DURATION: print("Using cached_hid:", cached_hid) return cached_hid try: async with aiohttp.ClientSession(headers=headers) as session: async with session.get(base_url) as response: if response.status != 200: print("Failed to load the page.") return None page_content = await response.text() js_files = re.findall(r'static/chunks/\d{4}-[a-fA-F0-9]+\.js', page_content) key_pattern = re.compile(r'w="([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})"') for js_file in js_files: js_url = f"{base_url}/_next/{js_file}" async with session.get(js_url) as js_response: if js_response.status == 200: js_content = await js_response.text() match = key_pattern.search(js_content) if match: h_value = match.group(1) print("Found the h-value:", h_value) # Update the cache cached_hid = h_value cache_time = current_time return h_value print("The h-value was not found in any JS content.") return None except Exception as e: print(f"An error occurred during the request: {e}") return None