Skip to content

Commit

Permalink
upload src alias
Browse files Browse the repository at this point in the history
  • Loading branch information
staugur committed Jan 16, 2020
1 parent c830fc5 commit d0f784d
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 5 deletions.
4 changes: 2 additions & 2 deletions README.md
Expand Up @@ -55,11 +55,11 @@ server {

https://picbed.saintic.com

测试账号:demo
测试账号:test

测试密码:123456

对外服务,允许匿名上传,但是目前上传的图片保留删除权利!
对外服务(请勿修改密码),允许匿名上传,但是目前上传的图片保留删除权利!

## 扩展钩子

Expand Down
12 changes: 12 additions & 0 deletions src/utils/tool.py
Expand Up @@ -24,6 +24,7 @@
comma_pat = compile(r"\s*,\s*")
verticaline_pat = compile(r"\s*\|\s*")
username_pat = compile(r'^[a-zA-Z][0-9a-zA-Z\_]{0,31}$')
point_pat = compile(r'^\w{1,9}\.?\w{1,9}$')


def rsp(*args):
Expand Down Expand Up @@ -124,6 +125,17 @@ def generate_random(length=6):
return ''.join(myslice)


def format_upload_src(fmt, value):
if fmt and isinstance(fmt, string_types):
if point_pat.match(fmt):
if "." in fmt:
fmts = fmt.split('.')
return {fmts[0]: {fmts[1]: value}}
else:
return {fmt: value}
return dict(src=value)


class Attribution(dict):

def __getattr__(self, name):
Expand Down
10 changes: 7 additions & 3 deletions src/views/api.py
Expand Up @@ -22,7 +22,7 @@
from utils.tool import allowed_file, parse_valid_comma, is_true, logger, sha1,\
parse_valid_verticaline, get_today, gen_rnd_filename, hmac_sha256, \
rsp, get_current_timestamp, ListEqualSplit, sha256, generate_random, \
err_logger
err_logger, format_upload_src
from utils.web import dfr, admin_apilogin_required, apilogin_required, \
set_site_config, check_username
from utils._compat import iteritems
Expand Down Expand Up @@ -599,6 +599,7 @@ def callback(result):
)
return res
#: 存储数据
defaultSrc = data[0]["src"]
pipe = g.rc.pipeline()
pipe.sadd(rsp("index", "global"), sha)
if g.signin and g.userinfo.username:
Expand All @@ -610,7 +611,7 @@ def callback(result):
user=g.userinfo.username if g.signin else 'anonymous',
ctime=get_current_timestamp(),
status='enabled', # disabled, deleted
src=data[0]["src"],
src=defaultSrc,
sender=data[0]["sender"],
senders=json.dumps(data)
))
Expand All @@ -623,10 +624,13 @@ def callback(result):
res.update(
code=0,
filename=filename,
src=data[0]["src"],
sender=data[0]["sender"],
api=url_for("api.shamgr", sha=sha, _external=True),
)
#: format指定图片地址的显示字段,默认src,可以用点号指定
#: 比如data.src,那么返回格式{code, filename..., data:{src}, ...}
fmt = request.form.get("format", request.args.get("format"))
res.update(format_upload_src(fmt, defaultSrc))
else:
res.update(msg="No file or image format allowed")
return res
Expand Down

0 comments on commit d0f784d

Please sign in to comment.