mirror of
https://github.com/home-assistant/core.git
synced 2025-07-18 10:47:10 +00:00
Fix errors in legacy platform in PlayStation Network integration (#147471)
fix legacy platform presence
This commit is contained in:
parent
42aaa888a1
commit
91e7b75a44
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user