1
0
Fork 0
mirror of synced 2024-06-02 18:54:41 +12:00

RareCore: Resolve grant date from entitlements at post init

This commit is contained in:
loathingKernel 2023-03-12 14:43:54 +02:00
parent 8a15691672
commit 801294b1ea
No known key found for this signature in database
GPG key ID: CE0C72D0B53821FD
2 changed files with 9 additions and 0 deletions

View file

@ -29,6 +29,8 @@ class RareGame(RareGameSlim):
queue_pos: Optional[int] = None
last_played: Optional[datetime] = None
grant_date: Optional[datetime] = None
steam_grade: Optional[str] = None
steam_date: Optional[datetime] = None
tags: List[str] = field(default_factory=list)
@classmethod
@ -39,6 +41,8 @@ class RareGame(RareGameSlim):
queue_pos=data.get("queue_pos", None),
last_played=datetime.fromisoformat(data["last_played"]) if data.get("last_played", None) else None,
grant_date=datetime.fromisoformat(data["grant_date"]) if data.get("grant_date", None) else None,
steam_grade=data.get("steam_grade", None),
steam_date=datetime.fromisoformat(data["steam_date"]) if data.get("steam_date", None) else None,
tags=data.get("tags", []),
)
@ -49,6 +53,8 @@ class RareGame(RareGameSlim):
queue_pos=self.queue_pos,
last_played=self.last_played.isoformat() if self.last_played else None,
grant_date=self.grant_date.isoformat() if self.grant_date else None,
steam_grade=self.steam_grade,
steam_date=self.steam_date.isoformat() if self.steam_date else None,
tags=self.tags,
)
@ -431,6 +437,7 @@ class RareGame(RareGameSlim):
def grant_date(self, force=False) -> datetime:
if self.metadata.grant_date is None or force:
logger.debug("Grant date for %s not found in metadata, resolving", self.app_name)
entitlements = self.core.lgd.entitlements
matching = filter(lambda ent: ent["namespace"] == self.game.namespace, entitlements)
entitlement = next(matching, None)

View file

@ -339,6 +339,8 @@ class RareCore(QObject):
try:
entitlements = self.__core.egs.get_user_entitlements()
self.__core.lgd.entitlements = entitlements
for game in self.__library.values():
game.grant_date()
except (HTTPError, ConnectionError) as e:
logger.error(f"Failed to retrieve user entitlements from EGS: {e}")
return