def _add_extras_urls_as_resources(dataset_metadata, field_prefixes, ckanapi_utils, elem, root, lang): for meta in elem.findall('wp:postmeta', root.nsmap): meta_key = meta.find('wp:meta_key', root.nsmap).text supported_fields = config['supported_fields'] if script_utils._is_key_in_fields(meta_key, supported_fields): meta_key_copy = meta_key meta_value = meta.find('wp:meta_value', root.nsmap).text if ((meta_value is not None) and (meta_value is not "")): field_key = meta_key field_value = meta_value if script_utils._is_valid_url(field_value): add_resource = True resource_format = 'html' else: for field_prefix in field_prefixes: if field_key == field_prefix['field']: field_value = field_prefix['prefix'] + field_value add_resource = True resource_format = script_utils._get_ext( field_value) if add_resource: try: existing_resource = False for resource in dataset_metadata[ 'resources']: if resource[ 'name'] == dataset_metadata[ 'title_translated'][lang]: existing_resource = True if existing_resource == False: temp_file_path = script_utils._generate_temp_filename( '/tmp/', script_utils._get_ext(field_value)) script_utils._download_file( field_value, temp_file_path) resource_dict = script_utils._create_metadata_dictionary_for_upload( dataset_metadata['id'], '', temp_file_path, dataset_metadata[ 'title_translated'][lang], field_prefix['lang'].upper(), script_utils._get_ext(field_value), field_prefix['lang']) created_resource = ckanapiutils.create_resource_with_file_upload( resource_dict) if os.path.exists(temp_file_path): os.remove(temp_file_path) except (UnicodeError): traceback.print_exc()
def _set_extras(dataset_metadata, root, elem): for meta in elem.findall('wp:postmeta', root.nsmap): meta_key = meta.find('wp:meta_key', root.nsmap).text supported_fields = config['supported_fields'] if script_utils._is_key_in_fields(meta_key, supported_fields): meta_key_copy = meta_key meta_value = meta.find('wp:meta_value', root.nsmap).text if ((meta_value is not None) and (meta_value is not "")): dataset_metadata[meta_key] = meta_value return dataset_metadata
def _add_extras_urls_as_resources(dataset_metadata, field_prefixes, ckanapi_utils,elem,root,lang): for meta in elem.findall('wp:postmeta', root.nsmap): meta_key = meta.find('wp:meta_key', root.nsmap).text supported_fields = config['supported_fields'] if script_utils._is_key_in_fields(meta_key, supported_fields): meta_key_copy = meta_key meta_value = meta.find('wp:meta_value', root.nsmap).text if ((meta_value is not None) and (meta_value is not "")): field_key = meta_key field_value = meta_value if script_utils._is_valid_url(field_value): add_resource = True resource_format = 'html' else: for field_prefix in field_prefixes: if field_key == field_prefix['field']: field_value = field_prefix['prefix'] + field_value add_resource = True resource_format = script_utils._get_ext(field_value) if add_resource: try: existing_resource = False for resource in dataset_metadata['resources']: if resource['name'] == dataset_metadata['title_translated'][lang]: existing_resource = True if existing_resource == False: temp_file_path = script_utils._generate_temp_filename('/tmp/',script_utils._get_ext(field_value)) script_utils._download_file(field_value, temp_file_path) resource_dict = script_utils._create_metadata_dictionary_for_upload(dataset_metadata['id'],'',temp_file_path, dataset_metadata['title_translated'][lang], field_prefix['lang'].upper(), script_utils._get_ext(field_value),field_prefix['lang']) created_resource = ckanapiutils.create_resource_with_file_upload(resource_dict) if os.path.exists(temp_file_path): os.remove(temp_file_path) except (UnicodeError): traceback.print_exc()