Exemplo n.º 1
0
def download_package(package):
    fb_versions = fallback_versions(package)
    cached_package = Package.query.filter_by(name=package).first()
    if not cached_package:
        cached_package = Package(name=package)
        db_session.add(cached_package)
    for version in fb_versions:
        filtered_version = cached_package.versions.filter_by(
            version_code=version).first()
        if filtered_version == None:
            filename = urlparse.urlparse(
                fb_versions[version])[2].split('/')[-1]
            fb_file = requests.get(fb_versions[version]).content
            with open(filename, 'w') as tempfile:
                tempfile.write(fb_file)
            storage.store_package(package, filename)
            db_session.add(
                Version(
                    package=cached_package,
                    version_code=version,
                    filename=filename,
                    date_cached=datetime.datetime.now(),
                ))
            os.remove(filename)
    db_session.commit()
Exemplo n.º 2
0
def get_package(package):
    package = secure_filename(package)
    versions = fallback_versions(package)
    cached_package = Package.query.filter_by(name=package).first()
    if cached_package:
        for fb_version in versions:
            filtered_version = cached_package.versions.filter_by(version_code=fb_version).first()
            if filtered_version == None:
                download_package.delay(package)
                break
        for cached_version in cached_package.versions.all():
            version_url = url_for("get_file", package=cached_package.name, filename=cached_version.filename)
            versions[cached_version.version_code] = version_url
    else:
        download_package.delay(package)
    return render_template("versions.html", versions=versions, package_name=package)
Exemplo n.º 3
0
def get_package(package):
    package = secure_filename(package)
    versions = fallback_versions(package)
    cached_package = Package.query.filter_by(name=package).first()
    if cached_package:
        for fb_version in versions:
            filtered_version = cached_package.versions.filter_by(
                version_code=fb_version).first()
            if filtered_version == None:
                download_package.delay(package)
                break
        for cached_version in cached_package.versions.all():
            version_url = url_for(
                'get_file',
                package=cached_package.name,
                filename=cached_version.filename,
            )
            versions[cached_version.version_code] = version_url
    else:
        download_package.delay(package)
    return render_template('versions.html',
                           versions=versions,
                           package_name=package)
Exemplo n.º 4
0
def download_package(package):
    fb_versions = fallback_versions(package)
    cached_package = Package.query.filter_by(name=package).first()
    if not cached_package:
        cached_package = Package(name=package)
        db_session.add(cached_package)
    for version in fb_versions:
        filtered_version = cached_package.versions.filter_by(version_code=version).first()
        if filtered_version == None:
            filename = urlparse.urlparse(fb_versions[version])[2].split('/')[-1]
            fb_file = requests.get(fb_versions[version]).content
            with open(filename, 'w') as tempfile:
                tempfile.write(fb_file)
            storage.store_package(package, filename)
            db_session.add(
                Version(
                    package=cached_package,
                    version_code=version,
                    filename=filename,
                    date_cached=datetime.datetime.now(),
                )
            )
            os.remove(filename)
    db_session.commit()