Ejemplo n.º 1
0
def makeserver(path):
    #目录必须存在
    if not os.path.exists(path):
        raise FileNotFoundError("路径[%s]不存在,请重新输入"%path)
    
    dws = DataWorker('servers')
    sharekey = utils.uniqid()
    result = dws.load()
    for res in result:
        while True:
            if res.get('sharekey') == sharekey:
                sharekey = utils.uniqid()
            else:
                break
        if res.get('folder') == path:
            raise UserWarning("共享目录正在使用中:%s"%res.get('folder'))
        
    item = {
        'sharekey':sharekey,
        'folder':path,
        'modtime':int(time.time()),
        'addtime':int(time.time())
        }
    dws.append(item)
    return sharekey
Ejemplo n.º 2
0
def upload():
    if USER_TOKEN not in session and USER_ID_TOKEN not in session and not isinstance(session[USER_ID_TOKEN], int):
        return redirect('/')

    if request.method == 'POST':
        if 'name' in request.form and 'desc' in request.form:

            name = request.form['name'].strip()
            description = request.form['desc'].strip()
            file_context = request.files['file']
            filename = secure_filename(file_context.filename)
            user_id = session[USER_ID_TOKEN]

            if file_context and allowed_file(filename):
                uid = uniqid()
                filename = "".join([uid, ".torrent"])
                upload_torrent_file(name, description, file_context, filename, user_id)
                return redirect('/user_page/')
    return render_template('upload.html')
Ejemplo n.º 3
0
def upload():
    if USER_TOKEN not in session and USER_ID_TOKEN not in session and not isinstance(
            session[USER_ID_TOKEN], int):
        return redirect('/')

    if request.method == 'POST':
        if 'name' in request.form and 'desc' in request.form:

            name = request.form['name'].strip()
            description = request.form['desc'].strip()
            file_context = request.files['file']
            filename = secure_filename(file_context.filename)
            user_id = session[USER_ID_TOKEN]

            if file_context and allowed_file(filename):
                uid = uniqid()
                filename = "".join([uid, ".torrent"])
                upload_torrent_file(name, description, file_context, filename,
                                    user_id)
                return redirect('/user_page/')
    return render_template('upload.html')
Ejemplo n.º 4
0
def upload_torrent_file(name, description, file_context, filename, user_id):
    if name != "" and description and filename != "":
        if os.path.exists(app.config['UPLOAD_FOLDER']):
            uid = uniqid()
            filename = "".join([uid, ".torrent"])
            file_context.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))

            try:
                data = open(app.config['UPLOAD_FOLDER'] + filename, "rb").read()
                if data:
                    torrent_ = decode(data)
                    size = 0
                    try:
                        info = torrent_["info"]["files"]
                        for file_context in info:
                            size = size + file_context["length"]
                    except KeyError:
                        size = torrent_["info"]["length"]
                    size = round((size * 0.001) * 0.001, 2)
                    add_torrent(name, description, filename, user_id, size)
            except IOError:
                return
Ejemplo n.º 5
0
def makeclient(sharekey, path):
    #目录必须存在且为空
    if not sharekey.isalnum or len(sharekey) != 32:
        raise UserWarning("共享串格式错误[要求32位长度]:%s"%sharekey)

    if not os.path.exists(path):
        raise FileNotFoundError("路径[%s]不存在,请重新输入"%path)
    
    dwc = DataWorker('clients')
    result = dwc.load()
    for res in result:
        if res.get('sharekey') == sharekey:
            raise UserWarning("共享串已设置同步目录:%s"%res.get('folder'))
        if res.get('folder') == path:
            raise UserWarning("同步目录正在使用中:%s"%res.get('folder'))
        
    item = {
        'sharekey':sharekey,
        'folder':path,
        'modtime':int(time.time()),
        'addtime':int(time.time())
        }
    dwc.append(item)
    return utils.uniqid()
Ejemplo n.º 6
0
def generate_csrf_token():
    if '_csrf_token' not in session:
        session['_csrf_token'] = uniqid()
    return session['_csrf_token']
Ejemplo n.º 7
0
def generate_csrf_token():
    if '_csrf_token' not in session:
        session['_csrf_token'] = uniqid()
    return session['_csrf_token']