Cache to automagically download .hrb files
This commit is contained in:
parent
910b678ffe
commit
dfb285d239
|
@ -0,0 +1,39 @@
|
|||
from os import listdir, mkdir, path
|
||||
import re
|
||||
import fetch
|
||||
|
||||
NAME_REGEX = r'(.*\..*)(_)'
|
||||
|
||||
|
||||
class Cache:
|
||||
def __init__(self, dir: str = "AutoDatabaseGenerator/Resources"):
|
||||
self.dir = dir
|
||||
self._cache = dict()
|
||||
self._scan_cache()
|
||||
|
||||
def get(self, name: str):
|
||||
if name in self._cache:
|
||||
return path.abspath(self.dir + self._cache[name])
|
||||
|
||||
try:
|
||||
driver = fetch.get_driver_by_exact_name(name)
|
||||
file = fetch.download_driver(driver, self.dir)
|
||||
except Exception as e:
|
||||
raise Exception("Could not fetch driver", e)
|
||||
|
||||
self._cache[name] = file
|
||||
return path.abspath(self.dir + self._cache[name])
|
||||
|
||||
def _scan_cache(self):
|
||||
try:
|
||||
files = listdir(self.dir)
|
||||
print("files found: ", files)
|
||||
except FileNotFoundError:
|
||||
mkdir(self.dir)
|
||||
return
|
||||
|
||||
filtered = [file for file in files if file.endswith('.hrb')]
|
||||
|
||||
for file in filtered:
|
||||
name = re.match(NAME_REGEX, file).group(1)
|
||||
self._cache[name] = file
|
Loading…
Reference in New Issue