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