mirror of
https://github.com/MiSTer-devel/Distribution_MiSTer.git
synced 2026-05-24 03:03:20 +00:00
Improving category filter.
This commit is contained in:
26
.github/calculate_db.py
vendored
26
.github/calculate_db.py
vendored
@@ -159,8 +159,11 @@ 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']
|
||||
def is_mgl_home(self, home):
|
||||
return home in self._props['home'] and self._props['home'][home]['is_mgl']
|
||||
|
||||
def category_by_home(self, home):
|
||||
return None if home not in self._props['home'] else self._props['home'][home]['category']
|
||||
|
||||
class Tags:
|
||||
def __init__(self, metadata) -> None:
|
||||
@@ -247,9 +250,13 @@ class Tags:
|
||||
first_level = path.parts[1].lower()
|
||||
self._append(result, self._use_term(first_level))
|
||||
|
||||
if self._metadata.is_mgl_folder(first_level):
|
||||
if self._metadata.is_mgl_home(first_level):
|
||||
self._append(result, self._use_term('mgl'))
|
||||
|
||||
|
||||
category = self._metadata.category_by_home(first_level)
|
||||
if category is not None:
|
||||
self._append(result, self._use_term(category))
|
||||
|
||||
second_level = path.parts[2].lower()
|
||||
if len(path.parts) > 3:
|
||||
self._append(result, self._use_term(second_level))
|
||||
@@ -265,9 +272,13 @@ class Tags:
|
||||
if parent == 'docs':
|
||||
first_level = path.parts[1].lower()
|
||||
self._append(result, self._use_term(first_level))
|
||||
if self._metadata.is_mgl_folder(first_level):
|
||||
if self._metadata.is_mgl_home(first_level):
|
||||
self._append(result, self._use_term('mgl'))
|
||||
|
||||
category = self._metadata.category_by_home(first_level)
|
||||
if category is not None:
|
||||
self._append(result, self._use_term(category))
|
||||
|
||||
second_level = path.parts[2].lower()
|
||||
if len(path.parts) > 3:
|
||||
self._append(result, self._use_term(second_level))
|
||||
@@ -324,8 +335,11 @@ class Tags:
|
||||
if (parent == 'games' or parent == 'docs'):
|
||||
if first_level in ['gba2p', 'gameboy2p']:
|
||||
self._append(result, self._use_term('handheld2p'))
|
||||
if self._metadata.is_mgl_folder(first_level):
|
||||
if self._metadata.is_mgl_home(first_level):
|
||||
self._append(result, self._use_term('mgl'))
|
||||
category = self._metadata.category_by_home(first_level)
|
||||
if category is not None:
|
||||
self._append(result, self._use_term(category))
|
||||
|
||||
self._append(result, self._use_term(first_level))
|
||||
|
||||
|
||||
16
.github/download_distribution.py
vendored
16
.github/download_distribution.py
vendored
@@ -333,7 +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'])
|
||||
metadata.add_home(core['home'], core['category'])
|
||||
home_folders = [core['home']]
|
||||
|
||||
for mgl in mgl_files(releases_dir):
|
||||
@@ -346,7 +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)
|
||||
metadata.add_mgl_home(setname, core['category'])
|
||||
|
||||
for folder in home_folders:
|
||||
for readme in list_readmes(path):
|
||||
@@ -501,17 +501,17 @@ extra_content_early_installers = {
|
||||
class Metadata:
|
||||
@staticmethod
|
||||
def new_props():
|
||||
return {'folders': {}}
|
||||
return {'home': {}}
|
||||
|
||||
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_mgl_home(self, folder, category):
|
||||
self._props['home'][folder] = self._props['home'].get(folder, {'is_mgl': True, 'category': category.lower()[1:]})
|
||||
|
||||
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 add_home(self, folder, category):
|
||||
self._props['home'][folder] = self._props['home'].get(folder, {'is_mgl': True, 'category': category.lower()[1:]})
|
||||
self._props['home'][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