Пример #1
0
 def item_link(self, item):
     _entity_id = item.entity_id
     _entity_context = Entity(_entity_id).read()
     # return "/detail/%s/" % _entity_context['entity_hash']
     return reverse('web_detail', args=[_entity_context['entity_hash']])
Пример #2
0
 def run(self, entity_id, note_id):
     _entity = Entity(entity_id)
     _entity.del_note(note_id)
Пример #3
0
 def run(self, entity_id, request_user_id=None):
     _entity_id = int(entity_id)
     _request_user_id = int(request_user_id)
     Entity(_entity_id).unlike(_request_user_id)
Пример #4
0
def tencent_entity_detail(request, entity_hash, template='tencent/detail.html'):
    _start_at = datetime.datetime.now()
    if request.user.is_authenticated():
        _request_user_id = request.user.id
    else:
        _request_user_id = None 
    
    
    _entity_id = Entity.get_entity_id_by_hash(entity_hash)
    _entity_context = Entity(_entity_id).read()
    
    _is_soldout = True
    _taobao_id = None
    _jd_id = None
    _is_jd = False
    for _item_id in Item.find(entity_id=_entity_id):
        _item_context = Item(_item_id).read()
        if _item_context == None:
            _item_context = JDItem(_item_id).read()
            _jd_id = _item_context['jd_id']
            _is_jd = True
        else:
            _taobao_id = _item_context['taobao_id']
        if not _item_context['soldout']:
            _is_soldout = False
            break
    
    _note_list = []
    for _note_id in Note.find(entity_id=_entity_id, reverse=True):
        _note = Note(_note_id)
        _note_context = _note.read()
        if _note_context['weight'] >= 0:
            _creator_context = User(_note_context['creator_id']).read()
            _note_list.append({
                'note_context' : _note_context,
                'creator_context' : _creator_context,
            })
    
    _liker_list = []
    for _liker in Entity(_entity_id).liker_list(offset=0, count=20):
        _liker_list.append(User(_liker[0]).read())
    
    _duration = datetime.datetime.now() - _start_at
    WebLogTask.delay(
        duration=_duration.seconds * 1000000 + _duration.microseconds,
        entry='tencent',
        page='ENTITY', 
        request=request.REQUEST, 
        ip=get_client_ip(request), 
        log_time=datetime.datetime.now(),
        request_user_id=_request_user_id,
        appendix={ 
            'entity_id' : int(_entity_id),
        },
    )

    return render_to_response(
        template,
        {
            'entity_context' : _entity_context,
            'note_list' : _note_list,
            'liker_list' : _liker_list,
            'buy_link' : _item_context['buy_link'],
            'is_jd' : _is_jd,
        },
        context_instance=RequestContext(request)
    )
Пример #5
0
def entity_detail(request, entity_hash, template='main/detail.html'):
    _user_agent = request.META['HTTP_USER_AGENT']
    if _user_agent == None:
        log.error("[selection] Remote Host [%s] access selection without user agent" % (request.META['REMOTE_ADDR']))
        raise Http404
    
    _agent = request.GET.get('agent', 'default')
    if _agent == 'default' :
        if 'iPhone' in _user_agent :
            _agent = 'iphone'
        if 'Android' in _user_agent :
            _agent = 'android'
    if _agent == 'iphone' or _agent == 'android' :
        return HttpResponseRedirect(reverse('wap_detail', kwargs = { "entity_hash" : entity_hash })) 
    
    _start_at = datetime.datetime.now()
    if request.user.is_authenticated():
        _request_user_id = request.user.id
        _is_staff = request.user.is_staff
        _request_user_context = User(request.user.id).read() 
        _request_user_like_entity_set = Entity.like_set_of_user(request.user.id)
        _request_user_poke_note_set = Note.poke_set_of_user(request.user.id)
    else:
        _request_user_id = None 
        _is_staff = False 
        _request_user_context = None
        _request_user_like_entity_set = []
        _request_user_poke_note_set = []

    _entity_id = Entity.get_entity_id_by_hash(entity_hash)
    if _entity_id is None:
        raise Http404
    _entity_context = Entity(_entity_id).read()
    # log.info(_entity_context)
    _liker_list = Entity(_entity_id).liker_list(offset=0, count=20)
    _is_user_already_like = True if _entity_id in _request_user_like_entity_set else False
    _tag_list = Tag.entity_tag_stat(_entity_id)
    
    
    _is_soldout = True
    _taobao_id = None
    _jd_id = None
    _activity_id = None
    for _item_id in Item.find(entity_id=_entity_id):
        _item_context = Item(_item_id).read()
        if _item_context == None:
            _item_context = JDItem(_item_id).read()
            _jd_id = _item_context['jd_id']
            if not _item_context['soldout']:
                _is_soldout = False
        else:
            _taobao_id = _item_context['taobao_id']
            if not _item_context['soldout']:
                _is_soldout = False
                break
    if _taobao_id != None:
        try:
            _guokuplus = GuokuPlusActivity.find_by_taobao_id(_taobao_id)
            if _guokuplus != None and _guokuplus.is_active():
                _activity_id = _guokuplus.read()['activity_id']
        except Exception, e:
            pass
Пример #6
0
                        'poke_button_target_status' : _poke_button_target_status,
                    }
                else:
                    _common_note_list.append({
                        'note_context' : _note_context,
                        'creator_context' : _creator_context,
                        'user_context' : _request_user_context,
                        'poke_button_target_status' : _poke_button_target_status,
                    })
        except Exception, e:
            log.error(e.message)
            # pass

    _guess_entity_context = []
    _guess_entity_id_list = []
    for _guess_entity_id in Entity.roll(category_id=_entity_context['category_id'], count=5):
        try:
            if _guess_entity_id != _entity_id: 
                _guess_entity_context.append(Entity(_guess_entity_id).read())
                _guess_entity_id_list.append(_entity_id)
                if len(_guess_entity_context) == 4:
                    break
        except Exception, e:
            log.error(e.message)
            # pass
    
    # _duration = datetime.datetime.now() - _start_at
    # WebLogTask.delay(
    #     duration=_duration.seconds * 1000000 + _duration.microseconds,
    #     page='ENTITY',
    #     request=request.REQUEST,
Пример #7
0
 def __init__(self, entity_id):
     Entity.__init__(self, entity_id)
Пример #8
0
def user_entity(user_id, eid):
    entity = Entity(eid).read()
    entity['is_user_already_like'] = Entity(eid).like_already(user_id)
    return entity
Пример #9
0
def user_already_like_entity(user_id, entity_id):
    if entity_id is None or user_id is None:
        return False

    return Entity(entity_id).like_already(user_id)
Пример #10
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)