def viewDataset(year, month, dataset, dpath=None): #print(year, month, dataset, dpath) datasetName = dataset datasetRoot = app.config['DATASET_ROOT'] datasetPath = path.join(str(year), str(month), dataset) dataset = models.Datasets.query.filter( models.Datasets.path == datasetPath ).first() if dpath: wholePath = abspath(join(datasetRoot, datasetPath, dpath or '')).encode('utf-8') if isfile(wholePath): return send_from_directory(dirname(wholePath), basename(wholePath)) elif isdir(wholePath) and dpath[-1] != '/': print('redirecting to /datasets/%d/%s/%s/%s/' % (year, month, datasetName, quote(dpath))) return redirect('/datasets/%d/%s/%s/%s/' % (year, month, datasetName, quote(dpath))) if not dataset: return(render_template("error.html", message="Could not find dataset")) dataset.cleanDate = cleanDate(dataset.updated_at) pathDict = {} if not dataset.url: try: pathDict, dirUp, metadata = index_dir( dpath, dataset ) except Exception as e: return(render_template("error.html", message="Could not generate index %s" % e)) if dataset.url: pathDict = None dirUp = None # should use @memoize instead key=path.join(datasetRoot, datasetPath) datasetSize = cache.get(key) if datasetSize is None: datasetSize = get_size(start_path=path.join(datasetRoot, datasetPath)) cache.set(key, datasetSize, 60*60) return( render_template( 'dataset.html', datasetRoot=datasetRoot, dataset=dataset, pathDict=pathDict, dirUp=dirUp, quote=quote, metadata=metadata, unquote=unquote, datasetID=dataset.datasetID, datasetSize=datasetSize ) )
def viewDatasetURL(datasetName): dataset = models.Datasets.query.filter( models.Datasets.name == datasetName).first() if not dataset: return (render_template("error.html", message="Could not find dataset")) dataset.cleanDate = cleanDate(dataset.updated_at) return (render_template('dataset.html', dataset=dataset, dirUp=None, pathDict=None))
def viewDataset(year, month, dataset, dpath=None): #print(year, month, dataset, dpath) datasetName = dataset datasetRoot = app.config['DATASET_ROOT'] datasetPath = path.join(str(year), str(month), dataset) dataset = models.Datasets.query.filter( models.Datasets.path == datasetPath).first() if dpath: wholePath = abspath(join(datasetRoot, datasetPath, dpath or '')).encode('utf-8') if isfile(wholePath): return send_from_directory(dirname(wholePath), basename(wholePath)) elif isdir(wholePath) and dpath[-1] != '/': print('redirecting to /datasets/%d/%s/%s/%s/' % (year, month, datasetName, quote(dpath))) return redirect('/datasets/%d/%s/%s/%s/' % (year, month, datasetName, quote(dpath))) if not dataset: return (render_template("error.html", message="Could not find dataset")) dataset.cleanDate = cleanDate(dataset.updated_at) pathDict = {} if not dataset.url: try: pathDict, dirUp, metadata = index_dir(dpath, dataset) except Exception as e: return (render_template("error.html", message="Could not generate index %s" % e)) if dataset.url: pathDict = None dirUp = None # should use @memoize instead key = path.join(datasetRoot, datasetPath) datasetSize = cache.get(key) if datasetSize is None: datasetSize = get_size(start_path=path.join(datasetRoot, datasetPath)) cache.set(key, datasetSize, 60 * 60) return (render_template('dataset.html', datasetRoot=datasetRoot, dataset=dataset, pathDict=pathDict, dirUp=dirUp, quote=quote, metadata=metadata, unquote=unquote, datasetID=dataset.datasetID, datasetSize=datasetSize))
def viewDatasetURL(datasetName): dataset = models.Datasets.query.filter( models.Datasets.name == datasetName ).first() if not dataset: return(render_template("error.html", message="Could not find dataset")) dataset.cleanDate = cleanDate(dataset.updated_at) return( render_template( 'dataset.html', dataset=dataset, dirUp=None, pathDict=None ) )
def viewDataset(year, month, dataset, directory=None): datasetRoot = app.config['DATASET_ROOT'] datasetPath = path.join(str(year), str(month), dataset) datasetSize = get_size(start_path=path.join(datasetRoot, datasetPath)) dataset = models.Datasets.query.filter( models.Datasets.path == datasetPath ).first() if directory: wholePath = path.join(datasetRoot, datasetPath, directory) if path.isfile(wholePath): return send_file( wholePath, as_attachment=True, attachment_filename=path.basename(wholePath) ) if not dataset: return(render_template("error.html", message="Could not find dataset")) dataset.cleanDate = cleanDate(dataset.updated_at) pathDict = {} if not dataset.url: try: pathDict, dirUp, metadata = index_dir( directory, dataset ) except Exception as e: return(render_template("error.html", message="Could not generate index %s" % e)) if dataset.url: pathDict = None dirUp = None return( render_template( 'dataset.html', datasetRoot=datasetRoot, dataset=dataset, pathDict=pathDict, dirUp=dirUp, quote=quote, metadata=metadata, unquote=unquote, datasetID=dataset.datasetID, datasetSize=datasetSize ) )