mirror of https://github.com/MISP/misp-galaxy
parent
f90e9b6e03
commit
c93103bba1
|
@ -0,0 +1 @@
|
||||||
|
__pycache__
|
|
@ -8,9 +8,19 @@ import os
|
||||||
import collections
|
import collections
|
||||||
|
|
||||||
|
|
||||||
def loadjsons(path):
|
def loadjsons(path, return_paths=False):
|
||||||
"""
|
"""
|
||||||
Find all Jsons and load them in a dict
|
Find all Jsons and load them in a dict
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
path: string
|
||||||
|
return_names: boolean, if the name of the file should be returned,
|
||||||
|
default: False
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
List of parsed file contents.
|
||||||
|
If return_paths is True, then every list item is a tuple of the
|
||||||
|
file name and the file content
|
||||||
"""
|
"""
|
||||||
files = []
|
files = []
|
||||||
data = []
|
data = []
|
||||||
|
@ -18,9 +28,14 @@ def loadjsons(path):
|
||||||
if os.path.isfile(os.path.join(path, name)) and name.endswith('.json'):
|
if os.path.isfile(os.path.join(path, name)) and name.endswith('.json'):
|
||||||
files.append(name)
|
files.append(name)
|
||||||
for jfile in files:
|
for jfile in files:
|
||||||
data.append(json.load(open("%s/%s" % (path, jfile))))
|
filepath = os.path.join(path, jfile)
|
||||||
|
if return_paths:
|
||||||
|
data.append((filepath, json.load(open(filepath))))
|
||||||
|
else:
|
||||||
|
data.append(json.load(json.load(open(filepath))))
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
"""
|
"""
|
||||||
Iterate all name + synonyms
|
Iterate all name + synonyms
|
||||||
|
@ -33,19 +48,19 @@ if __name__ == '__main__':
|
||||||
items = djson.get('values')
|
items = djson.get('values')
|
||||||
for entry in items:
|
for entry in items:
|
||||||
name = entry.get('value').strip().lower()
|
name = entry.get('value').strip().lower()
|
||||||
counter[name]+=1
|
counter[name] += 1
|
||||||
namespace.append([name, djson.get('name')])
|
namespace.append([name, djson.get('name')])
|
||||||
try:
|
try:
|
||||||
for synonym in entry.get('meta').get('synonyms'):
|
for synonym in entry.get('meta').get('synonyms'):
|
||||||
name = synonym.strip().lower()
|
name = synonym.strip().lower()
|
||||||
counter[name]+=1
|
counter[name] += 1
|
||||||
namespace.append([name, djson.get('name')])
|
namespace.append([name, djson.get('name')])
|
||||||
except (AttributeError, TypeError):
|
except (AttributeError, TypeError):
|
||||||
pass
|
pass
|
||||||
counter = dict(counter)
|
counter = dict(counter)
|
||||||
for key, val in counter.items():
|
for key, val in counter.items():
|
||||||
if val>1:
|
if val > 1:
|
||||||
print ("Warning duplicate %s" % key)
|
print("Warning duplicate %s" % key)
|
||||||
for item in namespace:
|
for item in namespace:
|
||||||
if item[0]==key:
|
if item[0] == key:
|
||||||
print (item)
|
print(item)
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
# coding=utf-8
|
||||||
|
"""
|
||||||
|
Tools to find empty string entries in galaxies
|
||||||
|
"""
|
||||||
|
from .chk_dup import loadjsons
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
jsons = loadjsons("clusters", return_paths=True)
|
||||||
|
retval = 0
|
||||||
|
for clustername, djson in jsons:
|
||||||
|
items = djson.get('values')
|
||||||
|
for entry in items:
|
||||||
|
name = entry.get('value')
|
||||||
|
for key, value in entry.get('meta', {}).items():
|
||||||
|
if isinstance(value, list):
|
||||||
|
if '' in value:
|
||||||
|
retval = 1
|
||||||
|
print("Empty string found in Cluster %r: values/%s/meta/%s"
|
||||||
|
"" % (clustername, name, key),
|
||||||
|
file=sys.stderr)
|
||||||
|
sys.exit(retval)
|
|
@ -84,3 +84,6 @@ do
|
||||||
fi
|
fi
|
||||||
echo ''
|
echo ''
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# check for empyt strings in clusters
|
||||||
|
python3 -m tools.chk_empty_strings
|
||||||
|
|
Loading…
Reference in New Issue