Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
CDNDrive
提交
a63453f3
C
CDNDrive
项目概览
OpenDocCN
/
CDNDrive
通知
12
Star
0
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
CDNDrive
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
a63453f3
编写于
3月 21, 2020
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
添加 sohu API
上级
7932d536
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
94 addition
and
0 deletion
+94
-0
CDNDrive/drivers/SohuApi.py
CDNDrive/drivers/SohuApi.py
+90
-0
CDNDrive/drivers/__init__.py
CDNDrive/drivers/__init__.py
+3
-0
CDNDrive/encoders/__init__.py
CDNDrive/encoders/__init__.py
+1
-0
未找到文件。
CDNDrive/drivers/SohuApi.py
0 → 100644
浏览文件 @
a63453f3
# coding: utf-8
import
sys
import
base64
import
hashlib
import
random
import
requests
import
rsa
import
time
import
re
from
urllib
import
parse
from
CDNDrive.util
import
*
class
SohuApi
:
default_hdrs
=
{
'User-Agent'
:
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'
}
default_url
=
lambda
self
,
hash
:
f
"http://5b0988e595225.cdn.sohucs.com/images/
{
hash
}
.png"
extract_hash
=
lambda
self
,
s
:
re
.
findall
(
r
"\d{8}/[A-Fa-f0-9]{32}"
,
s
)[
0
]
def
__init__
(
self
):
self
.
cookies
=
load_cookies
(
'sohu'
)
def
meta2real
(
self
,
url
):
if
re
.
match
(
r
"^shdrive://\d{8}/[A-Fa-f0-9]{32}$"
,
url
):
return
self
.
default_url
(
self
.
extract_hash
(
url
))
else
:
return
None
def
real2meta
(
self
,
url
):
return
'shdrive://'
+
self
.
extract_hash
(
url
)
def
login
(
self
,
un
,
pw
):
return
{
'code'
:
114514
,
'message'
:
'功能尚未实现,请使用 Cookie 登录'
}
def
set_cookies
(
self
,
cookie_str
):
self
.
cookies
=
parse_cookies
(
cookie_str
)
save_cookies
(
'sohu'
,
self
.
cookies
)
def
get_user_info
(
self
,
fmt
=
True
):
return
'获取用户信息功能尚未实现'
def
image_upload
(
self
,
img
):
url
=
'https://mp.sohu.com/commons/v2/upload/file'
files
=
{
'file'
:
(
f
"
{
time
.
time
()
*
1000
}
.png"
,
img
)}
try
:
j
=
request_retry
(
'POST'
,
url
,
files
=
files
,
headers
=
SohuApi
.
default_hdrs
,
cookies
=
self
.
cookies
).
json
()
except
Exception
as
ex
:
return
{
'code'
:
114514
,
'message'
:
str
(
ex
)}
if
not
j
.
get
(
'url'
):
return
{
'code'
:
114514
,
'message'
:
'未知错误'
}
else
:
return
{
'code'
:
0
,
'message'
:
''
,
'data'
:
'http:'
+
j
[
'url'
]
}
def
main
():
op
=
sys
.
argv
[
1
]
if
op
not
in
[
'cookies'
,
'upload'
]:
return
api
=
SohuApi
()
if
op
==
'cookies'
:
cookies
=
sys
.
argv
[
2
]
api
.
set_cookies
(
cookies
)
print
(
'已设置'
)
else
:
fname
=
sys
.
argv
[
2
]
img
=
open
(
fname
,
'rb'
).
read
()
r
=
api
.
image_upload
(
img
)
if
r
[
'code'
]
==
0
:
print
(
r
[
'data'
])
else
:
print
(
'上传失败:'
+
r
[
'message'
])
if
__name__
==
'__main__'
:
main
()
\ No newline at end of file
CDNDrive/drivers/__init__.py
浏览文件 @
a63453f3
from
.BiliApi
import
BiliApi
from
.BaijiaApi
import
BaijiaApi
from
.CsdnApi
import
CsdnApi
from
.SohuApi
import
SohuApi
drivers
=
{
'bili'
:
BiliApi
(),
'baijia'
:
BaijiaApi
(),
'csdn'
:
CsdnApi
(),
'sohu'
:
SohuApi
(),
}
prefixes
=
{
...
...
@@ -13,4 +15,5 @@ prefixes = {
'bdex'
:
'bili'
,
'bjdrive'
:
'baijia'
,
'csdrive'
:
'csdn'
,
'shdrive'
:
'sohu'
,
}
\ No newline at end of file
CDNDrive/encoders/__init__.py
浏览文件 @
a63453f3
...
...
@@ -4,4 +4,5 @@ encoders = {
'bili'
:
PngEncoder
(),
'baijia'
:
PngEncoder
(),
'csdn'
:
PngEncoder
(),
'sohu'
:
PngEncoder
(),
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录