Commit 78fbdc84 authored by 张永's avatar 张永

Merge branch 'feature/create_image_zy' into 'test'

fix

See merge request alpha/sun!58
parents ca3ec3cb dab15d0c
......@@ -5,7 +5,8 @@
import json
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 django.contrib.auth.hashers import make_password
......@@ -106,49 +107,56 @@ class UserImage(APIView):
if not all([image_id, image_url, user_id]):
error_logger.error(u'参数不完整')
return
err, data = self.rpc['saber/face/detect'](url=image_url).unwrap()
if err:
error_logger.error(u'获取人脸失败')
faces = [
{
return self.write_fail(code=ERROR.ARG_MISS, message='参数不完整')
resp = self.rpc['venus/sun/user/check_image'](
user_id=user_id, image_id=image_id).unwrap()
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": [
item["rect"]["left"],
item["rect"]["top"],
item["rect"]["right"]-item["rect"]["left"],
item["rect"]["bottom"]-item["rect"]["top"],
]
}
for item in data.get("faces", [])
]
try:
item["rect"]["bottom"]-item["rect"]["top"]]} for item in data.get("faces", [])]
if faces:
point = faces[0].get('point', [])
file_path = download_img_func(image_url, user_id, suffix="png")
images = tailor_image(file_path, point)
header_pic_path = images[0]
with open(header_pic_path, 'rb') as f:
image_url = upload_with_short(f, img_type=IMG_TYPE.USEREXTRA)[0]
except IndexError:
error_logger.error(u'获取人脸失败')
return
except:
error_logger.error(u'上传失败')
return
result = self.rpc['venus/sun/user/create_update_image'](
url=image_url, user_id=user_id).unwrap()
return {
'message': '创建成功' if result else '创建失败'
}
else:
return self.write_fail(code=-1, message='获取人脸失败')
file_path = download_img_func(image_url, user_id, suffix="png")
images = tailor_image(file_path, [point])
header_pic_path = images[0]
with open(header_pic_path, 'rb') as f:
image_url = upload_with_short(f, img_type=IMG_TYPE.USEREXTRA)[0]
try:
result = self.rpc['venus/sun/user/create_update_image'](
image_url=image_url, user_id=user_id, image_id=image_id).unwrap()
except Exception as e:
raise e
return self.write_fail(
code=-1 if result else 0,
message="成功" if result else "失败"
)
def get(self, request):
user_id = request.GET.get('user_id')
offset = int(request.GET.get('page', 1))
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:
data = self.rpc['venus/sun/user/user_image_list'](
user_id=user_id, offset=(offset - 1) * count, limit=count).unwrap()
except Exception as e:
error_logger.error(u'获取%s用户头像失败%s' % (id, e))
error_logger.error(u'获取%s用户头像失败%s' % (user_id, e))
raise
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