def post(self): self.set_header('Content-Type', 'application/json; charset=UTF-8') if (not self.request.files) or (not 'imgFile' in self.request.files): return img_file = self.request.files['imgFile'][0] o_filename = img_file['filename'] shop_id = self.get_argument('shop_id', '13') distributor_shop = self.db.get( 'select taobao_api_info, taobao_nick from distributor_shop where id = %s', shop_id) app_info = json.loads(distributor_shop.taobao_api_info, object_hook=json_hook) try: request = Taobao('taobao.picture.upload') request.set_app_info(app_info.app_key, app_info.app_secret_key) request.set_session(app_info.session) request.add_file('img', o_filename, img_file['body']) response = yield request( picture_category_id='0', image_input_title=o_filename.encode('utf-8')) request.parse_response(response.body) if request.is_ok(): self.write({ 'error': 0, 'url': request.message.picture.picture_path }) else: err_msg = request.error.sub_msg if 'sub_msg' in request.error else request.error.msg self.write(json_dumps({'error': err_msg})) except IOError: self.write(json_dumps({'error': "没有找到图片文件"})) return
def post(self): num_iid = self.get_argument('num_iid').encode('utf-8') arg_img_url = self.get_argument('img_url') shop_id = self.get_argument('shop_id') distributor_shop = self.db.get( 'select taobao_api_info, taobao_nick from distributor_shop where id = %s', shop_id) app_info = json.loads(distributor_shop.taobao_api_info, object_hook=json_hook) img_path = os.path.join(options.upload_img_path, arg_img_url[1:]) try: fo = open(img_path, 'rb') except IOError: self.write(json_dumps({'error': "没有找到图片文件"})) return request = Taobao('taobao.item.img.upload') request.set_app_info(app_info.app_key, app_info.app_secret_key) request.set_session(app_info.session) request.add_file('image', fo.name, fo.read()) fo.close() response = yield request(num_iid=num_iid, is_major='true') request.parse_response(response.body) if request.is_ok(): self.write(json_dumps({'success': '图片上传成功'})) else: err_msg = request.error.sub_msg if 'sub_msg' in request.error else request.error.msg self.write(json_dumps({'error': err_msg}))
def replace_with_taobao_img(content, app_info): """替换淘宝推送时详情中的图片为淘宝的图片""" img_tag_ptn = re.compile("""<img[^>]*src=["']([^"^']*)""") cdn_o_ptn = re.compile("""(.+)%s/o/(\d+)/(\d+)/(\d+)/(.+)""" % options.img_host) cdn_p_ptn = re.compile("""(.+)%s/p/(\d+)/(\d+)/(\d+)/(.+)""" % options.img_host) # 找出所有的<img> tag img_tags = re.findall(img_tag_ptn, content) for tag in img_tags: m = cdn_p_ptn.match(tag) file_path = "p" # 匹配的图片 if not m: m = cdn_o_ptn.match(tag) file_path = "o" if m: file_path += "/%s/%s/%s/%s" % (m.group(2), m.group(3), m.group(4), m.group(5)) file_path = os.path.join(options.cdn_root, file_path) fo = open(file_path, "rb") request = Taobao("taobao.picture.upload") request.set_app_info(app_info.app_key, app_info.app_secret_key) request.set_session(app_info.session) request.add_file("img", fo.name, fo.read()) response = yield request(picture_category_id="0", image_input_title=fo.name.encode("utf-8")) request.parse_response(response.body) if request.is_ok(): new_src = request.message.picture.picture_path else: continue content = content.decode("utf-8") if isinstance(content, str) else content # 替换 content = re.sub(tag, new_src, content) raise tornado.gen.Return(content)
def post(self): self.set_header("Content-Type", "application/json; charset=UTF-8") if (not self.request.files) or (not "imgFile" in self.request.files): return img_file = self.request.files["imgFile"][0] o_filename = img_file["filename"] shop_id = self.get_argument("shop_id", "13") distributor_shop = self.db.get( "select taobao_api_info, taobao_nick from distributor_shop where id = %s", shop_id ) app_info = json.loads(distributor_shop.taobao_api_info, object_hook=json_hook) try: request = Taobao("taobao.picture.upload") request.set_app_info(app_info.app_key, app_info.app_secret_key) request.set_session(app_info.session) request.add_file("img", o_filename, img_file["body"]) response = yield request(picture_category_id="0", image_input_title=o_filename.encode("utf-8")) request.parse_response(response.body) if request.is_ok(): self.write({"error": 0, "url": request.message.picture.picture_path}) else: err_msg = request.error.sub_msg if "sub_msg" in request.error else request.error.msg self.write(json_dumps({"error": err_msg})) except IOError: self.write(json_dumps({"error": "没有找到图片文件"})) return
def post(self): num_iid = self.get_argument("num_iid").encode("utf-8") arg_img_url = self.get_argument("img_url") shop_id = self.get_argument("shop_id") distributor_shop = self.db.get( "select taobao_api_info, taobao_nick from distributor_shop where id = %s", shop_id ) app_info = json.loads(distributor_shop.taobao_api_info, object_hook=json_hook) img_path = os.path.join(options.upload_img_path, arg_img_url[1:]) try: fo = open(img_path, "rb") except IOError: self.write(json_dumps({"error": "没有找到图片文件"})) return request = Taobao("taobao.item.img.upload") request.set_app_info(app_info.app_key, app_info.app_secret_key) request.set_session(app_info.session) request.add_file("image", fo.name, fo.read()) fo.close() response = yield request(num_iid=num_iid, is_major="true") request.parse_response(response.body) if request.is_ok(): self.write(json_dumps({"success": "图片上传成功"})) else: err_msg = request.error.sub_msg if "sub_msg" in request.error else request.error.msg self.write(json_dumps({"error": err_msg}))
def replace_with_taobao_img(content, app_info): """替换淘宝推送时详情中的图片为淘宝的图片""" img_tag_ptn = re.compile("""<img[^>]*src=["']([^"^']*)""") cdn_o_ptn = re.compile("""(.+)%s/o/(\d+)/(\d+)/(\d+)/(.+)""" % options.img_host) cdn_p_ptn = re.compile("""(.+)%s/p/(\d+)/(\d+)/(\d+)/(.+)""" % options.img_host) # 找出所有的<img> tag img_tags = re.findall(img_tag_ptn, content) for tag in img_tags: m = cdn_p_ptn.match(tag) file_path = 'p' # 匹配的图片 if not m: m = cdn_o_ptn.match(tag) file_path = 'o' if m: file_path += '/%s/%s/%s/%s' % (m.group(2), m.group(3), m.group(4), m.group(5)) file_path = os.path.join(options.cdn_root, file_path) fo = open(file_path, 'rb') request = Taobao('taobao.picture.upload') request.set_app_info(app_info.app_key, app_info.app_secret_key) request.set_session(app_info.session) request.add_file('img', fo.name, fo.read()) response = yield request(picture_category_id='0', image_input_title=fo.name.encode('utf-8')) request.parse_response(response.body) if request.is_ok(): new_src = request.message.picture.picture_path else: continue content = content.decode('utf-8') if isinstance(content, str) else content # 替换 content = re.sub(tag, new_src, content) raise tornado.gen.Return(content)