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 get_recommend(token=None): results = tb_zone.find({'position': {"$ne": '0'}}) data = [] for result in results: temp = {'name': result['name'], 'id': str(result['_id']), 'material_id': result['material_id'], 'items': []} key = 'zhuzhu_' + str(result['_id']) + '_list' temp['items'] = item_list_format(r.lrange(key, 0, 9), token, True) data.append(temp) return data
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 getFavoriteList(token, skip=None, limit=None): uid = getUserId(token) u_info = tb_user.find_one({'_id': ObjectId(uid)}) item_ids = u_info.get('favorite', []) if item_ids and len(item_ids) > 0: if skip is not None and limit is not None: item_ids = item_ids[skip:limit] items = tbk.item_query(item_ids, token) data = [] for result in items: nums = re.findall('[0-9\.]{1,}', result.get('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) else: return []
def search_list(skip, limit, key, material_id=None, ip=None, sort='', imei=None, token=None): req = top.api.TbkDgMaterialOptionalRequest(domain, port) req.set_app_info(top.appinfo(appkey, secret)) if sort == 'all': # 综合搜索 req.start_dsr = 10 # 商品筛选(特定媒体支持)-店铺dsr评分。筛选大于等于当前设置的店铺dsr评分的商品0-50000之间 page = int(skip // limit) + 1 req.page_size = limit req.page_no = page req.platform = 1 # req.end_tk_rate = 1234 #商品筛选-淘客佣金比率上限。如:1234表示12.34% # req.start_tk_rate = 1234 #商品筛选-淘客佣金比率下限。如:1234表示12.34% # req.end_price = 10 #商品筛选-折扣价范围上限。单位:元 # req.start_price = 10 #商品筛选-折扣价范围下限。单位:元 req.is_overseas = 'false' # 商品筛选-是否海外商品。true表示属于海外商品,false或不设置表示不限 req.is_tmall = 'false' # 商品筛选-是否天猫商品。true表示属于天猫商品,false或不设置表示不限 if sort != 'all': req.sort = sort # 排序_des(降序),排序_asc(升序),销量(total_sales),淘客佣金比率(tk_rate), 累计推广量(tk_total_sales),总支出佣金(tk_total_commi),价格(price) # req.itemloc = "杭州" # 商品筛选-所在地 # req.cat = "16,18" req.q = key # 查询的关键词 if material_id: req.material_id = material_id req.has_coupon = 'false' # 优惠券筛选-是否有优惠券。true表示该商品有优惠券,false或不设置表示不限 if ip: req.ip = ip req.adzone_id = adzone_id # req.need_free_shipment = 'true' # 包邮 req.need_prepay = 'true' # 商品筛选-是否加入消费者保障 # req.include_pay_rate_30 = 'true' # req.include_good_rate = 'true' # req.include_rfd_rate = 'true' # req.npx_level = 2 # req.end_ka_tk_rate = 1234 # req.start_ka_tk_rate = 1234 if sort == 'all' and imei: req.device_encrypt = "MD5" req.device_value = hashlib.md5( imei.encode(encoding='UTF-8')).hexdigest() req.device_type = "IMEI" try: resp = req.getResponse() data = [] for result in resp['tbk_dg_material_optional_response']['result_list'][ 'map_data']: result['commission_rate'] = float(result['commission_rate']) / 100 if not result.get('click_url'): result['click_url'] = result['url'] data.append(result) return item_list_format(data, token) except TopException as e: print(e) return []
def get_material_list(id, skip, limit, token=None): key = 'zhuzhu_' + id + '_list' return item_list_format(r.lrange(key, skip, skip + limit - 1), token, True)