def post(self):
name = self.request.arguments.get('name')[0]
post_type = self.request.arguments.get('type')[0]
if int(post_type) == LINK_TYPE:
data = self.request.arguments.get('info')[0]
url = add_http(data.decode("utf-8"))
else:
b64img = self.request.arguments.get('image')[0]
img = BytesIO(base64.b64decode(b64img))
scanner = zbar.ImageScanner()
scanner.parse_config('enable')
pil = Image.open(img).convert('L')
width, height = pil.size
raw = pil.tobytes()
image = zbar.Image(width, height, 'Y800', raw)
scanner.scan(image)
for symbol in image:
url = add_http(symbol.data)
cur_user = self.get_current_user()
if cur_user:
users = self.db[USER_COLLECTION]
users.update({'phone': cur_user['phone']}, {'$addToSet': {'qrcode': url}})
stat_col = self.db[STATISTIC_COLLECTION]
if not stat_col.find_one({'url': url}):
stat_col.insert({
'name': name,
'url': url,
'visit': []
})
else:
stat_col.update({'url': url}, {"$set": {'name': name}})
img = qrcode.make(gen_new_url(url))
o = BytesIO()
img.save(o, "JPEG")
s = base64.b64encode(o.getvalue())
img = qrcode.make(gen_statistic_url(url))
o = BytesIO()
img.save(o, "JPEG")
s2 = base64.b64encode(o.getvalue())
self.write({
"qrcode": s.decode('utf-8'),
"statistic": s2.decode('utf-8')
})
评论列表
文章目录