mirror of https://github.com/MISP/misp-objects
				
				
				
			
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
| #!/usr/bin/env python3
 | |
| # -*- coding: utf-8 -*-
 | |
| 
 | |
| from pathlib import Path
 | |
| import json
 | |
| 
 | |
| name_ontology = 'alfred'
 | |
| 
 | |
| relationships_path = Path('..', 'relationships', 'definition.json')
 | |
| 
 | |
| with open(relationships_path) as f:
 | |
|     relationships = json.load(f)
 | |
| 
 | |
| rel_fast_lookup = {entry['name']: entry for entry in relationships['values']}
 | |
| 
 | |
| ontology_path = Path('alfred-ontology.json')
 | |
| 
 | |
| with open(ontology_path) as f:
 | |
|     ontology = json.load(f)
 | |
| 
 | |
| links = ontology['data']['linkTypes']
 | |
| 
 | |
| 
 | |
| for linktype in links:
 | |
|     link_name = linktype['name'].lower().replace('_', '-')
 | |
|     link_description = linktype['description']
 | |
|     if link_name in rel_fast_lookup:
 | |
|         if rel_fast_lookup[link_name]['description'] != link_description:
 | |
|             print(link_name)
 | |
|             print('\t MISP:', rel_fast_lookup[link_name]['description'])
 | |
|             print('\t Alfred:', link_description)
 | |
|         for entry in relationships['values']:
 | |
|             if entry['name'] == link_name:
 | |
|                 if name_ontology not in entry['format']:
 | |
|                     entry['format'].append(name_ontology)
 | |
|                 break
 | |
|         # Update the fast lookup to avoid duplicates.
 | |
|         rel_fast_lookup = {entry['name']: entry for entry in relationships['values']}
 | |
|     else:
 | |
|         if link_name not in rel_fast_lookup:
 | |
|             linktype['name'] = link_name
 | |
|             linktype['format'] = [name_ontology]
 | |
|             relationships['values'].append(linktype)
 | |
|         else:
 | |
|             print("Duplicate", link_name)
 | |
| 
 | |
| with open(relationships_path, 'w') as f:
 | |
|     json.dump(relationships, f, indent=2)
 |