mirror of
https://github.com/MiSTer-devel/Distribution_MiSTer.git
synced 2026-05-24 03:03:20 +00:00
Improving mgl filter.
This commit is contained in:
26
.github/calculate_db.py
vendored
26
.github/calculate_db.py
vendored
@@ -155,15 +155,21 @@ filter_part_regex = re.compile("[-_a-z0-9.]$", )
|
||||
|
||||
main_binaries = ['MiSTer', 'menu.rbf']
|
||||
|
||||
class Metadata:
|
||||
def __init__(self, props):
|
||||
self._props = props
|
||||
|
||||
def is_mgl_folder(self, folder):
|
||||
return folder in self._props['folders'] and self._props['folders'][folder]['is_mgl']
|
||||
|
||||
class Tags:
|
||||
def __init__(self, metadata) -> None:
|
||||
self._metadata = metadata
|
||||
self._metadata = Metadata(metadata)
|
||||
self._dict = {}
|
||||
self._alternatives = {}
|
||||
self._index = 0
|
||||
self._report_set = set()
|
||||
self._used = set()
|
||||
self._mgls = set()
|
||||
|
||||
def init_aliases(self, aliases):
|
||||
for alias_list in aliases:
|
||||
@@ -171,13 +177,6 @@ class Tags:
|
||||
self._dict[self._clean_term(alias)] = self._index
|
||||
self._index += 1
|
||||
|
||||
def pre_process_file(self, path: Path):
|
||||
suffix = path.suffix.lower()
|
||||
if suffix == '.mgl':
|
||||
rbf, setname = read_mgl_fields(path)
|
||||
if setname is not None:
|
||||
self._mgls.add(setname.lower())
|
||||
|
||||
def get_tags_for_file(self, path: Path):
|
||||
return sorted(self._get_tags_for_file(path))
|
||||
|
||||
@@ -248,7 +247,7 @@ class Tags:
|
||||
first_level = path.parts[1].lower()
|
||||
self._append(result, self._use_term(first_level))
|
||||
|
||||
if first_level in self._mgls:
|
||||
if self._metadata.is_mgl_folder(first_level):
|
||||
self._append(result, self._use_term('mgl'))
|
||||
|
||||
second_level = path.parts[2].lower()
|
||||
@@ -266,7 +265,7 @@ class Tags:
|
||||
if parent == 'docs':
|
||||
first_level = path.parts[1].lower()
|
||||
self._append(result, self._use_term(first_level))
|
||||
if first_level in self._mgls:
|
||||
if self._metadata.is_mgl_folder(first_level):
|
||||
self._append(result, self._use_term('mgl'))
|
||||
|
||||
second_level = path.parts[2].lower()
|
||||
@@ -325,7 +324,7 @@ class Tags:
|
||||
if (parent == 'games' or parent == 'docs'):
|
||||
if first_level in ['gba2p', 'gameboy2p']:
|
||||
self._append(result, self._use_term('handheld2p'))
|
||||
if first_level in self._mgls:
|
||||
if self._metadata.is_mgl_folder(first_level):
|
||||
self._append(result, self._use_term('mgl'))
|
||||
|
||||
self._append(result, self._use_term(first_level))
|
||||
@@ -468,9 +467,6 @@ def create_db(folder, options, tags):
|
||||
zip_creators = []
|
||||
stored_folders = []
|
||||
|
||||
for file in db_finder.find_all():
|
||||
tags.pre_process_file(file)
|
||||
|
||||
if options['zips_config'] != '':
|
||||
print('reading zips_config: ' + options['zips_config'])
|
||||
with open(options['zips_config']) as zips_config_file:
|
||||
|
||||
11
.github/download_distribution.py
vendored
11
.github/download_distribution.py
vendored
@@ -333,6 +333,7 @@ def impl_install_generic_core(path, target_dir, core, metadata, touch_games_fold
|
||||
copy_file(f'{releases_dir}/{latest_release}', f'{target_dir}/{core["category"]}/{latest_release}')
|
||||
binaries.append(bin)
|
||||
|
||||
metadata.add_folder(core['home'])
|
||||
home_folders = [core['home']]
|
||||
|
||||
for mgl in mgl_files(releases_dir):
|
||||
@@ -345,6 +346,7 @@ def impl_install_generic_core(path, target_dir, core, metadata, touch_games_fold
|
||||
continue
|
||||
|
||||
home_folders.append(setname)
|
||||
metadata.add_mgl_folder(setname)
|
||||
|
||||
for folder in home_folders:
|
||||
for readme in list_readmes(path):
|
||||
@@ -499,10 +501,17 @@ extra_content_early_installers = {
|
||||
class Metadata:
|
||||
@staticmethod
|
||||
def new_props():
|
||||
return {}
|
||||
return {'folders': {}}
|
||||
|
||||
def __init__(self, props):
|
||||
self._props = props
|
||||
|
||||
def add_mgl_folder(self, folder):
|
||||
self._props['folders'][folder] = self._props['folders'].get(folder, {'is_mgl': True})
|
||||
|
||||
def add_folder(self, folder):
|
||||
self._props['folders'][folder] = self._props['folders'].get(folder, {'is_mgl': True})
|
||||
self._props['folders'][folder]['is_mgl'] = False
|
||||
|
||||
def mra_files(folder):
|
||||
return [without_folder(folder, f) for f in list_files(folder, recursive=False) if Path(f).suffix.lower() == '.mra']
|
||||
|
||||
Reference in New Issue
Block a user