File size: 2,174 Bytes
0e86a5a
 
 
 
e143070
 
 
b48a03d
0e86a5a
d372e35
e143070
 
 
d372e35
e143070
 
d372e35
 
0a7708d
e143070
 
 
d372e35
0e86a5a
0a7708d
e143070
0e86a5a
 
 
0a7708d
0e86a5a
 
 
 
0a7708d
0e86a5a
e143070
0e86a5a
0a7708d
e143070
0e86a5a
 
0a7708d
0e86a5a
 
 
 
 
0a7708d
 
e143070
 
0e86a5a
 
0a7708d
0e86a5a
 
0a7708d
0e86a5a
 
0a7708d
0e86a5a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import requests
import re
import time

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/91.0.4472.124 Safari/537.36"
}

# Cache variables
cached_hid = None
cache_time = 0
CACHE_DURATION = 36000  # Cache duration in seconds (10 hour)

def getHid(force_refresh=False):
    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:
        # Retrieve the initial HTML content.
        response = requests.get(base_url, headers=headers)
        response.raise_for_status()
        content = response.text

        # Use a regular expression to find specific `static/chunks` paths.
        pattern = r"static/chunks/app/layout-[a-zA-Z0-9]+\.js"
        match = re.search(pattern, content)

        if match:
            # Construct the full URL of the JS file.
            js_path = match.group()
            full_url = f"{base_url}/_next/{js_path}"

            # Request the content of the JS file.
            js_response = requests.get(full_url, headers=headers)
            js_response.raise_for_status()

            # In JS content, use a regular expression to search for h-value.
            h_pattern = r'h="([0-9a-f-]+)"'
            h_match = re.search(h_pattern, js_response.text)

            if h_match:
                h_value = h_match.group(1)
                print("Found the h-value.", h_value)
                # Update the cache.
                cached_hid = h_value
                cache_time = current_time
                return h_value
            else:
                print("The h-value was not found in the JS content.")
                return None
        else:
            print("The specified JS file path was not found in the HTML content.")
            return None
    except requests.exceptions.RequestException as e:
        print(f"An error occurred. {e}")
        return None