Fix errors in legacy platform in PlayStation Network integration (#147471)

fix legacy platform presence
This commit is contained in:
Manu 2025-06-25 06:48:45 +02:00 committed by GitHub
parent 42aaa888a1
commit 91e7b75a44
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -7,7 +7,6 @@ from functools import partial
from typing import Any from typing import Any
from psnawp_api import PSNAWP from psnawp_api import PSNAWP
from psnawp_api.core.psnawp_exceptions import PSNAWPNotFoundError
from psnawp_api.models.client import Client from psnawp_api.models.client import Client
from psnawp_api.models.trophies import PlatformType from psnawp_api.models.trophies import PlatformType
from psnawp_api.models.user import User from psnawp_api.models.user import User
@ -120,32 +119,31 @@ class PlaystationNetwork:
if self.legacy_profile: if self.legacy_profile:
presence = self.legacy_profile["profile"].get("presences", []) presence = self.legacy_profile["profile"].get("presences", [])
game_title_info = presence[0] if presence else {} if (game_title_info := presence[0] if presence else {}) and game_title_info[
session = SessionData() "onlineStatus"
] == "online":
data.available = True
# If primary console isn't online, check legacy platforms for status platform = PlatformType(game_title_info["platform"])
if not data.available:
data.available = game_title_info["onlineStatus"] == "online"
if "npTitleId" in game_title_info: if platform is PlatformType.PS4:
session.title_id = game_title_info["npTitleId"] media_image_url = game_title_info.get("npTitleIconUrl")
session.title_name = game_title_info["titleName"] elif platform is PlatformType.PS3 and game_title_info.get("npTitleId"):
session.format = game_title_info["platform"] media_image_url = self.psn.game_title(
session.platform = game_title_info["platform"] game_title_info["npTitleId"],
session.status = game_title_info["onlineStatus"] platform=PlatformType.PS3,
if PlatformType(session.format) is PlatformType.PS4: account_id="me",
session.media_image_url = game_title_info["npTitleIconUrl"] np_communication_id="",
elif PlatformType(session.format) is PlatformType.PS3: ).get_title_icon_url()
try: else:
title = self.psn.game_title( media_image_url = None
session.title_id, platform=PlatformType.PS3, account_id="me"
)
except PSNAWPNotFoundError:
session.media_image_url = None
if title: data.active_sessions[platform] = SessionData(
session.media_image_url = title.get_title_icon_url() platform=platform,
title_id=game_title_info.get("npTitleId"),
if game_title_info["onlineStatus"] == "online": title_name=game_title_info.get("titleName"),
data.active_sessions[session.platform] = session format=platform,
media_image_url=media_image_url,
status=game_title_info["onlineStatus"],
)
return data return data