def get_nearby_people(request): response = {} response['result'] = -1 user_list = [] try: if request.method == 'POST': req = simplejson.loads(request.raw_post_data) #logger.debug("Get nearby people, post: " + request.raw_post_data) location = req.get('location', '0,0').split(',') longitude = float(location[1]) latitude = float(location[0]) delta_long = position.change_in_longitude(latitude, 1) delta_lati = position.change_in_latitude(1) max_lati = latitude + delta_lati min_lati = latitude - delta_lati max_long = longitude + delta_long min_long = longitude - delta_lati nearby_users = UserInfo.objects.filter( longitude__lte=max_long, longitude__gte=min_long, latitude__lte=max_lati, latitude__gte=min_lati) for user in nearby_users: distance = position.get_distance(longitude, latitude, user.longitude, user.latitude) user_info = user.getUserInfo() user_info['distance'] = distance action_list = [] try: actions = user.myActions.order_by('-timestamp')[:3] for action in actions: action_list.append(action.getActionBrief()) except: pass item = {} item['userInfo'] = user_info item['actionList'] = action_list user_list.append(item) response['result'] = 0 except: response['result'] = 1 paginator = Paginator(user_list, 15) page = request.GET.get('page', 1) try: resp = paginator.page(page).object_list except: resp = [] response['userList'] = resp json = simplejson.dumps(response) #logger.debug('response to get nearby: ' + json) return HttpResponse(json)
def get_nearby_apps(request): response = {} response['result'] = -1 app_dict = {} try: if request.method == 'POST': req = simplejson.loads(request.raw_post_data) logger.debug("Get nearby, post: " + request.raw_post_data) location = req.get('location', '0,0').split(',') longitude = float(location[1]) latitude = float(location[0]) delta_long = position.change_in_longitude(latitude, 1) delta_lati = position.change_in_latitude(1) max_lati = latitude + delta_lati min_lati = latitude - delta_lati max_long = longitude + delta_long min_long = longitude - delta_lati nearby_users = UserInfo.objects.filter( longitude__lte=max_long, longitude__gte=min_long, latitude__lte=max_lati, latitude__gte=min_lati) nearby_users = [] tmp_user = UserInfo.objects.get(renrenId = '261843626') nearby_users.append(tmp_user) for user in nearby_users: distance = position.get_distance(longitude, latitude, user.longitude, user.latitude) logger.debug(str(longitude)+' ' + str(user.longitude)+ ' '+ str(latitude) + ' ' + str(user.latitude)) apps = user.appinfo_set.all() for app_item in apps: if app_item.appname not in app_dict: app_info = {} app_info['appname'] = app_item.appname app_info['count'] = 1 app_info['icon_url'] = app_item.get_icon_url() app_info['size'] = app_item.get_apk_size() app_info['distance'] = distance app_info['down_url'] = app_item.get_down_url() app_info['users'] = [] app_dict[app_item.appname] = app_info else: app_info = app_dict[app_item.appname] app_info['count'] += 1 if app_info['distance'] > distance: app_info['distance'] = distance user_info = {} user_info['renrenId'] = user.renrenId user_info['userName'] = user.username app_dict[app_item.appname]['users'].append(user_info) response['result'] = 0 except: response['result'] = 1 app_list = app_dict.values() paginator = Paginator(app_list, 15) page = request.GET.get('page', 1) try: resp = paginator.page(page).object_list except: resp = [] response['appList'] = resp json = simplejson.dumps(response) logger.debug('response to get nearby: ' + json) return HttpResponse(json)