def porn_detect_file(self, porn_file): auth = Auth(self._secret_id, self._secret_key) sign = auth.get_porn_detect_sign() app_info = conf.get_app_info() if False == sign: return { 'code':9, 'message':'Secret id or key is empty.', 'data':{}, } url = app_info['end_point_porndetect'] header = { 'Authorization':sign, } files = { 'appid':(None,app_info['appid'],None), 'bucket':(None,app_info['bucket'],None), } i=0 for pfile in porn_file: local_path = os.path.abspath(pfile) if not os.path.exists(local_path): return {'httpcode':0, 'code':self.IMAGE_FILE_NOT_EXISTS, 'message':'file ' + pfile + ' not exists', 'data':{}} i+=1 files['image['+str(i-1)+']']=(pfile,open(local_path,'rb'),None) r = requests.post(url, headers=header, files=files) ret = r.json() return ret
def porn_detect_url(self, porn_url): auth = Auth(self._secret_id, self._secret_key) sign = auth.get_porn_detect_sign() app_info = conf.get_app_info() if False == sign: return { 'code': 9, 'message': 'Secret id or key is empty.', 'data': {}, } url = app_info['end_point_porndetect'] payload = { 'bucket': app_info['bucket'], 'appid': int(app_info['appid']), 'url_list': porn_url, } header = { 'Authorization': sign, 'Content-Type': 'application/json', } r = {} r = requests.post(url, data=json.dumps(payload), headers=header) ret = r.json() return ret
def get_app_sign_v2(self, bucket, fileid, expired=0, userid='0'): """ GET V2 SIGN USE FILEID copy and del operation must have fileid and set expired=0 Args: bucket: user bucket fileid: user defined fileid, not urlencoded expired: expire time userid: user id, pls ignore or set to '0' """ if not self._secret_id or not self._secret_key: return self.AUTH_SECRET_ID_KEY_ERROR app_info = conf.get_app_info() appid = app_info['appid'] puserid = '' if userid != '': if len(userid) > 64: return self.AUTH_URL_FORMAT_ERROR puserid = userid now = int(time.time()) rdm = random.randint(0, 999999999) plain_text = 'a=' + appid + '&b=' + bucket +'&k=' + self._secret_id + '&e=' + str(expired) + '&t=' + str(now) + '&r=' + str(rdm) + '&u=' + puserid + '&f=' + fileid if isinstance(plain_text, str): plain_text = plain_text.encode("utf-8") bin = hmac.new(self._secret_key.encode('ascii'), plain_text, hashlib.sha1) s = bin.hexdigest() s = binascii.unhexlify(s) s = s + plain_text signature = base64.b64encode(s).rstrip() #生成签名 return signature.decode('ascii')
def porn_detect_url(self, porn_url): auth = Auth(self._secret_id, self._secret_key) sign = auth.get_porn_detect_sign() app_info = conf.get_app_info() if False == sign: return { 'code':9, 'message':'Secret id or key is empty.', 'data':{}, } url = app_info['end_point_porndetect'] payload = { 'bucket':app_info['bucket'], 'appid':int(app_info['appid']), 'url_list':porn_url, } header = { 'Authorization':sign, 'Content-Type':'application/json', } r = {} r = requests.post(url, data=json.dumps(payload), headers=header) ret = r.json() return ret
def get_app_sign_v2(self, bucket, fileid, expired=0, userid='0'): """ GET V2 SIGN USE FILEID copy and del operation must have fileid and set expired=0 Args: bucket: user bucket fileid: user defined fileid, not urlencoded expired: expire time userid: user id, pls ignore or set to '0' """ if not self._secret_id or not self._secret_key: return self.AUTH_SECRET_ID_KEY_ERROR app_info = conf.get_app_info() appid = app_info['appid'] puserid = '' if userid != '': if len(userid) > 64: return self.AUTH_URL_FORMAT_ERROR puserid = userid now = int(time.time()) rdm = random.randint(0, 999999999) plain_text = 'a=' + appid + '&b=' + bucket +'&k=' + self._secret_id + '&e=' + str(expired) + '&t=' + str(now) + '&r=' + str(rdm) + '&u=' + puserid + '&f=' + fileid bin = hmac.new(self._secret_key, plain_text, hashlib.sha1) s = bin.hexdigest() s = binascii.unhexlify(s) s = s + plain_text.encode('ascii') signature = base64.b64encode(s).rstrip() #生成签名 return signature
def generate_res_url_v2(self, bucket, userid='0', fileid='', oper=''): app_info = conf.get_app_info() if fileid: if oper: return app_info['end_point_v2'] + str(app_info['appid']) + '/' + str(bucket) + '/' + str(userid) + '/' + str(fileid) + '/' + oper else: return app_info['end_point_v2'] + str(app_info['appid']) + '/' + str(bucket) + '/' + str(userid) + '/' + str(fileid) else: return app_info['end_point_v2'] + str(app_info['appid']) + '/' + str(bucket) + '/' + str(userid)
def generate_res_url(self, userid='0', fileid='', oper=''): app_info = conf.get_app_info('video') if fileid: if oper: return app_info['end_point'] + str(app_info['appid']) + '/' + str(userid) + '/' + str(fileid) + '/' + oper else: return app_info['end_point'] + str(app_info['appid']) + '/' + str(userid) + '/' + str(fileid) else: return app_info['end_point'] + str(app_info['appid']) + '/' + str(userid)
def generate_res_url(self, userid = '0', fileid = '', oper = ''): app_info = conf.get_app_info() if fileid: fileid = urllib.quote_plus(fileid); if oper: return app_info['end_point'] + str(app_info['appid']) + '/' + str(userid) + '/' + str(fileid) + '/' + oper else: return app_info['end_point'] + str(app_info['appid']) + '/' + str(userid) + '/' + str(fileid) else: return app_info['end_point'] + str(app_info['appid']) + '/' + str(userid)
def generate_res_url(self, userid="0", fileid="", oper=""): app_info = conf.get_app_info() if fileid: if oper: return ( app_info["end_point"] + str(app_info["appid"]) + "/" + str(userid) + "/" + str(fileid) + "/" + oper ) else: return app_info["end_point"] + str(app_info["appid"]) + "/" + str(userid) + "/" + str(fileid) else: return app_info["end_point"] + str(app_info["appid"]) + "/" + str(userid)
def get_info_from_url_v2(self, url): app_info = conf.get_app_info() end_point = app_info['end_point_v2'] info = urlparse(url) end_point_info = urlparse(end_point) if (info.hostname == urlparse(conf.API_IMAGE_END_POINT_V2).hostname) : # 非下载url if info.path : parts = info.path.split('/') if len(parts) == 6: cate = parts[1] ver = parts[2] appid = parts[3] bucket = parts[4] userid = parts[5] return {'cate':cate, 'ver':ver, 'appid':appid, 'bucket':bucket, 'userid':userid} elif len(parts) == 7: cate = parts[1] ver = parts[2] appid = parts[3] bucket = parts[4] userid = parts[5] fileid = parts[6] return {'cate':cate, 'ver':ver, 'appid':appid, 'bucket':bucket, 'userid':userid, 'fileid':fileid} elif len(parts) == 8: cate = parts[1] ver = parts[2] appid = parts[3] bucket = parts[4] userid = parts[5] fileid = parts[6] oper = parts[7] return {'cate':cate, 'ver':ver, 'appid':appid, 'bucket':bucket, 'userid':userid, 'fileid':fileid, 'oper':oper} else: return {} else: return {} else : if info.path : parts = info.path.split('/') if len(parts) == 5: arr = parts[1].split('-') if len(arr) != 2: return {} bucket = arr[0] appid = arr[1] userid = parts[2] fileid = parts[3] style = parts[4] return {'appid':appid, 'bucket':bucket, 'userid':userid, 'fileid':fileid, 'style':style} else: return {} else: return {}
def generate_res_url(self, userid='0', fileid='', oper=''): app_info = conf.get_app_info() if fileid: if oper: return app_info['end_point'] + str( app_info['appid']) + '/' + str(userid) + '/' + str( fileid) + '/' + oper else: return app_info['end_point'] + str( app_info['appid']) + '/' + str(userid) + '/' + str(fileid) else: return app_info['end_point'] + str( app_info['appid']) + '/' + str(userid)
def generate_res_url_v2(self, bucket, userid='0', fileid='', oper=''): app_info = conf.get_app_info() if fileid: fileid = urllib.quote_plus(fileid) if oper: return app_info['end_point_v2'] + str( app_info['appid']) + '/' + str(bucket) + '/' + str( userid) + '/' + str(fileid) + '/' + oper else: return app_info['end_point_v2'] + str( app_info['appid']) + '/' + str(bucket) + '/' + str( userid) + '/' + str(fileid) else: return app_info['end_point_v2'] + str( app_info['appid']) + '/' + str(bucket) + '/' + str(userid)
def get_porn_detect_sign(self, url=None): app_info = conf.get_app_info() appid = app_info['appid'] bucket = app_info['bucket'] expired = int(time.time()) + 1000 current = int(time.time()) #url_dic = {'l':url} #plain_text = 'a=' + appid + '&b=' + bucket +'&k=' + self._secret_id + '&t=' + str(current) + '&e=' + str(expired) + '&' + urllib.urlencode(url_dic) plain_text = 'a=' + appid + '&b=' + bucket + '&k=' + self._secret_id + '&t=' + str( current) + '&e=' + str(expired) bin = hmac.new(self._secret_key, plain_text, hashlib.sha1) s = bin.hexdigest() s = binascii.unhexlify(s) s = s + plain_text signature = base64.b64encode(s).rstrip() #生成签名 return signature
def get_info_from_url(self, url): app_info = conf.get_app_info() end_point = app_info['end_point'] info = urlparse(url) end_point_info = urlparse(end_point) if (info.hostname == urlparse(conf.API_IMAGE_END_POINT).hostname or info.hostname == urlparse(conf.API_VIDEO_END_POINT).hostname) : # this isn't download url if info.path : parts = info.path.split('/') if len(parts) == 5: cate = parts[1] ver = parts[2] appid = parts[3] userid = parts[4] return {'cate':cate, 'ver':ver, 'appid':appid, 'userid':userid} elif len(parts) == 6: cate = parts[1] ver = parts[2] appid = parts[3] userid = parts[4] fileid = parts[5] return {'cate':cate, 'ver':ver, 'appid':appid, 'userid':userid, 'fileid':fileid} elif len(parts) == 7: cate = parts[1] ver = parts[2] appid = parts[3] userid = parts[4] fileid = parts[5] oper = parts[6] return {'cate':cate, 'ver':ver, 'appid':appid, 'userid':userid, 'fileid':fileid, 'oper':oper} else: return {} else: return {} else : if info.path : parts = info.path.split('/') if len(parts) == 5: appid = parts[1] userid = parts[2] fileid = parts[3] style = parts[4] return {'appid':appid, 'userid':userid, 'fileid':fileid, 'style':style} else: return {} else: return {}
def get_info_from_url(self, url): app_info = conf.get_app_info() end_point = app_info['end_point'] info = urlparse(url) end_point_info = urlparse(end_point) if info.hostname == end_point_info.hostname : # 非下载url if info.path : parts = info.path.split('/') if len(parts) == 5: cate = parts[1] ver = parts[2] appid = parts[3] userid = parts[4] return {'cate':cate, 'ver':ver, 'appid':appid, 'userid':userid} elif len(parts) == 6: cate = parts[1] ver = parts[2] appid = parts[3] userid = parts[4] fileid = parts[5] return {'cate':cate, 'ver':ver, 'appid':appid, 'userid':userid, 'fileid':fileid} elif len(parts) == 7: cate = parts[1] ver = parts[2] appid = parts[3] userid = parts[4] fileid = parts[5] oper = parts[6] return {'cate':cate, 'ver':ver, 'appid':appid, 'userid':userid, 'fileid':fileid, 'oper':oper} else: return {} else: return {} else : if info.path : parts = info.path.split('/') if len(parts) == 5: appid = parts[1] userid = parts[2] fileid = parts[3] style = parts[4] return {'appid':appid, 'userid':userid, 'fileid':fileid, 'style':style} else: return {} else: return {}
def get_info_from_url(self, url): app_info = conf.get_app_info() end_point = app_info['end_point'] info = urlparse(url) end_point_info = urlparse(end_point) if (info.hostname == urlparse(conf.API_IMAGE_END_POINT).hostname or info.hostname == urlparse(conf.API_VIDEO_END_POINT).hostname) : # 非下载url if info.path : parts = info.path.split('/') if len(parts) == 5: cate = parts[1] ver = parts[2] appid = parts[3] userid = parts[4] return {'cate':cate, 'ver':ver, 'appid':appid, 'userid':userid} elif len(parts) == 6: cate = parts[1] ver = parts[2] appid = parts[3] userid = parts[4] fileid = parts[5] return {'cate':cate, 'ver':ver, 'appid':appid, 'userid':userid, 'fileid':fileid} elif len(parts) == 7: cate = parts[1] ver = parts[2] appid = parts[3] userid = parts[4] fileid = parts[5] oper = parts[6] return {'cate':cate, 'ver':ver, 'appid':appid, 'userid':userid, 'fileid':fileid, 'oper':oper} else: return {} else: return {} else : if info.path : parts = info.path.split('/') if len(parts) == 5: appid = parts[1] userid = parts[2] fileid = parts[3] style = parts[4] return {'appid':appid, 'userid':userid, 'fileid':fileid, 'style':style} else: return {} else: return {}
def get_porn_detect_sign(self, url = None): app_info = conf.get_app_info() appid = app_info['appid'] bucket = app_info['bucket'] expired = int(time.time())+1000 current = int(time.time()) #url_dic = {'l':url} #plain_text = 'a=' + appid + '&b=' + bucket +'&k=' + self._secret_id + '&t=' + str(current) + '&e=' + str(expired) + '&' + urllib.parse.urlencode(url_dic) plain_text = 'a=' + appid + '&b=' + bucket +'&k=' + self._secret_id + '&t=' + str(current) + '&e=' + str(expired) if isinstance(plain_text, str): plain_text = plain_text.encode("utf-8") bin = hmac.new(self._secret_key.encode('ascii'), plain_text, hashlib.sha1) s = bin.hexdigest() s = binascii.unhexlify(s) s = s + plain_text signature = base64.b64encode(s).rstrip() #生成签名 return signature.decode('ascii')