Example #1
0
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)
Example #2
0
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)