提交 8f0e1993 编写于 作者: W wizardforcel

修复搜狐图床

上级 33abd9ef
...@@ -14,8 +14,8 @@ from .BaseApi import BaseApi ...@@ -14,8 +14,8 @@ from .BaseApi import BaseApi
class SohuApi(BaseApi): class SohuApi(BaseApi):
default_url = lambda self, hash: f"http://5b0988e595225.cdn.sohucs.com/images/{hash}.png" default_url = lambda self, hash: f"http://p1.itc.cn/images{hash}.png"
extract_hash = lambda self, s: re.findall(r"\d{8}/[A-Fa-f0-9]{32}", s)[0] extract_hash = lambda self, s: re.findall(r"\d{2}/\d{8}/[A-Fa-f0-9]{32}", s)[0]
def __init__(self): def __init__(self):
super().__init__() super().__init__()
...@@ -23,12 +23,15 @@ class SohuApi(BaseApi): ...@@ -23,12 +23,15 @@ class SohuApi(BaseApi):
def meta2real(self, url): def meta2real(self, url):
if re.match(r"^shdrive://\d{8}/[A-Fa-f0-9]{32}$", url): if re.match(r"^shdrive://\d{8}/[A-Fa-f0-9]{32}$", url):
hash = re.findall(r"\d{8}/[A-Fa-f0-9]{32}", url)[0]
return f'http://5b0988e595225.cdn.sohucs.com/images/{hash}.png'
elif re.match(r'^shdrive2://\d{2}/\d{8}/[A-Fa-f0-9]{32}$', url):
return self.default_url(self.extract_hash(url)) return self.default_url(self.extract_hash(url))
else: else:
return None return None
def real2meta(self, url): def real2meta(self, url):
return 'shdrive://' + self.extract_hash(url) return 'shdrive2://' + self.extract_hash(url)
def set_cookies(self, cookie_str): def set_cookies(self, cookie_str):
self.cookies = parse_cookies(cookie_str) self.cookies = parse_cookies(cookie_str)
...@@ -36,12 +39,28 @@ class SohuApi(BaseApi): ...@@ -36,12 +39,28 @@ class SohuApi(BaseApi):
def image_upload(self, img): def image_upload(self, img):
url = 'https://mp.sohu.com/mpbp/bp/account/list'
try:
j = request_retry(
'GET', url,
headers=SohuApi.default_hdrs,
cookies=self.cookies
).json()
except Exception as ex:
return {'code': 114514, 'message': str(ex)}
if j['code'] != 2000000:
return {'code': j['code'], 'message': j['msg']}
mpid = j['data']['data'][0]['accounts'][0]['id']
url = 'https://mp.sohu.com/commons/front/outerUpload/v2/file' url = 'https://mp.sohu.com/commons/front/outerUpload/v2/file'
files = {'file': (f"{time.time() * 1000}.png", img)} files = {'file': (f"{time.time() * 1000}.png", img)}
data = {'accountId': mpid}
try: try:
j = request_retry( j = request_retry(
'POST', url, 'POST', url,
files=files, files=files,
data=data,
headers=SohuApi.default_hdrs, headers=SohuApi.default_hdrs,
cookies=self.cookies cookies=self.cookies
).json() ).json()
......
...@@ -28,6 +28,7 @@ prefixes = { ...@@ -28,6 +28,7 @@ prefixes = {
'bjdrive': 'baijia', 'bjdrive': 'baijia',
'csdrive': 'csdn', 'csdrive': 'csdn',
'shdrive': 'sohu', 'shdrive': 'sohu',
'shdrive2': 'sohu',
'jsdrive': 'jian', 'jsdrive': 'jian',
'wbdrive': 'weibo', 'wbdrive': 'weibo',
'aldrive': 'ali', 'aldrive': 'ali',
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册