From 07ae84c6a05b2ed705eae490baaa00511c5e6378 Mon Sep 17 00:00:00 2001 From: derrod Date: Tue, 12 Oct 2021 15:00:11 +0200 Subject: [PATCH] [lfs/utils] Prevent app name colliding with itself --- legendary/lfs/lgndry.py | 4 +--- legendary/utils/aliasing.py | 5 ++++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/legendary/lfs/lgndry.py b/legendary/lfs/lgndry.py index e20fc5b..3dbbcac 100644 --- a/legendary/lfs/lgndry.py +++ b/legendary/lfs/lgndry.py @@ -367,9 +367,7 @@ class LGDLFS: if game.is_dlc: continue game_folder = game.metadata.get('customAttributes', {}).get('FolderName', {}).get('value', None) - _aliases = generate_aliases(game.app_title, game_folder) - # include lowercase version of app name in aliases - _aliases.append(app_name.lower()) + _aliases = generate_aliases(game.app_title, game_folder=game_folder, app_name=game.app_name) for alias in _aliases: if alias not in aliases: aliases.add(alias) diff --git a/legendary/utils/aliasing.py b/legendary/utils/aliasing.py index c206691..dfc596c 100644 --- a/legendary/utils/aliasing.py +++ b/legendary/utils/aliasing.py @@ -43,7 +43,7 @@ def _filter(input): return ''.join(l for l in input if l in allowed_characters) -def generate_aliases(game_name, game_folder=None, split_words=True): +def generate_aliases(game_name, game_folder=None, split_words=True, app_name=None): # normalise and split name, then filter for legal characters game_parts = [_filter(p) for p in game_name.lower().split()] # filter out empty parts @@ -72,6 +72,9 @@ def generate_aliases(game_name, game_folder=None, split_words=True): # include folder name for alternative short forms if game_folder: _aliases.extend(generate_aliases(game_folder, split_words=False)) + # include lowercase version of app name in aliases + if app_name: + _aliases.append(app_name.lower()) # include initialisms if len(game_parts) > 1: _aliases.append(''.join(p[0] for p in game_parts))