Пример #1
0
def upload_video(header,conn):
    #print('------------上传视频----------')
    filename = header['filename']
    filesize = header['len']

    video_list=os.listdir(settings.Videos_path)
    re_header = {
        'type': 'admin',
        'action': 'upload_video',
    }
    if filename in video_list:
        re_data = {
            'status': False,
            'msg': '文件已存在'
        }
    else:
        re_data = {
            'status': True,
            'msg': '可上传'
        }
    re_data_bytes = struct_tcp.pack_header(re_header, re_data)
    conn.send(re_data_bytes)

    recv_size = 0
    video_path1=os.path.join(settings.Videos_path,filename)

    with open(video_path1,'wb') as f:
        while recv_size < filesize:
            recv_data = conn.recv(1024)
            f.write(recv_data)
            recv_size += len(recv_data)
        f.flush()
    file_size1 = os.path.getsize(video_path1)
    md5_obj = hashlib.md5()
    md5_obj.update(str(file_size1).encode('utf-8'))
    if header['md5']==md5_obj.hexdigest():
        try:
            res_db = cursor.execute('''insert into video(url,is_charge,cost,member_cost,is_delete) values(%s,%s,%s,%s,%s)''',
                                    (video_path1,header['is_charge'],header['cost'],header['member_cost'],0))
            db_conn.commit()
        except Exception as e:
            print(e)
            res_db = False
        if res_db:
            re_data = {
                'status': True,
                'msg': '上传成功'
            }
        else:
            re_data = {
                'status': False,
                'msg': '上传失败'
            }
    else:
        re_data = {
            'status': False,
            'msg': '文件上传不完整或被篡改'
        }
    re_data_bytes = struct_tcp.pack_header(re_header, re_data)
    conn.send(re_data_bytes)
Пример #2
0
def register(header,conn):
    #print('------------注册----------')
    data_len=header['len']
    data_bytes=conn.recv(data_len)
    data=struct_tcp.decode_header_bytes_or_data_bytes(data_bytes)
    cursor.execute('''select id from `admin` where `name`=%s''',data['name'])
    admin_info=cursor.fetchone()
    re_header={
        'type':'admin',
        'action':'register',
    }
    if admin_info:
        re_data = {
            'status':False,
            'msg':'管理员名已存在'
        }
    else:
        try:
            res_db = cursor.execute('''insert into admin(`name`,pwd) values(%s,%s)''', (data['name'],data['pwd']))
            db_conn.commit()
        except Exception as e:
            print(e)
            res_db = False
        if res_db:
            re_data = {
                'status': True,
                'msg': '注册成功'
            }
        else:
            re_data = {
                'status': False,
                'msg': '注册失败'
            }
    re_data_bytes=struct_tcp.pack_header(re_header,re_data)
    conn.send(re_data_bytes)
Пример #3
0
def check_dwn_records(header, conn):
    #print('------------查看观影(下载)记录----------')
    data_len = header['len']
    data_bytes = conn.recv(data_len)
    data = struct_tcp.decode_header_bytes_or_data_bytes(data_bytes)

    re_header = {
        'type': 'user',
        'action': 'check_dwn_records',
    }
    cursor.execute(
        '''select a.video_id,a.cost,c.url from `dwn_records` as a right join `user` as b on a.user_id=b.id and b.phone=%s
                      left join video as c on c.id=a.video_id
                 ''', data['phone'])
    dwn_records_info = cursor.fetchall()
    if dwn_records_info:
        re_data = {
            'status': True,
            'msg': '查询成功',
            'data': dwn_records_info,
            'video': dwn_records_info
        }
    else:
        re_data = {'status': True, 'msg': '暂无记录', 'data': ()}
    re_data_bytes = struct_tcp.pack_header(re_header, re_data)
    conn.send(re_data_bytes)
Пример #4
0
def register(header, conn):
    #print('------------注册----------')
    data_len = header['len']
    data_bytes = conn.recv(data_len)
    data = struct_tcp.decode_header_bytes_or_data_bytes(data_bytes)
    cursor.execute('''select id from `user` where `phone`=%s''', data['phone'])
    user_info = cursor.fetchone()

    re_header = {
        'type': 'user',
        'action': 'register',
    }

    if user_info:
        re_data = {'status': False, 'msg': '用户名已存在'}
    else:

        try:
            res_db = cursor.execute(
                '''insert into `user`(`phone`,pwd,money,is_member,is_delete) values(%s,%s,%s,%s,%s)''',
                (data['phone'], data['pwd'], 0, 0, 0))
            db_conn.commit()
        except Exception as e:
            print(e)
            res_db = False
        if res_db:
            re_data = {'status': True, 'msg': '注册成功'}
        else:
            re_data = {'status': False, 'msg': '注册失败'}
    re_data_bytes = struct_tcp.pack_header(re_header, re_data)
    conn.send(re_data_bytes)
Пример #5
0
def dwn_video(phone, id):
    conn = tcp_client.tcp_conn()
    header = {'type': 'user', 'action': 'dwn_video'}
    data = {'phone': phone, 'id': id}
    data_bytes = struct_tcp.pack_header(header, data)
    conn.send(data_bytes)
    T_F = conn.recv(1).decode('utf-8')
    if T_F == '0': return False, '余额不足'
    re_header_len_bytes = conn.recv(4)
    re_header_len = struct_tcp.unpack_header_len(re_header_len_bytes)

    re_header_bytes = conn.recv(re_header_len)
    re_header = struct_tcp.decode_header_bytes_or_data_bytes(re_header_bytes)

    recv_size = 0
    video_path1 = os.path.join(settings.Videos_path, re_header['filename'])

    with open(video_path1, 'wb') as f:
        while recv_size < re_header['filesize']:
            recv_data = conn.recv(1024)
            f.write(recv_data)
            recv_size += len(recv_data)
            common.schedule(re_header['filesize'], recv_size)
        f.flush()
    file_size1 = os.path.getsize(video_path1)
    md5_obj = hashlib.md5()
    md5_obj.update(str(file_size1).encode('utf-8'))
    if re_header['md5'] == md5_obj.hexdigest():
        return True, '下载成功'
    else:
        return False, '文件不完整或被篡改'
Пример #6
0
def manage_user(header,conn):
    #print('------------管理用户----------')
    data_len = header['len']
    data_bytes = conn.recv(data_len)
    data = struct_tcp.decode_header_bytes_or_data_bytes(data_bytes)
    try:
        res_db = cursor.execute('''update `user` set is_delete=%s where phone=%s''', (data['is_lock'], data['phone']))
        db_conn.commit()
    except Exception as e:
        print(e)
        res_db = False
    if res_db:
        re_data = {
            'status': True,
            'msg': '修改成功'
        }
    else:
        re_data = {
            'status': False,
            'msg': '修改失败'
        }
    re_header = {
        'type': 'admin',
        'action': 'manage_user',
    }
    re_data_bytes = struct_tcp.pack_header(re_header, re_data)
    conn.send(re_data_bytes)
Пример #7
0
def release_notice(header,conn):
    #print('------------发布公告----------')
    data_len = header['len']
    data_bytes = conn.recv(data_len)
    data = struct_tcp.decode_header_bytes_or_data_bytes(data_bytes)
    try:
        res_db = cursor.execute(
            '''insert into notice(content,is_delete) values(%s,%s)''',(data['content'],0))
        db_conn.commit()
    except Exception as e:
        print(e)
        res_db = False
    if res_db:
        re_data = {
            'status': True,
            'msg': '发布成功'
        }
    else:
        re_data = {
            'status': False,
            'msg': '发布失败'
        }
    re_header = {
        'type': 'admin',
        'action': 'release_notice',
    }

    re_data_bytes = struct_tcp.pack_header(re_header, re_data)
    conn.send(re_data_bytes)
Пример #8
0
def delete_video(header,conn):
    #print('------------删除视频----------')
    data_len = header['len']
    data_bytes = conn.recv(data_len)
    data = struct_tcp.decode_header_bytes_or_data_bytes(data_bytes)
    video_list = common.db_query(settings.DB_video_path)
    video_list[data['id']]['is_delete']=1
    common.db_save(settings.DB_video_path,video_list)
    re_header = {
        'type': 'admin',
        'action': 'delete_video',
    }
    try:
        res_db = cursor.execute(
            '''update video set is_delete=1 where id=%s''',(data['id'],))
        db_conn.commit()
    except Exception as e:
        print(e)
        res_db = False
    if res_db:
        re_data = {
            'status': True,
            'msg': '删除成功'
        }
    else:
        re_data = {
            'status': False,
            'msg': '删除失败'
        }
    re_data_bytes = struct_tcp.pack_header(re_header, re_data)
    conn.send(re_data_bytes)
Пример #9
0
def check_user():
    conn = tcp_client.tcp_conn()
    header = {'type': 'admin', 'action': 'check_user'}
    data = {'check_user': '******'}
    data_bytes = struct_tcp.pack_header(header, data)
    conn.send(data_bytes)
    res = common.receive_data(conn, 'admin', 'check_user')
    return res['data']
Пример #10
0
def get_video_list():
    conn = tcp_client.tcp_conn()
    header = {'type': 'admin', 'action': 'get_video_list'}
    data = {'get_video_list': 'get_video_list'}
    data_bytes = struct_tcp.pack_header(header, data)
    conn.send(data_bytes)
    res = common.receive_data(conn, 'admin', 'get_video_list')
    return res['data']
Пример #11
0
def release_notice(name, content):
    conn = tcp_client.tcp_conn()
    header = {'type': 'admin', 'action': 'release_notice'}
    data = {'content': content}
    data_bytes = struct_tcp.pack_header(header, data)
    conn.send(data_bytes)

    res = common.receive_data(conn, 'admin', 'release_notice')
    if res:
        return True, res['msg']
    else:
        return False, '通信错误了'
Пример #12
0
def delete_video(name, id):
    conn = tcp_client.tcp_conn()
    header = {'type': 'admin', 'action': 'delete_video'}
    data = {'id': id}
    data_bytes = struct_tcp.pack_header(header, data)
    conn.send(data_bytes)

    res = common.receive_data(conn, 'admin', 'delete_video')
    if res:
        return True, res['msg']
    else:
        return False, '通信错误了'
Пример #13
0
def chech_notice(phone):
    conn = tcp_client.tcp_conn()
    header = {'type': 'user', 'action': 'chech_notice'}
    data = {'phone': phone}
    data_bytes = struct_tcp.pack_header(header, data)
    conn.send(data_bytes)

    res = common.receive_data(conn, 'user', 'chech_notice')
    if res:
        return res
    else:
        return '通信错误了'
Пример #14
0
def become_member(phone, money):
    conn = tcp_client.tcp_conn()
    header = {'type': 'user', 'action': 'become_member'}
    data = {'phone': phone, 'money': money}
    data_bytes = struct_tcp.pack_header(header, data)
    conn.send(data_bytes)

    res = common.receive_data(conn, 'user', 'become_member')
    if res:
        return res['status'], res['msg'], res
    else:
        return False, '通信错误了'
Пример #15
0
def check_dwn_records(phone):
    conn = tcp_client.tcp_conn()
    header = {'type': 'user', 'action': 'check_dwn_records'}
    data = {'phone': phone}
    data_bytes = struct_tcp.pack_header(header, data)
    conn.send(data_bytes)

    res = common.receive_data(conn, 'user', 'check_dwn_records')
    if res:
        return res
    else:
        print('通信错误了')
        return []
Пример #16
0
def manage_user(name, phone, is_lock):
    conn = tcp_client.tcp_conn()
    header = {'type': 'admin', 'action': 'manage_user'}
    data = {
        'phone': phone,
        'is_lock': is_lock,
    }
    data_bytes = struct_tcp.pack_header(header, data)
    conn.send(data_bytes)

    res = common.receive_data(conn, 'admin', 'manage_user')
    if res:
        return True, res['msg']
    else:
        return False, '通信错误了'
Пример #17
0
def get_video_list(header,conn):
    data_len = header['len']
    data_bytes = conn.recv(data_len)
    data = struct_tcp.decode_header_bytes_or_data_bytes(data_bytes)
    cursor.execute('''select * from `video`''')
    video_list = cursor.fetchall()
    re_header = {
        'type': 'admin',
        'action': 'get_video_list',
    }
    re_data={
        'data':video_list
    }
    re_data_bytes = struct_tcp.pack_header(re_header, re_data)
    conn.send(re_data_bytes)
Пример #18
0
def login(name, pwd):
    conn = tcp_client.tcp_conn()
    header = {'type': 'admin', 'action': 'login'}
    # md5加密
    md5_obj = hashlib.md5()
    md5_obj.update(pwd.encode('utf-8'))
    pwd = md5_obj.hexdigest()
    data = {'name': name, 'pwd': pwd}
    data_bytes = struct_tcp.pack_header(header, data)
    conn.send(data_bytes)

    res = common.receive_data(conn, 'admin', 'login')
    if res:
        return res['status'], res['msg']
    else:
        return False, '通信错误了'
Пример #19
0
def register(phone, pwd):
    conn = tcp_client.tcp_conn()
    header = {'type': 'user', 'action': 'register'}
    # md5加密
    md5_obj = hashlib.md5()
    md5_obj.update(pwd.encode('utf-8'))
    pwd = md5_obj.hexdigest()
    data = {'phone': phone, 'pwd': pwd}
    data_bytes = struct_tcp.pack_header(header, data)
    conn.send(data_bytes)

    res = common.receive_data(conn, 'user', 'register')
    if res:
        return True, res['msg']
    else:
        return False, '通信错误了'
Пример #20
0
def become_member(header, conn):
    #print('------------冲会员----------')
    data_len = header['len']
    data_bytes = conn.recv(data_len)
    data = struct_tcp.decode_header_bytes_or_data_bytes(data_bytes)

    cursor.execute(
        '''select id,is_delete,money,is_member from `user` where `phone`=%s''',
        data['phone'])
    user_info = list(cursor.fetchone())
    re_header = {
        'type': 'user',
        'action': 'become_member',
    }
    user_info[2] += data['money']
    if user_info[3] == 0:
        if user_info[2] >= 50:
            user_info[2] -= 50
            user_info[3] = 1
            re_data = {
                'status': True,
                'msg': '冲会员成功',
                'money': user_info,
            }
        else:
            re_data = {
                'status': True,
                'msg': '充值成功,余额咋不足开启会员',
                'money': user_info,
            }

    else:
        re_data = {
            'status': True,
            'msg': '充值成功',
            'money': user_info,
        }
    try:
        cursor.execute(
            '''update `user` set money=%s,is_member=%s where phone=%s''',
            (user_info[2], user_info[3], data['phone']))
        db_conn.commit()
    except Exception as e:
        print(e)

    re_data_bytes = struct_tcp.pack_header(re_header, re_data)
    conn.send(re_data_bytes)
Пример #21
0
def chech_capital(header,conn):
    #print('------------查看资金----------')
    data_len = header['len']
    data_bytes = conn.recv(data_len)
    data = struct_tcp.decode_header_bytes_or_data_bytes(data_bytes)

    cursor.execute('''select sum(cost) as c,(select count(id) from `user` where is_member=1) as d from dwn_records  ''')
    data_list = cursor.fetchone()
    re_header = {
        'type': 'admin',
        'action': 'chech_capital',
    }
    re_data = {
        'data': data_list
    }
    re_data_bytes = struct_tcp.pack_header(re_header, re_data)
    conn.send(re_data_bytes)
Пример #22
0
def check_user(header,conn):
    #print('------------查看用户----------')
    data_len = header['len']
    data_bytes = conn.recv(data_len)
    data = struct_tcp.decode_header_bytes_or_data_bytes(data_bytes)
    cursor.execute('''select id,phone,money,is_member,is_delete from `user` ''')
    user_list = cursor.fetchall()


    re_header = {
        'type': 'admin',
        'action': 'check_user',
    }
    re_data = {
        'data': user_list
    }
    re_data_bytes = struct_tcp.pack_header(re_header, re_data)
    conn.send(re_data_bytes)
Пример #23
0
def chech_notice(header, conn):
    #print('------------查看公告----------')
    data_len = header['len']
    data_bytes = conn.recv(data_len)
    data = struct_tcp.decode_header_bytes_or_data_bytes(data_bytes)
    re_header = {
        'type': 'user',
        'action': 'chech_notice',
    }
    cursor.execute('''select id,content from notice where is_delete=0''')
    notice_list = cursor.fetchall()

    if not notice_list:
        re_data = {'status': True, 'msg': '暂无公告', 'data': notice_list}
    else:
        re_data = {'status': True, 'msg': '查询成功', 'data': notice_list}
    re_data_bytes = struct_tcp.pack_header(re_header, re_data)
    conn.send(re_data_bytes)
Пример #24
0
def login(header, conn):
    #print('------------登录----------')
    data_len = header['len']
    data_bytes = conn.recv(data_len)
    data = struct_tcp.decode_header_bytes_or_data_bytes(data_bytes)
    cursor.execute(
        '''select id,is_delete,money,is_member from `user` where `phone`=%s and pwd=%s''',
        (data['phone'], data['pwd']))
    user_info = cursor.fetchone()

    re_header = {
        'type': 'user',
        'action': 'login',
    }
    if user_info:

        if user_info[1] == 1:
            re_data = {'status': False, 'msg': '账户已被锁定'}
        else:
            re_data = {'status': True, 'msg': '登录成功', 'data': user_info}
    else:
        re_data = {'status': False, 'msg': '用户名或密码错误'}
    re_data_bytes = struct_tcp.pack_header(re_header, re_data)
    conn.send(re_data_bytes)
Пример #25
0
def login(header,conn):
    # print('------------登录----------')
    data_len = header['len']
    data_bytes = conn.recv(data_len)
    data = struct_tcp.decode_header_bytes_or_data_bytes(data_bytes)
    print(data)
    cursor.execute('''select id from `admin` where `name`=%s and pwd=%s''', (data['name'],data['pwd']))
    admin_info = cursor.fetchone()
    re_header = {
        'type': 'admin',
        'action': 'login',
    }
    if admin_info:
        re_data = {
            'status':True,
            'msg':'登录成功'
        }
    else:
        re_data = {
            'status': False,
            'msg': '用户名或密码错误'
        }
    re_data_bytes = struct_tcp.pack_header(re_header, re_data)
    conn.send(re_data_bytes)