コード例 #1
0
ファイル: views.py プロジェクト: pheelixx/konvert
def conv(id):
    settings = {}
    for key, value in request.values.items():
        settings[key] = value
        if value.isdigit():
            settings[key] = int(value)
        if value == 'true':
            settings[key] = True
        if value == 'false':
            settings[key] = False
    extension = settings['extension']
    file = File.query.get(id)
    path = file.path
    basename = Tools.get_basename(file.name)
    new_name = (basename + '.' + extension).encode('utf-8')
    document = Document(path)
    properties = document.get_export_options(extension)
    properties['FilterData'] = settings
    document.set_properties(properties)
    # return jsonify({
    #     'id': id,
    #     'settings': settings,
    #     'options': options,
    #     'export_options': document.get_export_options(extension),
    #     'arguments': dir(document.arguments),
    #     'statistics': document.get_statistics(),
    #     'get_settings': file.get_settings()
    # })
    new = path + '.' + extension
    save = document.save(new)
    if save is False:
        return jsonify({
            'error': 'File not saved'
        })
    type = mimetypes.guess_type(urllib.pathname2url(new_name))
    model = File.query.filter_by(path=new).first()
    if model is None:
        model = File()
    model.user_id = g.user.id
    model.name = new_name.decode('utf-8')
    model.path = new
    model.size = os.path.getsize(new)
    model.type = type[0]
    model.extension = extension
    db.session.add(model)
    db.session.commit()
    return jsonify({
        'save': save,
        'name': new_name,
        'url': '/download/' + str(model.id),
        'type': type[0],
        'path': new,
        'properties': properties
    })
コード例 #2
0
ファイル: views.py プロジェクト: pheelixx/konvert
def convert():
    upload = Tools.upload()
    path = upload['path']
    basename = Tools.get_basename(upload['name'])
    new_name = (basename + '.pdf').encode('utf-8')
    document = Document(upload['path'])
    new = path + '.pdf'
    save = document.save(new)
    user_id = 1
    type = mimetypes.guess_type(urllib.pathname2url(new_name))
    model = File(user_id=user_id,
                 name=new_name.decode('utf-8'),
                 path=new,
                 type=type[0])
    db.session.add(model)
    db.session.commit()
    return jsonify({
        'save': save,
        'name': new_name,
        'url': '/download/' + str(model.id),
        'type': type[0],
        'path': new
    })
コード例 #3
0
ファイル: views.py プロジェクト: pheelixx/konvert
def upload():
    return jsonify(Tools.upload())
コード例 #4
0
ファイル: views.py プロジェクト: pheelixx/konvert
def authorized_with_facebook(response):
    result = {'auth': False}
    if response is not None:
        access_token = response['access_token']
        # expires = response['expires']
        session['facebook_token'] = (
            access_token,
            OAUTH_CREDENTIALS['facebook']['secret']
        )
        get = facebook.get('me?fields=id,name,picture,email')
        status = get.status
        result['get_status'] = status
        if status == 200:
            data = get.data
            user = User.query.filter_by(email=data['email']).first()
            if user is None:
                result['user_status'] = 'new'
                user = User(
                    name=data['name'],
                    email=data['email'],
                    key=Tools.generate_hash(data),
                    token=access_token,
                    photo=data['picture']['data']['url'],
                    auth=AUTH['facebook'],
                    last_seen=str(datetime.utcnow()),
                    info=json.dumps(data)
                )
                db.session.add(user)
                db.session.commit()
            else:
                result['user_status'] = 'old'
                equal = True
                new = {
                    'name': data['name'],
                    'token': access_token,
                    'photo': data['picture']['data']['url']
                }
                for key, value in new.iteritems():
                    attr = getattr(user, key)
                    if attr != value:
                        setattr(user, key, value)
                        equal = False
                if not equal:
                    result['user_status'] = 'updated'
                    db.session.add(user)
                    db.session.commit()
            result['user'] = {
                'name': user.name,
                'email': user.email,
                'key': user.key,
                'photo': user.photo,
                'info': user.info
            }
            remember_me = False
            if 'remember_me' in session:
                remember_me = session['remember_me']
                session.pop('remember_me', None)
            session['authorized'] = True
            session['active'] = True
            session['anonymous'] = False
            result['auth'] = login_user(user, remember=remember_me)
    return redirect(url_for('index'))