Example #1
0
def userData(request):
    '''
    返回用户信息:
    在线人数、今日签到、从未签到、从未使用
    '''

    data = [NodeOnlineLog.totalOnlineUser(), len(User.todayRegister()),
            SSUser.userTodyChecked(), SSUser.userNeverChecked(),
            SSUser.userNeverUsed(), ]
    return JsonResponse({'data': data})
Example #2
0
def userData(request):
    '''
    返回用户信息:
    在线人数、今日签到、从未签到、从未使用
    '''

    data = [
        NodeOnlineLog.totalOnlineUser(),
        len(User.todayRegister()),
        SSUser.userTodyChecked(),
        SSUser.userNeverChecked(),
        SSUser.userNeverUsed(),
    ]
    return JsonResponse({'data': data})
Example #3
0
def get_node_user(node_id):
    '''
    返回所有当前节点可以使用的用户信息
    '''
    from apps.ssserver.models import Node, SSUser
    node = Node.objects.filter(node_id=node_id).first()
    if node:
        data = []
        level = node.level
        user_list = SSUser.get_vaild_user(level)
        for user in user_list:
            cfg = {
                'port': user.port,
                'u': user.upload_traffic,
                'd': user.download_traffic,
                'transfer_enable': user.transfer_enable,
                'passwd': user.password,
                'enable': user.enable,
                'id': user.pk,
                'method': user.method,
                'obfs': user.obfs,
                'obfs_param': user.obfs_param,
                'protocol': user.protocol,
                'protocol_param': user.protocol_param,
            }
            data.append(cfg)
        return data
Example #4
0
def user_status(request):
    '''站内用户分析'''
    # 查询今日注册的用户
    todayRegistered = User.todayRegister().values()
    for t in todayRegistered:
        try:
            t['inviter'] = User.objects.get(pk=t['invited_by'])
        except:
            t['inviter'] = 'ehco'
    todayRegisteredNum = len(todayRegistered)
    # 查询消费水平前十的用户
    richUser = Donate.richPeople()
    # 查询流量用的最多的用户
    coreUser = SSUser.coreUser()
    context = {
        'userNum': User.userNum(),
        'todayChecked': SSUser.userTodyChecked(),
        'aliveUser': NodeOnlineLog.totalOnlineUser(),
        'todayRegistered': todayRegistered[:10],
        'todayRegisteredNum': todayRegisteredNum,
        'richUser': richUser,
        'coreUser': coreUser,
    }
    return render(request, 'backend/userstatus.html', context=context)
Example #5
0
def change_ss_port(request):
    '''
    随机重置用户用端口
    返回是否成功
    '''
    user = request.user.ss_user
    # 找到端口池中最大的端口
    port = SSUser.randomPord()
    user.port = port
    user.save()
    registerinfo = {
        'title': '修改成功!',
        'subtitle': '端口修改为:{}!'.format(port),
        'status': 'success',
    }
    return JsonResponse(registerinfo)
Example #6
0
def change_ss_port(request):
    '''
    随机重置用户用端口
    返回是否成功
    '''
    user = request.user.ss_user
    # 找到端口池中最大的端口
    port = SSUser.randomPord()
    user.port = port
    user.save()
    registerinfo = {
        'title': '修改成功!',
        'subtitle': '端口修改为:{}!'.format(port),
        'status': 'success',
    }
    return JsonResponse(registerinfo)
Example #7
0
def traffic_api(request):
    '''
    接受服务端的用户流量上报
    '''
    data = request.json
    node_id = data['node_id']
    traffic_list = data['data']
    log_time = int(time.time())

    node_total_traffic = 0
    trafficlog_model_list = []
    ssuer_model_list = []

    for rec in traffic_list:
        # 个人流量增量
        ssuer_model_list.append(
            SSUser(pk=rec['user_id'],
                   upload_traffic=(F('upload_traffic') + rec['u']),
                   download_traffic=(F('download_traffic') + rec['d']),
                   last_use_time=log_time))
        # 个人流量记录
        trafficlog_model_list.append(
            TrafficLog(node_id=node_id,
                       user_id=rec['user_id'],
                       traffic=traffic_format(rec['u'] + rec['d']),
                       download_traffic=rec['d'],
                       upload_traffic=rec['u'],
                       log_time=log_time))
        # 节点流量增量
        node_incr = rec['u'] + rec['d']
        node_total_traffic += node_incr
    # 节点流量记录
    Node.objects.filter(node_id=node_id).update(
        used_traffic=F('used_traffic') + node_total_traffic)
    # 流量记录
    TrafficLog.objects.bulk_create(trafficlog_model_list)
    SSUser.objects.bulk_update(
        ssuer_model_list,
        update_fields=['upload_traffic', 'download_traffic', 'last_use_time'])

    return JsonResponse({'ret': 1, 'data': []})