支持本地生成X-Bogus

由于使用第三方接口必然会产生网络延迟等问题,故支持本地生成X-Bogus

参考项目https://github.com/B1gM8c/tiktok
This commit is contained in:
B1gM8c 2023-03-03 14:51:12 +08:00
parent 8f9fe9f1e7
commit 428ab6ff30
2 changed files with 573 additions and 7 deletions

View File

@ -51,17 +51,19 @@ class Utils(object):
return result return result
def getXbogus(self, url, headers=None): def getXbogus(self, url, headers=None):
# getXbogus算法开源地址https://github.com/B1gM8c/tiktok
urls = Urls() urls = Urls()
query = urllib.parse.urlparse(urls.POST_DETAIL + url).query
user_agent = headers.get(
'User-Agent') if headers else "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36"
try: try:
response = json.loads(requests.post( xbogus = execjs.compile(open('./X-Bogus.js').read()).call('sign', query, user_agent)
url=urls.GET_XB_PATH, data={"param": url}, headers=headers).text) params = url + "&X-Bogus=" + xbogus
params = response["param"] print(params)
xb = response["X-Bogus"]
except Exception as e: except Exception as e:
print('[ 错误 ]:X-Bogus接口异常, 可能是访问流量高, 接口限流请稍等几分钟再次尝试') print('[ 错误 ]:X-Bogus算法异常')
return return
return params
return params # , xb
def str2bool(self, v): def str2bool(self, v):
if isinstance(v, bool): if isinstance(v, bool):

564
X-Bogus.js Normal file

File diff suppressed because one or more lines are too long