Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
CDNDrive
提交
40af440a
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 搜索 >>
提交
40af440a
编写于
3月 21, 2020
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
适配简书
上级
885a47df
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
115 addition
and
0 deletion
+115
-0
CDNDrive/drivers/JianApi.py
CDNDrive/drivers/JianApi.py
+111
-0
CDNDrive/drivers/__init__.py
CDNDrive/drivers/__init__.py
+3
-0
CDNDrive/encoders/__init__.py
CDNDrive/encoders/__init__.py
+1
-0
未找到文件。
CDNDrive/drivers/JianApi.py
0 → 100644
浏览文件 @
40af440a
# 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
JianApi
:
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
"https://upload-images.jianshu.io/upload_images/
{
hash
}
.png"
extract_hash
=
lambda
self
,
s
:
re
.
findall
(
r
"\d{6}-[A-Fa-f0-9]{16}"
,
s
)[
0
]
def
__init__
(
self
):
self
.
cookies
=
load_cookies
(
'jian'
)
def
meta2real
(
self
,
url
):
if
re
.
match
(
r
"^jsdrive://\d{6}-[A-Fa-f0-9]{16}$"
,
url
):
return
self
.
default_url
(
self
.
extract_hash
(
url
))
else
:
return
None
def
real2meta
(
self
,
url
):
return
'jsdrive://'
+
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
(
'jian'
,
self
.
cookies
)
def
get_user_info
(
self
,
fmt
=
True
):
return
'获取用户信息功能尚未实现'
def
image_upload
(
self
,
img
):
fname
=
f
"
{
time
.
time
()
*
1000
}
.png"
url
=
f
'https://www.jianshu.com/upload_images/token.json?filename=
{
fname
}
'
try
:
j
=
request_retry
(
'GET'
,
url
,
headers
=
JianApi
.
default_hdrs
,
cookies
=
self
.
cookies
).
json
()
except
Exception
as
ex
:
return
{
'code'
:
114514
,
'message'
:
str
(
ex
)}
if
'error'
in
j
:
return
{
'code'
:
114514
,
'message'
:
j
[
'error'
]}
url
=
'https://upload.qiniup.com/'
files
=
{
'file'
:
(
fname
,
img
),
}
data
=
{
'token'
:
j
[
'token'
],
'key'
:
j
[
'key'
],
'x:protocol'
:
'https'
}
try
:
j
=
request_retry
(
'POST'
,
url
,
data
=
data
,
files
=
files
,
headers
=
JianApi
.
default_hdrs
,
).
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'
:
j
[
'url'
]
}
def
main
():
op
=
sys
.
argv
[
1
]
if
op
not
in
[
'cookies'
,
'upload'
]:
return
api
=
JianApi
()
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
浏览文件 @
40af440a
...
...
@@ -2,12 +2,14 @@ from .BiliApi import BiliApi
from
.BaijiaApi
import
BaijiaApi
from
.CsdnApi
import
CsdnApi
from
.SohuApi
import
SohuApi
from
.JianApi
import
JianApi
drivers
=
{
'bili'
:
BiliApi
(),
'baijia'
:
BaijiaApi
(),
'csdn'
:
CsdnApi
(),
'sohu'
:
SohuApi
(),
'jian'
:
JianApi
(),
}
prefixes
=
{
...
...
@@ -16,4 +18,5 @@ prefixes = {
'bjdrive'
:
'baijia'
,
'csdrive'
:
'csdn'
,
'shdrive'
:
'sohu'
,
'jsdrive'
:
'jian'
,
}
\ No newline at end of file
CDNDrive/encoders/__init__.py
浏览文件 @
40af440a
...
...
@@ -5,4 +5,5 @@ encoders = {
'baijia'
:
PngEncoder
(),
'csdn'
:
PngEncoder
(),
'sohu'
:
PngEncoder
(),
'jian'
:
PngEncoder
(),
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录