mirror of
https://github.com/derrod/legendary.git
synced 2024-12-22 01:45:28 +00:00
[cli/models] Support both origin and EA App names (#632)
Note that the actual title has different case for different games (e.g. it's "the EA app" for one game, but "The EA App" for another)
This commit is contained in:
parent
7fefdc4973
commit
90e5f75af0
|
@ -242,7 +242,7 @@ class LegendaryCLI:
|
||||||
# a third-party application (such as Origin).
|
# a third-party application (such as Origin).
|
||||||
if not version:
|
if not version:
|
||||||
_store = game.third_party_store
|
_store = game.third_party_store
|
||||||
if _store == 'Origin':
|
if game.is_origin_game:
|
||||||
print(f' - This game has to be activated, installed, and launched via Origin, use '
|
print(f' - This game has to be activated, installed, and launched via Origin, use '
|
||||||
f'"legendary launch --origin {game.app_name}" to activate and/or run the game.')
|
f'"legendary launch --origin {game.app_name}" to activate and/or run the game.')
|
||||||
elif _store:
|
elif _store:
|
||||||
|
@ -722,7 +722,7 @@ class LegendaryCLI:
|
||||||
f'to fetch data for Origin titles before using this command.')
|
f'to fetch data for Origin titles before using this command.')
|
||||||
return
|
return
|
||||||
|
|
||||||
if not game.third_party_store or game.third_party_store != 'Origin':
|
if not game.is_origin_game:
|
||||||
logger.error(f'The specified game is not an Origin title.')
|
logger.error(f'The specified game is not an Origin title.')
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -856,7 +856,7 @@ class LegendaryCLI:
|
||||||
|
|
||||||
if store := game.third_party_store:
|
if store := game.third_party_store:
|
||||||
logger.error(f'The selected title has to be installed via a third-party store: {store}')
|
logger.error(f'The selected title has to be installed via a third-party store: {store}')
|
||||||
if store == 'Origin':
|
if game.is_origin_game:
|
||||||
logger.info(f'For Origin games use "legendary launch --origin {args.app_name}" to '
|
logger.info(f'For Origin games use "legendary launch --origin {args.app_name}" to '
|
||||||
f'activate and/or run the game.')
|
f'activate and/or run the game.')
|
||||||
exit(0)
|
exit(0)
|
||||||
|
@ -2125,7 +2125,7 @@ class LegendaryCLI:
|
||||||
logger.info('Redeemed all outstanding Uplay codes.')
|
logger.info('Redeemed all outstanding Uplay codes.')
|
||||||
elif args.origin:
|
elif args.origin:
|
||||||
na_games, _ = self.core.get_non_asset_library_items(skip_ue=True)
|
na_games, _ = self.core.get_non_asset_library_items(skip_ue=True)
|
||||||
origin_games = [game for game in na_games if game.third_party_store == 'Origin']
|
origin_games = [game for game in na_games if game.is_origin_game]
|
||||||
|
|
||||||
if not origin_games:
|
if not origin_games:
|
||||||
logger.info('No redeemable games found.')
|
logger.info('No redeemable games found.')
|
||||||
|
|
|
@ -66,7 +66,11 @@ class Game:
|
||||||
return self.metadata and 'mainGameItem' in self.metadata
|
return self.metadata and 'mainGameItem' in self.metadata
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def third_party_store(self):
|
def is_origin_game(self) -> bool:
|
||||||
|
return self.third_party_store and self.third_party_store.lower() in ['origin', 'the ea app']
|
||||||
|
|
||||||
|
@property
|
||||||
|
def third_party_store(self) -> Optional[str]:
|
||||||
if not self.metadata:
|
if not self.metadata:
|
||||||
return None
|
return None
|
||||||
return self.metadata.get('customAttributes', {}).get('ThirdPartyManagedApp', {}).get('value', None)
|
return self.metadata.get('customAttributes', {}).get('ThirdPartyManagedApp', {}).get('value', None)
|
||||||
|
|
Loading…
Reference in a new issue