File size: 1,338 Bytes
3d4bae7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import os
from urllib.parse import urlparse


TMS_ORIGIN = "https://tms.hengdianfilm.com"
TMS_PROXY_URL_ENV = "TMS_CF_WORKER_URL"
TMS_PROXY_TOKEN_ENV = "TMS_CF_WORKER_TOKEN"
TMS_PROXY_TOKEN_HEADER = "X-TMS-Proxy-Token"


def get_tms_proxy_base_url(proxy_url=None):
    raw = proxy_url if proxy_url is not None else os.getenv(TMS_PROXY_URL_ENV, "")
    raw = str(raw or "").strip()
    if not raw:
        return ""
    if "://" not in raw:
        raw = f"https://{raw}"
    return raw.rstrip("/")


def build_tms_url(origin_url, proxy_url=None):
    proxy_base_url = get_tms_proxy_base_url(proxy_url)
    if not proxy_base_url:
        return origin_url

    parsed = urlparse(origin_url)
    origin = f"{parsed.scheme}://{parsed.netloc}"
    if origin != TMS_ORIGIN:
        return origin_url

    query = f"?{parsed.query}" if parsed.query else ""
    return f"{proxy_base_url}{parsed.path}{query}"


def with_tms_proxy_headers(headers=None, proxy_url=None):
    headers = dict(headers or {})
    if get_tms_proxy_base_url(proxy_url):
        proxy_token = os.getenv(TMS_PROXY_TOKEN_ENV, "").strip()
        if proxy_token:
            headers[TMS_PROXY_TOKEN_HEADER] = proxy_token
    return headers


def tms_verify_ssl(default=False, proxy_url=None):
    if get_tms_proxy_base_url(proxy_url):
        return True
    return default