diff --git a/.github/calculate_db.py b/.github/calculate_db.py index a2502f812..f2170e7c8 100755 --- a/.github/calculate_db.py +++ b/.github/calculate_db.py @@ -153,7 +153,13 @@ class Metadata: self._props = props def is_mgl_home(self, home): - return home in self._props['home'] and self._props['home'][home]['is_mgl'] + return home in self._props['home'] and self._props['home'][home]['mgl_dependency'] != '' + + def mgl_dependency(self, home): + mgl_dependency = self._props['home'][home]['mgl_dependency'] + if len(mgl_dependency) == 0: + return Exception('This method should be used after is_mgl_home is true') + return mgl_dependency def category_by_home(self, home): return None if home not in self._props['home'] else self._props['home'][home]['category'] @@ -268,6 +274,7 @@ class Tags: self._append(result, self._use_term(first_level)) if self._metadata.is_mgl_home(first_level): self._append(result, self._use_term('mgl')) + self._append(result, self._use_term(self._metadata.mgl_dependency(first_level))) category = self._metadata.category_by_home(first_level) if category is not None: @@ -337,6 +344,7 @@ class Tags: self._append(result, self._use_term('handheld2p')) if self._metadata.is_mgl_home(first_level): self._append(result, self._use_term('mgl')) + self._append(result, self._use_term(self._metadata.mgl_dependency(first_level))) category = self._metadata.category_by_home(first_level) if category is not None: self._append(result, self._use_term(category)) diff --git a/.github/download_distribution.py b/.github/download_distribution.py index d6b1e4436..4805f712f 100755 --- a/.github/download_distribution.py +++ b/.github/download_distribution.py @@ -333,7 +333,7 @@ def impl_install_generic_core(path, target_dir, core, metadata, touch_games_fold continue home_folders.append(setname) - metadata.add_mgl_home(setname, core['category']) + metadata.add_mgl_home(setname, core['category'], rbf) metadata.add_core_aliases([setname, Path(mgl).stem]) for folder in home_folders: @@ -473,14 +473,14 @@ class Metadata: def set_ctx(self, ctx): self._ctx = ctx - def add_mgl_home(self, folder, category): + def add_mgl_home(self, folder, category, rbf): lower = folder.lower() - self._props['home'][lower] = self._props['home'].get(lower, {'is_mgl': True, 'category': category.lower()[1:]}) + self._props['home'][lower] = self._props['home'].get(lower, {'mgl_dependency': Path(rbf).stem.lower(), 'category': category.lower()[1:]}) def add_home(self, folder, category): lower = folder.lower() - self._props['home'][lower] = self._props['home'].get(lower, {'is_mgl': True, 'category': category.lower()[1:]}) - self._props['home'][lower]['is_mgl'] = False + self._props['home'][lower] = self._props['home'].get(lower, {'mgl_dependency': '', 'category': category.lower()[1:]}) + self._props['home'][lower]['mgl_dependency'] = '' def add_core_aliases(self, core_aliases): terms = {to_filter_term(c) for c in core_aliases}