def get_coupon(self, share_text): info = self.get_info(share_text) if info: title = info['title'] url = info['tb_url'] id = self.get_id(url) req1 = TbkDgMaterialOptionalRequest() req1.set_app_info(appinfo(self.appkey, self.appsecret)) req1.adzone_id = self.adzoneid req1.q = title resp1 = req1.getResponse() result = [ i for i in resp1['tbk_dg_material_optional_response'] ['result_list']['map_data'] if int(i['num_iid']) == id ][0] if len(result['coupon_info']) < 1: taobao_message = '商品无优惠券' else: price0 = result['zk_final_price'] coupon_url = 'https:' + result['coupon_share_url'] coupon_info = result['coupon_info'] coupon_start = coupon_info.find('减') coupon_price = coupon_info[coupon_start:].strip('减').strip('元') img_url = result['pict_url'] req2 = TbkTpwdCreateRequest() req2.set_app_info(appinfo(self.appkey, self.appsecret)) req2.text = title req2.url = coupon_url req2.logo = img_url resp2 = req2.getResponse() tkl = resp2['tbk_tpwd_create_response']['data']['model'] taobao_message = '%s\n【在售价】%s元,【券后价】%s元\n复制这条信息,打开「手机绹宝」领券下单%s' % ( title, price0, str(int(price0) - int(coupon_price)), tkl) return taobao_message
def get_sale_msg(self): package_size = config.get('package_size') or 50 if self.stock_order_ids.ssize() > 0: _logging.info("get order masg, package_size = " + str(package_size)) order_ids = self.stock_order_ids.get_list(package_size) _logging.info("order_ids = " + str(order_ids)) msg_lists = [] for i in order_ids: # 订单详情查询 req = top.api.AliexpressTradeRedefiningFindorderbyidRequest("gw.api.taobao.com", 80) req.set_app_info(top.appinfo(config.get("appkey", i[1]), config.get("secret", i[1]))) req.param1 = {"order_id": i[0]} try: resp = req.getResponse(config.get("session", i[1])) msg = self.load_findorderbyid_response(resp, i[1]) msg_lists.append(msg) _logging.info("append a msg " + str(i[0])) except Exception, e: _logging.error(e) if hasattr(e, 'errorcode') and e.errorcode == 15: self._send_to_ding("请跳转到:{}进行人工授权".format(self.get_access_token(i[1]))) else: self._send_to_ding("拉取订单详情失败:{}".format(i[0])) _logging.info('put msg list' + str(len(msg_lists))) self.stock_order_msg.put(msg_lists)
def get_cat_info_by_num_iid(num_iid): ''' 根据链接地址获取商品信息,存到数据库中 ''' req = topapi.ItemGetRequest(topconfig.URL, topconfig.PORT) req.set_app_info(top.appinfo(topconfig.APPKEY, topconfig.APP_SECRECT)) req.fields = "detail_url,num_iid,title,cid,desc,pic_url,price,item_imgs" req.num_iid = num_iid resp = req.getResponse() item_detail = resp['item_get_response']['item'] cat = Cats( num_iid=item_detail['num_iid'], cid=item_detail['cid'], title=item_detail['title'], img_url=item_detail['pic_url'], click_url=item_detail['detail_url'], price=item_detail['price'], item_imgs=item_detail['item_imgs'], desc=item_detail['desc'], is_taobaoke=False, #这里默认还有一个字段,获取卖家信用,但是在沙盒中无法测试此参数的有效性,暂时不填上 seller_credit_score=item_detail.get('score', -1)) print item_detail cat.save()
def get_items(item): req = top.api.AtbItemsGetRequest() req.set_app_info(top.appinfo(APPKEY, SECRET)) req.cid = item['cid'] req.keyword = item['title'].encode('utf-8') req.fields = "num_iid,open_iid,title,nick,pic_url,price,commission,commission_rate," \ "commission_num,commission_volume,seller_credit_score,item_location,volume,promotion_price" try: resp = req.getResponse() nums = resp.get('atb_items_get_response').get('total_results') print '[total_results >>', resp.get('atb_items_get_response').get( 'total_results'), ']', item['title'], if nums > 0: for result in resp.get('atb_items_get_response').get('items').get( 'aitaobao_item'): if result['open_iid'] == item['open_iid']: print u'[√] found goods...done!' item.update(result) else: print u'[x]' item['bad'] = True except TopException, e: print u'x' print 'items', e if e.errorcode == 48: time.sleep(120)
def parseTKL(msg): req=WirelessShareTpwdQueryRequest() req.set_app_info(appinfo(appkey,secret)) req.password_content=msg rt=req.getResponse() return rt
def __init__(self, session, options): ''' If session is None,options must has keys include "appkey, appsecret, url, sessionKey"''' key = 'product' + repr(options.get('parent_cid', 0)) if session.get(key, None) is None: try: appkey = options['appkey'] appsecret = options['appsecret'] url = options['url'] sessionKey = options['sessionKey'] if options.get('parent_cid', None) is None: options['parent_cid'] = 0 if options.get('fields', None) is None: options['fields'] = 'cid, parent_cid, name, is_parent' req = top.api.ItemcatsGetRequest(url) req.set_app_info(top.appinfo(appkey, appsecret)) for k, v in options.items(): if hasattr(req, k): setattr(req, k, v) res = req.getResponse(sessionKey).get('itemcats_get_response') session[key] = res except Exception, e: raise Exception(repr(e))
def search_index(request): ''' 根据关键字搜索淘宝客商品,前台页面 ''' current_page = int(request.GET.get('page', '1')) pre_page, n_page, nn_page, nnn_page = 0, 0, 0, 0 if current_page > 1: pre_page = current_page - 1 if current_page < 96: n_page = current_page + 1 nn_page = current_page + 2 nnn_page = current_page + 3 search_key_word = request.GET.get('search_key_word', None) resp = [] if search_key_word: req = topapi.TaobaokeItemsGetRequest(topconfig.URL, topconfig.PORT) req.set_app_info(top.appinfo(topconfig.APPKEY, topconfig.APP_SECRECT)) req.fields = "num_iid,title,nick,pic_url,price,\ click_url,commission,commission_rate,commission_num,\ commission_volume,shop_click_url,seller_credit_score,item_location,volume" req.pid = topconfig.PID req.keyword = search_key_word req.page_no = current_page #默认按照信用排序 req.sort = 'credit_desc' try: resp = req.getResponse()['taobaoke_items_get_response']['taobaoke_items']['taobaoke_item'] #print resp except Exception, e: print(e)
def ItemsGet(keyword, rules, **kwargs): FIELDS = "open_iid,open_iid,title,pic_url,price,promotion_price,item_location,nick" inf = top.appinfo(settings.TOP_APPKEY, settings.TOP_SECRET) req = top.api.AtbItemsGetRequest() req.set_app_info(inf) for key in rules: if hasattr(req, key): req.__setattr__(key, rules[key]) for key in kwargs: if hasattr(req, key): req.__setattr__(key, kwargs[key]) if req.fields is None: req.fields = FIELDS req.keyword = keyword.decode('utf8') try: resp = req.getResponse() if int(resp.get('atb_items_get_response').get('total_results')) > 0: return resp.get('atb_items_get_response').get('items').get( 'aitaobao_item') else: return None except Exception, e: raise e
def hot_coupon(skip, limit, token=None): req = top.api.TbkDgItemCouponGetRequest(domain, port) req.set_app_info(top.appinfo(appkey, secret)) req.adzone_id = adzone_id req.page_no = int(skip // limit) + 1 req.page_size = limit try: resp = req.getResponse() data = [] for result in resp['tbk_dg_item_coupon_get_response']['results'][ 'tbk_coupon']: nums = re.findall('[0-9\.]{1,}', result['coupon_info']) if len(nums) == 2: result['coupon_start_fee'] = int(nums[0]) result['coupon_amount'] = int(nums[1]) elif len(nums) == 1: result['coupon_start_fee'] = 0 result['coupon_amount'] = int(nums[0]) else: result['coupon_start_fee'] = 0 result['coupon_amount'] = 0 data.append(result) return item_list_format(data, token) except TopException as e: print(e) return []
def send_sms_captcha(phone): """ 发送SMS验证码 :param phone: 用户手机号 :return: 生成的验证码(6位INT) """ url = 'gw.api.taobao.com' port = 80 appkey = '23481414' secret = 'd15cc9341957b1bed938bc55247bac30' phone = str(phone) captcha = randint(100000, 999999) req = api.AlibabaAliqinFcSmsNumSendRequest(url, port) req.set_app_info(appinfo(appkey, secret)) req.extend = "" req.sms_type = "normal" req.sms_free_sign_name = "注册验证" req.sms_param = "{code:'%s'}" % captcha req.rec_num = phone req.sms_template_code = "SMS_15110001" resp = req.getResponse() return captcha
def tb_search(): response = dict() response['error_code'] = 0 response['error_msg'] = '' req = TbkDgMaterialOptionalRequest() req.set_app_info(appinfo(tb_appkey, tb_secret)) if request.method == 'POST': data = [] params = request.form.to_dict() try: req.adzone_id = tb_pid for key in params: if key in req.__dict__: setattr(req, key, params[key]) resp = req.getResponse() for res in resp['tbk_dg_material_optional_response'][ 'result_list']['map_data']: _dict = dict() for tb_key in pdd_tb_key_map: _dict[tb_key] = res.get(tb_key, None) data.append(_dict) response['data'] = data except Exception as e: import traceback traceback.print_exc() response['error_code'] = 1 response['error_msg'] = str(e) data = json.dumps(response) return data, 200, {"ContentType": "application/json"}
def convert(num_iids, did, recommend): req = top.api.TaeItemsListRequest() req.set_app_info(top.appinfo(APPKEY, SECRET)) req.fields = "title" req.num_iids = num_iids try: resp = req.getResponse() open_iids = [x['open_iid'] for x in resp['tae_items_list_response']['items']['x_item']] ids = [] for i, x in enumerate(open_iids): i += 1 if x is not None: ids.append(x) if i % 10 == 0: if ids: detail(ids, did, recommend) ids = [] time.sleep(2) except Exception, e: print(e.message)
def like(request): x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR') if x_forwarded_for: ip = x_forwarded_for.split(',')[0] # 所以这里是真实的ip else: ip = request.META.get('REMOTE_ADDR') # 这里获得代理ip print(ip) page = request.GET.get('page') keyword = request.GET["search"] ua = request.GET.get('ua') net = request.GET["net"] os = request.GET.get('os') print(ua) print(net) print(os) req = top.api.TbkItemGuessLikeRequest() req.set_app_info( top.appinfo("25102570", "a3bd49181cbecae30111cde7631ab5d6")) req.adzone_id = 43052050407 req.os = os req.ip = ip req.ua = ua req.net = net req.page_no = 1 req.page_size = 20 resp = req.getResponse() print(resp) return JsonResponse("{}", safe=False)
def get_taobaoke_cat_info_by_num_iid(num_iid): ''' 获取淘宝客商品详细信息,并存入到数据库中 ''' req = topapi.TaobaokeItemsDetailGetRequest(topconfig.URL, topconfig.PORT) req.set_app_info(top.appinfo(topconfig.APPKEY, topconfig.APP_SECRECT)) req.fields = 'desc,click_url,shop_click_url,seller_credit_score,num_iid,cid,\ title,nick,pic_url,price,desc,item_imgs' req.pid = topconfig.PID req.num_iids = num_iid #存入数据库 resp = req.getResponse() #print resp item_detail = resp['taobaoke_items_detail_get_response'][ 'taobaoke_item_details']['taobaoke_item_detail'][0] print item_detail cat = Cats(num_iid=item_detail['item']['num_iid'], cid=item_detail['item']['cid'], title=item_detail['item']['title'], img_url=item_detail['item']['pic_url'], click_url=item_detail['click_url'], price=item_detail['item']['price'], seller_credit_score=item_detail['seller_credit_score'], desc=item_detail['item']['desc'], item_imgs=item_detail['item']['item_imgs'], is_taobaoke=True) cat.save()
def detail(open_iids, did, recommend): req = top.api.AtbItemsDetailGetRequest() req.set_app_info(top.appinfo(APPKEY, SECRET)) req.fields = "open_iid,cid,title,desc,item_imgs,pic_url,promotion_price,price,delist_time" req.open_iids = ",".join(open_iids) try: print '- get detail ...' resp = req.getResponse() data = resp['atb_items_detail_get_response']['atb_item_details']['aitaobao_item_detail'] rows = [] for i, x in enumerate(data): item = x['item'] for field in FIELDS: if hasattr(item, field): rows[field] = item[field] # 合并数据 rows.append(items(item, did, recommend)) print "[%d] => " % i, item['title'] return data except Exception, e: print e
def convertRequestGoods(self, password_content): req = top.api.WirelessShareTpwdQueryRequest() req.set_app_info(top.appinfo(self.appkey, self.secret)) req.password_content = password_content try: resp = req.getResponse() print(resp) except Exception as e: print("错误", e)
def send_verify_code(mobile): req = top.api.OpenSmsSendvercodeRequest() req.set_app_info(top.appinfo(settings.TOP_APPKEY, settings.TOP_SECRET)) req.send_ver_code_request = {'mobile': int(mobile)} try: resp = req.getResponse() print(resp) except Exception, e: print(e)
def fav_type(): req = top.api.TbkUatmFavoritesGetRequest() req.set_app_info( top.appinfo("25102570", "a3bd49181cbecae30111cde7631ab5d6")) req.fields = "favorites_title,favorites_id,type" resp = req.getResponse() dict_type = [] for i in resp["tbk_uatm_favorites_get_response"]["results"][ "tbk_favorites"]: dict_type.append(i["favorites_id"]) return dict_type
def send_verify_code(mobile): req = top.api.OpenSmsSendvercodeRequest() req.set_app_info(top.appinfo(APPKEY, SECRET)) req.send_ver_code_request = {'mobile': int(mobile)} try: resp = req.getResponse() return response(resp, 'open_sms_sendvercode_response') except Exception, e: print(e) return False
def get_token(url, text): req = top.api.TbkTpwdCreateRequest() req.set_app_info(top.appinfo(appkey, secret)) req.text = text req.url = url try: resp = req.getResponse()['tbk_tpwd_create_response']['data']['model'] return resp except Exception as e: print(e) return None
def make_rec(self, request, queryset): """ 1、批量操作已收样,记录时间戳,或用于回退操作,后续节点初始化数据 2、调用阿里大鱼发送通知短信,密钥保存于sms conf中 3、 :param request: :param queryset: :return: """ resp = '' for obj in queryset: phone_num = int( MyProfile.objects.get(user_id=obj.user_id).mobile_phone) full_name = obj.full_name sample_code = obj.code.sample_code appkey = settings.ALIDAYU_APPKEY secret = settings.ALIDAYU_SECRET req = top.api.AlibabaAliqinFcSmsNumSendRequest() req.set_app_info(top.appinfo(appkey, secret)) req.sms_type = "normal" req.sms_free_sign_name = settings.SIGN_NAME req.sms_param = json.dumps({ 'name': full_name, 'code': sample_code }) req.rec_num = phone_num req.sms_template_code = "SMS_8560712" try: resp = req.getResponse() self.message_user( request, _("%s 's sms has been sent successfully") % full_name) except Exception as e: self.message_user( request, _("Fail to send sms: %s 's phone %s, Error: %s") % (full_name, phone_num, e)) if resp: rows_updated = queryset.update(status_node='REC', receive_date=now(), receive_sms=True, analysis_date=None, finish_date=None, finish_sms=False) if rows_updated == 1: message_bit = _("1 sample was") else: message_bit = _("%s samples were") % rows_updated self.message_user( request, _("%s successfully marked as sample received,") % message_bit)
def handel(keyword, **kwargs): app_key = app.config.get('APP_KEY') app_secret = app.config.get('APP_SECRET') req = top.api.AlibabaOrpRecommendRequest() req.set_app_info(top.appinfo(app_key, app_secret)) req.appid = 2750 req.call_source = "TOP_GUOKU" istk = kwargs.pop('istk', True) ismall = kwargs.pop('ismall', False) count = kwargs.pop('count', 20) user_id = kwargs.pop('user_id', None) params = dict() if user_id: taobao = TaobaoToken.query.filter_by(user_id=user_id).first() # print "taobao %s screen_name %s" % (taobao.open_uid, taobao.screen_name) if taobao: params.update({ 'userid': taobao.taobao_id, # 'userid': taobao.isv_uid }) item_key = "item:{0}-user:{1}".format(keyword.encode('utf-8'), user_id) else: item_key = "item:{0}".format(keyword.encode('utf-8')) params.update({ "istk": str(istk), "mall": str(ismall), "count": count, }) if keyword: params.update({ 'keyword': keyword, }) # app.logger.info(params) req.params = json.dumps(params) res = cache.get(item_key) # print res if res is None: try: # access_time = time.time() resp = req.getResponse(timeout=5) res = resp['alibaba_orp_recommend_response']['recommend'] cache.set(item_key, res, timeout=86400) # return res except Exception, e: app.logger.error(e) return None
def convert(iids): req = top.api.TaeItemsListRequest() req.set_app_info(top.appinfo(APPKEY, SECRET)) req.fields = "title" req.num_iids = ",".join(iids) try: resp = req.getResponse() open_iids = ",".join([x['open_iid'] for x in resp['tae_items_list_response']['items']['x_item']]) detail(open_iids) except Exception, e: print(e)
def OptimusMaterial(): req = top.api.TbkDgOptimusMaterialRequest(domain, port) req.set_app_info(top.appinfo(appkey, secret)) req.adzone_id = adzone_id req.material_id = 3761 try: resp = req.getResponse() return resp except TopException as e: print(e)
def send_voice(): req = top.api.AlibabaAliqinFcVoiceNumSinglecallRequest(url, port) req.set_app_info(top.appinfo(appkey, secret)) req.extend = "" req.called_num = "131xxxxxxxx" req.called_show_num = "01053912806" req.voice_code = "c5473658-73f4-4831-8f61-e1eb468c8230.wav" try: req.getResponse() except Exception: pass
def check_verify_code(mobile, verify): req = top.api.OpenSmsCheckvercodeRequest() req.set_app_info(top.appinfo(APPKEY, SECRET)) req.check_ver_code_request = { 'mobile': int(mobile), 'ver_code': int(verify) } try: resp = req.getResponse() return response(resp, 'open_sms_checkvercode_response') except Exception, e: raise e
def get_material(material_id, page_no=1): req = top.api.TbkDgOptimusMaterialRequest(domain, port) req.set_app_info(top.appinfo(appkey, secret)) req.adzone_id = adzone_id req.material_id = material_id req.page_size = 20 req.page_no = page_no try: resp = req.getResponse() return resp except TopException as e: print(material_id, e) return None
def top_detail(iids): req = top.api.AtbItemsDetailGetRequest() req.set_app_info(top.appinfo(APPKEY, SECRET)) req.fields = "open_iid,cid,title,desc,item_img,pic_url,promotion_price,price,delist_time,shop_type" req.open_iids = ",".join(iids) try: resp = req.getResponse() rows = resp.get('atb_items_detail_get_response').get( 'atb_item_details').get('aitaobao_item_detail') items = [] except Exception, e: print e.args, e.message, resp, iids return None
def send_sms(code, number): req = top.api.AlibabaAliqinFcSmsNumSendRequest() req.set_app_info(top.appinfo(AppKey, AppSecret)) req.sms_type = "normal" req.sms_param = '{"code":"%s", "product":"欧洲杯竞猜"}' % code req.rec_num = str(number) req.sms_free_sign_name = "euro16竞猜" req.sms_template_code = "SMS_9285126" try: resp = req.getResponse() if resp['alibaba_aliqin_fc_sms_num_send_response']['result']['success']: return True except Exception, e: print 'sms error:', e, code, number
def item_query(iids, token=None): req = top.api.TbkItemInfoGetRequest(domain, port) req.set_app_info(top.appinfo(appkey, secret)) req.num_iids = ','.join(iids) req.platform = 1 # req.ip = "47.75.61.229" try: resp = req.getResponse() return item_list_format( resp['tbk_item_info_get_response']['results']['n_tbk_item'], token) except TopException as e: print(e) return []
def get_token(url, text,logo): req = top.api.TbkTpwdCreateRequest() req.set_app_info(top.appinfo(appkey, secret)) req.text = text req.url = url req.logo = logo try: resp = req.getResponse() print(resp['tbk_tpwd_create_response']['data']['model']) taokouling = resp['tbk_tpwd_create_response']['data']['model'] print('淘口令:',taokouling) return taokouling except Exception as e: print(e) return None
def _get_cat_cid_info(cid, is_parent_cid): time.sleep(1) req = topapi.ItemcatsGetRequest(topconfig.URL, topconfig.PORT) req.set_app_info(top.appinfo(topconfig.APPKEY, topconfig.APP_SECRECT)) req.fields = 'cid,parent_cid,name,is_parent' if is_parent_cid: req.parent_cid = cid else: req.cids = cid try: resp = req.getResponse() return resp['itemcats_get_response']['item_cats']['item_cat'] except Exception, e: print(e) return None
def get_cat_info_by_num_iid(num_iid): ''' 根据链接地址获取商品信息,存到数据库中 ''' req = topapi.ItemGetRequest(topconfig.URL, topconfig.PORT) req.set_app_info(top.appinfo(topconfig.APPKEY, topconfig.APP_SECRECT)) req.fields = "detail_url,num_iid,title,cid,desc,pic_url,price,item_imgs" req.num_iid = num_iid resp = req.getResponse() item_detail = resp['item_get_response']['item'] cat = Cats(num_iid=item_detail['num_iid'], cid=item_detail['cid'], title=item_detail['title'], img_url=item_detail['pic_url'], click_url=item_detail['detail_url'], price=item_detail['price'], item_imgs=item_detail['item_imgs'], desc=item_detail['desc'], is_taobaoke=False, #这里默认还有一个字段,获取卖家信用,但是在沙盒中无法测试此参数的有效性,暂时不填上 seller_credit_score = item_detail.get('score', -1)) print item_detail cat.save()
def get_taobaoke_cat_info_by_num_iid(num_iid): ''' 获取淘宝客商品详细信息,并存入到数据库中 ''' req = topapi.TaobaokeItemsDetailGetRequest(topconfig.URL, topconfig.PORT) req.set_app_info(top.appinfo(topconfig.APPKEY, topconfig.APP_SECRECT)) req.fields = 'desc,click_url,shop_click_url,seller_credit_score,num_iid,cid,\ title,nick,pic_url,price,desc,item_imgs' req.pid = topconfig.PID req.num_iids = num_iid #存入数据库 resp = req.getResponse() #print resp item_detail = resp['taobaoke_items_detail_get_response']['taobaoke_item_details']['taobaoke_item_detail'][0] print item_detail cat = Cats(num_iid=item_detail['item']['num_iid'], cid=item_detail['item']['cid'], title=item_detail['item']['title'], img_url=item_detail['item']['pic_url'], click_url=item_detail['click_url'], price=item_detail['item']['price'], seller_credit_score=item_detail['seller_credit_score'], desc=item_detail['item']['desc'], item_imgs=item_detail['item']['item_imgs'], is_taobaoke=True) cat.save()
def onsaleitem(): if session.get('remote_oauth') is None: return redirect('authorize') req=top.api.ItemsOnsaleGetRequest() req.set_app_info(top.appinfo(APP_KEY,APP_SECRET)) req.fields='num_iid,title,price,pic_url' req.page_size=200 try: resp=req.getResponse(session.get('remote_oauth')) items=resp[u'items_onsale_get_response'][u'items'][u'item'] except Exception as ex: return ex for item in items: exists=TaobaoSku.query.filter_by(num_iid=item['num_iid']).first() if exists is None: exists=TaobaoSku() exists.title=item['title'] exists.num_iid=item['num_iid'] exists.price=item['price'] exists.pic_url=item['pic_url'] db.session.add(exists) db.session.commit() return redirect(url_for('.onsale'))
#coding=utf8 import json import top r = top.api.AlibabaAliqinFcTtsNumSinglecallRequest() r.set_app_info(top.appinfo('your_app_key', 'your_app_secret')) r.tts_param = json.dumps({ 'code': u'You will get this through you phone',}) r.extend = 'TG' r.called_num = 'your_phone_number' r.called_show_num = '4008823220' r.tts_code = 'TTS_10265961' try: print r.getResponse() except Exception, e: print e.submsg