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']])
def run(self, entity_id, note_id): _entity = Entity(entity_id) _entity.del_note(note_id)
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)
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) )
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
'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,
def __init__(self, entity_id): Entity.__init__(self, entity_id)
def user_entity(user_id, eid): entity = Entity(eid).read() entity['is_user_already_like'] = Entity(eid).like_already(user_id) return entity
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)
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)