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 _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()
dataset_metadata['id'] = created_dataset['id'] print("Dataset created ",created_dataset['id'],created_dataset['title']) except (ckan.lib.search.common.SearchIndexError) as e: continue try: temp_file_path = script_utils._generate_temp_filename('xml') with open(temp_file_path, 'w') as fw: xml = marcxml.record_to_xml(record) fw.write(xml) fw.close() resource_dict = script_utils._create_metadata_dictionary_for_upload(dataset_metadata['id'],"N/A",temp_file_path,dataset_metadata['title'],'Alternative representation [MARCXML]','xml',None) ckanapiutils.create_resource_with_file_upload(resource_dict) if os.path.exists(temp_file_path): os.remove(temp_file_path) except (ValueError, OSError) as e: if (config.DEBUG): traceback.print_exc() try: temp_file_path = script_utils._generate_temp_filename('json') with open(temp_file_path, 'w') as fw: json = record.as_json() fw.write(json)
dataset_metadata['id'], ol_url, dataset_metadata['title'], 'Data representation KML]', 'kml') created_resource = ckanapiutils.create_resource(resource_dict) try: temp_file_path = script_utils._generate_temp_filename( 'geojson') geojson_url = script_utils._generate_ows_download_url( geoserver.geoserver_url, feature_namespace, feature_name, 'json') geojson_file = geoserver.download_file(geojson_url, temp_file_path) resource_dict = script_utils._create_metadata_dictionary_for_upload( dataset_metadata['id'], geojson_url, temp_file_path, dataset_metadata['title'], 'Data representation [Geojson]', 'geojson', dataset_metadata['odm_language'][0]) ckanapiutils.create_resource_with_file_upload(resource_dict) if os.path.exists(temp_file_path): os.remove(temp_file_path) except (urllib2.HTTPError, ValueError) as e3: if (config.DEBUG): traceback.print_exc() try: temp_file_path = script_utils._generate_temp_filename('csv') csv_url = script_utils._generate_ows_download_url( geoserver.geoserver_url, feature_namespace, feature_name, 'csv')
ol_url = script_utils._generate_wms_download_url(geoserver.geoserver_url,feature_namespace,feature_name,'application/openlayers') resource_dict = script_utils._create_metadata_dictionary_for_resource(dataset_metadata['id'],ol_url,dataset_metadata['title'],'Data representation [Open Layers]','html') created_resource = ckanapiutils.create_resource(resource_dict) ol_url = script_utils._generate_wms_download_url(geoserver.geoserver_url,feature_namespace,feature_name,'application/vnd.google-earth.kml') resource_dict = script_utils._create_metadata_dictionary_for_resource(dataset_metadata['id'],ol_url,dataset_metadata['title'],'Data representation KML]','kml') created_resource = ckanapiutils.create_resource(resource_dict) try: temp_file_path = script_utils._generate_temp_filename('geojson') geojson_url = script_utils._generate_ows_download_url(geoserver.geoserver_url,feature_namespace,feature_name,'json') geojson_file = geoserver.download_file(geojson_url,temp_file_path) resource_dict = script_utils._create_metadata_dictionary_for_upload(dataset_metadata['id'],geojson_url,temp_file_path,dataset_metadata['title'],'Data representation [Geojson]','geojson',dataset_metadata['odm_language'][0]) ckanapiutils.create_resource_with_file_upload(resource_dict) if os.path.exists(temp_file_path): os.remove(temp_file_path) except (urllib2.HTTPError, ValueError) as e3: if (config.DEBUG): traceback.print_exc() try: temp_file_path = script_utils._generate_temp_filename('csv') csv_url = script_utils._generate_ows_download_url(geoserver.geoserver_url,feature_namespace,feature_name,'csv') csv_file = geoserver.download_file(csv_url,temp_file_path) resource_dict = script_utils._create_metadata_dictionary_for_upload(dataset_metadata['id'],csv_file,temp_file_path,dataset_metadata['title'],'Data representation [CSV]','csv',dataset_metadata['odm_language'][0])