Exemplo n.º 1
0
def get_guoku_plus_item_context(taobao_url, shop_nick, user_id):
    if not is_taobao_url(taobao_url):
        raise NotTaobaoUrl()
    taobao_id = parse_taobao_id_from_url(taobao_url)
    if not taobao_id:
        raise InvalidUrl()

    item_inst = Item.get_item_by_taobao_id(taobao_id)
    if not item_inst:
        taobao_item_info = TaobaoExtractor.fetch_item(taobao_id)
        print taobao_item_info
        _category_id = Category.get_category_by_taobao_cid(
            taobao_item_info['cid'])
        _chief_image = None
        _detail_image_urls = []
        imgs_len = len(taobao_item_info['imgs'])
        if imgs_len > 0:
            _chief_image = taobao_item_info['imgs'][0]
            for i in range(1, imgs_len):
                _detail_image_urls.append(taobao_item_info['imgs'][i])
        _title = HTMLParser.HTMLParser().unescape(taobao_item_info['desc'])
        Entity.create_by_taobao_item(creator_id=user_id,
                                     category_id=_category_id,
                                     chief_image_url=_chief_image,
                                     taobao_item_info={
                                         'taobao_id':
                                         taobao_id,
                                         'cid':
                                         taobao_item_info['cid'],
                                         'title':
                                         _title,
                                         'shop_nick':
                                         unicode(taobao_item_info['nick'],
                                                 'utf-8'),
                                         'price':
                                         taobao_item_info['price'],
                                         'soldout':
                                         False,
                                     },
                                     brand="",
                                     title=_title,
                                     detail_image_urls=_detail_image_urls)
        item_inst = Item.get_item_by_taobao_id(taobao_id)
    item_context = item_inst.read()
    if item_context['shop_nick'] != shop_nick:
        raise NotSellerOwnProduct()
    return item_context
Exemplo n.º 2
0
def create_entity(request, template='entity/new_entity_from_user.html'):
    if request.method == 'GET':
        return render_to_response(
            template,
            {
            },
            context_instance = RequestContext(request)
        )
    else:
        _taobao_id = request.POST.get("taobao_id", None)
        if _taobao_id == None:
            return create_jd_entity(request,template)
        _cid = request.POST.get("cid", None)
        _taobao_shop_nick = request.POST.get("shop_nick", None)
        _taobao_shop_link = request.POST.get("shop_link", None)
        _taobao_title = request.POST.get("taobao_title", None)
        _taobao_price = float(request.POST.get("price", "0.0"))
        _chief_image_url = request.POST.get("chief_image_url", None)
        _brand = request.POST.get("brand", None)
        _title = request.POST.get("title", None)
        _note_text = request.POST.get("note_text", None)
        _user_id = request.POST.get("user_id", None)
        
        _intro = ""
        _category_id = int(request.POST.get("selected_category_id", "0"))
        _detail_image_urls = request.POST.getlist("thumb_images")
        
        if _chief_image_url in _detail_image_urls:
            _detail_image_urls.remove(_chief_image_url)
        
        _entity = Entity.create_by_taobao_item(
            creator_id=request.user.id,
            category_id=_category_id,
            chief_image_url=_chief_image_url,
            taobao_item_info={
                'taobao_id' : _taobao_id,
                'cid' : _cid,
                'title' : _taobao_title,
                'shop_nick' : _taobao_shop_nick,
                'price' : _taobao_price,
                'soldout' : False,
            },
            brand=_brand,
            title=_title,
            intro=_intro,
            detail_image_urls=_detail_image_urls,
            weight=-1
        )

        _note = _entity.add_note(creator_id=_user_id, note_text=_note_text)
        
        try:
            CreateTaobaoShopTask.delay(_taobao_shop_nick, _taobao_shop_link)
        except Exception, e:
            pass

        return HttpResponseRedirect(reverse('web_detail', kwargs = { "entity_hash" : _entity.get_entity_hash() }))
Exemplo n.º 3
0
def create_entity_by_taobao_item(request):
    if request.method == 'POST':
        _taobao_id = request.POST.get("taobao_id", None)
        _cid = request.POST.get("cid", None)
        _taobao_shop_nick = request.POST.get("taobao_shop_nick", None)
        _taobao_shop_link = request.POST.get("taobao_shop_link", None)
        _taobao_title = request.POST.get("taobao_title", None)
        _taobao_price = request.POST.get("taobao_price", None)
        _chief_image_url = request.POST.get("chief_image_url", None)
        _brand = request.POST.get("brand", None)
        _title = request.POST.get("title", None)
        _intro = ""
        _category_id = int(request.POST.get("category_id", None))
        _detail_image_urls = request.POST.getlist("image_url")

        if _chief_image_url in _detail_image_urls:
            _detail_image_urls.remove(_chief_image_url)

        _entity = Entity.create_by_taobao_item(
            creator_id=request.user.id,
            category_id=_category_id,
            chief_image_url=_chief_image_url,
            taobao_item_info={
                'taobao_id': _taobao_id,
                'cid': _cid,
                'title': _taobao_title,
                'shop_nick': _taobao_shop_nick,
                'price': _taobao_price,
                'soldout': False,
            },
            brand=_brand,
            title=_title,
            intro=_intro,
            detail_image_urls=_detail_image_urls,
        )

        _note = request.POST.get("note", None)
        _user_id = request.POST.get("user_id", None)

        if _note != None and len(_note) > 0:
            _add_note_and_select_delay(_entity, _user_id, _note)

        CreateTaobaoShopTask.delay(_taobao_shop_nick, _taobao_shop_link)

        return HttpResponseRedirect(
            reverse('management_edit_entity',
                    kwargs={"entity_id": _entity.entity_id}))
Exemplo n.º 4
0
def create_entity_from_offline(request):
    if request.method == 'POST':
        _taobao_id = request.POST.get("taobao_id", None)
        _cid = request.POST.get("cid", None)
        _taobao_shop_nick = request.POST.get("taobao_shop_nick", None)
        _taobao_title = request.POST.get("taobao_title", None)
        _taobao_price = request.POST.get("taobao_price", None)
        _taobao_soldout = request.POST.get("taobao_soldout", '0')
        if _taobao_soldout == '0':
            _taobao_soldout = False
        else:
            _taobao_soldout = True
        _rank_score = int(request.POST.get("item_score", '0'))
        _chief_image_url = request.POST.get("chief_image_url", None)
        _chief_image_url = re.sub('_\d+x\d+\.jpg|_b.jpg', '', _chief_image_url)
        _brand = request.POST.get("brand", "")
        _title = request.POST.get("title", "")
        _intro = request.POST.get("intro", "")
        _category_id = Category.get_category_by_taobao_cid(_cid)
        _origin_detail_image_urls = request.POST.getlist("image_url")
        _detail_image_urls = []
        for _url in _origin_detail_image_urls:
            _detail_image_urls.append(re.sub('_\d+x\d+\.jpg|_b.jpg', '', _url))

        if _chief_image_url in _detail_image_urls:
            _detail_image_urls.remove(_chief_image_url)

        _item = Item.get_item_by_taobao_id(_taobao_id)
        if _item == None:
            _entity = Entity.create_by_taobao_item(
                creator_id=request.user.id,
                category_id=_category_id,
                chief_image_url=_chief_image_url,
                taobao_item_info={
                    'taobao_id': _taobao_id,
                    'cid': _cid,
                    'title': _taobao_title,
                    'shop_nick': _taobao_shop_nick,
                    'price': _taobao_price,
                    'soldout': _taobao_soldout,
                },
                brand=_brand,
                title=_title,
                intro=_intro,
                detail_image_urls=_detail_image_urls,
                weight=-1,
                rank_score=_rank_score)
            _rslt = {
                'entity_id': _entity.entity_id,
                'item_id': _entity.read()['item_id_list'][0],
                'status': 'success'
            }
            return SuccessJsonResponse(_rslt)
        else:
            _item.update(cid=_cid,
                         title=_taobao_title,
                         shop_nick=_taobao_shop_nick,
                         price=_taobao_price,
                         soldout=_taobao_soldout)
            _rslt = {
                'message': 'item_exist',
                'item_id': _item.item_id,
                'status': 'updated'
            }
            return SuccessJsonResponse(_rslt)