Commit dab15d0c authored by 张永's avatar 张永

fix

parent 075bdd53
...@@ -5,7 +5,8 @@ ...@@ -5,7 +5,8 @@
import json import json
from django.conf import settings from django.conf import settings
from gm_upload import upload, IMG_TYPE, upload_with_short from gm_types.ascle import ERROR
from gm_upload import IMG_TYPE, upload_with_short
from utils.base import APIView from utils.base import APIView
from django.contrib.auth.hashers import make_password from django.contrib.auth.hashers import make_password
...@@ -106,49 +107,56 @@ class UserImage(APIView): ...@@ -106,49 +107,56 @@ class UserImage(APIView):
if not all([image_id, image_url, user_id]): if not all([image_id, image_url, user_id]):
error_logger.error(u'参数不完整') error_logger.error(u'参数不完整')
return return self.write_fail(code=ERROR.ARG_MISS, message='参数不完整')
err, data = self.rpc['saber/face/detect'](url=image_url).unwrap()
if err: resp = self.rpc['venus/sun/user/check_image'](
error_logger.error(u'获取人脸失败') user_id=user_id, image_id=image_id).unwrap()
faces = [ if resp:
{ return self.write_success(data='', message='操作成功')
try:
data = self.rpc['saber/face/detect'](url=image_url).unwrap()
except Exception as e:
error_logger.error(u'分析人脸失败:%s', e)
return self.write_fail(code=-1, message='分析人脸失败')
faces = [{
"point": [ "point": [
item["rect"]["left"], item["rect"]["left"],
item["rect"]["top"], item["rect"]["top"],
item["rect"]["right"]-item["rect"]["left"], item["rect"]["right"]-item["rect"]["left"],
item["rect"]["bottom"]-item["rect"]["top"], item["rect"]["bottom"]-item["rect"]["top"]]} for item in data.get("faces", [])]
] if faces:
}
for item in data.get("faces", [])
]
try:
point = faces[0].get('point', []) point = faces[0].get('point', [])
file_path = download_img_func(image_url, user_id, suffix="png") else:
images = tailor_image(file_path, point) return self.write_fail(code=-1, message='获取人脸失败')
header_pic_path = images[0]
with open(header_pic_path, 'rb') as f: file_path = download_img_func(image_url, user_id, suffix="png")
image_url = upload_with_short(f, img_type=IMG_TYPE.USEREXTRA)[0] images = tailor_image(file_path, [point])
except IndexError: header_pic_path = images[0]
error_logger.error(u'获取人脸失败') with open(header_pic_path, 'rb') as f:
return image_url = upload_with_short(f, img_type=IMG_TYPE.USEREXTRA)[0]
except: try:
error_logger.error(u'上传失败') result = self.rpc['venus/sun/user/create_update_image'](
return image_url=image_url, user_id=user_id, image_id=image_id).unwrap()
except Exception as e:
result = self.rpc['venus/sun/user/create_update_image']( raise e
url=image_url, user_id=user_id).unwrap() return self.write_fail(
return { code=-1 if result else 0,
'message': '创建成功' if result else '创建失败' message="成功" if result else "失败"
} )
def get(self, request): def get(self, request):
user_id = request.GET.get('user_id') user_id = request.GET.get('user_id')
offset = int(request.GET.get('page', 1)) offset = int(request.GET.get('page', 1))
count = int(request.GET.get('limit', 10)) count = int(request.GET.get('limit', 10))
if not user_id:
error_logger.error(u'参数不完整')
return self.write_fail(code=ERROR.ARG_MISS, message='参数不完整')
try: try:
data = self.rpc['venus/sun/user/user_image_list']( data = self.rpc['venus/sun/user/user_image_list'](
user_id=user_id, offset=(offset - 1) * count, limit=count).unwrap() user_id=user_id, offset=(offset - 1) * count, limit=count).unwrap()
except Exception as e: except Exception as e:
error_logger.error(u'获取%s用户头像失败%s' % (id, e)) error_logger.error(u'获取%s用户头像失败%s' % (user_id, e))
raise raise
return data return data
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment