# HG changeset patch # User fabio # Date 1496336842 14400 # Node ID 3eabece82abb4e9f18d313bb91ced664cc50d087 # Parent 78bd202e8687f28447350db117d348c0ce983411 Uploaded 20170601 diff -r 78bd202e8687 -r 3eabece82abb ._gdcwebapp.xml Binary file ._gdcwebapp.xml has changed diff -r 78bd202e8687 -r 3eabece82abb ._json_data_source_mod.py Binary file ._json_data_source_mod.py has changed diff -r 78bd202e8687 -r 3eabece82abb gdcwebapp.xml --- a/gdcwebapp.xml Tue May 30 15:56:33 2017 -0400 +++ b/gdcwebapp.xml Thu Jun 01 13:07:22 2017 -0400 @@ -21,7 +21,7 @@ diff -r 78bd202e8687 -r 3eabece82abb json_data_source_mod.py --- a/json_data_source_mod.py Tue May 30 15:56:33 2017 -0400 +++ b/json_data_source_mod.py Thu Jun 01 13:07:22 2017 -0400 @@ -105,7 +105,7 @@ return "%s\n" % json.dumps( meta_dict ) -def walk_on_archive(target_output_filename, check_ext, archive_name, appdata_path): +def walk_on_archive(target_output_filename, check_ext, archive_name, appdata_path, db_key="?"): archive_name = archive_name.replace("_", "-").replace(".", "-") with tarfile.open( target_output_filename, check_ext ) as tf: for entry in tf: @@ -114,12 +114,12 @@ # reserve the underscore for the collection searator filename = os.path.basename( entry.name ).replace("_", "-") extension = splitext( filename )[1] - # pattern: (?P<identifier_0>[^_]+)_(?P<identifier_1>[^_]+) + # pattern: (?P[^_]+)_(?P[^_]+)_(?P[^_]+)_(?P[^_]+) if (len(extension) > 0): - filename = (filename[0:len(filename)-(len(extension)+1)]).replace(".", "-") + "." + extension + filename = (filename[0:len(filename)-(len(extension)+1)]).replace(".", "-") + "_" + extension else: extension = "auto" - filename_with_collection_prefix = archive_name + "_" + filename + filename_with_collection_prefix = archive_name + "_" + filename + "_" + db_key target_entry_output_filename = os.path.join(appdata_path, filename_with_collection_prefix) store_file_from_archive( fileobj, target_entry_output_filename ) return True @@ -175,7 +175,14 @@ """ the following code handles archives and decompress them in a collection """ if ( isArchive ): - walk_on_archive(target_output_path, check_ext, filename, appdata_path) + db_key = "?" + archive_metadata = query_item.get( 'metadata', None ) + if archive_metadata is not None: + try: + db_key = archive_metadata.get( 'db_key' ) + except: + pass + walk_on_archive(target_output_path, check_ext, filename, appdata_path, db_key) return True