fix: Missing files
parent
643b8badfb
commit
f2a2e4a90b
|
@ -0,0 +1,8 @@
|
|||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
|
||||
class PyMISPWarningListsError(Exception):
|
||||
def __init__(self, message: str):
|
||||
super(PyMISPWarningListsError, self).__init__(message)
|
||||
self.message = message
|
|
@ -0,0 +1,46 @@
|
|||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import os
|
||||
import shutil
|
||||
|
||||
from io import BytesIO
|
||||
from pathlib import Path
|
||||
from zipfile import ZipFile
|
||||
|
||||
from .exceptions import PyMISPWarningListsError
|
||||
|
||||
try:
|
||||
import requests
|
||||
HAS_REQUESTS = True
|
||||
except ImportError:
|
||||
HAS_REQUESTS = False
|
||||
|
||||
|
||||
def get_xdg_home_dir() -> Path:
|
||||
if os.getenv('XDG_MISP_HOME'):
|
||||
xdg_home_dir = Path(os.environ['XDG_MISP_HOME'])
|
||||
if not xdg_home_dir.exists():
|
||||
xdg_home_dir.mkdir(parents=True)
|
||||
return xdg_home_dir / 'misp-warninglists'
|
||||
if os.name != 'posix':
|
||||
raise PyMISPWarningListsError('Cannot initialize XDG variable for OS {os.name}. Must be posix.')
|
||||
shared_data_dir = Path(os.environ['XDG_DATA_HOME']) if os.environ.get('XDG_DATA_HOME') else Path.home() / '.local' / 'share'
|
||||
xdg_home_dir = shared_data_dir / 'misp'
|
||||
if not xdg_home_dir.exists():
|
||||
xdg_home_dir.mkdir(parents=True)
|
||||
os.putenv('XDG_MISP_HOME', str(xdg_home_dir))
|
||||
return xdg_home_dir / 'misp-warninglists'
|
||||
|
||||
|
||||
def update_warninglists():
|
||||
if not HAS_REQUESTS:
|
||||
raise PyMISPWarningListsError('Cannot update local warning lists, please install pymispwarninglists this way: pip install -E fetch_lists pymispwarninglists ')
|
||||
storage_dir = get_xdg_home_dir()
|
||||
if storage_dir.exists():
|
||||
shutil.rmtree(storage_dir)
|
||||
r = requests.get('https://github.com/MISP/misp-warninglists/archive/refs/heads/main.zip')
|
||||
r.raise_for_status()
|
||||
with ZipFile(BytesIO(r.content)) as zipfile:
|
||||
zipfile.extractall(storage_dir.parent)
|
||||
os.rename(storage_dir.parent / 'misp-warninglists-main', storage_dir)
|
Loading…
Reference in New Issue